diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/SectattrController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/SectattrController.java index 943ec4b81..f48b97b8a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/SectattrController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/SectattrController.java @@ -74,6 +74,14 @@ public class SectattrController { return new ResponseEntity<>(sectattrService.getSect(whereJson), HttpStatus.OK); } + @PostMapping("/getStorSect") + @Log("查询指定仓库库区") + @ApiOperation("查询指定仓库库区") + //@PreAuthorize("@el.check('materialtype:list')") + public ResponseEntity getStorSect(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(sectattrService.getStorSect(whereJson), HttpStatus.OK); + } + @PutMapping("/changeActive") @Log("修改库区状态") @ApiOperation("修改库区状态") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/SectattrService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/SectattrService.java index 7e6bd9724..768038919 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/SectattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/SectattrService.java @@ -65,6 +65,8 @@ public interface SectattrService { JSONObject getSect(Map whereJson); + JSONObject getStorSect(JSONObject whereJson); + /** * 改变启用状态 * @param json diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/SectattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/SectattrServiceImpl.java index b7168376c..847773b61 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/SectattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/SectattrServiceImpl.java @@ -1,4 +1,3 @@ - package org.nl.wms.basedata.st.service.impl; @@ -55,7 +54,7 @@ public class SectattrServiceImpl implements SectattrService { UserStorServiceImpl userStorService = new UserStorServiceImpl(); String in_stor_id = userStorService.getInStor(); - if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id",in_stor_id); + if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id); JSONObject jo = WQL.getWO("QST_SECT_ATTR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); return jo; @@ -227,13 +226,29 @@ public class SectattrServiceImpl implements SectattrService { return jo; } + @Override + public JSONObject getStorSect(JSONObject whereJson) { + JSONArray rows = WQLObject.getWQLObject("st_ivt_sectattr").query("stor_id = '1582991156504039424' AND sect_type_attr = '09'").getResultJSONArray(0); + JSONArray ja = new JSONArray(); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + JSONObject jo = new JSONObject(); + jo.put("value", row.getString("sect_id")); + jo.put("text", row.getString("sect_name")); + ja.add(jo); + } + JSONObject result = new JSONObject(); + result.put("data", ja); + return result; + } + @Override @Transactional(rollbackFor = Exception.class) public void changeActive(JSONObject json) { String stor_id = json.getString("stor_id"); JSONObject st_ivt_bsRealStorAttr = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query(" stor_id = '" + stor_id + "' and is_used = '1'").uniqueResult(0); - if (ObjectUtil.isEmpty(st_ivt_bsRealStorAttr)){ + if (ObjectUtil.isEmpty(st_ivt_bsRealStorAttr)) { throw new BadRequestException("该库区所属的仓库已禁用,请先启用该仓库!"); } @@ -253,11 +268,11 @@ public class SectattrServiceImpl implements SectattrService { String sect_id = json.getString("sect_id"); json = new JSONObject(); - json.put("sect_id",sect_id); + json.put("sect_id", sect_id); json.put("is_used", is_used); json.put("update_optid", currentUserId); json.put("update_optname", nickName); json.put("update_time", now); - WQLObject.getWQLObject("st_ivt_structattr").update(json," sect_id = '" + sect_id + "'"); + WQLObject.getWQLObject("st_ivt_structattr").update(json, " sect_id = '" + sect_id + "'"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java index fe5932e3e..f6a9514b8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java @@ -281,6 +281,9 @@ public class StructivtServiceImpl implements StructivtService { mp.put("是否需要拆包重打子卷标签", json.getString("isunpackbox")); mp.put("客户要求规格幅宽", json.getString("width_standard")); mp.put("物料标准厚度", json.getString("thickness_request")); + mp.put("管件类型", json.getString("paper_type")); + mp.put("管件编码", json.getString("paper_code")); + mp.put("管件描述", json.getString("paper_name")); list.add(mp); } FileUtil.downloadExcel(list, response); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql index 98352d823..76e887167 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql @@ -69,6 +69,9 @@ sub.sap_pcsn, sub.package_box_sn, sub.sale_order_name, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, sub.box_weight FROM ST_IVT_StructIvt ivt @@ -78,6 +81,20 @@ LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id LEFT JOIN SCH_BASE_Region region ON region.region_id = ivt.region_id LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = ivt.pcsn AND attr.storagevehicle_code = sub.package_box_sn + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name WHERE 1 = 1 @@ -197,16 +214,33 @@ sub.isUnPackBox, sub.isRePrintPackageBoxLabel, sub.width_standard, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, sub.thickness_request, sub.box_weight FROM - ST_IVT_StructIvt ivt - LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id - LEFT JOIN st_ivt_sectattr sect ON sect.sect_id =attr.sect_id - LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id - LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id - LEFT JOIN SCH_BASE_Region region ON region.region_id = ivt.region_id - LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = ivt.pcsn AND attr.storagevehicle_code = sub.package_box_sn + ST_IVT_StructIvt ivt + LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id + LEFT JOIN st_ivt_sectattr sect ON sect.sect_id =attr.sect_id + LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id + LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id + LEFT JOIN SCH_BASE_Region region ON region.region_id = ivt.region_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = ivt.pcsn AND attr.storagevehicle_code = sub.package_box_sn + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name WHERE 1 = 1 and attr.stor_id in 输入.in_stor_id diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index 7f7fbfea2..56e58b238 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -372,7 +372,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { //创建退货入库单 jsonMst.put("bill_type", "0002"); jsonMst.put("biz_date", DateUtil.now()); - jsonMst.put("bill_status", "30"); + jsonMst.put("bill_status", "10"); rawAssistIStorService.insertDtl(jsonMst); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index 76717d73c..d23d95a2d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -231,8 +231,10 @@ public class ProductInstorServiceImpl implements ProductInstorService { String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; //直接分配虚拟区货位,并确认 - JSONObject struct = WQL.getWO("PDA_ST_01").addParam("flag", "3").addParam("stor_id", stor.getString("stor_id")).process().uniqueResult(0); - + JSONObject struct = WQL.getWO("PDA_ST_01").addParam("flag", "3").addParam("stor_id", stor.getString("stor_id")).addParam("sect_id", whereJson.getString("sect_id")).process().uniqueResult(0); + if (ObjectUtil.isEmpty(struct)){ + throw new BadRequestException("当前没有可用的空仓位进行入库!"); + } HashMap dis_map = new HashMap(); dis_map.put("sect_id", struct.getString("sect_id")); dis_map.put("sect_code", struct.getString("sect_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql index 24b5d0393..4287ad413 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql @@ -17,6 +17,7 @@ 输入.box_no TYPEAS s_string 输入.point_code TYPEAS s_string 输入.stor_id TYPEAS s_string + 输入.sect_id TYPEAS s_string [临时表] @@ -117,6 +118,7 @@ se.sect_type_attr = '09' AND sa.lock_type = '1' AND sa.stor_id = 输入.stor_id + AND sa.sect_id = 输入.sect_id AND sa.is_delete = '0' AND IFNULL( storagevehicle_code, '' ) = '' ORDER BY diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index f1aac4efa..37752463a 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls differ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java index ce1f7d244..20a1c21b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java @@ -87,6 +87,9 @@ public class InbillServiceImpl { public void confirmDis(JSONObject form) { WQLObject dis_table = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); WQLObject dtl_table = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl"); + WQLObject mst_table = WQLObject.getWQLObject("st_ivt_iostorinv"); + WQLObject sub_table = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); + WQLObject sub_record = WQLObject.getWQLObject("pdm_bi_subpackagerelationrecord"); String task_id = form.getString("task_id"); if (StrUtil.isEmpty(task_id)) { @@ -101,6 +104,17 @@ public class InbillServiceImpl { dis_row.put("real_qty", dis_row.getString("plan_qty")); dis_table.update(dis_row); + String pcsn = dis_row.getString("pcsn"); + JSONObject sub_jo = sub_table.query("container_name = '"+pcsn+"'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)){ + throw new BadRequestException("未查询到子卷号为:"+pcsn+"对应的包装关系!"); + } + JSONObject mst_jo = mst_table.query("iostorinv_id = '" + dis_row.getString("iostorinv_id") + "'").uniqueResult(0); + sub_jo.put("io_code",mst_jo.getString("bill_code")); + sub_jo.put("insert_time",DateUtil.now()); + sub_jo.put("record_id",IdUtil.getSnowflake(1, 1)); + sub_record.insert(sub_jo); + //回写明细表实际数量 JSONObject dtl_row = dtl_table.query("iostorinvdtl_id = '" + dis_row.getString("iostorinvdtl_id") + "'").uniqueResult(0); double real_qty = NumberUtil.add(dtl_row.getDoubleValue("real_qty"), dis_row.getDoubleValue("real_qty")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index a387c0f69..9abe8da25 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -183,6 +183,9 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { row.put("iostorinv_id", iostorinv_id); row.put("seq_no", (i + 1) + ""); JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + row.get("product_name") + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(material)){ + throw new BadRequestException("LMS系统不存在物料:【"+row.get("product_name")+"】,请确认物料是否正确,或SAP系统是否推送到LMS系统"); + } row.put("material_id", material.getString("material_id")); row.put("pcsn", row.get("container_name")); row.put("bill_status", "10"); @@ -353,6 +356,9 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { row.put("iostorinv_id", iostorinv_id); row.put("seq_no", (i + 1) + ""); JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + row.get("product_name") + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(material)){ + throw new BadRequestException("LMS系统不存在物料:【"+row.get("product_name")+"】,请确认物料是否正确,或SAP系统是否推送到LMS系统"); + } row.put("material_id", material.getString("material_id")); row.put("pcsn", row.get("container_name")); row.put("bill_status", "10"); 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 f18c94c49..02e684182 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 @@ -144,6 +144,18 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (StrUtil.isNotEmpty(map.get("package_box_sn"))) { map.put("package_box_sn", "%" + map.get("package_box_sn") + "%"); } + if (StrUtil.isNotEmpty(map.get("width_standard"))) { + map.put("width_standard", map.get("width_standard")); + } + if (StrUtil.isNotEmpty(map.get("thickness_request"))) { + map.put("thickness_request", map.get("thickness_request")); + } + if (StrUtil.isNotEmpty(map.get("customer_name"))) { + map.put("customer_name", map.get("customer_name")); + } + if (StrUtil.isNotEmpty(map.get("struct_code"))) { + map.put("struct_code", "%" + map.get("struct_code") + "%"); + } JSONObject jo = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ivt.struct_code ASC"); return jo; } 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 ff890a0c1..7a3fab5a6 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 @@ -16,7 +16,7 @@ 输入.flag TYPEAS s_string 输入.bill_status TYPEAS s_string 输入.bill_code TYPEAS s_string - 输入.source_bill_code TYPEAS f_string + 输入.source_bill_code TYPEAS f_string 输入.username TYPEAS s_string 输入.create_mode TYPEAS s_string 输入.bill_type TYPEAS s_string @@ -27,31 +27,35 @@ 输入.end_time TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.material_id TYPEAS s_string - 输入.material_code TYPEAS s_string - 输入.quality_scode TYPEAS s_string - 输入.pcsn TYPEAS s_string + 输入.material_code TYPEAS s_string + 输入.quality_scode TYPEAS s_string + 输入.pcsn TYPEAS s_string 输入.ivt_level TYPEAS s_string 输入.is_active TYPEAS s_string - 输入.sect_id TYPEAS s_string - 输入.io_type TYPEAS s_string - 输入.iostorinvdtl_id TYPEAS s_string - 输入.unassign_flag TYPEAS s_string + 输入.sect_id TYPEAS s_string + 输入.io_type TYPEAS s_string + 输入.iostorinvdtl_id TYPEAS s_string + 输入.unassign_flag TYPEAS s_string 输入.struct_id TYPEAS s_string - 输入.iostorinvdis_id TYPEAS s_string + 输入.iostorinvdis_id TYPEAS s_string 输入.is_issued TYPEAS s_string - 输入.remark TYPEAS s_string - 输入.task_id TYPEAS s_string + 输入.remark TYPEAS s_string + 输入.task_id TYPEAS s_string 输入.task_status TYPEAS s_string - 输入.deptIds TYPEAS f_string - 输入.sale_order_name TYPEAS s_string - 输入.box_no TYPEAS s_string - 输入.canuse_qty TYPEAS s_string - 输入.sap_pcsn TYPEAS s_string - 输入.cust_code TYPEAS s_string - 输入.package_box_sn TYPEAS s_string - 输入.is_upload TYPEAS s_string + 输入.deptIds TYPEAS f_string + 输入.sale_order_name TYPEAS s_string + 输入.box_no TYPEAS s_string + 输入.canuse_qty TYPEAS s_string + 输入.sap_pcsn TYPEAS s_string + 输入.cust_code TYPEAS s_string + 输入.package_box_sn TYPEAS s_string + 输入.is_upload TYPEAS s_string 输入.width TYPEAS s_string - 输入.in_stor_id TYPEAS f_string + 输入.struct_code TYPEAS s_string + 输入.customer_name TYPEAS s_string + 输入.thickness_request TYPEAS s_string + 输入.width_standard TYPEAS s_string + 输入.in_stor_id TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -665,6 +669,22 @@ ivt.canuse_qty > 输入.canuse_qty ENDOPTION + OPTION 输入.width_standard <> "" + sub.width_standard = 输入.width_standard + ENDOPTION + + OPTION 输入.thickness_request <> "" + sub.thickness_request = 输入.thickness_request + ENDOPTION + + OPTION 输入.customer_name <> "" + sub.customer_name = 输入.customer_name + ENDOPTION + + OPTION 输入.struct_code <> "" + attr.struct_code like 输入.struct_code + ENDOPTION + ENDSELECT ENDPAGEQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index 00ba106ef..9a2807667 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -284,6 +284,33 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } + // 改切出库:回传mes + if (StrUtil.equals(bill_type, "1003")) { + JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "2").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + for (int j = 0; j < disArr.size(); j++) { + JSONObject param = new JSONObject(); + JSONArray details = new JSONArray(); + JSONObject json = disArr.getJSONObject(j); + param.put("PackageBoxSN", json.getString("box_no")); + param.put("Attribute1", "ReCut"); + + JSONArray container_jo = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "' AND box_no = '" + json.getString("box_no") + "'").getResultJSONArray(0); + for (int k = 0; k < container_jo.size(); k++) { + JSONObject dis_jo = container_jo.getJSONObject(k); + JSONObject jsonParamDtl = new JSONObject(); + jsonParamDtl.put("ContainerName", dis_jo.getString("pcsn")); + details.add(jsonParamDtl); + } + param.put("Details", details); + new LmsToMesServiceImpl().lmsUnPackage(param); + } + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId()); + jo_mst.put("upload_time", DateUtil.now()); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); + } + /*// 改切出库 if (StrUtil.equals(bill_type, "1003")) { JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); @@ -583,7 +610,17 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { paramSapMstArr.add(paramDis); } param.put("ITEM", paramSapMstArr); - System.out.println(param.toString()); + //查询该调拨入库单对应的出库单 + JSONObject out_mst = wo_mst.query("source_id = '"+jo_mst.getString("source_id")+"' AND io_type = '1' AND is_delete = '0'").uniqueResult(0); + param.put("ZACTION", "P"); + param.put("BUDAT", out_mst.getString("biz_date")); + param.put("ZZYGYF", out_mst.getString("estimated_freight")); + param.put("ZZYZFY", out_mst.getString("run_freight")); + param.put("ZZXCFY", out_mst.getString("unload_freight")); + param.put("ZZQTFY", out_mst.getString("other_freight")); + param.put("ZZYFGY", out_mst.getString("trans_code")); + param.put("ZZYDH", out_mst.getString("order_number")); + param.put("ZZCX", out_mst.getString("car_type")); // 调用接口回传 new LmsToSapServiceImpl().returnOutDtl(param); @@ -783,7 +820,6 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } @Override - @Transactional public void upload(JSONObject whereJson) { //出库分配表 WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); @@ -933,6 +969,18 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { param.put("ITEM", paramSapMstArr); System.out.println(param.toString()); + //查询该调拨入库单对应的出库单 + JSONObject out_mst = wo_mst.query("source_id = '"+jo_mst.getString("source_id")+"' AND io_type = '1' AND is_delete = '0'").uniqueResult(0); + param.put("ZACTION", "P"); + param.put("BUDAT", out_mst.getString("biz_date")); + param.put("ZZYGYF", out_mst.getString("estimated_freight")); + param.put("ZZYZFY", out_mst.getString("run_freight")); + param.put("ZZXCFY", out_mst.getString("unload_freight")); + param.put("ZZQTFY", out_mst.getString("other_freight")); + param.put("ZZYFGY", out_mst.getString("trans_code")); + param.put("ZZYDH", out_mst.getString("order_number")); + param.put("ZZCX", out_mst.getString("car_type")); + // 调用接口回传 new LmsToSapServiceImpl().returnOutDtl(param); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java index 4623002cc..d46f630d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java @@ -36,8 +36,8 @@ public class OutBillQueryController { @GetMapping @Log("查询") @ApiOperation("查询") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(outBillQueryService.queryAll(whereJson, page), HttpStatus.OK); + public ResponseEntity query(@RequestParam Map whereJson, Pageable page, String[] bill_types) { + return new ResponseEntity<>(outBillQueryService.queryAll(whereJson, page, bill_types), HttpStatus.OK); } @PostMapping diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java index 242ca1652..062c7e9a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java @@ -24,7 +24,7 @@ public interface OutBillQueryService { * @param page 分页参数 * @return Map */ - Map queryAll(Map whereJson, Pageable page); + Map queryAll(Map whereJson, Pageable page, String[] bill_types); /** * 查询所有数据不分页 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java index 9bbbd9822..692a2a96b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java @@ -228,6 +228,9 @@ public class InBillQueryServiceImpl implements InBillQueryService { mp.put("居中度(mm)", "±1"); mp.put("塌边(mm)", "≤10"); mp.put("米数(长度)", NumberUtil.round(StrUtil.isEmpty(json.getString("length")) ? "0" : json.getString("length"), 1)); + mp.put("管件类型", json.getString("paper_type")); + mp.put("管件编码", json.getString("paper_code")); + mp.put("管件描述", json.getString("paper_name")); mp.put("生产实际抗拉值", json.getString("actual_value")); mp.put("内控标准抗拉下限", json.getString("standard_limit")); mp.put("客户需求抗拉下限", json.getString("demand_limit")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index ef5edfdb8..0d6b3051b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.wms.stat.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -21,10 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Liuxy @@ -38,9 +36,9 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { @Override - public Map queryAll(Map whereJson, Pageable page) { + public Map queryAll(Map whereJson, Pageable page, String[] bill_types) { String stor_id = MapUtil.getStr(whereJson, "stor_id"); - String bill_type = MapUtil.getStr(whereJson, "bill_type"); + String with = MapUtil.getStr(whereJson, "with"); // 厚度*幅宽 String begin_time = MapUtil.getStr(whereJson, "begin_time"); String end_time = MapUtil.getStr(whereJson, "end_time"); @@ -49,7 +47,13 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("stor_id",stor_id); - map.put("bill_type",bill_type); + if (ObjectUtil.isNotEmpty(bill_types)){ + StringJoiner joiner = new StringJoiner(",","(",")"); + for (String type : bill_types){ + joiner.add("'"+type+"'"); + } + map.put("bill_type",joiner.toString()); + } map.put("with",with); map.put("begin_time",begin_time); map.put("end_time",end_time); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql index 597ec1d50..591ec7b12 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql @@ -72,6 +72,9 @@ sub.date_of_production, mst.input_optname, sub.width, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, sub.thickness, sub.box_weight, sub.length, @@ -117,7 +120,22 @@ LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no - LEFT JOIN pdm_bi_slittingproductionplan plan ON plan.container_name = sub.container_name + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(parent_container_name) AS parent_container_name, + MAX(restruct_container_name) AS restruct_container_name, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name LEFT JOIN md_me_materialbase mb ON mb.material_code = sub.box_type WHERE mst.io_type = '0' @@ -309,6 +327,9 @@ sub.date_of_production, mst.input_optname, sub.width, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, sub.thickness, sub.box_weight, sub.length, @@ -354,7 +375,22 @@ LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no - LEFT JOIN pdm_bi_slittingproductionplan plan ON plan.container_name = sub.container_name + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(parent_container_name) AS parent_container_name, + MAX(restruct_container_name) AS restruct_container_name, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name LEFT JOIN md_me_materialbase mb ON mb.material_code = sub.box_type WHERE mst.io_type = '0' diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index 51c49b3b8..f615dba74 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -15,7 +15,7 @@ ################################################# 输入.flag TYPEAS s_string 输入.stor_id TYPEAS s_string - 输入.bill_type TYPEAS s_string + 输入.bill_type TYPEAS f_string 输入.with TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string @@ -68,6 +68,9 @@ sub.thickness, sub.mass_per_unit_area, mst.input_optname, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, mst.remark, stor.stor_name AS in_stor_name FROM @@ -78,6 +81,20 @@ LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = mst.out_stor_id LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name WHERE mst.io_type = '1' AND mst.is_delete = '0' @@ -88,7 +105,7 @@ ENDOPTION OPTION 输入.bill_type <> "" - mst.bill_type = 输入.bill_type + mst.bill_type IN 输入.bill_type ENDOPTION OPTION 输入.begin_time <> "" diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index beed26f42..8487d746b 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -192,6 +192,9 @@ + + + diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue index b4495a5d0..d150a0b64 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue @@ -348,10 +348,10 @@ export default { this.crud.notify('移入仓库不能为空!', CRUD.NOTIFICATION_TYPE.INFO) return false } - if (this.form.out_stor_id === this.form.stor_id) { + /*if (this.form.out_stor_id === this.form.stor_id) { this.crud.notify('移出仓库和移入仓库不能一致!', CRUD.NOTIFICATION_TYPE.INFO) return false - } + }*/ } }, [CRUD.HOOK.afterToEdit]() { diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue index 1cbebdff2..0fda07d41 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue @@ -49,6 +49,42 @@ class="filter-item" @keyup.enter.native="crud.toQuery" /> + + + + @@ -62,7 +98,7 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - + diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue index 05962f96a..5503b7749 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue @@ -13,17 +13,17 @@ - + - + - + @@ -31,61 +31,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - + - + + - - - - - - - - - - - - - - + + - - - + + + + @@ -109,25 +92,42 @@ - + + + + + + + + + + + + + + - + - + - + @@ -135,19 +135,19 @@ - + - + - + @@ -190,6 +190,12 @@ export default { data() { return { transportaList: [], + addressList: [ + { 'value': '甘肃海亮兰州仓', 'label': '甘肃海亮兰州仓' }, + { 'value': '塘厦外仓', 'label': '塘厦外仓' }, + { 'value': '宁德四川外仓', 'label': '宁德四川外仓' }, + { 'value': '宁德蕉城外仓', 'label': '宁德蕉城外仓' }, + { 'value': '宁德江苏外仓', 'label': '宁德江苏外仓' }], formMst: {}, dialogVisible: false } diff --git a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue index cf53b7180..6d5b985d4 100644 --- a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue @@ -189,6 +189,9 @@ + + + diff --git a/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue index e10d6f63e..e5caf53ef 100644 --- a/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue @@ -43,13 +43,12 @@ + + +