From 591dad080684b0bd0a1735344b244bd89741ee53 Mon Sep 17 00:00:00 2001 From: zhaoyf <1783123481@qq.com> Date: Mon, 15 Jun 2026 13:39:25 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E9=87=87=E8=B4=AD=E5=8D=95=E5=9B=9E?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91=E7=BB=9F=E4=B8=80=E8=B5=B0=E5=9B=9E?= =?UTF-8?q?=E4=BC=A0=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/InboundEasAuditService.java | 10 -- .../impl/InboundEasAuditServiceImpl.java | 125 ------------------ .../service/impl/InboundPdaServiceImpl.java | 10 +- .../controller/PurchaseController.java | 8 +- .../purchase/service/PurchaseService.java | 2 +- .../dao/mapper/xml/PurchasemstMapper.xml | 2 +- .../service/impl/PurchaseServiceImpl.java | 51 +++++-- .../main/resources/config/application-dev.yml | 18 +-- .../src/views/wms/st/purchase/index.vue | 16 +-- .../src/views/wms/st/purchase/purchase.js | 6 +- pda/pda/src/views/ReceiveGroup.vue | 1 + 11 files changed, 76 insertions(+), 173 deletions(-) delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasAuditService.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasAuditServiceImpl.java diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasAuditService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasAuditService.java deleted file mode 100644 index 9515a18..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/InboundEasAuditService.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.nl.wms.ext_manage.purchase.service; - -import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; - -public interface InboundEasAuditService { - - void auditCompletedBills(); - - void auditSingleBill(Purchasemst mst); -} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasAuditServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasAuditServiceImpl.java deleted file mode 100644 index e083c88..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasAuditServiceImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.nl.wms.ext_manage.purchase.service.impl; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import lombok.extern.slf4j.Slf4j; -import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; -import org.nl.wms.ext_manage.purchase.service.InboundEasAuditService; -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.ext_manage.purchase.service.dto.EasAuditRequestDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; - -@Slf4j -@Service -public class InboundEasAuditServiceImpl implements InboundEasAuditService { - - @Value("${eas.webservice.wsdl:http://192.168.100.100:8080/ormrpc/services/WSNLWQFacade?wsdl}") - private String easWsdlUrl; - - @Autowired - private PurchasemstMapper purchasemstMapper; - - @Autowired - private PurchasedtlMapper purchasedtlMapper; - - @Override - @Transactional(rollbackFor = Exception.class) - public void auditCompletedBills() { - log.info("开始扫描已完成未审核的采购入库单..."); - - List billList = purchasemstMapper.selectList( - new QueryWrapper() - .eq("bill_status", PurchaseBillStatus.COMPLETED.getCode()) - ); - - if (ObjectUtil.isEmpty(billList)) { - log.info("没有需要审核的采购入库单"); - return; - } - - log.info("找到{}个需要审核的采购入库单", billList.size()); - - for (Purchasemst mst : billList) { - try { - auditSingleBill(mst); - } catch (Exception e) { - log.error("审核采购入库单失败, billId: {}", mst.getBill_id(), e); - purchasemstMapper.update(null, new LambdaUpdateWrapper() - .eq(Purchasemst::getBill_id, mst.getBill_id()) - .set(Purchasemst::getAudit_msg, e.getMessage())); - } - } - } - - @Override - public void auditSingleBill(Purchasemst mst) { - log.info("开始审核采购入库单, billId: {}, orderNo: {}", mst.getBill_id(), mst.getOrder_no()); - - List dtlList = purchasedtlMapper.selectList( - new QueryWrapper().eq("bill_id", mst.getBill_id()) - ); - - EasAuditRequestDto requestDto = new EasAuditRequestDto(); - requestDto.setType("WMS"); - requestDto.setMethod("DealBill"); - - EasAuditRequestDto.EasAuditDataDto dataDto = new EasAuditRequestDto.EasAuditDataDto(); - dataDto.setBillNo(mst.getOrder_no()); - - List entrys = new ArrayList<>(); - for (Purchasedtl dtl : dtlList) { - EasAuditRequestDto.EasAuditEntryDto entry = new EasAuditRequestDto.EasAuditEntryDto(); - entry.setSeq(Integer.valueOf(dtl.getItem_no())); - entrys.add(entry); - } - dataDto.setEntrys(entrys); - requestDto.setData(dataDto); - - String requestJson = JSON.toJSONString(requestDto); - log.info("审核请求参数: {}", requestJson); - - try { - String responseMsg = HttpRequest.post(easWsdlUrl) - .body(requestJson) - .execute().body(); - - log.info("审核响应结果: {}", responseMsg); - - JSONObject response = JSONObject.parseObject(responseMsg); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() - .eq(Purchasemst::getBill_id, mst.getBill_id()); - - Integer status = response.getInteger("status"); - if (status != null && status == 200) { - updateWrapper.set(Purchasemst::getBill_status, PurchaseBillStatus.AUDIT_SUCCESS.getCode()) - .set(Purchasemst::getAudit_msg, "审核成功"); - log.info("采购入库单审核成功, billId: {}", mst.getBill_id()); - } else { - updateWrapper.set(Purchasemst::getBill_status, PurchaseBillStatus.AUDIT_FAIL.getCode()) - .set(Purchasemst::getAudit_msg, response.getString("message")); - log.warn("采购入库单审核失败, billId: {}, message: {}", mst.getBill_id(), response.getString("message")); - } - - purchasemstMapper.update(null, updateWrapper); - } catch (Exception e) { - log.error("调用EAS审核接口异常, billId: {}", mst.getBill_id(), e); - purchasemstMapper.update(null, new LambdaUpdateWrapper() - .eq(Purchasemst::getBill_id, mst.getBill_id()) - .set(Purchasemst::getBill_status, PurchaseBillStatus.AUDIT_FAIL.getCode()) - .set(Purchasemst::getAudit_msg, "调用EAS审核接口异常: ")); - } - } -} 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 99aa092..2482082 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 @@ -148,7 +148,7 @@ public class InboundPdaServiceImpl implements InboundPdaService { List detailList = dto.getDetailList(); detailList.forEach((item)->{ List purchaseMatInfoVos = purchaseService.selectPdaInMat(MapOf.of("orderNo", item.getOrder_no(), - "materialCode", item.getSku_code())); + "itemNo", item.getItem_no())); if (purchaseMatInfoVos.isEmpty()){ throw new BadRequestException("组盘失败:单据:"+item.getOrder_no()+"物料:"+item.getSku_code()+"不存在"); } @@ -207,7 +207,10 @@ public class InboundPdaServiceImpl implements InboundPdaService { } Map parseMap = parseCode(code); List purchaseMatInfoVos = purchaseService.selectPdaInMat(MapOf.of("orderNo", parseMap.get("orderNo"), - "materialCode", parseMap.get("materialCode"))); + "itemNo", parseMap.get("itemNo"))); + if (purchaseMatInfoVos.isEmpty()){ + throw new BadRequestException("获取单据失败:未找到该物料信息"); + } if (purchaseMatInfoVos.size() > 1){ throw new BadRequestException("同一个采购单有重复物料"); } @@ -455,6 +458,9 @@ public class InboundPdaServiceImpl implements InboundPdaService { PurchaseListenerParams.DetailItem detailItem = new PurchaseListenerParams.DetailItem(); detailItem.setMaterialCode(plateDao.getMaterial_code()); detailItem.setQty(plateDao.getQty()); + List detailItemList = new ArrayList<>(); + detailItemList.add(detailItem); + purchaseListenerParams.setDetailItem(detailItemList); pushEvent(purchaseListenerParams); } 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 c9ebedf..e2ef40d 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 @@ -57,10 +57,10 @@ public class PurchaseController { return new ResponseEntity<>(HttpStatus.OK); } - @PutMapping("/forceAudit") - @Log("强制回传EAS审核") - public ResponseEntity forceAudit(@RequestBody Set ids) { - purchaseService.forceAudit(ids); + @PutMapping("/issueReturnBill") + @Log("下发回传单") + public ResponseEntity issueReturnBill(@RequestBody Set ids) { + purchaseService.issueReturnBill(ids); return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java index 7f353e3..ed0fba0 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java @@ -26,7 +26,7 @@ public interface PurchaseService extends IService { void deleteAll(Set ids); - void forceAudit(Set ids); + void issueReturnBill(Set ids); List pdaInboundSelectMatInfo(Map whereJson); 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 3971c83..c3452f6 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 @@ -76,7 +76,7 @@ LEFT JOIN st_ivt_purchasedtl d ON m.bill_id = d.bill_id WHERE 1=1 AND m.order_no = #{param.orderNo} - AND d.sku_code = #{param.materialCode} + 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/impl/PurchaseServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java index 5abdee6..6d7b351 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java @@ -12,7 +12,8 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo; -import org.nl.wms.ext_manage.purchase.service.InboundEasAuditService; +import com.alibaba.fastjson.JSON; +import org.nl.common.utils.IdUtil; import org.nl.wms.pm_manage.purchase.service.PurchaseService; import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl; import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; @@ -20,6 +21,11 @@ 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.pm_manage.purchase.service.dto.PurchaseDto; import org.nl.wms.pm_manage.purchase.service.vo.PurchasemstListVo; +import org.nl.wms.ext_manage.purchase.service.dto.EasAuditRequestDto; +import org.nl.wms.warehouse_manage.enums.IOSEnum; +import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService; +import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn; +import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,7 +43,7 @@ public class PurchaseServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { @@ -126,18 +132,47 @@ public class PurchaseServiceImpl extends ServiceImpl ids) { + @Transactional(rollbackFor = Exception.class) + public void issueReturnBill(Set ids) { List mstList = purchasemstMapper.selectBatchIds(ids); if (ObjectUtil.isEmpty(mstList)) { throw new BadRequestException("未找到选中的单据"); } for (Purchasemst mst : mstList) { - log.info("强制回传EAS审核, billId: {}, 当前状态: {}", mst.getBill_id(), mst.getBill_status()); - try { - inboundEasAuditService.auditSingleBill(mst); - } catch (Exception e) { - log.error("强制回传EAS审核失败, billId: {}", mst.getBill_id(), e); + List dtlList = purchasedtlMapper.selectList( + new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, mst.getBill_id())); +// boolean allMatch = dtlList.stream() +// .allMatch(d -> d.getQty() != null && d.getInstock_qty() != null +// && d.getQty().compareTo(d.getInstock_qty()) == 0); +// if (!allMatch) { +// continue; +// } + List entryList = new ArrayList<>(); + for (Purchasedtl dtl : dtlList) { + EasAuditRequestDto.EasAuditEntryDto entry = new EasAuditRequestDto.EasAuditEntryDto(); + entry.setSeq(Integer.parseInt(dtl.getItem_no())); + entry.setQty(dtl.getInstock_qty()); + entry.setEntryId(dtl.getEntry_id()); + entryList.add(entry); } + EasAuditRequestDto dto = new EasAuditRequestDto(); + dto.setType("WMS"); + dto.setMethod("DealBill"); + EasAuditRequestDto.EasAuditDataDto data = new EasAuditRequestDto.EasAuditDataDto(); + data.setBillType(mst.getOrder_type()); + data.setBillNo(mst.getOrder_no()); + data.setEntrys(entryList); + dto.setData(data); + + PmStockReturn stockReturn = new PmStockReturn(); + stockReturn.setRequest_Id(IdUtil.getStringId()); + stockReturn.setCreate_time(cn.hutool.core.date.DateUtil.now()); + stockReturn.setRequest_type(IOSEnum.BILL_TYPE.code("采购入库")); + stockReturn.setStatus(StockReturnStatusEnum.TODO.getCode()); + stockReturn.setRequest_data(JSON.toJSONString(dto)); + pmStockReturnService.save(stockReturn); + log.info("下发回传单成功, billId: {}, requestId: {}, 明细数: {}", mst.getBill_id(), stockReturn.getRequest_Id(), dtlList.size()); } } diff --git a/nladmin-system/wms-server/src/main/resources/config/application-dev.yml b/nladmin-system/wms-server/src/main/resources/config/application-dev.yml index 5380bf1..d47a57b 100644 --- a/nladmin-system/wms-server/src/main/resources/config/application-dev.yml +++ b/nladmin-system/wms-server/src/main/resources/config/application-dev.yml @@ -33,8 +33,8 @@ spring: datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_nlwq}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true - url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_standardv2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true + url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_nlwq}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true +# url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_standardv2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true username: ${DB_USER:root} password: ${DB_PWD:123456} druid: @@ -56,7 +56,8 @@ spring: validation-query: SELECT 1 # MySQL 用 SELECT 1,Oracle 才用 select 1 from dual # 监控统计(连接池层面的监控) - filters: stat,wall # 修正:stat是监控统计,wall是SQL防火墙 + filters: + DruidFilter,stat # 修正:stat是监控统计,wall是SQL防火墙 log-abandoned: false eas: driver-class-name: com.mysql.cj.jdbc.Driver @@ -70,7 +71,8 @@ spring: test-while-idle: true validation-query: SELECT 1 # 修正:MySQL 用 SELECT 1 # 如果 eas 也需要监控,添加下面两行(可选) - filters: stat,wall + filters: + DruidFilter,stat log-abandoned: false redis: #数据库索引 @@ -155,10 +157,4 @@ sa-token: is-print: false lucene: index: - path: D:\lms\lucene\index -eas: - webservice: - wsdl: http://192.168.100.100:8080/ormrpc/services/WSNLWQFacade?wsdl - namespace: http://ws.eas.kingdee.com/ -inbound: - liku-codes: LK01 \ No newline at end of file + path: D:\lms\lucene\index \ No newline at end of file diff --git a/nladmin-ui/src/views/wms/st/purchase/index.vue b/nladmin-ui/src/views/wms/st/purchase/index.vue index 9e2703f..9bf7161 100644 --- a/nladmin-ui/src/views/wms/st/purchase/index.vue +++ b/nladmin-ui/src/views/wms/st/purchase/index.vue @@ -27,7 +27,7 @@ - 强制回传 + 下发回传单 @@ -60,8 +60,8 @@ {{ formatDate(scope.row.modify_date) }} - - + + @@ -164,7 +164,7 @@ export default { querytable() { this.crud.toQuery() }, - forceAudit() { + issueReturnBill() { const selections = this.crud.selections if (!selections || selections.length === 0) { this.crud.notify('请至少选择一条单据', CRUD.NOTIFICATION_TYPE.INFO) @@ -172,16 +172,16 @@ export default { } const ids = selections.map(s => s.id) const billIds = selections.map(s => s.bill_id).join('、') - this.$confirm('确认将以下单据强制回传EAS审核?\n' + billIds, '提示', { + this.$confirm('确认下发以下单据的回传单?\n' + billIds, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { - crudPurchase.forceAudit(ids).then(() => { - this.crud.notify('回传完成', CRUD.NOTIFICATION_TYPE.SUCCESS) + crudPurchase.issueReturnBill(ids).then(() => { + this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.toQuery() }).catch(() => { - this.crud.notify('回传失败', CRUD.NOTIFICATION_TYPE.ERROR) + this.crud.notify('下发失败', CRUD.NOTIFICATION_TYPE.ERROR) }) }).catch(() => {}) } diff --git a/nladmin-ui/src/views/wms/st/purchase/purchase.js b/nladmin-ui/src/views/wms/st/purchase/purchase.js index 42df952..add1081 100644 --- a/nladmin-ui/src/views/wms/st/purchase/purchase.js +++ b/nladmin-ui/src/views/wms/st/purchase/purchase.js @@ -31,12 +31,12 @@ export function get(id) { }) } -export function forceAudit(data) { +export function issueReturnBill(data) { return request({ - url: '/api/purchasemst/forceAudit', + url: '/api/purchasemst/issueReturnBill', method: 'put', data }) } -export default { add, edit, del, get, forceAudit } +export default { add, edit, del, get, issueReturnBill } diff --git a/pda/pda/src/views/ReceiveGroup.vue b/pda/pda/src/views/ReceiveGroup.vue index 03f20a2..145d34d 100644 --- a/pda/pda/src/views/ReceiveGroup.vue +++ b/pda/pda/src/views/ReceiveGroup.vue @@ -184,6 +184,7 @@ async function onSubmit() { order_no: item.order_no, sku_code: item.sku_code, batch_no: item.batch_no, + item_no: item.item_no, qty: item.qty, })) submitting.value = true