From dd7d1dbbeaa68fc460b5bb8c3efe2d613b9cdff4 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Mon, 26 Dec 2022 20:16:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/GlobalExceptionHandler.java | 1 + .../mes/service/impl/MesToLmsServiceImpl.java | 10 - .../service/impl/InbillServiceImpl.java | 5 + .../service/impl/OutChargeServiceImpl.java | 14 + .../st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql | 2 + .../impl/InAndOutRetrunServiceImpl.java | 288 ++++++++++++++++++ 6 files changed, 310 insertions(+), 10 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/common/exception/handler/GlobalExceptionHandler.java b/lms/nladmin-system/src/main/java/org/nl/modules/common/exception/handler/GlobalExceptionHandler.java index 3528d9477..4d4fe34cc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/common/exception/handler/GlobalExceptionHandler.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/common/exception/handler/GlobalExceptionHandler.java @@ -57,6 +57,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(value = NotLoginException.class) public ResponseEntity notLoginException(Exception e) { // log.error(ThrowableUtil.getStackTrace(e)); + log.error("token超时:-------------------------------------"+e.getMessage()); return buildResponseEntity(ApiError.error(401,"token 失效")); } 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 cdd865df9..1004b49fb 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 @@ -58,7 +58,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject momRollFoilStart(JSONObject param) { @@ -141,7 +140,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject momRollFoilWeighing(JSONObject param) { @@ -191,7 +189,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject momRollFoilComplete(JSONObject param) { @@ -251,7 +248,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject momRollBakeNextSpecTransfer(JSONObject param) { @@ -337,7 +333,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject cutPlanTransfer(JSONObject param) { @@ -464,7 +459,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject callNextAssAndMomRoll(JSONObject param) { @@ -655,7 +649,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject childRollCutStartComp(JSONArray param) { @@ -776,7 +769,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject childRollPackComplete(JSONObject param) { @@ -905,7 +897,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject inventoryTransferInfoSync(JSONObject param) { @@ -1022,7 +1013,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { * @param param * @return */ - @LokiLog(type = LokiLogType.MES_TO_LMS) @Override @Transactional(rollbackFor = Exception.class) public JSONObject childRollInfoUpdate(JSONObject param) { 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 4a3636853..53ab2e3a2 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 @@ -3,6 +3,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -162,6 +163,10 @@ public class InbillServiceImpl { i_form.put("qty_unit_name", dis_row.getString("qty_unit_name")); storPublicService.IOStor(i_form, "33"); + JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_SN = '"+dis_row.getString("box_no")+"' AND container_name = '"+dis_row.getString("pcsn")+"' AND status = '1'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)){ + throw new BadRequestException("未查询到子卷号为:"+dis_row.getString("pcsn")+"对应状态为包装状态的包装关系,请分析数据!"); + } //更新该子卷对应的包装关系为入库 HashMap map = new HashMap<>(); map.put("status","2"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java index 4e10ae03e..8d67a95fd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java @@ -118,6 +118,20 @@ public class OutChargeServiceImpl implements OutChargeService { whereJson.put("update_optid", currentUserId + ""); whereJson.put("update_optname", nickName); whereJson.put("update_time", now); + whereJson.put("dis_optid", currentUserId + ""); + whereJson.put("dis_optname", nickName); + whereJson.put("dis_time", now); + whereJson.put("confirm_optid", ""); + whereJson.put("confirm_optid", ""); + whereJson.put("confirm_optid", ""); + whereJson.put("is_upload", ""); + whereJson.put("upload_optid", ""); + whereJson.put("upload_time", ""); + whereJson.put("is_writeoff", "0"); + whereJson.put("writeoff_optid", ""); + whereJson.put("writeoff_time", ""); + whereJson.put("upload_mes", ""); + whereJson.put("upload_sap", ""); mst_wql.insert(whereJson); for (int i = 0; i < dis_rows.size(); i++) { 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 9a7b513d0..aed69fa9d 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 @@ -468,6 +468,8 @@ IFNULL( sub.container_name, '' ) = '' AND plan.is_delete = '0' + AND + plan.status < '09' OPTION 输入.sale_order_name <> "" plan.sale_order_name = 输入.sale_order_name ENDOPTION 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 1cffd3d4d..5cb49cec7 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 @@ -360,6 +360,78 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } + // 手工入库 + if (StrUtil.equals(bill_type, "0009")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); + + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "R"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); + paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); + + String vbeln = ""; + + 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); + + vbeln = json.getString("vbeln"); + + // 明细 + 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")); // 明細储存地点 + } + + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSub)) { + 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); + + if (ObjectUtil.isNotEmpty(vbeln)) { + try { + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } + + } + } + // 销售出库 if (StrUtil.equals(bill_type, "1001")) { // 1.回传sap @@ -489,6 +561,78 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } + + //手工出库 + if (StrUtil.equals(bill_type, "1009")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); + + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "R"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); + paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); + + String vbeln = ""; + + 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); + + vbeln = json.getString("vbeln"); + + // 明细 + 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")); // 明細储存地点 + } + + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSub)) { + 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); + + if (ObjectUtil.isNotEmpty(vbeln)) { + try { + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } + + } + } } } } @@ -648,6 +792,78 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } + // 手工入库 + if (StrUtil.equals(bill_type, "0009")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); + + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "R"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); + paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); + + String vbeln = ""; + + 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); + + vbeln = json.getString("vbeln"); + + // 明细 + 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")); // 明細储存地点 + } + + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSub)) { + 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); + + if (ObjectUtil.isNotEmpty(vbeln)) { + try { + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } + + } + } + // 拆分出库:回传mes if (StrUtil.equals(bill_type, "1005")) { JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); @@ -859,6 +1075,78 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { jo_mst.put("is_upload", "1"); WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } + + // 手工出库 + if (StrUtil.equals(bill_type, "1009")) { + // 1.回传sap + JSONArray paramSapMstArr = new JSONArray(); + + JSONObject paramSapMst = new JSONObject(); + paramSapMst.put("ZACTION", "R"); + paramSapMst.put("BUDAT", jo_mst.getString("biz_date")); + paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight")); + paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code")); + + String vbeln = ""; + + 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); + + vbeln = json.getString("vbeln"); + + // 明细 + 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")); // 明細储存地点 + } + + JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSub)) { + 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); + + if (ObjectUtil.isNotEmpty(vbeln)) { + try { + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } + + } + } } }