From 402a9335395b836520e4e520e3e895a4873896af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E9=A3=9E?= Date: Mon, 24 Mar 2025 19:29:53 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=85=A5=E5=BA=93=E5=86=B2=E9=94=80?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cim/idm/dao/MesToWmsDao.java | 27 ++++ .../cim/idm/model/MaterialPackingSubDto.java | 19 +++ .../idm/service/Impl/MESToWMSServiceImpl.java | 132 +++++++++++++----- .../resources/com/cim/idm/dao/MesToWmsDao.xml | 80 +++++++++++ 4 files changed, 222 insertions(+), 36 deletions(-) create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/dao/MesToWmsDao.java create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/model/MaterialPackingSubDto.java create mode 100644 zi-wms-pda/src/main/resources/com/cim/idm/dao/MesToWmsDao.xml diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/MesToWmsDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/MesToWmsDao.java new file mode 100644 index 0000000..5332144 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/MesToWmsDao.java @@ -0,0 +1,27 @@ +package com.cim.idm.dao; + +import com.cim.idm.model.MaterialPackingSubDto; +import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +@Mapper +public interface MesToWmsDao { + + public List getEndReportList(@Param("materialPackingName") String materialPackingName) throws Exception; + + public void updateEndReport(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception; + + public void updateEndReport2(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception; + + public void deleteSub(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception; + + public void updateBsMesShipped(@Param("materialPackingName") String materialPackingName) throws Exception; + + public void updateUnDoId(@Param("undoId") String undoId) throws Exception; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialPackingSubDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialPackingSubDto.java new file mode 100644 index 0000000..f031c3b --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialPackingSubDto.java @@ -0,0 +1,19 @@ +package com.cim.idm.model; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class MaterialPackingSubDto { + + private String receiveRequestName; + + private String receiveRequestDetailName; + + private String materialPackingName; + + private BigDecimal qty; + +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java index 4a44e2f..7525c2d 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java @@ -2,6 +2,8 @@ package com.cim.idm.service.Impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.cim.idm.dao.FgStockInDao; +import com.cim.idm.dao.MesToWmsDao; import com.cim.idm.data.ErpMessageLog; import com.cim.idm.exception.GlobalException; import com.cim.idm.framework.IDMFrameServiceProxy; @@ -9,6 +11,7 @@ import com.cim.idm.framework.data.EventInfo; import com.cim.idm.framework.orm.SqlTemplate; import com.cim.idm.framework.util.sys.SystemPropHelper; import com.cim.idm.framework.util.time.TimeStampUtil; +import com.cim.idm.model.MaterialPackingSubDto; import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl; import com.cim.idm.service.MESToWMSService; import com.cim.idm.service.QMSService; @@ -49,6 +52,9 @@ public class MESToWMSServiceImpl implements MESToWMSService { @Autowired private QMSService qmsService; + @Autowired + private MesToWmsDao mesToWmsDao; + @Override @Transactional public AjaxResult materialConsume_Request(JSONArray in) throws Exception { @@ -177,6 +183,86 @@ public class MESToWMSServiceImpl implements MESToWMSService { * @param undoId * @param user */ +// @Override +// @Transactional +// public AjaxResult sapcprkUndo(String undoId, String user) throws Exception { +// +// String billCode = toSAPService.cancelShipInter(undoId, user); +// if (billCode == null) { +// throw new GlobalException("报送ERP失败,请联系IT处理!"); +// } +// +// +// AjaxResult result = new AjaxResult(); +// +// EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("MakeUndo", user, "MakeUndo"); +// String condition="SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE UNDOID = :UNDOID "; +//// String[] bindSet={undoId}; +// Map hashMap = new HashMap (); +// hashMap.put("UNDOID", undoId); +// //根据物料凭证找到所有的待冲销数据,更新库存状态为创建 +// List> MPlIST = IDMFrameServiceProxy.getSqlTemplate().queryForList(condition, hashMap); +// SetEventInfo setEventInfo = new SetEventInfo(); +// setEventInfo.setUserColumns(hashMap); +// RemoveInfo removeInfo = new RemoveInfo(); +// for (Map MP : MPlIST) { +// //根据当前的数据跟新完工报告且删除入库表的数据 +// String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" + +// "UNION \r\n" + +// "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; +// String MATERIALPACKINGNAME = MP.get("MATERIALPACKINGNAME").toString(); +// hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); +// List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); +// for (int i = 0; i < queryForList.size(); i++) { +// String dh = queryForList.get(i).get("RECEIVEREQUESTNAME").toString(); +// hashMap.put("RECEIVEREQUESTNAME", dh); +// String hh = queryForList.get(i).get("RECEIVEREQUESTDETAILNAME").toString(); +// hashMap.put("RECEIVEREQUESTDETAILNAME", hh); +//// String sl = queryForList.get(i).get("QTY").toString(); +// String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" + +// "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" + +// " SELECT NVL(SUM(M.QTY),0) \r\n" + +// " FROM MATERIALPACKINGSUB M \r\n" + +// " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" + +// " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" + +// " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" + +// ") \r\n" + +// "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" + +// " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap); +// +// +// String updateSql2 = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" + +// "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" + +// " SELECT NVL(SUM(M.QTY),0) \r\n" + +// " FROM MATERIALPACKINGSUBHISTORY M \r\n" + +// " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" + +// " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" + +// " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" + +// ") \r\n" + +// "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" + +// " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql2, hashMap); +// +// String deleteSql = " DELETE FROM MATERIALPACKINGSUB T WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND " +// + "T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME AND T.MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; +// IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap); +// +// String MESsQL = " UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = :MATERIALPACKINGNAME "; +// IDMFrameServiceProxy.getSqlTemplate().update(MESsQL, hashMap); +// } +// MaterialPackingServiceProxy.getMaterialPackingService().remove(new MaterialPackingKey("SDK", MATERIALPACKINGNAME), makeEventInfo, removeInfo); +// } +// +// String sql = "UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = :UNDOID "; +// Map hashMap2 = new HashMap (); +// hashMap2.put("UNDOID", undoId); +// IDMFrameServiceProxy.getSqlTemplate().update(sql, hashMap2); +// +// result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功"); +// return result; +// } + // 改造成mybase实现 @Override @Transactional public AjaxResult sapcprkUndo(String undoId, String user) throws Exception { @@ -201,57 +287,31 @@ public class MESToWMSServiceImpl implements MESToWMSService { RemoveInfo removeInfo = new RemoveInfo(); for (Map MP : MPlIST) { //根据当前的数据跟新完工报告且删除入库表的数据 - String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" + - "UNION \r\n" + - "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; String MATERIALPACKINGNAME = MP.get("MATERIALPACKINGNAME").toString(); hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); - List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + List queryForList = mesToWmsDao.getEndReportList(MATERIALPACKINGNAME); + for (int i = 0; i < queryForList.size(); i++) { - String dh = queryForList.get(i).get("RECEIVEREQUESTNAME").toString(); + String dh = queryForList.get(i).getReceiveRequestName().toString(); hashMap.put("RECEIVEREQUESTNAME", dh); - String hh = queryForList.get(i).get("RECEIVEREQUESTDETAILNAME").toString(); + String hh = queryForList.get(i).getReceiveRequestDetailName().toString(); hashMap.put("RECEIVEREQUESTDETAILNAME", hh); -// String sl = queryForList.get(i).get("QTY").toString(); - String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" + - "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" + - " SELECT NVL(SUM(M.QTY),0) \r\n" + - " FROM MATERIALPACKINGSUB M \r\n" + - " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" + - " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" + - " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" + - ") \r\n" + - "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" + - " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; - IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap); + mesToWmsDao.updateEndReport(dh, hh, MATERIALPACKINGNAME); - String updateSql2 = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" + - "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" + - " SELECT NVL(SUM(M.QTY),0) \r\n" + - " FROM MATERIALPACKINGSUBHISTORY M \r\n" + - " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" + - " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" + - " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" + - ") \r\n" + - "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" + - " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; - IDMFrameServiceProxy.getSqlTemplate().update(updateSql2, hashMap); + mesToWmsDao.updateEndReport2(dh, hh, MATERIALPACKINGNAME); - String deleteSql = " DELETE FROM MATERIALPACKINGSUB T WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND " - + "T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME AND T.MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; - IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap); + mesToWmsDao.deleteSub(dh, hh, MATERIALPACKINGNAME); + + mesToWmsDao.updateBsMesShipped(MATERIALPACKINGNAME); - String MESsQL = " UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = :MATERIALPACKINGNAME "; - IDMFrameServiceProxy.getSqlTemplate().update(MESsQL, hashMap); } MaterialPackingServiceProxy.getMaterialPackingService().remove(new MaterialPackingKey("SDK", MATERIALPACKINGNAME), makeEventInfo, removeInfo); } - String sql = "UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = :UNDOID "; Map hashMap2 = new HashMap (); hashMap2.put("UNDOID", undoId); - IDMFrameServiceProxy.getSqlTemplate().update(sql, hashMap2); + mesToWmsDao.updateUnDoId(undoId); result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功"); return result; diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/MesToWmsDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/MesToWmsDao.xml new file mode 100644 index 0000000..03d399c --- /dev/null +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/MesToWmsDao.xml @@ -0,0 +1,80 @@ + + + + + + + + + UPDATE + MATERIALRECEIVEREQUESTDETAIL T + SET + T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( + SELECT + NVL(SUM(M.QTY), 0) + FROM + MATERIALPACKINGSUB M + WHERE + M.MATERIALPACKINGNAME = #{materialPackingName} + AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME + AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME + WHERE + T.RECEIVEREQUESTNAME = #{receiveRequestName} + AND T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName} + + + + + UPDATE MATERIALRECEIVEREQUESTDETAIL T + SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( + SELECT NVL(SUM(M.QTY),0) + FROM MATERIALPACKINGSUBHISTORY M + WHERE M.MATERIALPACKINGNAME = #{materialPackingName} + AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME + AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME + ) + WHERE T.RECEIVEREQUESTNAME = #{receiveRequestName} + AND T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName} + + + + DELETE + FROM + MATERIALPACKINGSUB T + WHERE + T.RECEIVEREQUESTNAME = #{receiveRequestName} + AND + T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName} + AND T.MATERIALPACKINGNAME = #{materialPackingName} + + + + + UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = #{materialPackingName} + + + + UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = #{undoId} + + + \ No newline at end of file