From 27d7b880a9eb32ffe0c3f9175391acc2a3780f9f Mon Sep 17 00:00:00 2001 From: Amjacks <1932302177@qq.com> Date: Mon, 31 Mar 2025 14:31:16 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=88=B0=E8=B4=A7=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idm/controller/DeliveryController.java | 10 ++++ .../MaterialReceiveActController.java | 13 +++++ .../java/com/cim/idm/dao/DeliveryDao.java | 14 +++++ .../java/com/cim/idm/model/DeliveryDto.java | 3 + .../cim/idm/model/DeliveryRelationDto.java | 13 +++++ .../model/MaterialReceiveRequestDetail.java | 56 +++++++++++++++++++ .../com/cim/idm/service/IDeliveryService.java | 8 +++ .../idm/service/Impl/DeliveryServiceImpl.java | 17 ++++-- .../resources/com/cim/idm/dao/DeliveryDao.xml | 29 ++++++++-- 9 files changed, 155 insertions(+), 8 deletions(-) create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryRelationDto.java create mode 100644 zi-wms-pda/src/main/java/com/cim/idm/model/MaterialReceiveRequestDetail.java 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 0641f98..5f08688 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 @@ -70,4 +70,14 @@ public class DeliveryController { // 获取采购单明细及批次 return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getStoreDetail(siteName, nameList)); } + + /** + * 获取采购订单详情 + */ + @PostMapping(value = "/getReceiveDetail") + public AjaxResult getReceiveDetail(@RequestBody JSONObject in) { + List nameList = (List) in.get("nameList"); + // 获取采购订单详情 + return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getReceiveDetail(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 6380791..64197d0 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 @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.*; +import java.util.stream.Collectors; import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl; @@ -175,7 +176,19 @@ public class MaterialReceiveActController { String receiveActNo = box.getReceiveActNo(); String receiveQty = box.getRECEIVEDQUANTITY2();//实收数量 String receiveRequestDetailName = box.getReceiveRequestDetailName(); + // 单据 String receiveRequestName = box.getReceiveRequestName(); + // 判断是否是倒库单据 + MaterialReceiveRequest byKey = deliveryService.getByKey(boxs.getSiteName(), boxs.getReceiveRequestName()); + if (byKey.getReceiveRequestType().equals(ReceiveTypeEnums.DK.getCode())) { + // 检索该到库订单下该物料的采购订单的 name + List collect = deliveryService.getReceiveByDelivery(boxs.getSiteName(), boxs.getReceiveRequestName()) + .stream().filter(item -> item.getMaterialSpecName().equals(materialSpecName)).collect(Collectors.toList()); + // 检查剩余数量 +// if () { +// +// } + } String remark = box.getRemark(); String sdkid = box.getSdkid() == null ? "" : box.getSdkid(); String shipRequestDetailName = box.getShipRequestDetailName(); 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 adc54fc..a964aa2 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 @@ -1,6 +1,8 @@ package com.cim.idm.dao; +import com.cim.idm.model.DeliveryRelationDto; import com.cim.idm.model.MaterialReceiveRequest; +import com.cim.idm.model.MaterialReceiveRequestDetail; import com.cim.idm.model.PurchaseDto; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; @@ -21,6 +23,11 @@ public interface DeliveryDao { @Param("receiveRequestName") String receiveRequestName, @Param("receiveRequestType") String receiveRequestType ); + /** + * 新增到货单关系 + */ + int createRelation(@Param("receiveList") List receiveList); + /** * 绑定采购订单 的 到货单 */ @@ -59,4 +66,11 @@ public interface DeliveryDao { */ List getReceiveByDelivery(@Param("siteName") String siteName, @Param("receiveRequestName") String receiveRequestName); + + /** + * 根据到库单获取采购单名称 + * @param nameList 到库单 + * @return 采购单名称列表 + */ + List getReceiveDetail(@Param("nameList") List nameList); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryDto.java index 2defff3..14eeea1 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryDto.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryDto.java @@ -15,4 +15,7 @@ public class DeliveryDto { // 数据 private List dataList; + + // 数据 + private List receiveList; } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryRelationDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryRelationDto.java new file mode 100644 index 0000000..eeb4a71 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/DeliveryRelationDto.java @@ -0,0 +1,13 @@ +package com.cim.idm.model; + +import lombok.Data; + +@Data +public class DeliveryRelationDto { + // 到库单名称 + private String deliveryName; + // 到库数量 + private Integer deliveryNum = 0; + // 采购单名称 + private String receiveRequestName; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialReceiveRequestDetail.java b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialReceiveRequestDetail.java new file mode 100644 index 0000000..cd39960 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialReceiveRequestDetail.java @@ -0,0 +1,56 @@ +package com.cim.idm.model; + +import lombok.Data; + +import java.sql.Timestamp; + +@Data +public class MaterialReceiveRequestDetail { + + private String siteName; + private String receiveRequestName; + private String receiveRequestDetailName; + private String pocategory; // 对应SAP PSTYPE + private String receiveRequestDetailType; //对应SAP KNTTP + private String materialSpecName; + private String description; + private double requestQuantity; + private double receivedQuantity; + private String erpLocation; + private String locationName; + private String erpFactory; + private String returnFlag; + private String freeFlag; + private String forceCompletedFlag; + private String receiveRequestDetailState; + private String holdState; + private String iqcFlag; + private Timestamp planDate; + private String createUser; + private Timestamp createTime; + private String lastEventName; + private String lastEventTimeKey; + private Timestamp lastEventTime; + private String lastEventUser; + private String lastEventComment; + private String innerOrder;//内部订单号20190806 + private String charge; + private String applicant; + private String erpPoName; + private String erpPoDetailName; + private String innerFlag; + //众凌定制字段 + private String supplierCharge; + private String materialUnit; + private String finishFlag; + private String costCenter;//成本中心 + private Timestamp orderChangeDate; //订单更改日期 + private String wmsReturnChargeNo; //WMS退货批次号 + private String purchaseRequestNote; //采购申请备注信息 + private String purchaseRequestNo; //采购申请单号 + private String purchaseRequestDetailNo; //采购申请单行号 + private String deleteDetailFlag; //订单行项目删除标识 + private String salesman; // 业务员zzywy + private String salesAssistant; // 业务助理zzywzl + private String businessDivision; // 事业部zzsyb +} 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 8711491..c340f25 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 @@ -3,6 +3,7 @@ package com.cim.idm.service; import com.cim.idm.model.DeliveryDto; import com.cim.idm.model.MaterialReceiveRequest; import com.cim.idm.model.PageDto; +import com.cim.idm.model.MaterialReceiveRequestDetail; import com.github.pagehelper.PageInfo; import java.util.List; @@ -45,4 +46,11 @@ public interface IDeliveryService { * @return 采购单名称列表 */ List getReceiveByDelivery(String siteName, String receiveRequestName); + + /** + * 根据到库单获取采购单名称 + * @param nameList 到库单 + * @return 采购单名称列表 + */ + List getReceiveDetail(List nameList); } 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 25917a5..dac29d0 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 @@ -3,10 +3,7 @@ package com.cim.idm.service.Impl; import com.alibaba.fastjson.JSON; import com.cim.idm.constants.ReceiveTypeEnums; import com.cim.idm.dao.DeliveryDao; -import com.cim.idm.model.DeliveryDto; -import com.cim.idm.model.MaterialReceiveRequest; -import com.cim.idm.model.PageDto; -import com.cim.idm.model.PurchaseDto; +import com.cim.idm.model.*; import com.cim.idm.service.IDeliveryService; import com.cim.idm.wmspackage.invoice.management.data.MaterialReceiveRequestKey; import com.github.pagehelper.PageInfo; @@ -34,6 +31,13 @@ public class DeliveryServiceImpl implements IDeliveryService { dto.getReceiveRequestName(), ReceiveTypeEnums.DK.getCode()) <= 0) { return "添加到库单失败"; } + // 添加到库单关系 + for (DeliveryRelationDto item : dto.getReceiveList()) { + item.setDeliveryName(dto.getReceiveRequestName()); + } + if (deliveryDao.createRelation(dto.getReceiveList()) <= 0) { + return "添加到库单关系失败"; + } // 更新采购单到库单字段 List collect = dto.getDataList().stream() .map(MaterialReceiveRequestKey::getReceiveRequestName).collect(Collectors.toList()); @@ -69,4 +73,9 @@ public class DeliveryServiceImpl implements IDeliveryService { public List getReceiveByDelivery(String siteName, String receiveRequestName) { return deliveryDao.getReceiveByDelivery(siteName, receiveRequestName); } + + @Override + public List getReceiveDetail(List nameList) { + return deliveryDao.getReceiveDetail(nameList); + } } 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 eb921e5..a2f0475 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 @@ -7,6 +7,14 @@ VALUES (#{siteName}, #{receiveRequestName}, #{receiveRequestType}) + + INSERT ALL + + INTO MATERIALRECEIVEDELIVERY (RECEIVEREQUESTNAME, DELIVERYNAME, DELIVERYNUM) VALUES (#{item.receiveRequestName}, #{item.deliveryName}, #{item.deliveryNum}) + + SELECT * FROM dual + + UPDATE MATERIALRECEIVEREQUEST SET DELIVERYNAME = #{receiveRequestName} WHERE SITENAME = #{siteName} @@ -95,10 +103,6 @@ AND m.SITENAME = #{siteName} AND m2.RECEIVEREQUESTTYPE IN ( 'ZK4A', '45', '4C', 'Z001', 'Z002', 'Z003', 'Z004' ) - GROUP BY m3.DESCRIPTION, be.DESCRIPTION, m.ERPLOCATION, o.ORGNAME, m2.STOCKORGNO, sss.DESCRIPTION, - m.LOCATIONNAME, m2.SUPPLIERNO, m3.DESC_CN, m.MATERIALUNIT, M3.MATERIALUNITDESC, - m3.EXPIRATION_RULES, m.SDK_ID, m3.WIDTH, m3.PHASE, m.MATERIALSPECNAME, m.SITENAME, - m.RECEIVEREQUESTNAME, m3.IS_BATCH, m4.IQCFLAG @@ -149,4 +153,21 @@ WHERE SITENAME = #{siteName} AND DELIVERYNAME = #{receiveRequestName} + + \ No newline at end of file