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 9a0dfbf..28e05fa 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 @@ -9,4 +9,8 @@ public interface InboundEasSyncService { void syncTransferBill(BillChangeDto billChangeDto); void syncOtherBill(BillChangeDto billChangeDto); + + void syncTransferOutBill(BillChangeDto billChangeDto); + + void syncOtherOutBill(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 434234c..0b11950 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 @@ -36,6 +36,14 @@ public class EasToWmsServiceImpl implements EasToWmsService { //其他入库单 inboundEasSyncService.syncOtherBill(billChangeDto); break; + case "106": + //调拨出库单 + inboundEasSyncService.syncTransferOutBill(billChangeDto); + break; + case "108": + //其他出库单 + inboundEasSyncService.syncOtherOutBill(billChangeDto); + break; } result.put("respCode", 0); result.put("respMsg", "单据变更通知成功"); 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 12ea03d..e251f0e 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 @@ -56,4 +56,26 @@ public class InboundEasQueryService { public List queryDtlList(String billId) { return easPurchasedtlMapper.selectByBillId(billId); } + + @Transactional(propagation = Propagation.REQUIRES_NEW) + public List queryDtlListByOtherOut(String billId) { + return easPurchasedtlMapper.selectOtherOutByBillId(billId); + } + + @Transactional(propagation = Propagation.REQUIRES_NEW) + public Purchasemst queryMstByOtherOut(String billId) { + List list = easPurchasemstMapper.selectOtherOutByBillId(billId); + return list != null && !list.isEmpty() ? list.get(0) : null; + } + + @Transactional(propagation = Propagation.REQUIRES_NEW) + public List queryDtlListByTransferOut(String billId) { + return easPurchasedtlMapper.selectTransferOutByBillId(billId); + } + + @Transactional(propagation = Propagation.REQUIRES_NEW) + public Purchasemst queryMstByTransferOut(String billId) { + List list = easPurchasemstMapper.selectTransferOutByBillId(billId); + return list != null && !list.isEmpty() ? list.get(0) : null; + } } 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 ce79eb3..b6904e6 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 @@ -1,33 +1,26 @@ package org.nl.wms.ext_manage.purchase.service.impl; -import cn.hutool.core.date.DateUtil; 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.config.SpringContextHolder; import org.nl.wms.ext_manage.enums.EXTConstant; +import org.nl.wms.ext_manage.purchase.service.InboundEasSyncService; import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; import org.nl.wms.ext_manage.service.WmsToZDWmdService; -import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; -import org.nl.wms.ext_manage.purchase.service.InboundEasSyncService; import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl; import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasedtlMapper; import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasemstMapper; -import org.nl.wms.system_manage.enums.SysParamConstant; +import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; import org.nl.wms.system_manage.service.param.ISysParamService; import org.nl.wms.system_manage.service.param.dao.Param; -import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; @Slf4j @Service @@ -238,4 +231,130 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { .eq(Purchasemst::getBill_id, billId)); } } + + @Override + public void syncTransferOutBill(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.CREATED.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.queryMstByTransferOut(billId); + if (easMst == null) { + throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + } + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + //更新单据 + List easDtlList = easQueryService.queryDtlListByTransferOut(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 (easMst.getForwardZD()==1){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + break; + case 3: + //删除单据 + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + } + } + + @Override + public void syncOtherOutBill(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.CREATED.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.queryMstByOtherOut(billId); + if (easMst == null) { + throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); + } + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + //更新单据 + List easDtlList = easQueryService.queryDtlListByOtherOut(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 (easMst.getForwardZD()==1){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); + break; + case 3: + //删除单据 + purchasedtlMapper.delete(new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, billId)); + purchasemstMapper.delete(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + } + } } 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 12dae47..0897ddc 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 @@ -15,4 +15,8 @@ public interface EasPurchasedtlMapper extends BaseMapper { List selectTransferByBillId(String billId); List selectOtherByBillId(String billId); + + List selectOtherOutByBillId(String billId); + + List selectTransferOutByBillId(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 40eddb7..3f07b7a 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 @@ -77,5 +77,43 @@ FROM V_UC_QTRK04 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 0852a5f..f4d2a5a 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 @@ -17,4 +17,8 @@ public interface EasPurchasemstMapper extends BaseMapper { List selectTransferByBillId(String billId); List selectOtherByBillId(String billId); + + List selectOtherOutByBillId(String billId); + + List selectTransferOutByBillId(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 0b8b05d..154f8ac 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 @@ -77,5 +77,35 @@ FROM V_UC_QTRK04 WHERE billid = #{bill_id} + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java index afc96fa..5dbfd1c 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java @@ -23,13 +23,14 @@ public class PurchaseController { @Autowired private PurchaseService purchaseService; - @GetMapping + @GetMapping("/{type}") @Log("查询采购入库单") - public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page, @PathVariable String type) { + whereJson.put("type",type); return new ResponseEntity<>(TableDataInfo.build(purchaseService.queryAll(whereJson, page)), HttpStatus.OK); } - @GetMapping("/{id}") + @GetMapping("/{type}/{id}") @Log("查询采购入库单详情") public ResponseEntity getById(@PathVariable String id) { PurchaseDto dto = purchaseService.getDetailById(id); 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 0331c8e..b7b309c 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 @@ -24,7 +24,7 @@ FROM st_ivt_purchasemst m LEFT JOIN st_ivt_purchasedtl d on d.bill_id = m.bill_id - 1=1 + m.order_type = #{params.type} AND m.bill_id LIKE CONCAT('%', #{params.bill_id}, '%') diff --git a/nladmin-ui/src/views/wms/st/allocationIn/index.vue b/nladmin-ui/src/views/wms/st/allocationIn/index.vue new file mode 100644 index 0000000..c84ae7f --- /dev/null +++ b/nladmin-ui/src/views/wms/st/allocationIn/index.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/st/allocationIn/purchase.js b/nladmin-ui/src/views/wms/st/allocationIn/purchase.js new file mode 100644 index 0000000..ac45453 --- /dev/null +++ b/nladmin-ui/src/views/wms/st/allocationIn/purchase.js @@ -0,0 +1,50 @@ +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/107/' + 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 default { add, edit, del, get, issueReturnBill, print } diff --git a/nladmin-ui/src/views/wms/st/allocationOut/index.vue b/nladmin-ui/src/views/wms/st/allocationOut/index.vue new file mode 100644 index 0000000..bf547f3 --- /dev/null +++ b/nladmin-ui/src/views/wms/st/allocationOut/index.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/st/allocationOut/purchase.js b/nladmin-ui/src/views/wms/st/allocationOut/purchase.js new file mode 100644 index 0000000..b813bd8 --- /dev/null +++ b/nladmin-ui/src/views/wms/st/allocationOut/purchase.js @@ -0,0 +1,50 @@ +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/106/' + 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 default { add, edit, del, get, issueReturnBill, print } diff --git a/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue b/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue index 5bd8458..3936e8a 100644 --- a/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue +++ b/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue @@ -297,11 +297,13 @@ export default { const requestTypeMap = { '0001': '生产入库', '0005': '采购入库', + '102': '销售出库', '103': '采购入库', '0009': '手工入库', '1001': '销售出库', '0006': '生产领料', '0007': '库存调拨', + '106': '调拨出库', '107': '调拨入库', '109': '其他入库', '1005': '生产出库', diff --git a/nladmin-ui/src/views/wms/st/otherIn/index.vue b/nladmin-ui/src/views/wms/st/otherIn/index.vue new file mode 100644 index 0000000..3ff6fa7 --- /dev/null +++ b/nladmin-ui/src/views/wms/st/otherIn/index.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/st/otherIn/purchase.js b/nladmin-ui/src/views/wms/st/otherIn/purchase.js new file mode 100644 index 0000000..5b3947b --- /dev/null +++ b/nladmin-ui/src/views/wms/st/otherIn/purchase.js @@ -0,0 +1,50 @@ +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 default { add, edit, del, get, issueReturnBill, print } diff --git a/nladmin-ui/src/views/wms/st/otherOut/index.vue b/nladmin-ui/src/views/wms/st/otherOut/index.vue new file mode 100644 index 0000000..2fd081a --- /dev/null +++ b/nladmin-ui/src/views/wms/st/otherOut/index.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/st/otherOut/purchase.js b/nladmin-ui/src/views/wms/st/otherOut/purchase.js new file mode 100644 index 0000000..6d427c6 --- /dev/null +++ b/nladmin-ui/src/views/wms/st/otherOut/purchase.js @@ -0,0 +1,50 @@ +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/108/' + 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 default { add, edit, del, get, issueReturnBill, print } diff --git a/nladmin-ui/src/views/wms/st/purchase/index.vue b/nladmin-ui/src/views/wms/st/purchase/index.vue index 3093b98..25dddb2 100644 --- a/nladmin-ui/src/views/wms/st/purchase/index.vue +++ b/nladmin-ui/src/views/wms/st/purchase/index.vue @@ -118,7 +118,7 @@ export default { title: '采购入库单', optShow: { add: true, reset: true }, idField: 'id', - url: '/api/purchasemst', + url: '/api/purchasemst/103', crudMethod: { ...crudPurchase }, queryOnPresenterCreated: true }) diff --git a/nladmin-ui/src/views/wms/st/purchase/purchase.js b/nladmin-ui/src/views/wms/st/purchase/purchase.js index 858a091..ab9ab88 100644 --- a/nladmin-ui/src/views/wms/st/purchase/purchase.js +++ b/nladmin-ui/src/views/wms/st/purchase/purchase.js @@ -26,7 +26,7 @@ export function edit(data) { export function get(id) { return request({ - url: '/api/purchasemst/' + id, + url: '/api/purchasemst/103/' + id, method: 'get' }) }