From 78fdfd38e593a258c747a4fd56102194b75b0cb9 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 25 Nov 2022 17:22:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../master/service/dto/CustomerbaseDto.java | 5 ++ .../master/wql/QMD_CS_TRANSPORAIONL.wql | 2 +- .../inbill/service/CheckOutBillService.java | 6 ++ .../outbill/rest/CheckOutBillController.java | 7 ++ .../service/impl/CheckOutBillServiceImpl.java | 84 +++++++++++++------ .../org/nl/wms/st/outbill/wql/ST_OUTIVT02.wql | 17 ++-- .../wms/basedata/master/customer/index.vue | 14 ++++ .../src/views/wms/st/outbill/checkoutbill.js | 9 +- .../src/views/wms/st/outbill/index.vue | 22 ++--- 9 files changed, 120 insertions(+), 46 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/dto/CustomerbaseDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/dto/CustomerbaseDto.java index 3c84156fa..e3bf30b64 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/dto/CustomerbaseDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/dto/CustomerbaseDto.java @@ -189,4 +189,9 @@ public class CustomerbaseDto implements Serializable { * 送货单打印模板号 */ private String shd_print_no; + + /** + * 送货单明细数 + */ + private String shd_dtl_num; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_CS_TRANSPORAIONL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_CS_TRANSPORAIONL.wql index 02a888458..f2bb4f63c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_CS_TRANSPORAIONL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_CS_TRANSPORAIONL.wql @@ -68,7 +68,7 @@ IF 输入.flag = "2" QUERY SELECT - cust_code AS value, + cust_name AS value, cust_name AS label FROM MD_CS_TransportationBase diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java index 8cbd99c80..fb67c7567 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java @@ -176,4 +176,10 @@ public interface CheckOutBillService { * @param whereJson / */ void downloadExcel(HttpServletResponse response, Map whereJson) throws IOException; + + /** + * 获取分配明细条数 + * @param whereJson / + */ + JSONObject getDisNum(Map whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index b4dcb58aa..e9b1e432b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -211,4 +211,11 @@ public class CheckOutBillController { checkOutBillService.downloadExcel(response,whereJson); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/getDisNum") + @Log("获取分配明细条数") + @ApiOperation("获取分配明细条数") + public ResponseEntity getDisNum(@RequestBody Map whereJson) { + return new ResponseEntity<>(checkOutBillService.getDisNum(whereJson),HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index 118b8bbdc..a53458d4c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -2132,6 +2132,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { WQLObject custTab = WQLObject.getWQLObject("MD_CS_CustomerBase"); // 客户基本信息表 WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_IOStorInv"); // 出入库主表 + WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); // 子卷包装关系表 JSONObject jsonMst = mstTab.query("iostorinv_id = '" + MapUtil.getStr(whereJson, "iostorinv_id") + "'").uniqueResult(0); String cust_code = jsonMst.getString("cust_code"); @@ -2149,22 +2150,21 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // WriteSheet sheet = EasyExcel.writerSheet().build(); // 5.单组填充 HashMap oneMap = new HashMap<>(); - oneMap.put("consignee", jsonMst.getString("consignee")); - oneMap.put("receiver", jsonMst.getString("receiver")); - oneMap.put("receiptaddress", jsonMst.getString("receiptaddress")); - oneMap.put("receiptphone", jsonMst.getString("receiptphone")); - oneMap.put("logisticscompany", jsonMst.getString("logisticscompany")); - oneMap.put("drivername", jsonMst.getString("drivername")); - oneMap.put("carno", jsonMst.getString("carno")); - oneMap.put("driverphone", jsonMst.getString("driverphone")); - oneMap.put("contractno", jsonMst.getString("contractno")); + oneMap.put("bill_code", jsonMst.getString("bill_code")); // 出库单号 + oneMap.put("create_date", DateUtil.today()); // 出库日期 + oneMap.put("consignee", jsonMst.getString("consignee")); // 客户 + oneMap.put("receiptaddress", jsonMst.getString("receiptaddress")); // 客户地址 + oneMap.put("trans_code", jsonMst.getString("trans_code")); // 承运公司 + oneMap.put("receiptaddress2", jsonMst.getString("receiptaddress")); // 收货地址 + oneMap.put("receiptphone", jsonMst.getString("receiver") +"/"+jsonMst.getString("receiptphone")); // 客户电话 + oneMap.put("deliveryphone", jsonMst.getString("deliveryname") +"/"+jsonMst.getString("deliveryphone") ); // 承运人电话 // 总箱数 - JSONArray jsonAllBox = WQL.getWO("ST_OUTIVT02").addParam("flag", "4").addParam("iostorinv_id", MapUtil.getStr(whereJson, "iostorinv_id")).process().getResultJSONArray(0); + /* JSONArray jsonAllBox = WQL.getWO("ST_OUTIVT02").addParam("flag", "4").addParam("iostorinv_id", MapUtil.getStr(whereJson, "iostorinv_id")).process().getResultJSONArray(0); oneMap.put("all_box", jsonAllBox.size()); oneMap.put("all_qty", ""); oneMap.put("deliveryaddress", jsonMst.getString("deliveryaddress")); oneMap.put("deliveryname", jsonMst.getString("deliveryname")); - oneMap.put("deliveryphone", jsonMst.getString("deliveryphone")); + oneMap.put("deliveryphone", jsonMst.getString("deliveryphone"));*/ // 6.多组填充 JSONArray dtlArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "3").addParam("iostorinv_id", MapUtil.getStr(whereJson, "iostorinv_id")).process().getResultJSONArray(0); @@ -2175,16 +2175,27 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { WriteSheet sheet = EasyExcel.writerSheet().build(); for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); - HashMap mapFL = new HashMap<>(); + JSONObject jsonSub = subTab.query("package_box_sn = '" + json.getString("box_no") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonSub)) throw new BadRequestException("没有查询到子卷包装"); - oneMap.put("vbeln", json.getString("vbeln")); // 送货单号 + // 规格: 厚度*幅宽 + String material_spec = jsonSub.getString("thickness") + "*" + jsonSub.getString("width"); + // 箱号 + String box_no = json.getString("box_no"); + String sub_box_no = ""; + if (ObjectUtil.isNotEmpty(box_no)) { + sub_box_no = box_no.substring(box_no.lastIndexOf("@")+1, box_no.length()); + } + + HashMap mapFL = new HashMap<>(); // 明细 - mapFL.put("index", i + 1); - mapFL.put("source_bill_code", json.getString("source_bill_code")); + String date_of_production = jsonSub.getString("date_of_production").replaceAll("[[\\s-:punct:]]", ""); + mapFL.put("date_of_production", date_of_production); // 批号 : 子卷包装生产日期 mapFL.put("material_name", json.getString("material_name")); - mapFL.put("material_spec", json.getString("material_spec")); - mapFL.put("qty", json.getString("real_qty")); - mapFL.put("remark", json.getString("remark")); + mapFL.put("material_spec", material_spec); + mapFL.put("qty_unit_name", "KG"); + mapFL.put("box_no", sub_box_no); + mapFL.put("qty", NumberUtil.round(json.getString("qty"), 2).toString()); flData.add(mapFL); } workBook.fill(oneMap, sheet); @@ -2200,17 +2211,29 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (i == dtlArr.size()) { break; } - JSONObject json = dtlArr.getJSONObject(i); - HashMap mapFL = new HashMap<>(); - oneMap.put("vbeln", json.getString("vbeln")); // 送货单号 + JSONObject json = dtlArr.getJSONObject(i); + JSONObject jsonSub = subTab.query("package_box_sn = '" + json.getString("box_no") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonSub)) throw new BadRequestException("没有查询到子卷包装"); + + // 规格: 厚度*幅宽 + String material_spec = jsonSub.getString("thickness") + "*" + jsonSub.getString("width"); + // 箱号 + String box_no = json.getString("box_no"); + String sub_box_no = ""; + if (ObjectUtil.isNotEmpty(box_no)) { + sub_box_no = box_no.substring(box_no.lastIndexOf("@")+1, box_no.length()); + } + + HashMap mapFL = new HashMap<>(); // 明细 - mapFL.put("index", i + 1); - mapFL.put("source_bill_code", json.getString("source_bill_code")); + String date_of_production = jsonSub.getString("date_of_production").replaceAll("[[\\s-:punct:]]", ""); + mapFL.put("date_of_production", date_of_production); // 批号 : 子卷包装生产日期 mapFL.put("material_name", json.getString("material_name")); - mapFL.put("material_spec", json.getString("material_spec")); - mapFL.put("qty", json.getString("real_qty")); - mapFL.put("remark", json.getString("remark")); + mapFL.put("material_spec", material_spec); + mapFL.put("qty_unit_name", "KG"); + mapFL.put("box_no", sub_box_no); + mapFL.put("qty", NumberUtil.round(json.getString("qty"), 2).toString()); flData.add(mapFL); } @@ -2221,6 +2244,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } } + @Override + public JSONObject getDisNum(Map whereJson) { + JSONArray dtlArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "3").addParam("iostorinv_id", MapUtil.getStr(whereJson, "iostorinv_id")).process().getResultJSONArray(0); + + JSONObject json = new JSONObject(); + json.put("num", dtlArr.size()); + return json; + } + /** * 更新主表状态 * diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT02.wql index fe82afebc..18e4eeb52 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT02.wql @@ -84,25 +84,26 @@ IF 输入.flag = "3" QUERY SELECT - dtl.*, - mater.material_code, - mater.material_name, - mater.material_spec + SUM(dis.real_qty) AS qty, + dis.box_no, + MAX(mater.material_name) AS material_name FROM - ST_IVT_IOStorInvDtl dtl - LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id + ST_IVT_IOStorInvDis dis + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id WHERE 1 = 1 OPTION 输入.iostorinv_id <> "" - dtl.iostorinv_id = 输入.iostorinv_id + dis.iostorinv_id = 输入.iostorinv_id ENDOPTION + group by dis.box_no + ENDSELECT ENDQUERY ENDIF - IF 输入.flag = "3" + IF 输入.flag = "4" QUERY SELECT count(*) AS num diff --git a/lms/nladmin-ui/src/views/wms/basedata/master/customer/index.vue b/lms/nladmin-ui/src/views/wms/basedata/master/customer/index.vue index 3b0791e97..a591f328c 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/master/customer/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/master/customer/index.vue @@ -92,6 +92,18 @@ + + + + + + + + + + + + @@ -115,6 +127,8 @@ + + diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js index 033ab90be..fae986b89 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js +++ b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js @@ -169,4 +169,11 @@ export function moneySubmit(data) { data }) } -export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit } +export function getDisNum(data) { + return request({ + url: '/api/checkoutbill/getDisNum', + method: 'post', + data + }) +} +export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum } diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue index ac4d72c23..ea426d10d 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue @@ -550,16 +550,18 @@ export default { return strStyle + arr.join('') }, printExcel(jo) { - debugger - const j = Math.ceil(jo.detail_count / jo.shd_dtl_num) - for (let i = 0; i < j; i++) { - download('/api/checkoutbill/downloadExcel', { 'iostorinv_id': jo.iostorinv_id, 'j': i }).then(result => { - downloadFile(result, '', 'xlsx') - crud.downloadLoading = false - }).catch(() => { - crud.downloadLoading = false - }) - } + checkoutbill.getDisNum({ 'iostorinv_id': jo.iostorinv_id }).then(res => { + debugger + const j = Math.ceil(res.num / jo.shd_dtl_num) + for (let i = 0; i < j; i++) { + download('/api/checkoutbill/downloadExcel', { 'iostorinv_id': jo.iostorinv_id, 'j': i }).then(result => { + downloadFile(result, '', 'xlsx') + crud.downloadLoading = false + }).catch(() => { + crud.downloadLoading = false + }) + } + }) } } }