diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java index 5373899..9470d9b 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java @@ -205,4 +205,13 @@ public class DeliveryController { } return AjaxResult.me().setErrorCode(-1).setMessage("修改失败"); } + + /** + * 获取采购订单详情 + */ + @PostMapping(value = "/getDeliveryReceiveDetail") + public AjaxResult GetDeliveryReceiveDetail(@RequestBody JSONObject in) { + List nameList = (List) in.get("nameList"); + return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getDeliveryReceiveDetail(nameList)); + } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java index f459824..5318951 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java @@ -286,20 +286,23 @@ public class MaterialReceiveActController { int result = a.compareTo(b); hashMap2.put("QTY", mathMaterialQuantity); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); - IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); + // 去掉接受收数量更新 +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); break; } else if (mathMaterialQuantity.compareTo(mathQty) == 1) {//条码数量大于剩余数量 hashMap2.put("QTY", qty); mathMaterialQuantity = mathMaterialQuantity.subtract(mathQty); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); - IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); + // 去掉接受收数量更新 +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); System.out.println("a is greater than b"); continue; } else {//条码数量小于订单剩余数量 System.out.println("a is less than b"); hashMap2.put("QTY", mathMaterialQuantity); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); - IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); + // 去掉接受收数量更新 +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); break; } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java index 05578a0..7389a32 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java @@ -2303,12 +2303,7 @@ public class SAPToWMSController { @ApiOperation(value = "物料消耗") @RequestMapping("/sapwms_materialconsume_request") public WMSToSAPReturn sapMaterialConsume_Request(HttpServletRequest httpRequest, @RequestBody SAPToWMSRequest request) { - //Map head = request.getHEAD(); - Map head = new HashMap<>(); - head.put("INTF_ID",request.getHEAD().get("INTFID")); - head.put("SRC_SYSTEM",request.getHEAD().get("SRCMSGID")); - head.put("DEST_SYSTEM","WMS"); - head.put("SRC_MSGID","PP103"); + Map head = request.getHEAD(); //开启事务 IDMFrameServiceProxy.getTransactionManager().beginTransaction(); try { @@ -2350,7 +2345,7 @@ public class SAPToWMSController { Map errorReturn = new HashMap<>(); errorReturn.put("STATUS", "E"); errorReturn.put("MSGTXT", e.getMessage()); - errorReturn.put("HEAD", request.getHEAD()); + //errorReturn.put("HEAD", request.getHEAD()); WMSToSAPReturn WMSToSAPReturn = new WMSToSAPReturn(head, errorReturn); ErpMessageLog erpMessageLog = new ErpMessageLog(); erpMessageLog.setServerName(System.getProperty("Seq")); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java index 0d64c45..55bf78f 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java @@ -109,6 +109,13 @@ public interface DeliveryDao { */ List getReceiveDetail(@Param("nameList") List nameList); + /** + * 根据到库单获取采购单名称 + * @param nameList 到库单 + * @return 采购单名称列表 + */ + List getDeliveryReceiveDetail(@Param("nameList") List nameList); + /** * 获取到货单 * @param dto 请求 @@ -152,4 +159,11 @@ public interface DeliveryDao { @MapKey("storeCharge") List> getStoreChargeSort(@Param("siteName") String siteName, @Param("documentName") String documentName); + + /** + * 更新入库单数量 + * @param relationDto + * @return + */ + int updateMaterialReceiveRequestDetailQty(@Param("dto") DeliveryRelationDto relationDto); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java index f7e9469..2ad0651 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java @@ -95,7 +95,12 @@ public interface IDeliveryService { * @return 采购单名称列表 */ List getReceiveDetail(List nameList); - + /** + * 根据到库单获取采购单名称 + * @param nameList 到库单 + * @return 采购单名称列表 + */ + List getDeliveryReceiveDetail(List nameList); /** * 获取到货单 * @param dto 请求 diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java index 61e25ca..a24daf6 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java @@ -50,6 +50,14 @@ public class DeliveryServiceImpl implements IDeliveryService { if (deliveryDao.createRelation(res) <= 0) { throw new GlobalException("添加到库单关系失败"); } + //更新采购订单行项的已入库数量 + for (DeliveryRelationDto re : res) { + if (deliveryDao.updateMaterialReceiveRequestDetailQty(re) <= 0){ + throw new GlobalException("更新采购单入库数量失败"); + } + } + + // 添加到库单 return deliveryDao.createDelivery(dto, DeliveryStateEnums.CREATE.getCode()); } @@ -120,6 +128,11 @@ public class DeliveryServiceImpl implements IDeliveryService { return deliveryDao.getReceiveDetail(nameList); } + @Override + public List getDeliveryReceiveDetail(List nameList) { + return deliveryDao.getDeliveryReceiveDetail(nameList); + } + @Override public PageInfo getDeliveryList(PageDto dto) { PageMethod.startPage(dto.getPageNum(), dto.getPageSize()); 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 c56b3c4..e5bf7cb 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 @@ -147,7 +147,9 @@ public class MESToWMSServiceImpl implements MESToWMSService { } // 将工单的物料消耗数据传给SAP String undoId = toSAPService.mesMaterialConsume("MES",payMentDate); - result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功"); + Map undoidMap = new HashMap<>(); + undoidMap.put("undoid", undoId); + result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap); loginfo.setResultCode("0"); loginfo.setReturnMsg(JSONObject.toJSONString(result)); // 消息保存日志,erp推送wms的数据写入表BS_ERPMESSAGELOG中 diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialPackingServiceServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialPackingServiceServiceImpl.java index cba3ce8..791ba12 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialPackingServiceServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialPackingServiceServiceImpl.java @@ -48,9 +48,10 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic hashMap.put("RECEIVEREQUESTNAME", item.get("RECEIVEREQUESTNAME").toString()); hashMap.put("RECEIVEREQUESTDETAILNAME", item.get("RECEIVEREQUESTDETAILNAME").toString()); hashMap.put("QTY", item.get("QTY").toString()); - String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - :QTY " - + "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; - IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap); + // 去掉接受收数量更新 +// String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - :QTY " +// + "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; +// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap); String deleteSql = "DELETE FROM MATERIALPACKINGSUB m WHERE m.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME"; IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap); @@ -224,7 +225,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic break; } if (queryMaterialpackingList.isEmpty()){ - throw new Exception("冲销失败,物料:" + matnr + " " + werks + " " + lgort + " " + meins + "库存短缺"); + throw new Exception("冲销失败,没有匹配该物料凭证:" + mblnr + "的消耗记录无法冲销"); }else { MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList); } diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml index a3eb8a9..4cd7814 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml @@ -159,8 +159,8 @@ AND AA.SDK_ID = m.SDK_ID AND AA.PHASE = m3.PHASE LEFT JOIN BB ON BB.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME - AND BB.SDK_ID = m.SDK_ID - AND BB.PHASE = m3.PHASE + AND COALESCE(BB.SDK_ID, 'N/A') = COALESCE(m.SDK_ID, 'N/A') + AND COALESCE(BB.PHASE, 'N/A') = COALESCE(m3.PHASE, 'N/A') INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME @@ -501,4 +501,22 @@ ORDER BY A.CHARGE ) TTT + + + UPDATE MATERIALRECEIVEREQUESTDETAIL + SET RECEIVEDQUANTITY = RECEIVEDQUANTITY + #{dto.deliveryNum} + WHERE RECEIVEREQUESTNAME = #{dto.receiveRequestName} + AND RECEIVEREQUESTDETAILNAME = #{dto.receiveRequestDetailName} + AND MATERIALSPECNAME = #{dto.materialSpecName} + + + \ No newline at end of file