From 5997254aef89e388734424975f5d5c4aae08513a Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Thu, 1 Dec 2022 11:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=9E=E4=BC=A0=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/service/impl/MesToLmsServiceImpl.java | 9 +- .../sap/service/impl/LmsToSapServiceImpl.java | 6 +- .../sap/service/impl/SapToLmsServiceImpl.java | 23 +- .../impl/InAndOutRetrunServiceImpl.java | 644 ++++++++---------- 4 files changed, 324 insertions(+), 358 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index c2e651bfb..410d8fc66 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -576,12 +576,9 @@ public class MesToLmsServiceImpl implements MesToLmsService { JSONObject mst_jo = new JSONObject(); mst_jo.put("biz_date", DateUtil.now()); mst_jo.put("bill_type", "1003"); - //查询成品库仓库 - JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0); - if (ObjectUtil.isEmpty(stor)) { - throw new BadRequestException("仓库不存在"); - } - mst_jo.put("stor_id", stor.getString("stor_id")); + mst_jo.put("stor_id",struct.getString("stor_id")); + mst_jo.put("stor_code",struct.getString("stor_code")); + mst_jo.put("stor_name",struct.getString("stor_name")); mst_jo.put("total_qty", "0"); mst_jo.put("bill_status", "10"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/LmsToSapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/LmsToSapServiceImpl.java index 3dadcc262..4d224d778 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/LmsToSapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/LmsToSapServiceImpl.java @@ -52,11 +52,13 @@ public class LmsToSapServiceImpl implements LmsToSapService { // String url = acsUrl + api; String url = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_URL").getValue(); + String token = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_TOKEN").getValue(); + String sap_client = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_CLIENT").getValue(); String api = ""; url = url + "/sap/center/wms/004"; try { - String resultMsg = HttpRequest.post(url).header("TOKEN","877734686FA61EDD99E9D85A96D91E14") - .header("sap-client","800") + String resultMsg = HttpRequest.post(url).header("TOKEN",token) + .header("sap-client",sap_client) .body(String.valueOf(jo)) .execute().body(); result = JSONObject.parseObject(resultMsg); 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 4d6549782..963e0f515 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 @@ -72,9 +72,20 @@ public class SapToLmsServiceImpl implements SapToLmsService { JSONArray item = jo.getJSONArray("ITEM"); JSONObject jsonMst = new JSONObject(); - jsonMst.put("stor_id", "1582991156504039424"); - jsonMst.put("stor_code", "CP01"); - jsonMst.put("stor_name", "成品仓库"); + + //获取SAP的存储地点 + String LGORT = jo.getString("LGORT"); + JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("ext_id = '"+LGORT+"'").uniqueResult(0); + if (ObjectUtil.isEmpty(stor_jo)){ + result.put("RTYPE", "E"); + result.put("RTMSG", "操作失败!" + "未查询到外部标识为:"+LGORT+"对应的仓库!"); + result.put("RTOAL", 1); + result.put("RTDAT", null); + return result; + } + jsonMst.put("stor_id", stor_jo.getString("stor_id")); + jsonMst.put("stor_code", stor_jo.getString("stor_code")); + jsonMst.put("stor_name", stor_jo.getString("stor_name")); jsonMst.put("detail_count", item.size()); jsonMst.put("bill_status", "10"); jsonMst.put("create_mode", "03"); @@ -100,7 +111,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { jsonMst.put("receiptphone", json.getString("TEL_NUMBER")); // 联系电话 jsonMst.put("contractno", json.getString("BSTNK")); // 合同号 jsonMst.put("cust_code", json.getString("KUNNR")); // 客户 - jsonMst.put("remark",json.getString("LGORT"));//库位 + /*jsonMst.put("remark",json.getString("LGORT"));//库位*/ // 明细 JSONObject jsonMater = materTab.query("material_code = '" + json.getString("MATNR") + "'").uniqueResult(0); @@ -118,7 +129,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { tableData.add(jsonDtl); } if (StrUtil.equals(lfart, "ZLR")) { - jsonMst.put("remark",json.getString("LGORT"));//库位 + /*jsonMst.put("remark",json.getString("LGORT"));//库位*/ HashMap map = new HashMap(); //更新包装关系 String sap_pcsn = json.getString("CHARG"); @@ -207,8 +218,6 @@ public class SapToLmsServiceImpl implements SapToLmsService { //创建退货入库单 jsonMst.put("bill_type", "0002"); jsonMst.put("biz_date", DateUtil.now()); - JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0); - jsonMst.put("stor_id", stor.getString("stor_id")); jsonMst.put("bill_status", "30"); rawAssistIStorService.insertDtl(jsonMst); } 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 9b65cbba6..1e363eab7 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 @@ -58,11 +58,11 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { 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_IVT_INANDOUTRETRUN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time desc"); return jo; - + } @Override @@ -88,130 +88,104 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { for (int i = 0; i < rows.size(); i++) { JSONObject jo_mst = rows.getJSONObject(i); String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue(); - if (StrUtil.equals(isUpload, "1")) { - String bill_type = jo_mst.getString("bill_type"); - //生产入库 - if (StrUtil.equals(bill_type, "0001")) { - //1.回传MES - - //查询该入库单下的所有箱子回传 - JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id",jo_mst.getString("iostorinv_id")).addParam("flag","2").process().getResultJSONArray(0); - for (int j = 0; j < box_rows.size(); j++) { - JSONObject box_row = box_rows.getJSONObject(j); - // 调用接口回传 - JSONObject paramMesMst = new JSONObject(); - paramMesMst.put("PackageBoxSN",box_row.getString("box_no")); - paramMesMst.put("User",box_row.getString("confirm_optname")); - new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); - } - } - - // 销售出库 - if (StrUtil.equals(bill_type, "1001")) { - // 1.回传sap - JSONArray paramSapMstArr = new JSONArray(); - - JSONObject paramSapMst = new JSONObject(); - paramSapMst.put("ZACTION", "P"); - paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); - paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); - paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); - - JSONArray paramDtlArr = new JSONArray(); - JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); - for (int k = 0; k < dtlArr.size(); k++) { - JSONArray paramDisArr = new JSONArray(); - JSONObject json = dtlArr.getJSONObject(k); - JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); - - // 明细 - JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("VBELN", json.getString("vbeln")); // 交货 - paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货 - jsonDtl.put("POSNR", json.getString("posnr")); // 项目 - jsonDtl.put("MATNR", jsonMater.getString("material_code")); - - // 分配明细 - JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); - for (int j = 0; j < disArr.size(); j++) { - JSONObject json2 = disArr.getJSONObject(j); - JSONObject jsonDis = new JSONObject(); - - JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 - } - - JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次 - } - jsonDis.put("VBELN", json.getString("vbeln")); // 交货 - jsonDis.put("POSNR", json.getString("posnr")); // 项目 - jsonDis.put("LFIMG", json2.getString("real_qty")); - jsonDis.put("VRKME", json.getString("qty_unit_name")); - jsonDis.put("PIKMG", json2.getString("real_qty")); - jsonDis.put("VRKMP", json2.getString("qty_unit_name")); - paramDisArr.add(jsonDis); - } - jsonDtl.put("CHARG_T", paramDisArr); - paramDtlArr.add(jsonDtl); - } - paramSapMst.put("ITEM", paramDtlArr); - paramSapMstArr.add(paramSapMst); - - JSONObject param = new JSONObject(); - param.put("HEAD", paramSapMstArr); - System.out.println(param.toString()); + String bill_type = jo_mst.getString("bill_type"); + String stor_id = jo_mst.getString("stor_id"); + JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0); + String lgort = stor_jo.getString("ext_id"); + String is_virtualstore = stor_jo.getString("is_virtualstore"); + String is_productstore = stor_jo.getString("is_productstore"); + //生产入库 + if (StrUtil.equals(bill_type, "0001")) { + //1.回传MES + //查询该入库单下的所有箱子回传 + JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).addParam("flag", "2").process().getResultJSONArray(0); + for (int j = 0; j < box_rows.size(); j++) { + JSONObject box_row = box_rows.getJSONObject(j); // 调用接口回传 - // new LmsToSapServiceImpl().returnDelivery(param); - - // 2.回传mes JSONObject paramMesMst = new JSONObject(); - String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - - paramMesMst.put("UserName", userName); - paramMesMst.put("Password", passWord); - paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code")); - paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname")); - paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time")); - - JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") - .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) - .process().getResultJSONArray(0); - - JSONArray paramArr = new JSONArray(); - for (int j = 0; j < boxArr.size(); j++) { - JSONObject json = boxArr.getJSONObject(j); - JSONObject jsonBox = new JSONObject(); - - jsonBox.put("PackageBoxSN", json.getString("box_no")); - paramArr.add(jsonBox); - } - paramMesMst.put("item", paramArr); - - // 调用接口回传 - JSONObject jsonObject = new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + paramMesMst.put("PackageBoxSN", box_row.getString("box_no")); + paramMesMst.put("User", box_row.getString("confirm_optname")); + new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); } + } - // 改切出库 - if (StrUtil.equals(bill_type, "1003")) { - JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); + // 销售出库 + if (StrUtil.equals(bill_type, "1001") && is_productstore.equals("1")) { + // 2.回传mes + JSONObject paramMesMst = new JSONObject(); + String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - //调用母卷配送到位接口 - JSONObject mes_jo = new JSONObject(); + paramMesMst.put("UserName", userName); + paramMesMst.put("Password", passWord); + paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code")); + paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname")); + paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time")); - //查询该子卷对应的分切计划 - //JSONArray cut_rows = WQLObject.getWQLObject("") - JSONObject source_dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl").query("iostorinv_id = '"+jo_mst.getString("iostorinv_id")+"' AND IFNULL(source_billdtl_id,'') <> ''").uniqueResult(0); - mes_jo.put("container_name", source_dtl.getString("pcsn")); - mes_jo.put("package_box_sn", source_dtl.getString("box_no")); - mes_jo.put("warehouse", "3"); - new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo); + JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") + .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) + .process().getResultJSONArray(0); + + JSONArray paramArr = new JSONArray(); + for (int j = 0; j < boxArr.size(); j++) { + JSONObject json = boxArr.getJSONObject(j); + JSONObject jsonBox = new JSONObject(); + + jsonBox.put("PackageBoxSN", json.getString("box_no")); + paramArr.add(jsonBox); } + paramMesMst.put("item", paramArr); + + // 调用接口回传 + new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + } + + // 调拨出库 + if (StrUtil.equals(bill_type, "1004") && is_productstore.equals("1")) { + // 2.回传mes + JSONObject paramMesMst = new JSONObject(); + String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + + paramMesMst.put("UserName", userName); + paramMesMst.put("Password", passWord); + paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code")); + paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname")); + paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time")); + + JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") + .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) + .process().getResultJSONArray(0); + + JSONArray paramArr = new JSONArray(); + for (int j = 0; j < boxArr.size(); j++) { + JSONObject json = boxArr.getJSONObject(j); + JSONObject jsonBox = new JSONObject(); + + jsonBox.put("PackageBoxSN", json.getString("box_no")); + paramArr.add(jsonBox); + } + paramMesMst.put("item", paramArr); + + // 调用接口回传 + new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + } + + // 改切出库 + if (StrUtil.equals(bill_type, "1003")) { + JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); + + //调用母卷配送到位接口 + JSONObject mes_jo = new JSONObject(); + + //查询该子卷对应的分切计划 + //JSONArray cut_rows = WQLObject.getWQLObject("") + JSONObject source_dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl").query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "' AND IFNULL(source_billdtl_id,'') <> ''").uniqueResult(0); + mes_jo.put("container_name", source_dtl.getString("pcsn")); + mes_jo.put("package_box_sn", source_dtl.getString("box_no")); + mes_jo.put("warehouse", "3"); + new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo); } } } @@ -238,6 +212,11 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue(); if (StrUtil.equals(isUpload, "1")) { String bill_type = jo_mst.getString("bill_type"); + String stor_id = jo_mst.getString("stor_id"); + JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0); + String lgort = stor_jo.getString("ext_id"); + String is_virtualstore = stor_jo.getString("is_virtualstore"); + String is_productstore = stor_jo.getString("is_productstore"); //退货入库 if (StrUtil.equals(bill_type, "0002")) { // 1.回传sap @@ -270,7 +249,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonSect)) { //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 + jsonDtl.put("LGORT", lgort); // 明細储存地点 } JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); @@ -333,7 +312,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonSect)) { //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 + jsonDtl.put("LGORT", lgort); // 明細储存地点 } JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); @@ -360,34 +339,6 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 调用接口回传 new LmsToSapServiceImpl().returnDelivery(param); - - // 2.回传mes - JSONObject paramMesMst = new JSONObject(); - String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - - paramMesMst.put("UserName", userName); - paramMesMst.put("Password", passWord); - paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code")); - paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname")); - paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time")); - - JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") - .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) - .process().getResultJSONArray(0); - - JSONArray paramArr = new JSONArray(); - for (int j = 0; j < boxArr.size(); j++) { - JSONObject json = boxArr.getJSONObject(j); - JSONObject jsonBox = new JSONObject(); - - jsonBox.put("PackageBoxSN", json.getString("box_no")); - paramArr.add(jsonBox); - } - paramMesMst.put("item", paramArr); - - // 调用接口回传 - // JSONObject jsonObject = new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); } // 改切出库 @@ -420,7 +371,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { JSONObject jsonSect = sectTab.query("sect_id = '" + json.getString("sect_id") + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonSect)) { //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 库存地点:库区外部标识 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 库存地点:库区外部标识 + jsonDtl.put("LGORT", lgort); // 库存地点:库区外部标识 } JSONObject jsonSub = subTab.query("container_name = '" + json.getString("pcsn") + "'").uniqueResult(0); @@ -496,176 +447,152 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { JSONArray rows = whereJson.getJSONArray("rows"); for (int i = 0; i < rows.size(); i++) { JSONObject jo_mst = rows.getJSONObject(i); - String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue(); - if (StrUtil.equals(isUpload, "1")) { - String bill_type = jo_mst.getString("bill_type"); - //生产入库 - if (StrUtil.equals(bill_type, "0001")) { - //1.回传MES + String bill_type = jo_mst.getString("bill_type"); + String stor_id = jo_mst.getString("stor_id"); + JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0); + String lgort = stor_jo.getString("ext_id"); + String is_virtualstore = stor_jo.getString("is_virtualstore"); + String is_productstore = stor_jo.getString("is_productstore"); + //生产入库 + if (StrUtil.equals(bill_type, "0001")) { + //1.回传MES - //查询该入库单下的所有箱子回传 - JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id",jo_mst.getString("iostorinv_id")).addParam("flag","2").process().getResultJSONArray(0); - for (int j = 0; j < box_rows.size(); j++) { - JSONObject box_row = box_rows.getJSONObject(j); - // 调用接口回传 - JSONObject paramMesMst = new JSONObject(); - paramMesMst.put("PackageBoxSN",box_row.getString("box_no")); - paramMesMst.put("User",box_row.getString("confirm_optname")); - new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); - } + //查询该入库单下的所有箱子回传 + JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).addParam("flag", "2").process().getResultJSONArray(0); + for (int j = 0; j < box_rows.size(); j++) { + JSONObject box_row = box_rows.getJSONObject(j); + // 调用接口回传 + JSONObject paramMesMst = new JSONObject(); + paramMesMst.put("PackageBoxSN", box_row.getString("box_no")); + paramMesMst.put("User", box_row.getString("confirm_optname")); + new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); } + } - //退货入库 - if (StrUtil.equals(bill_type, "0002")) { - // 1.回传sap - JSONArray paramSapMstArr = new JSONArray(); + //退货入库 + if (StrUtil.equals(bill_type, "0002")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); - JSONObject paramSapMst = new JSONObject(); - paramSapMst.put("ZACTION", "P"); - paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "P"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); - JSONArray paramDtlArr = new JSONArray(); - JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); - for (int k = 0; k < dtlArr.size(); k++) { - JSONArray paramDisArr = new JSONArray(); - JSONObject json = dtlArr.getJSONObject(k); - JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); + JSONArray paramDtlArr = new JSONArray(); + JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); + for (int k = 0; k < dtlArr.size(); k++) { + JSONArray paramDisArr = new JSONArray(); + JSONObject json = dtlArr.getJSONObject(k); + JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); - // 明细 - JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("VBELN", json.getString("vbeln")); // 交货 - paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货 - jsonDtl.put("POSNR", json.getString("posnr")); // 项目 - jsonDtl.put("MATNR", jsonMater.getString("material_code")); + // 明细 + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("VBELN", json.getString("vbeln")); // 交货 + paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货 + jsonDtl.put("POSNR", json.getString("posnr")); // 项目 + jsonDtl.put("MATNR", jsonMater.getString("material_code")); - // 分配明细 - JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); - for (int j = 0; j < disArr.size(); j++) { - JSONObject json2 = disArr.getJSONObject(j); - JSONObject jsonDis = new JSONObject(); + // 分配明细 + JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); + for (int j = 0; j < disArr.size(); j++) { + JSONObject json2 = disArr.getJSONObject(j); + JSONObject jsonDis = new JSONObject(); - JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - // jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 - } - - JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次 - } - jsonDis.put("VBELN", json.getString("vbeln")); // 交货 - jsonDis.put("POSNR", json.getString("posnr")); // 项目 - jsonDis.put("LFIMG", json2.getString("real_qty")); - jsonDis.put("VRKME", json.getString("qty_unit_name")); - jsonDis.put("PIKMG", json2.getString("real_qty")); - jsonDis.put("VRKMP", json2.getString("qty_unit_name")); - paramDisArr.add(jsonDis); + JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSect)) { + // jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 + jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 } - jsonDtl.put("CHARG_T", paramDisArr); - paramDtlArr.add(jsonDtl); - } - paramSapMst.put("ITEM", paramDtlArr); - paramSapMstArr.add(paramSapMst); - JSONObject param = new JSONObject(); - param.put("HEAD", paramSapMstArr); + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSect)) { + jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次 + } + jsonDis.put("VBELN", json.getString("vbeln")); // 交货 + jsonDis.put("POSNR", json.getString("posnr")); // 项目 + jsonDis.put("LFIMG", json2.getString("real_qty")); + jsonDis.put("VRKME", json.getString("qty_unit_name")); + jsonDis.put("PIKMG", json2.getString("real_qty")); + jsonDis.put("VRKMP", json2.getString("qty_unit_name")); + paramDisArr.add(jsonDis); + } + jsonDtl.put("CHARG_T", paramDisArr); + paramDtlArr.add(jsonDtl); + } + paramSapMst.put("ITEM", paramDtlArr); + paramSapMstArr.add(paramSapMst); + + JSONObject param = new JSONObject(); + param.put("HEAD", paramSapMstArr); // System.out.println(param.toString()); - // 调用接口回传 - new LmsToSapServiceImpl().returnDelivery(param); + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } + // 销售出库 + if (StrUtil.equals(bill_type, "1001")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); - // 2.回传mes - JSONObject paramMesMst = new JSONObject(); - String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "P"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); + paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); - paramMesMst.put("UserName", userName); - paramMesMst.put("Password", passWord); - paramMesMst.put("OutboundOrderNum", jo_mst.getString("bill_code")); - paramMesMst.put("OutboundUser", jo_mst.getString("confirm_optname")); - paramMesMst.put("OutboundTime", jo_mst.getString("confirm_time")); + JSONArray paramDtlArr = new JSONArray(); + JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); + for (int k = 0; k < dtlArr.size(); k++) { + JSONArray paramDisArr = new JSONArray(); + JSONObject json = dtlArr.getJSONObject(k); + JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); - JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") - .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) - .process().getResultJSONArray(0); + // 明细 + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("VBELN", json.getString("vbeln")); // 交货 + paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货 + jsonDtl.put("POSNR", json.getString("posnr")); // 项目 + jsonDtl.put("MATNR", jsonMater.getString("material_code")); - JSONArray paramArr = new JSONArray(); - for (int j = 0; j < boxArr.size(); j++) { - JSONObject json = boxArr.getJSONObject(j); - JSONObject jsonBox = new JSONObject(); + // 分配明细 + JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); + for (int j = 0; j < disArr.size(); j++) { + JSONObject json2 = disArr.getJSONObject(j); + JSONObject jsonDis = new JSONObject(); - jsonBox.put("PackageBoxSN", json.getString("box_no")); - paramArr.add(jsonBox); - } - paramMesMst.put("item", paramArr); - - // 调用接口回传 - new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); - } - // 销售出库 - if (StrUtil.equals(bill_type, "1001")) { - // 1.回传sap - JSONArray paramSapMstArr = new JSONArray(); - - JSONObject paramSapMst = new JSONObject(); - paramSapMst.put("ZACTION", "P"); - paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); - paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); - paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); - - JSONArray paramDtlArr = new JSONArray(); - JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); - for (int k = 0; k < dtlArr.size(); k++) { - JSONArray paramDisArr = new JSONArray(); - JSONObject json = dtlArr.getJSONObject(k); - JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); - - // 明细 - JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("VBELN", json.getString("vbeln")); // 交货 - paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货 - jsonDtl.put("POSNR", json.getString("posnr")); // 项目 - jsonDtl.put("MATNR", jsonMater.getString("material_code")); - - // 分配明细 - JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); - for (int j = 0; j < disArr.size(); j++) { - JSONObject json2 = disArr.getJSONObject(j); - JSONObject jsonDis = new JSONObject(); - - JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点 - } - - JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonSect)) { - jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次 - } - jsonDis.put("VBELN", json.getString("vbeln")); // 交货 - jsonDis.put("POSNR", json.getString("posnr")); // 项目 - jsonDis.put("LFIMG", json2.getString("real_qty")); - jsonDis.put("VRKME", json.getString("qty_unit_name")); - jsonDis.put("PIKMG", json2.getString("real_qty")); - jsonDis.put("VRKMP", json2.getString("qty_unit_name")); - paramDisArr.add(jsonDis); + JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSect)) { + //jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点 + jsonDtl.put("LGORT", lgort); // 明細储存地点 } - jsonDtl.put("CHARG_T", paramDisArr); - paramDtlArr.add(jsonDtl); + + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSect)) { + jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次 + } + jsonDis.put("VBELN", json.getString("vbeln")); // 交货 + jsonDis.put("POSNR", json.getString("posnr")); // 项目 + jsonDis.put("LFIMG", json2.getString("real_qty")); + jsonDis.put("VRKME", json.getString("qty_unit_name")); + jsonDis.put("PIKMG", json2.getString("real_qty")); + jsonDis.put("VRKMP", json2.getString("qty_unit_name")); + paramDisArr.add(jsonDis); } - paramSapMst.put("ITEM", paramDtlArr); - paramSapMstArr.add(paramSapMst); + jsonDtl.put("CHARG_T", paramDisArr); + paramDtlArr.add(jsonDtl); + } + paramSapMst.put("ITEM", paramDtlArr); + paramSapMstArr.add(paramSapMst); - JSONObject param = new JSONObject(); - param.put("HEAD", paramSapMstArr); - System.out.println(param.toString()); + JSONObject param = new JSONObject(); + param.put("HEAD", paramSapMstArr); + System.out.println(param.toString()); - // 调用接口回传 - new LmsToSapServiceImpl().returnDelivery(param); + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); - // 2.回传mes + // 2.回传mes + if (is_productstore.equals("1")){ JSONObject paramMesMst = new JSONObject(); String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); @@ -693,53 +620,84 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 调用接口回传 new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); } - - // 改切出库 - if (StrUtil.equals(bill_type, "1003")) { - JSONObject paramMst = new JSONObject(); - JSONArray paramArr = new JSONArray(); - - paramMst.put("BLDAT", jo_mst.getString("biz_date")); - paramMst.put("BUDAT", jo_mst.getString("biz_date")); - paramMst.put("BKTXT", ""); // 凭证抬头文本 - paramMst.put("XBLNR", ""); // 参考 - - JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); - for (int j = 0; j < disArr.size(); j++) { - JSONObject json = disArr.getJSONObject(j); - JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); - - JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("RSPOS", i + 1); - jsonDtl.put("MATNR", jsonMater.getString("material_code")); - jsonDtl.put("BWART", "311"); - jsonDtl.put("MENGE", json.getDoubleValue("plan_qty")); - jsonDtl.put("MEINS", json.getString("qty_unit_id")); - jsonDtl.put("LGORT", jo_mst.getString("remark")); // 库存地点 - jsonDtl.put("CHARG", json.getString("pcsn")); - jsonDtl.put("UMLGO", ""); // 收货库存地点 - jsonDtl.put("UMCHA", json.getString("pcsn")); - jsonDtl.put("KDAUF", ""); // 销售订单 - jsonDtl.put("KDPOS", ""); // 销售订单行项目 - paramArr.add(jsonDtl); - } - paramMst.put("item", paramArr); - - // 调用接口回传 - new LmsToSapServiceImpl().returnMoveDtl(paramMst); - - //调用母卷配送到位接口 - JSONObject mes_jo = new JSONObject(); - - //查询该子卷对应的分切计划 - //JSONArray cut_rows = WQLObject.getWQLObject("") - mes_jo.put("contain_name", disArr.getJSONObject(0).getString("pcsn")); - mes_jo.put("package_box_sn", disArr.getJSONObject(0).getString("box_no")); - mes_jo.put("warehouse", "3"); - new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo); - } - } + + // 改切出库 + if (StrUtil.equals(bill_type, "1003")) { + JSONObject paramMst = new JSONObject(); + JSONArray paramArr = new JSONArray(); + + paramMst.put("BLDAT", jo_mst.getString("biz_date")); + paramMst.put("BUDAT", jo_mst.getString("biz_date")); + paramMst.put("BKTXT", ""); // 凭证抬头文本 + paramMst.put("XBLNR", ""); // 参考 + + JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); + for (int j = 0; j < disArr.size(); j++) { + JSONObject json = disArr.getJSONObject(j); + JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0); + + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("RSPOS", i + 1); + jsonDtl.put("MATNR", jsonMater.getString("material_code")); + jsonDtl.put("BWART", "311"); + jsonDtl.put("MENGE", json.getDoubleValue("plan_qty")); + jsonDtl.put("MEINS", json.getString("qty_unit_id")); + jsonDtl.put("LGORT", lgort); // 库存地点 + jsonDtl.put("CHARG", json.getString("pcsn")); + jsonDtl.put("UMLGO", ""); // 收货库存地点 + jsonDtl.put("UMCHA", json.getString("pcsn")); + jsonDtl.put("KDAUF", ""); // 销售订单 + jsonDtl.put("KDPOS", ""); // 销售订单行项目 + paramArr.add(jsonDtl); + } + paramMst.put("item", paramArr); + + // 调用接口回传 + new LmsToSapServiceImpl().returnMoveDtl(paramMst); + + //调用母卷配送到位接口 + JSONObject mes_jo = new JSONObject(); + + //查询该子卷对应的分切计划 + //JSONArray cut_rows = WQLObject.getWQLObject("") + mes_jo.put("contain_name", disArr.getJSONObject(0).getString("pcsn")); + mes_jo.put("package_box_sn", disArr.getJSONObject(0).getString("box_no")); + mes_jo.put("warehouse", "3"); + new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo); + } + + // 调拨出库 + if (StrUtil.equals(bill_type, "1004") && is_productstore.equals("1")) { + // 2.回传mes + JSONObject paramMesMst = new JSONObject(); + String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + + paramMesMst.put("UserName", userName); + paramMesMst.put("Password", passWord); + paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code")); + paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname")); + paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time")); + + JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2") + .addParam("iostorinv_id", jo_mst.getString("iostorinv_id")) + .process().getResultJSONArray(0); + + JSONArray paramArr = new JSONArray(); + for (int j = 0; j < boxArr.size(); j++) { + JSONObject json = boxArr.getJSONObject(j); + JSONObject jsonBox = new JSONObject(); + + jsonBox.put("PackageBoxSN", json.getString("box_no")); + paramArr.add(jsonBox); + } + paramMesMst.put("item", paramArr); + + // 调用接口回传 + new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + } + jo_mst.put("is_upload", "1"); jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId()); jo_mst.put("upload_time", DateUtil.now());