From dd547b846f41bef4469de1e4608cea8fea457b76 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 19 Feb 2023 17:31:34 +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 --- .../st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql | 2 +- .../service/impl/CheckOutBillServiceImpl.java | 155 ++++++++++++------ .../st/outbill/wql/QST_IVT_CHECKOUTBILL.wql | 4 +- .../src/views/wms/st/inbill/AddDialog.vue | 1 + .../src/views/wms/st/outbill/AddDialog.vue | 2 + .../src/views/wms/st/outbill/index.vue | 10 +- 6 files changed, 117 insertions(+), 57 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql index 04d99776d..f07a9928d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql @@ -177,7 +177,7 @@ dtl.bill_status IN ('30','40') ENDOPTION ORDER BY - dtl.box_no + dtl.box_no,dtl.pcsn ENDSELECT ENDQUERY ENDIF 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 63fcfd747..cdbd696c5 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 @@ -23,6 +23,7 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl; @@ -4625,77 +4626,127 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); // 出入库分配明细 WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); // 子卷包装关系表 WQLObject tranTab = WQLObject.getWQLObject("MD_CS_TransportationBase"); // 物流公司表 + WQLObject storTab = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); // 实物仓库表 JSONObject jsonMst = mstTab.query("iostorinv_id = '" + MapUtil.getStr(whereJson, "iostorinv_id") + "'").uniqueResult(0); String cust_code = jsonMst.getString("cust_code"); JSONObject jsonCust = custTab.query("cust_code = '" + cust_code + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonCust)) throw new BadRequestException("客户不存在"); + String bill_type = jsonMst.getString("bill_type"); int j = Integer.parseInt((String) whereJson.get("j")); - //1.根据出入库主表中 收货单位 查询客户表中的模板路径 - String code_template = jsonCust.getString("shd_print_no"); + + HashMap oneMap = new HashMap<>(); // 2.获取输出流 ServletOutputStream outputStream = response.getOutputStream(); - // 3.创建模板工作簿 - ExcelWriter workBook = EasyExcel.write(outputStream, null).withTemplate(code_template).build(); - // 4.获取第一个sheet -// WriteSheet sheet = EasyExcel.writerSheet().build(); - // 5.单组填充 - HashMap oneMap = new HashMap<>(); + String code_template = ""; + int shd_dtl_num = 0; // 送货单明细数 - JSONObject jsonDtl = dtlTab.query("iostorinv_id = '" + jsonMst.getString("iostorinv_id") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonDtl)) { - // 送货单号 - oneMap.put("vbeln", jsonDtl.getString("vbeln")); - // 订单号 - String source_bill_code = jsonDtl.getString("source_bill_code"); - if (ObjectUtil.isNotEmpty(source_bill_code)) { - try { - oneMap.put("order_no", source_bill_code.substring(0, source_bill_code.indexOf("-"))); - } catch (Exception e) { - oneMap.put("order_no", source_bill_code); + // 调拨发货单 + if (StrUtil.equals(bill_type, "1004")) { + shd_dtl_num = 44; + //1.获取系统参数模板地址 + code_template = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("allot_order").getValue(); + + // 5.单组填充 + JSONObject jsonDtl = dtlTab.query("iostorinv_id = '" + jsonMst.getString("iostorinv_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDtl)) { + // 调拨单号 + oneMap.put("vbeln", jsonMst.getString("bill_code")); + // 调出仓库 + oneMap.put("out_stor", jsonMst.getString("stor_code")); + // 调入仓库 + JSONObject jsonStor = storTab.query("stor_id = '" + jsonMst.getString("out_stor_id") + "'").uniqueResult(0); + oneMap.put("in_stor", jsonStor.getString("stor_code")); + + } + String pageNow = String.valueOf(j + 1); // 页码 + oneMap.put("page", pageNow + "/" + MapUtil.getStr(whereJson, "pageNum")); + oneMap.put("consignee", jsonMst.getString("consignee")); // 收货单位 + oneMap.put("receiver", jsonMst.getString("receiver")); // 收货人 + String receiptaddress = jsonMst.getString("receiptaddress"); + oneMap.put("receiptaddress", receiptaddress); // 收货地址 + oneMap.put("receiptphone", jsonMst.getString("receiptphone")); // 收货人联系电话 + // 物流公司 + JSONObject jsonTran = tranTab.query("cust_code = '" + jsonMst.getString("trans_code") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonTran)) { + oneMap.put("logisticscompany", jsonTran.getString("cust_name")); + } + oneMap.put("drivername", jsonMst.getString("drivername")); // 司机 + oneMap.put("carno", jsonMst.getString("carno")); // 车牌号 + oneMap.put("driverphone", jsonMst.getString("driverphone")); // 司机联系电话 + // 总箱数 + 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()); + // 总毛重 + double all_box_qty = 0; + for (int t = 0; t < jsonAllBox.size(); t++) { + JSONObject json = jsonAllBox.getJSONObject(t); + all_box_qty = NumberUtil.add(all_box_qty, json.getDoubleValue("box_qty")); + } + oneMap.put("all_box_qty", NumberUtil.round(all_box_qty, 2).toString()); + oneMap.put("deliveryaddress", jsonMst.getString("deliveryaddress")); // 送货方地址 + oneMap.put("deliveryname", jsonMst.getString("deliveryname")); // 送货方联系人 + oneMap.put("deliveryphone", jsonMst.getString("deliveryphone")); // 送货方联系电话 + } else { + + if (ObjectUtil.isEmpty(jsonCust)) throw new BadRequestException("客户不存在"); + shd_dtl_num = jsonCust.getIntValue("shd_dtl_num"); + //1.根据出入库主表中 收货单位 查询客户表中的模板路径 + code_template = jsonCust.getString("shd_print_no"); + + JSONObject jsonDtl = dtlTab.query("iostorinv_id = '" + jsonMst.getString("iostorinv_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDtl)) { + // 送货单号 + oneMap.put("vbeln", jsonDtl.getString("vbeln")); + // 订单号 + String source_bill_code = jsonDtl.getString("source_bill_code"); + if (ObjectUtil.isNotEmpty(source_bill_code)) { + try { + oneMap.put("order_no", source_bill_code.substring(0, source_bill_code.indexOf("-"))); + } catch (Exception e) { + oneMap.put("order_no", source_bill_code); + } } } - } - String pageNow = String.valueOf(j + 1); // 页码 - oneMap.put("page", pageNow + "/" + MapUtil.getStr(whereJson, "pageNum")); - oneMap.put("consignee", jsonMst.getString("consignee")); // 收货单位 - oneMap.put("receiver", jsonMst.getString("receiver")); // 收货人 - String receiptaddress = jsonMst.getString("receiptaddress"); + String pageNow = String.valueOf(j + 1); // 页码 + oneMap.put("page", pageNow + "/" + MapUtil.getStr(whereJson, "pageNum")); + oneMap.put("consignee", jsonMst.getString("consignee")); // 收货单位 + oneMap.put("receiver", jsonMst.getString("receiver")); // 收货人 + String receiptaddress = jsonMst.getString("receiptaddress"); /* StrBuilder strBuilder = new StrBuilder(receiptaddress); if (receiptaddress.length() > 10) { strBuilder.insert(11,"\n"); }*/ - oneMap.put("receiptaddress", receiptaddress); // 收货地址 - oneMap.put("receiptphone", jsonMst.getString("receiptphone")); // 收货人联系电话 - // 物流公司 - JSONObject jsonTran = tranTab.query("cust_code = '" + jsonMst.getString("trans_code") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonTran)) { - oneMap.put("logisticscompany", jsonTran.getString("cust_name")); + oneMap.put("receiptaddress", receiptaddress); // 收货地址 + oneMap.put("receiptphone", jsonMst.getString("receiptphone")); // 收货人联系电话 + // 物流公司 + JSONObject jsonTran = tranTab.query("cust_code = '" + jsonMst.getString("trans_code") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonTran)) { + oneMap.put("logisticscompany", jsonTran.getString("cust_name")); + } + oneMap.put("drivername", jsonMst.getString("drivername")); // 司机 + oneMap.put("carno", jsonMst.getString("carno")); // 车牌号 + oneMap.put("driverphone", jsonMst.getString("driverphone")); // 司机联系电话 + // 总箱数 + 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()); + // 总毛重 + double all_box_qty = 0; + for (int t = 0; t < jsonAllBox.size(); t++) { + JSONObject json = jsonAllBox.getJSONObject(t); + all_box_qty = NumberUtil.add(all_box_qty, json.getDoubleValue("box_qty")); + } + oneMap.put("all_box_qty", NumberUtil.round(all_box_qty, 2).toString()); + oneMap.put("deliveryaddress", jsonMst.getString("deliveryaddress")); // 送货方地址 + oneMap.put("deliveryname", jsonMst.getString("deliveryname")); // 送货方联系人 + oneMap.put("deliveryphone", jsonMst.getString("deliveryphone")); // 送货方联系电话 } - oneMap.put("drivername", jsonMst.getString("drivername")); // 司机 - oneMap.put("carno", jsonMst.getString("carno")); // 车牌号 - oneMap.put("driverphone", jsonMst.getString("driverphone")); // 司机联系电话 - // 总箱数 - 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()); - // 总毛重 - double all_box_qty = 0; - for (int t = 0; t < jsonAllBox.size(); t++) { - JSONObject json = jsonAllBox.getJSONObject(t); - all_box_qty = NumberUtil.add(all_box_qty, json.getDoubleValue("box_qty")); - } - oneMap.put("all_box_qty", NumberUtil.round(all_box_qty, 2).toString()); - oneMap.put("deliveryaddress", jsonMst.getString("deliveryaddress")); // 送货方地址 - oneMap.put("deliveryname", jsonMst.getString("deliveryname")); // 送货方联系人 - 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); - int shd_dtl_num = jsonCust.getIntValue("shd_dtl_num"); // 送货单明细数 if (shd_dtl_num > dtlArr.size()) { double all_qty = 0; @@ -4738,6 +4789,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { /* if (ObjectUtil.isNotEmpty(order_no)) { oneMap.put("order_no",order_no.substring(0,order_no.indexOf("-"))); }*/ + ExcelWriter workBook = EasyExcel.write(outputStream, null).withTemplate(code_template).build(); + oneMap.put("all_qty", all_qty); // 合计 workBook.fill(oneMap, sheet); workBook.fill(new FillWrapper("data", flData), sheet); @@ -4789,9 +4842,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 订单号 - /* if (ObjectUtil.isNotEmpty(order_no)) { - oneMap.put("order_no",order_no.substring(0,order_no.indexOf("-"))); - }*/ + ExcelWriter workBook = EasyExcel.write(outputStream, null).withTemplate(code_template).build(); oneMap.put("all_qty", all_qty); // 合计 WriteSheet sheet = EasyExcel.writerSheet(0).build(); workBook.fill(oneMap, sheet); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql index 2a51c3eea..ecfe2e300 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql @@ -183,7 +183,7 @@ OPTION 输入.unassign_flag <> "" iosdtl.unassign_qty >0 ENDOPTION - order by iosdtl.seq_no + order by iosdtl.box_no,iosdtl.pcsn ENDSELECT ENDQUERY ENDIF @@ -399,7 +399,7 @@ dis.work_status <= 输入.bill_status ENDOPTION - order by attr.layer_num ASC,attr.row_num ASC,attr.col_num ASC + order by dis.box_no,dis.pcsn ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue index dd2325634..2d4679078 100644 --- a/lms/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue @@ -56,6 +56,7 @@ > { const j = Math.ceil(res.num / jo.shd_dtl_num)