From a24b77f42b1abf5d999a33c440b3e9c3bf00030c Mon Sep 17 00:00:00 2001 From: zhaoyf <1783123481@qq.com> Date: Sun, 2 Aug 2026 12:55:47 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E9=94=80=E5=94=AE=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E3=80=81=E6=89=8B=E5=8A=A8=E9=80=80=E6=96=99?= =?UTF-8?q?=E5=8D=95=20fix=EF=BC=9A=E6=89=8B=E5=8A=A8=E6=8E=A8=E4=B8=AD?= =?UTF-8?q?=E9=BC=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/InboundEasSyncService.java | 2 + .../service/impl/EasToWmsServiceImpl.java | 54 +-- .../service/impl/InboundEasQueryService.java | 9 + .../impl/InboundEasSyncServiceImpl.java | 138 ++++++-- .../service/mapper/EasPurchasedtlMapper.java | 2 + .../service/mapper/EasPurchasedtlMapper.xml | 23 +- .../service/mapper/EasPurchasemstMapper.java | 2 + .../service/mapper/EasPurchasemstMapper.xml | 17 +- .../service/impl/WmsToZDWmdServiceImpl.java | 3 +- .../service/impl/InboundPdaServiceImpl.java | 15 +- .../dao/mapper/xml/PurchasemstMapper.xml | 2 +- .../service/enums/PurchaseBillStatus.java | 1 + .../service/core/SyncBillAutoTask.java | 83 +++++ .../impl/DealPurchaseRecBillCallback.java | 7 + .../wms/basedata/storagevehicleinfo/index.vue | 2 +- .../wms/pm_manage/allocationIn/index.vue | 2 +- .../wms/pm_manage/allocationOut/index.vue | 12 +- .../src/views/wms/pm_manage/demand/index.vue | 16 +- .../src/views/wms/pm_manage/otherIn/index.vue | 4 +- .../views/wms/pm_manage/otherOut/index.vue | 6 +- .../views/wms/pm_manage/purchase/index.vue | 4 +- .../views/wms/pm_manage/returnIn/index.vue | 335 ++++++++++++++++++ .../views/wms/pm_manage/returnIn/purchase.js | 57 +++ .../src/views/wms/pm_manage/saleOut/index.vue | 4 +- 24 files changed, 715 insertions(+), 85 deletions(-) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/SyncBillAutoTask.java create mode 100644 nladmin-ui/src/views/wms/pm_manage/returnIn/index.vue create mode 100644 nladmin-ui/src/views/wms/pm_manage/returnIn/purchase.js diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasSyncService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasSyncService.java index e555688..c72d24a 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasSyncService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasSyncService.java @@ -15,4 +15,6 @@ public interface InboundEasSyncService { void syncOtherOutBill(BillChangeDto billChangeDto); void syncSaleOutBill(BillChangeDto billChangeDto); + + void syncReturnInBill(BillChangeDto billChangeDto); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/EasToWmsServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/EasToWmsServiceImpl.java index 587b944..6d812d7 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/EasToWmsServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/EasToWmsServiceImpl.java @@ -2,11 +2,16 @@ package org.nl.wms.ext_manage.purchase.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.ext_manage.purchase.service.EasToWmsService; import org.nl.wms.ext_manage.purchase.service.InboundEasSyncService; import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; +import org.nl.wms.pm_manage.purchase.service.PurchaseService; +import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; +import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasemstMapper; +import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,39 +21,36 @@ public class EasToWmsServiceImpl implements EasToWmsService { @Autowired private InboundEasSyncService inboundEasSyncService; + @Autowired + private PurchaseService purchaseService; + @Autowired + private PurchasemstMapper purchasemstMapper; @Override public JSONObject billChangeHandler(BillChangeDto billChangeDto) { if (StrUtil.isEmptyIfStr(billChangeDto.getBillid())){ throw new BadRequestException("EAS同步失败:billid为空"); } - JSONObject result = new JSONObject(); - switch (billChangeDto.getOrderType()){ - case "103": - //采购入库单 - inboundEasSyncService.syncPurchaseBill(billChangeDto); - break; - case "107": - //调拨入库单 - inboundEasSyncService.syncTransferBill(billChangeDto); - break; - case "109": - //其他入库单 - inboundEasSyncService.syncOtherBill(billChangeDto); - break; - case "106": - //调拨出库单 - inboundEasSyncService.syncTransferOutBill(billChangeDto); - break; - case "108": - //其他出库单 - inboundEasSyncService.syncOtherOutBill(billChangeDto); - break; - case "102": - //销售出库单 - inboundEasSyncService.syncSaleOutBill(billChangeDto); - break; + String billId = billChangeDto.getBillid(); + //更新单据 + final Purchasemst one = purchasemstMapper.selectOne(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + if (one!=null && one.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + Purchasemst purchasemst = new Purchasemst(); + purchasemst.setBill_id(billChangeDto.getBillid()); + purchasemst.setStatus(billChangeDto.getStatus()); + purchasemst.setOrder_no(billChangeDto.getOrderNo()); + purchasemst.setOrder_type(billChangeDto.getOrderType()); + purchasemst.setRed(billChangeDto.getRed()); + purchasemst.setCreate_time(billChangeDto.getNoticeTime()); + purchasemst.setBill_status(PurchaseBillStatus.W_SYNC.getCode()); + purchaseService.save(purchasemst); + JSONObject result = new JSONObject(); + result.put("respCode", 0); result.put("respMsg", "单据变更通知成功"); return result; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasQueryService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasQueryService.java index 5545522..0b3171b 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasQueryService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasQueryService.java @@ -89,4 +89,13 @@ public class InboundEasQueryService { public List queryDtlListBySaleOut(String billId) { return easPurchasedtlMapper.selectSaleOutByBillId(billId); } + + public Purchasemst queryMstByReturnIn(String billId) { + List list = easPurchasemstMapper.selectReturnInByBillId(billId); + return list != null && !list.isEmpty() ? list.get(0) : null; + } + + public List queryDtlListByReturnIn(String billId) { + return easPurchasedtlMapper.selectReturnInByBillId(billId); + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java index 9d449ef..b2074fc 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java @@ -51,8 +51,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -67,8 +67,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMst(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -113,7 +114,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } purchasedtlMapper.batchSave(easDtlList); purchasemstMapper.insert(easMst); - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -136,8 +137,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -152,8 +153,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMstByTransfer(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -198,7 +200,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } purchasedtlMapper.batchSave(easDtlList); purchasemstMapper.insert(easMst); - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -221,8 +223,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -237,8 +239,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMstByOther(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -283,7 +286,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } purchasedtlMapper.batchSave(easDtlList); purchasemstMapper.insert(easMst); - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -306,8 +309,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -322,8 +325,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMstByTransferOut(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -368,7 +372,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } purchasedtlMapper.batchSave(easDtlList); purchasemstMapper.insert(easMst); - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -391,8 +395,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -407,8 +411,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMstByOtherOut(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -453,7 +458,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } purchasedtlMapper.batchSave(easDtlList); purchasemstMapper.insert(easMst); - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -476,8 +481,8 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //更新单据 final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ - throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); } Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); List ZD_STOR_SET; @@ -492,8 +497,9 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { //增加单据 Purchasemst easMst = easQueryService.queryMstBySaleOut(billId); if (easMst == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); //判断是否因为填错仓库号保证中鼎一致 List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); @@ -507,6 +513,92 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { } } + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + //更新单据 + Boolean allZD = true; + for (Purchasedtl dtl : easDtlList) { + if (ZD_STOR_SET.contains(dtl.getHouse_code())){ + //中鼎立库 + dtl.setInstock_qty(dtl.getQty()); + easMst.setForwardZD(1); + easMst.setBill_status(PurchaseBillStatus.EXECUTING.getCode()); + }else { + allZD = false; + } + } + if (Objects.equals(1, easMst.getForwardZD())){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + try { + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + easMst.setForwardZD(2); + } catch (Exception e) { + easMst.setForwardZD(1); + } + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS单据同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + break; + case 3: + //删除单据 + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId); + Purchasemst mst = purchasemstMapper.selectOne(eq); + if (mst.getForwardZD() == 2){ + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.deleteById(mst.getId()); + } + } + + @Override + public void syncReturnInBill(BillChangeDto billChangeDto) { + String billId = billChangeDto.getBillid(); + Integer status = billChangeDto.getStatus();//1:已提交;2:更新;3:删除; + //更新单据 + final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + if (purchasemst!=null && purchasemst.getBill_status().equals(PurchaseBillStatus.EXECUTING.getCode())){ + throw new BadRequestException("EAS单据同步失败:当前单据在WMS系统中已经执行 " + billId); + } + Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); + List ZD_STOR_SET; + if (zdStorParam!=null){ + ZD_STOR_SET = JSONObject.parseObject(zdStorParam.getValue(), List.class); + } else { + ZD_STOR_SET = new ArrayList<>(); + } + switch (status){ + case 1: + case 2: + //增加单据 + Purchasemst easMst = easQueryService.queryMstByReturnIn(billId); + if (easMst == null) { + throw new BadRequestException("EAS单据同步失败:EAS系统中未找到单据: " + billId); + } + easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); + //判断是否因为填错仓库号保证中鼎一致 + List purchasedtlList = purchasedtlMapper.selectList(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + List easDtlList = easQueryService.queryDtlListByReturnIn(billId); + boolean hasZDEas = easDtlList.stream().anyMatch((item) -> ZD_STOR_SET.contains(item.getHouse_code())); + if (!purchasedtlList.isEmpty() &&!hasZDEas){ //不包含立库则判断是否是填错仓库单据 + boolean hasZD = purchasedtlList.stream().anyMatch((item) -> ZD_STOR_SET.contains(item.getHouse_code())); + if (hasZD){//原来单据包含中鼎立库 + billChangeDto.setStatus(3);//删除中鼎异常单据 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + } + purchasedtlMapper.delete(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); purchasemstMapper.delete(new LambdaQueryWrapper() diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.java index 12a27fe..5c48e1d 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.java @@ -21,4 +21,6 @@ public interface EasPurchasedtlMapper extends BaseMapper { List selectTransferOutByBillId(String billId); List selectSaleOutByBillId(String billId); + + List selectReturnInByBillId(String billId); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.xml index 92d79a5..4b197e7 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasedtlMapper.xml @@ -115,7 +115,7 @@ FROM EAS_NOBLE.V_UC_DBCK01 WHERE billid = #{bill_id} - SELECT entryid, billid, @@ -134,5 +134,24 @@ FROM EAS_NOBLE.V_UC_XSCK05 WHERE billid = #{bill_id} - + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java index cc3f23c..a61e36e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java @@ -23,4 +23,6 @@ public interface EasPurchasemstMapper extends BaseMapper { List selectTransferOutByBillId(String billId); List selectSaleOutByBillId(String billId); + + List selectReturnInByBillId(String billId); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml index 430a22e..de895f4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml @@ -95,7 +95,7 @@ FROM EAS_NOBLE.V_UC_DBCK01 WHERE billid = #{bill_id} - SELECT DISTINCT orderNo, orderType, @@ -108,5 +108,18 @@ FROM EAS_NOBLE.V_UC_XSCK05 WHERE billid = #{bill_id} - + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java index 6d36622..51c8657 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java @@ -14,7 +14,6 @@ import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; import org.nl.wms.ext_manage.service.WmsToZDWmdService; import org.nl.wms.ext_manage.service.dto.ZDInventory; import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; -import org.nl.wms.pm_manage.pmreturn.service.dao.PmReturn; import org.nl.wms.pm_manage.pmreturn.service.dto.PmReturnDto; import org.nl.wms.system_manage.enums.SysParamConstant; import org.nl.wms.system_manage.service.param.dao.Param; @@ -103,7 +102,7 @@ public class WmsToZDWmdServiceImpl implements WmsToZDWmdService { public ResponseEntity syncPurchaseReceiving(BillChangeDto billChangeDto) { final String param = JSON.toJSONString(billChangeDto); log.info("syncPurchaseReceiving采购入库单下发输入参数:-------------------" + param); - String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL_REQUISITION).getValue(); + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL_IOORDER).getValue(); try { String resultMsg = HttpRequest.post(url) .body(param) diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java index c66e600..0c77be1 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java @@ -247,12 +247,15 @@ public class InboundPdaServiceImpl implements InboundPdaService { List addInvParams = new ArrayList<>(); for (UsualInboundDto.UsualInboundDtlDto item : usualInboundDto.getDetailList()) { //判断当前物料是否在库内 - List inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper() - .eq(GroupPlate::getMaterial_code, item.getSku_code()) - .eq(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) - .likeRight(GroupPlate::getStoragevehicle_code, "VTP")); - if (!inStockGps.isEmpty()){ - GroupPlate groupPlate = inStockGps.get(0); +// List inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper() +// .eq(GroupPlate::getMaterial_code, item.getSku_code()) +// .eq(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) +// .likeRight(GroupPlate::getStoragevehicle_code, "VTP")); + List structattrVechielDtos = iStructattrService.collectVechicle( + MapOf.of("sect_code", usualInboundDto.getSect_code(), "material_code", item.getSku_code())); + + if (!structattrVechielDtos.isEmpty()){ + StructattrVechielDto groupPlate = structattrVechielDtos.get(0); Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper() .eq(Structattr::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) .eq(Structattr::getSect_code, usualInboundDto.getSect_code()) diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml index b7b309c..3135881 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml @@ -55,6 +55,7 @@ AND m.create_time >= #{params.createTime[0]} AND m.create_time <= #{params.createTime[1]} + AND m.bill_status != '10' GROUP BY m.id, @@ -92,7 +93,6 @@ WHERE 1=1 AND m.order_no = #{param.orderNo} AND d.item_no = #{param.itemNo} - AND m.status = 0 ORDER BY m.create_time DESC, d.item_no ASC diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/enums/PurchaseBillStatus.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/enums/PurchaseBillStatus.java index c56726f..405af52 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/enums/PurchaseBillStatus.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/enums/PurchaseBillStatus.java @@ -6,6 +6,7 @@ public enum PurchaseBillStatus { EXECUTING("1", "执行中"), COMPLETED("2", "已完成"), AUDIT_SUCCESS("3", "审核成功"), + W_SYNC("10", "待同步"), AUDIT_FAIL("4", "审核失败"); private final String code; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/SyncBillAutoTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/SyncBillAutoTask.java new file mode 100644 index 0000000..5a11c4b --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/SyncBillAutoTask.java @@ -0,0 +1,83 @@ +package org.nl.wms.sch_manage.service.core; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext_manage.purchase.service.InboundEasSyncService; +import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; +import org.nl.wms.pm_manage.purchase.service.PurchaseService; +import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; +import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 倒冲领料定时回传,每次回传五条 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class SyncBillAutoTask { + + @Autowired + private InboundEasSyncService inboundEasSyncService; + @Autowired + private PurchaseService purchaseService; + + @SneakyThrows + public void run() { + log.info("========>同步EAS单据任务"); + List list = purchaseService.list(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_status, PurchaseBillStatus.W_SYNC.getCode())); + for (Purchasemst purchasemst : list) { + try { + BillChangeDto billChangeDto = new BillChangeDto(); + billChangeDto.setStatus(purchasemst.getStatus()); + billChangeDto.setRed(purchasemst.getRed()); + billChangeDto.setOrderNo(purchasemst.getOrder_no()); + billChangeDto.setOrderType(purchasemst.getOrder_type()); + billChangeDto.setNoticeTime(purchasemst.getCreate_time()); + billChangeDto.setBillid(purchasemst.getBill_id()); + switch (billChangeDto.getOrderType()){ + case "103": + //采购入库单 + inboundEasSyncService.syncPurchaseBill(billChangeDto); + break; + case "107": + //调拨入库单 + inboundEasSyncService.syncTransferBill(billChangeDto); + break; + case "109": + //其他入库单 + inboundEasSyncService.syncOtherBill(billChangeDto); + break; + case "106": + //调拨出库单 + inboundEasSyncService.syncTransferOutBill(billChangeDto); + break; + case "108": + //其他出库单 + inboundEasSyncService.syncOtherOutBill(billChangeDto); + break; + case "102": + //销售出库单 + inboundEasSyncService.syncSaleOutBill(billChangeDto); + break; + case "104": + //退料入库单 + inboundEasSyncService.syncReturnInBill(billChangeDto); + break; + } + } catch (Exception e) { + log.error("同步EAS单据定时任务错误{}",e.getMessage()); + } + } + + log.info("========>同步EAS单据任务结束:{}", JSON.toJSONString(list)); + + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java index a44ea67..8619cc1 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang.time.DateFormatUtils; +import org.nl.common.exception.BadRequestException; import org.nl.wms.ext_manage.purchase.service.dto.EasAuditRequestDto; import org.nl.wms.ext_manage.util.ErpUtil; import org.nl.wms.pm_manage.purchase.service.PurchaseService; @@ -46,11 +47,17 @@ public class DealPurchaseRecBillCallback implements CallbackStrategy { final String orderCode = param.getSource_bill_code(); Purchasemst purchasemst = purchaseService.getOne(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, orderCode)); + if (PurchaseBillStatus.COMPLETED.getCode().equals(purchasemst.getBill_status())){ + throw new BadRequestException("重复入库!"); + } List entryList = new ArrayList<>(); Purchasedtl purchasedtl = purchasedtlService.getOne(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, orderCode) .eq(Purchasedtl::getItem_no, param.getSource_billdtl_id())); purchasedtl.setInstock_qty(param.getPlan_qty().add(purchasedtl.getInstock_qty())); + if (purchasedtl.getInstock_qty().compareTo(purchasedtl.getQty())>0){//超过单据数量 + throw new BadRequestException("入库数量超出单据数量,物料:" + purchasedtl.getSku_code()); + } purchasedtlService.updateById(purchasedtl); List list = purchasedtlService.list(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, orderCode)); diff --git a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue index fb9796f..55b9bda 100644 --- a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue +++ b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue @@ -600,7 +600,7 @@ export default { return false } crudStoragevehicleinfo.getVehicle(code).then(res => { - this.form.vehicle_code = res.value + this.form.vehicle_code = res.data.value }) } } diff --git a/nladmin-ui/src/views/wms/pm_manage/allocationIn/index.vue b/nladmin-ui/src/views/wms/pm_manage/allocationIn/index.vue index 0215f42..ea27004 100644 --- a/nladmin-ui/src/views/wms/pm_manage/allocationIn/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/allocationIn/index.vue @@ -141,7 +141,7 @@ icon="el-icon-info" icon-color="red" title="是否重新转发中鼎?" - @confirm="toForwardZD(scope.row)" + @confirm="() => toForwardZD(scope.row)" > 失败 diff --git a/nladmin-ui/src/views/wms/pm_manage/allocationOut/index.vue b/nladmin-ui/src/views/wms/pm_manage/allocationOut/index.vue index d0629f5..326ddb6 100644 --- a/nladmin-ui/src/views/wms/pm_manage/allocationOut/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/allocationOut/index.vue @@ -26,7 +26,7 @@ - + 强制回传EAS 下推出库 @@ -56,7 +56,7 @@ + + diff --git a/nladmin-ui/src/views/wms/pm_manage/returnIn/purchase.js b/nladmin-ui/src/views/wms/pm_manage/returnIn/purchase.js new file mode 100644 index 0000000..f3d5b15 --- /dev/null +++ b/nladmin-ui/src/views/wms/pm_manage/returnIn/purchase.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/purchasemst', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/purchasemst', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/purchasemst', + method: 'put', + data + }) +} + +export function get(id) { + return request({ + url: '/api/purchasemst/109/' + id, + method: 'get' + }) +} + +export function issueReturnBill(data) { + return request({ + url: '/api/purchasemst/issueReturnBill', + method: 'put', + data + }) +} + +export function print(ids) { + return request({ + url: '/api/purchasemst/print', + method: 'post', + data: ids + }) +} +export function pushZD(data) { + return request({ + url: '/api/purchasemst/pushZD', + method: 'post', + data + }) +} + +export default { add, edit, del, get, issueReturnBill, print, pushZD } diff --git a/nladmin-ui/src/views/wms/pm_manage/saleOut/index.vue b/nladmin-ui/src/views/wms/pm_manage/saleOut/index.vue index df1aebc..5d5a93a 100644 --- a/nladmin-ui/src/views/wms/pm_manage/saleOut/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/saleOut/index.vue @@ -56,7 +56,7 @@