From c52375a5387aa0a496f677d4e96e8018bddec1d0 Mon Sep 17 00:00:00 2001
From: Amjacks <1932302177@qq.com>
Date: Mon, 14 Apr 2025 09:23:19 +0800
Subject: [PATCH 1/4] =?UTF-8?q?feat=20=E8=BE=85=E6=9D=90=E5=85=A5=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
zi-wms-pda/pom.xml | 12 +
.../cim/idm/controller/NoChargeStockIn.java | 841 ++++++++++++++++++
.../idm/exception/AllExceptionHandler.java | 13 +-
.../cim/idm/service/Impl/NCWServiceImpl.java | 427 +++++++++
.../java/com/cim/idm/service/NCWService.java | 11 +
5 files changed, 1300 insertions(+), 4 deletions(-)
create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/controller/NoChargeStockIn.java
create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NCWServiceImpl.java
create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/service/NCWService.java
diff --git a/zi-wms-pda/pom.xml b/zi-wms-pda/pom.xml
index 3140fb8..2794845 100644
--- a/zi-wms-pda/pom.xml
+++ b/zi-wms-pda/pom.xml
@@ -141,6 +141,18 @@
1.5.22
compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.12.4
+
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+ 2.12.4
+
\ No newline at end of file
diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/NoChargeStockIn.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/NoChargeStockIn.java
new file mode 100644
index 0000000..e6b5243
--- /dev/null
+++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/NoChargeStockIn.java
@@ -0,0 +1,841 @@
+package com.cim.idm.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.cim.idm.framework.IDMFrameServiceProxy;
+import com.cim.idm.framework.data.EventInfo;
+import com.cim.idm.framework.exception.IDMFrameDBErrorSignal;
+import com.cim.idm.framework.util.time.TimeStampUtil;
+import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
+import com.cim.idm.mwmsextend.materialreceiverequest.service.MaterialReceiveRequestServiceImpl;
+import com.cim.idm.service.Impl.NCWServiceImpl;
+import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl;
+import com.cim.idm.utils.AjaxResult;
+import com.cim.idm.utils.EventInfoUtil;
+import com.cim.idm.wmsextend.generic.GenericServiceProxy;
+import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
+import com.cim.idm.wmspackage.material.MaterialServiceProxy;
+import com.cim.idm.wmspackage.material.management.data.MaterialSpec;
+import com.cim.idm.wmspackage.material.management.data.MaterialSpecKey;
+import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
+import com.cim.idm.wmspackage.materialpacking.management.info.CreateInfo;
+import com.cim.idm.wmspackage.materialreceiverequestact.MaterialReceiveRequestActServiceProxy;
+import com.cim.idm.wmspackage.materialreceiverequestact.management.info.CreateReceiveRequestBatchInfo;
+import com.cim.idm.wmspackage.materialreceiverequestactdetail.MaterialReceiveRequestActDetailServiceProxy;
+import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.ActDetailIncreaseInfo;
+import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.CreateActDetailInfo;
+import com.cim.idm.wmspackage.materialreceivetactdetail.management.data.MaterialReceiveActDetailKey;
+import com.cim.idm.wmspackage.materialshiprequestdetail.MaterialShipRequestDetailServiceProxy;
+import com.cim.idm.wmspackage.materialshiprequestdetail.management.data.MaterialShipRequestDetailKey;
+import com.cim.idm.wmspackage.materialshiprequestdetail.management.info.MakeShipDetailIncreaseAssignedInfo;
+import com.cim.idm.wmspackage.materialshiprequesttooem.MaterialShipRequestToOEMServiceProxy;
+import com.cim.idm.wmspackage.materialshiprequesttooem.management.data.MaterialShipRequestToOEMKey;
+import com.cim.idm.wmspackage.materialshiprequesttooem.management.info.MakeOEMDecreaseAssignedInfo;
+import com.cim.idm.wmspackage.name.NameServiceProxy;
+import com.cim.idm.wmspackage.receiverequestdetail.ReceiveRequestDetailServiceProxy;
+import com.cim.idm.wmspackage.receiverequestdetail.management.data.MaterialReceiveRequestDetailKey;
+import com.cim.idm.wmspackage.receiverequestdetail.management.info.MakeDetailIncreaseReceivedInfo;
+import io.swagger.annotations.Api;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Api("不已批次管理入库")
+@RestController
+@RequestMapping("/api/NoCharge")
+@EnableAutoConfiguration
+public class NoChargeStockIn {
+
+
+ private static Log log = LogFactory.getLog(MaterialReceiveRequestServiceImpl.class);
+ SDKMaterialPackingServiceImpl SDKMP=new SDKMaterialPackingServiceImpl();
+ NCWServiceImpl ncServer=new NCWServiceImpl();
+ // 先创建Map集合
+ Map hashMap = new HashMap<>();
+
+ @Transactional
+ @RequestMapping(value = "/NoChargeStockIn", method = RequestMethod.POST)
+ public AjaxResult NoChargeStockIn(@RequestBody JSONObject in ) throws CustomException {
+ // 将字符串转换为JSONArray对象
+
+ String ERPFACTORY="";
+ String ERPLOCATION="";
+ String LOCATIONNAME="";
+ String RECEIVEREQUESTNAME="";
+ String RECEIVEREQUESTDETAILNAME="";
+ String MATERIALSPECNAME="";
+ String MATERIALUNITDESC="";
+ String MATERIALUNIT="";
+ String REQUESTQUANTITY="";
+ String RECEIVEDQUANTITY="";
+ String ThisAcceptNumber="";
+ String user="";
+ String SiteName="";
+ String MAKEDATE="";
+ String receiveAct="";
+ String sdkid="";
+ String commitDate = "";
+ String opCode = "";
+ //1、首先生成入库单
+ //获取抬头文本
+ try {
+ receiveAct=GenerateMaterialReceiveRequestName("SDK","NoPO");
+ } catch (CustomException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ user=(String) in.get("USER");
+ commitDate = in.get("commitDate").toString();
+ opCode = in.get("opCode") == null ? "" : in.get("commitDate").toString();
+ LinkedHashMap linkedHashMap = ( LinkedHashMap) in.get("BOXLIST");
+ EventInfo makeEventInfo=new EventInfoUtil().makeEventInfo("NoChargeStockIn", user, "NoChargeStockIn", "", "");
+ //3、遍历map中的值
+ Iterator it = linkedHashMap.entrySet().iterator();
+ //校验仓库和货位的对应关系是否存在
+ while (it.hasNext()) {
+ Map.Entry entry = (Map.Entry) it.next();
+ Map NoPoList=(Map) entry.getValue();
+ ERPFACTORY=(String) NoPoList.get("ERPFACTORY");
+ ERPLOCATION=(String) NoPoList.get("ERPLOCATION");
+ LOCATIONNAME= (NoPoList.get("LOCATIONNAME") == null || "null".equals(NoPoList.get("LOCATIONNAME").toString())) ? "" : NoPoList.get("LOCATIONNAME").toString();
+ MATERIALSPECNAME=(String) NoPoList.get("MATERIALSPECNAME");
+ RECEIVEDQUANTITY=(String) NoPoList.get("RECEIVEDQUANTITY").toString();
+ ThisAcceptNumber=(String) NoPoList.get("THISACCEPTNUMBER").toString();
+ BigDecimal freceiveQty = new BigDecimal(ThisAcceptNumber);//实收数量
+// if (freceiveQty.compareTo(BigDecimal.ZERO) <= 0) {
+// return AjaxResult.me().setSuccess(false).setMessage("接收数量不能小于0");
+// }
+ String is_oven = "N";
+ MaterialSpec materialSpec = new MaterialSpec();
+ MaterialSpecKey materialSpecKey = new MaterialSpecKey();
+ materialSpecKey.setMaterialSpecName(MATERIALSPECNAME);
+ materialSpecKey.setSiteName("SDK");
+
+ materialSpec = MaterialServiceProxy.getMaterialSpecService()
+ .selectByKey(materialSpecKey);
+ String maturationflag = materialSpec.getMATURATIONFLAG();//熟化标识
+ String is_CON_TEMP = materialSpec.getIS_CON_TEMP();//恒温恒湿
+ //判断仓库是否启用了货位,但货位为空
+ String sql = "SELECT be.USE_LOCATION,be.CONST_TEMP,be.IS_OVEN FROM BS_ERPLOCATION be WHERE be.ERPLOCATIONNAME = :ERPLOCATION";
+ Map hashMap = new HashMap ();
+ hashMap.put("ERPLOCATION", ERPLOCATION);
+ hashMap.put("LOCATIONNAME", LOCATIONNAME);
+ List