From 66c2b31255f83b9d5a514457b3b88950b330bea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Mar 2026 14:08:36 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat(dependency):=20=E6=B7=BB=E5=8A=A0Redis?= =?UTF-8?q?son=E4=BE=9D=E8=B5=96=E5=B9=B6=E4=BC=98=E5=8C=96=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在nflg-wms-srm-receive模块中添加Redisson分布式锁依赖 - 在GlobalRestControllerAdvice中重构异常日志记录方式,统一使用printLog方法 - 引入ExceptionUtil工具类增强异常堆栈信息输出 - 在TestController中添加业务异常测试接口用于验证异常处理逻辑 - 修复DeploySitTest中字符串截取方法的参数间距问题 --- .../wms/admin/controller/TestController.java | 8 +++++++ nflg-wms-srm-receive/pom.xml | 5 +++++ .../nflg/wms/srm/receive/DeploySitTest.java | 2 +- .../advice/GlobalRestControllerAdvice.java | 21 ++++++++++++------- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TestController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TestController.java index 94feb6ce..bbd1cc0a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TestController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TestController.java @@ -5,10 +5,12 @@ import com.nflg.wms.admin.service.SapService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.dto.LdapDepartmentDTO; import com.nflg.wms.common.pojo.dto.LdapUserDTO; +import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.service.ILanguageService; import com.nflg.wms.starter.BaseController; import com.sap.conn.jco.JCoException; import jakarta.annotation.Resource; +import jakarta.validation.metadata.ValidateUnwrappedValue; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -76,4 +78,10 @@ public class TestController extends BaseController { String ids=basdeSerialNumberControllerService.generateSerialNumber(0); return ApiResult.success(ids); } + + @GetMapping("/businessError") + public void testThrowBusinessError() throws Exception { + int a=0; + Integer b =100/a; + } } \ No newline at end of file diff --git a/nflg-wms-srm-receive/pom.xml b/nflg-wms-srm-receive/pom.xml index 8da2076c..a4eb0f4e 100644 --- a/nflg-wms-srm-receive/pom.xml +++ b/nflg-wms-srm-receive/pom.xml @@ -38,6 +38,11 @@ org.springframework.boot spring-boot-starter-actuator + + org.redisson + redisson-spring-boot-starter + 3.52.0 + com.sap.conn.jco sapjco3 diff --git a/nflg-wms-srm-receive/src/test/java/com/nflg/wms/srm/receive/DeploySitTest.java b/nflg-wms-srm-receive/src/test/java/com/nflg/wms/srm/receive/DeploySitTest.java index 195f99e7..0adc7bdc 100644 --- a/nflg-wms-srm-receive/src/test/java/com/nflg/wms/srm/receive/DeploySitTest.java +++ b/nflg-wms-srm-receive/src/test/java/com/nflg/wms/srm/receive/DeploySitTest.java @@ -79,7 +79,7 @@ public class DeploySitTest { } private String getRemoteFileMD5(SSHUtil sshUtil, String remotePath) throws Exception { - String md5 = StrUtil.subPre(sshUtil.execWithReturn("md5sum " + remotePath),32); + String md5 = StrUtil.subPre(sshUtil.execWithReturn("md5sum " + remotePath), 32); printInfo("远程文件MD5为" + md5); return md5; } diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java index 1238f63a..e58bf4b0 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java @@ -1,6 +1,7 @@ package com.nflg.wms.starter.advice; import cn.dev33.satoken.exception.NotLoginException; +import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.common.constant.Constant; import com.nflg.wms.common.constant.STATE; @@ -31,30 +32,30 @@ public class GlobalRestControllerAdvice { @ExceptionHandler(Exception.class) public ApiResult handleAllExceptions(Exception ex) { - log.error("服务器内部错误: ", ex); + printLog("服务器内部错误", ex); return ApiResult.error(STATE.BusinessError, "服务器内部错误,错误号:" + MDC.get(Constant.TRACE_ID)); } @ExceptionHandler(NflgException.class) public ResponseEntity handleNflgException(NflgException ex) { if (ex.getState() == STATE.LoginError) { - log.error("登录失效: ", ex); + printLog("登录失效", ex); return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMsg()); } else { - log.error("业务错误: ", ex); + printLog("业务错误", ex); return ResponseEntity.ok().body(ApiResult.error(ex.getState(), ex.getMsg())); } } @ExceptionHandler(ConstraintViolationException.class) public ApiResult handleConstraintViolationException(ConstraintViolationException ex) { - log.error("数据校验失败: ", ex); + printLog("数据校验失败", ex); return ApiResult.error(STATE.ParamErr, "数据校验失败: " + StrUtil.join(",", ex.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.toList()))); } @ExceptionHandler(MethodArgumentNotValidException.class) public ApiResult handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) { - log.error("数据校验失败: ", ex); + printLog("数据校验失败", ex); List errors = new ArrayList<>(); ex.getBindingResult().getAllErrors().forEach(error -> { String fieldName = ((FieldError) error).getField(); @@ -73,19 +74,23 @@ public class GlobalRestControllerAdvice { @ExceptionHandler(NoResourceFoundException.class) @ResponseStatus(HttpStatus.NOT_FOUND) public ApiResult handleNoResourceFoundException(NoResourceFoundException ex) { - log.error("请求的地址无效: ", ex); + printLog("请求的地址无效", ex); return ApiResult.error(STATE.BusinessError, "请求的地址无效:" + ex.getResourcePath()); } @ExceptionHandler(SAPException.class) public ApiResult handleSAPException(SAPException ex) { - log.error("SAP错误: ", ex); + printLog("SAP错误", ex); return ApiResult.error(ex.getState(), "SAP错误:" + ex.getMessage()); } @ExceptionHandler(DataAlertException.class) public ApiResult handleDataAlertException(DataAlertException ex) { - log.error("返回数据的错误: ", ex); + printLog("返回数据的错误", ex); return ApiResult.errorWithExtras(ex.getState(), ex.getObj()); } + + private void printLog(String msg, Throwable ex) { + log.error("{}:{},{}", msg, ex.getMessage(), ExceptionUtil.stacktraceToString(ex)); + } } \ No newline at end of file From 96db2fb197a7a3182a3238628c6ac5bc9169010b Mon Sep 17 00:00:00 2001 From: zhangke Date: Tue, 24 Mar 2026 16:17:37 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=80=80=E5=BA=93?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/NormalPGIController.java | 1 + .../controller/OutPurchaseController.java | 1 + .../controller/PurchaseReturnController.java | 60 ++++++++++++++----- .../common/pojo/dto/ZWM3A24ItemReturnDTO.java | 33 +++++----- .../wms/common/pojo/dto/ZWM3A25ItemDTO.java | 58 +++++++++--------- .../common/pojo/dto/ZWM3A25ItemReturnDTO.java | 4 +- .../wms/common/pojo/qo/QRCodeSearchQO.java | 2 +- .../entity/WmsReturnRequestItem.java | 27 +++++---- .../wms/repository/CodeGeneratorTest.java | 2 +- 9 files changed, 110 insertions(+), 78 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java index c995183f..fdb2b032 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java @@ -1651,6 +1651,7 @@ public class NormalPGIController extends BaseController { // 首先判断当前包是否已经收货了 WmsPackage pacageScanVO = wmsPackageService.lambdaQuery().eq(WmsPackage::getPackageCode, request.getPackageCode()) .one(); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getItems())).throwMessage("没有收货的物料信息"); VUtil.trueThrowBusinessError(ObjectUtil.isNull(pacageScanVO)).throwMessage("打包码不存在"); VUtil.trueThrowBusinessError(pacageScanVO.getPackageStatus() == 0).throwMessage("此打包码尚未打包"); VUtil.trueThrowBusinessError(pacageScanVO.getPackageStatus() == 2).throwMessage("此打包码已完成收货"); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java index d8089f66..9a249192 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java @@ -109,6 +109,7 @@ public class OutPurchaseController extends BaseController { .gt(WmsReturnRequestItem::getLeft, 0) .list(); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("所有物料均已完成"); + order.setPoNum(items.get(0).getPoNumberNew()); ZWM3A05VO vo = new ZWM3A05VO() .setPurchaseOrderId(order.getId()) .setLifnr(order.getSupplierCode()) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java index 4f559779..6ea485c8 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java @@ -76,6 +76,7 @@ public class PurchaseReturnController extends BaseController { /** * 获取送货单的入库信息 + * * @param request * @return */ @@ -93,6 +94,7 @@ public class PurchaseReturnController extends BaseController { /** * 获取退货申请单详情 + * * @param request * @return */ @@ -109,6 +111,7 @@ public class PurchaseReturnController extends BaseController { /** * 获取送货单的入库信息 + * * @param request * @return */ @@ -121,6 +124,7 @@ public class PurchaseReturnController extends BaseController { /** * 新增退货申请单 + * * @param request * @return */ @@ -140,6 +144,7 @@ public class PurchaseReturnController extends BaseController { /** * 删除申请单 + * * @param request * @return */ @@ -160,6 +165,7 @@ public class PurchaseReturnController extends BaseController { /** * 审核申请单 + * * @param request * @return */ @@ -193,7 +199,7 @@ public class PurchaseReturnController extends BaseController { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(returnRequestItems)) .throwMessage("没有有效的数据"); if (request.getApprovalStatus().equals(1)) { - if (request.getDocumentType().equals(1)) { //25 + if (request.getDocumentType().equals(1)) { //25 仅退货 ZWM3A25HeadDTO headDTO25 = new ZWM3A25HeadDTO(); List itemDTOList25 = new ArrayList<>(); headDTO25.setReturnType("2"); @@ -212,7 +218,18 @@ public class PurchaseReturnController extends BaseController { } ZWM3A25ReturnDTO zwm3a25ReturnDTO = sapService.ZWM3A25(headDTO25, itemDTOList25); log.info(" zwm3a25ReturnDTO: " + JSONUtil.toJsonStr(zwm3a25ReturnDTO)); - } else if (request.getDocumentType().equals(2)) { //24 + zwm3a25ReturnDTO.getItemReturnDTOList().forEach(item -> { + String materialNo = item.getMatnr().replace("00000000",""); + WmsReturnRequestItem dbItem = returnRequestItems.stream() + .filter(it -> StrUtil.equals(it.getMaterialCode(), materialNo) + ) + .findFirst() + .get(); + dbItem.setPoLineNumberNew(item.getEbelp()); + dbItem.setPoNumberNew(item.getEbeln()); + }); + returnRequestItemService.updateBatchById(returnRequestItems); + } else if (request.getDocumentType().equals(2)) { //24 退换货 ZWM3A24HeadDTO headDTO24 = new ZWM3A24HeadDTO(); List itemDTOList24 = new ArrayList<>(); headDTO24.setReturnType("1"); @@ -230,22 +247,24 @@ public class PurchaseReturnController extends BaseController { } ZWM3A24ReturnDTO retrunDto24 = sapService.ZWM3A24(headDTO24, itemDTOList24); log.info(" zwm3a24ReturnDTO: " + JSONUtil.toJsonStr(retrunDto24)); - retrunDto24.getItemReturnDTOList().forEach(item -> { - WmsReturnRequestItem dbItem=returnRequestItems.stream() - .filter(it -> StrUtil.equals(it.getMaterialCode(), item.getMatnr()) - && Objects.equals(Integer.parseInt(it.getPoLineNumber()), item.getEbelp_old()) - ) - .findFirst() - .get(); - dbItem.setPoLineNumberNew(item.getEbelp_new()); - }); - returnRequestItemService.updateBatchById(returnRequestItems); + for (ZWM3A24ItemReturnDTO item : retrunDto24.getItemReturnDTOList()) { + if (Objects.equals(item.getRetpo(), "X")) { + String materialNo = item.getMatnr().replace("00000000",""); + WmsReturnRequestItem dbItem = returnRequestItems.stream() + .filter(it -> it.getMaterialCode().equals(materialNo)) + .findFirst().orElse( null); + dbItem.setPoLineNumberNew(item.getEbelp()); + dbItem.setPoNumberNew(item.getEbeln()); + returnRequestItemService.updateBatchById(returnRequestItems); + } + } + } } //修改状态 returnRequestService.lambdaUpdate() .set(WmsReturnRequest::getApprovalStatus, request.getApprovalStatus()) - .set(WmsReturnRequest::getDocumentType,request.getDocumentType()) + .set(WmsReturnRequest::getDocumentType, request.getDocumentType()) .set(WmsReturnRequest::getApproveTime, LocalDateTime.now()) .set(WmsReturnRequest::getApproverId, UserUtil.getUserId()) .set(WmsReturnRequest::getApproverName, UserUtil.getUserName()) @@ -256,6 +275,7 @@ public class PurchaseReturnController extends BaseController { /** * 码验证 + * * @param qrCodeMaster * @return */ @@ -301,6 +321,7 @@ public class PurchaseReturnController extends BaseController { /** * 保存申请单 + * * @return */ private List SaveApply(List purchaseReturnDTOList, Short dataSource) { @@ -357,6 +378,7 @@ public class PurchaseReturnController extends BaseController { /** * 申请退货(PDA) + * * @param request * @return */ @@ -455,17 +477,17 @@ public class PurchaseReturnController extends BaseController { if (CollectionUtil.isEmpty(inventoryLockVOS)) { return ApiResult.success(); } else { - throw new DataAlertException(STATE.OutOfStock, inventoryLockVOS); + return ApiResult.errorWithExtras(STATE.OutOfStock, inventoryLockVOS); } } /** * 扫码获取扫码信息 + * * @param request * @return * @author - * */ @PostMapping("pda/scan") @ApiMark(moduleName = "扫码", apiName = "扫码获取扫码信息") @@ -485,6 +507,14 @@ public class PurchaseReturnController extends BaseController { @GetMapping("exportTicket") public void exportTicket(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { WmsReturnRequest order = returnRequestService.getById(id); + List orderItem = returnRequestItemService.lambdaQuery() + .eq(WmsReturnRequestItem::getApplicationId, id) + .list(); + if(CollectionUtil.isNotEmpty(orderItem)) + { + order.setPoNum(orderItem.get(0).getPoNumberNew()); + } + VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("申请单不存在"); VUtil.trueThrowBusinessError(order.getApprovalStatus() != 1).throwMessage("申请单未审核通过"); UserSupplier supplier = userSupplierService.getByCode(order.getSupplierCode()); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A24ItemReturnDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A24ItemReturnDTO.java index de616b18..672d410b 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A24ItemReturnDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A24ItemReturnDTO.java @@ -12,35 +12,30 @@ public class ZWM3A24ItemReturnDTO{ */ private String werks; - /** - * 原订单行号 - */ - private Integer ebelp_old; - /** - * 新单行号 + * 定单行号 */ - private Integer ebelp_new; + private Integer ebelp; /** * 库存地点 */ private String lgort; -// /** -// * 物料描述(短文本) -// */ -// private String maktx; + /** + * 物料描述(短文本) + */ + private String maktx; -// /** -// * 退货项目 -// */ -// private String retpo; + /** + * 退货项目 + */ + private String retpo; -// /** -// * 采购凭证号 -// */ -// private String ebeln; + /** + * 采购凭证号 + */ + private String ebeln; /** * 物料号 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemDTO.java index ad31bf1c..d541c50b 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemDTO.java @@ -5,39 +5,39 @@ import lombok.Data; import java.math.BigDecimal; @Data -public class ZWM3A25ItemDTO{ +public class ZWM3A25ItemDTO { - /** - * 工厂 - */ - private String werks; + /** + * 工厂 + */ + private String werks; - /** - * 数量 - */ - private BigDecimal menge_Ret; + /** + * 数量 + */ + private BigDecimal menge_Ret; - /** - * 消息 - */ - private String msg; + /** + * 消息 + */ + private String msg; - /** - * 库存地点 - */ - private String lgort; + /** + * 库存地点 + */ + private String lgort; - /** - * 新单行号 - */ - //private String ebelpNew; - /** - * 物料号 - */ - private String matnr; + /** + * 新单行号 + */ + private String ebelpNew; + /** + * 物料号 + */ + private String matnr; - /** - * 原订单行号 - */ - private Integer ebelp_old; + /** + * 原订单行号 + */ + private Integer ebelp_old; } \ No newline at end of file diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemReturnDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemReturnDTO.java index 9f6220ba..0a98c6d3 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemReturnDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM3A25ItemReturnDTO.java @@ -11,9 +11,9 @@ public class ZWM3A25ItemReturnDTO{ private String werks; /** - * 退货单明细 + * 新的采购单行号 */ - private String ebelp; + private Integer ebelp; /** * 库存地点 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java index 3c54cede..64289072 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java @@ -11,7 +11,7 @@ import java.util.List; @Accessors(chain = true) public class QRCodeSearchQO { /** - * 包装编号 + * 物料码编号 */ @NotNull @NotBlank diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java index f539e82d..c451deb8 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java @@ -78,17 +78,6 @@ public class WmsReturnRequestItem implements Serializable { */ private BigDecimal requestQuantity; - /** - * 剩余数量 - */ - @TableField(value = "\"left\"") - private BigDecimal left; - - /** - * sap过账的行号 - */ - private Integer poLineNumberNew; - /** * 出库状态 */ @@ -128,4 +117,20 @@ public class WmsReturnRequestItem implements Serializable { * 单位 */ private String unit; + + /** + * 剩余数量 + */ + @TableField(value ="\"left\"") + private BigDecimal left; + + /** + * sap过账的行号 + */ + private Integer poLineNumberNew; + + /** + * 新的采购单号 + */ + private String poNumberNew; } diff --git a/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java b/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java index 861e4511..3247b0f1 100644 --- a/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java +++ b/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java @@ -33,7 +33,7 @@ public class CodeGeneratorTest { ) .strategyConfig(builder -> { builder - .addInclude("opt_record") //只生成指定表 + .addInclude("wms_return_request_item") //只生成指定表 .entityBuilder().idType(IdType.ASSIGN_ID) .enableLombok() .enableChainModel() From 680269fea53b222d2471c96face396ab4f034929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Mar 2026 16:24:13 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=A1=B9=E6=95=B0=E9=87=8F=E4=BF=AE=E6=94=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在ApplyReturnRequestItemVO中添加剩余数量和领料数量最小值字段 - 在OutAssistanceItemVO、OutCostcenterInfoItemVO中添加领料数量最小值计算逻辑 - 在OutProduceInfoItemVO中添加申请数量最小值计算逻辑 - 新增UpdateItemNumRequest请求类用于接收数量修改参数 - 在OutAssistanceController、OutCostCenterController、OutProduceController中添加updateItemNum接口 - 修复OutProduceController中解锁库存方法的注释问题 - 在测试类中添加数量计算验证逻辑 --- .../controller/OutAssistanceController.java | 19 ++++++- .../controller/OutCostCenterController.java | 17 ++++++ .../controller/OutProduceController.java | 52 +++++++++++++------ .../pojo/request/UpdateItemNumRequest.java | 21 ++++++++ .../test/java/com/nflg/wms/admin/ATest.java | 28 +++++++--- .../pojo/vo/ApplyReturnRequestItemVO.java | 15 ++++++ .../common/pojo/vo/OutAssistanceItemVO.java | 9 ++++ .../pojo/vo/OutCostcenterInfoItemVO.java | 9 ++++ .../common/pojo/vo/OutProduceInfoItemVO.java | 9 ++++ 9 files changed, 153 insertions(+), 26 deletions(-) create mode 100644 nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java index c2ab64d6..0efd8afa 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -168,6 +169,22 @@ public class OutAssistanceController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutAssistanceItem item = outAssistanceItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + outAssistanceItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ @@ -433,7 +450,7 @@ public class OutAssistanceController extends BaseController { ); Map> dmaps = records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey7)); OptRecordDTO optRecordDTO = new OptRecordDTO(); - optRecordDTO.setOperationType((short)1); + optRecordDTO.setOperationType((short) 1); optRecordDTO.setOrderId(order.getNo()); optRecordService.add(optRecordDTO); SubcontractedOrderConfirmDTO dto = sapService.zwm3a04(new SubcontractedOrderConfirmQO() diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java index 21e736df..6a9c739d 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -171,6 +172,22 @@ public class OutCostCenterController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutCostcenterItem item = outCostcenterItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + outCostcenterItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java index 74998d07..f7309e16 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -267,23 +268,25 @@ public class OutProduceController extends BaseController { return ApiResult.success(outProduceService.search(request)); } - /** - * 解锁库存(根据订单) - */ - @PostMapping("0/releaseNumByOrder") - public ApiResult releaseNumByOrder(@Valid @RequestBody @NotEmpty List ids) { - outProduceService.releaseNum(ids); - return ApiResult.success(); - } - - /** - * 解锁库存(根据明细) - */ - @PostMapping("0/releaseNumByItem") - public ApiResult releaseNumByItem(@Valid @RequestBody @NotEmpty List ids) { - outProduceItemService.releaseNum(ids); - return ApiResult.success(); - } +// /** +// * 解锁库存(根据订单) +// * @deprecated 不需要这个方法了 +// */ +// @PostMapping("0/releaseNumByOrder") +// public ApiResult releaseNumByOrder(@Valid @RequestBody @NotEmpty List ids) { +// outProduceService.releaseNum(ids); +// return ApiResult.success(); +// } +// +// /** +// * 解锁库存(根据明细) +// * @deprecated 不需要这个方法了 +// */ +// @PostMapping("0/releaseNumByItem") +// public ApiResult releaseNumByItem(@Valid @RequestBody @NotEmpty List ids) { +// outProduceItemService.releaseNum(ids); +// return ApiResult.success(); +// } /** * 修改备注 @@ -321,6 +324,21 @@ public class OutProduceController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutProduceItem item = outProduceItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + VUtil.trueThrowBusinessError(request.getNum().compareTo(item.getNum()) < 0).throwMessage("数量不能小于" + item.getNum()); + BigDecimal difference = request.getNum().subtract(item.getSqsl()); + item.setLockNum(item.getLockNum().add(difference)); + item.setSqsl(request.getNum()); + outProduceItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java new file mode 100644 index 00000000..80571aec --- /dev/null +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java @@ -0,0 +1,21 @@ +package com.nflg.wms.admin.pojo.request; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class UpdateItemNumRequest { + + @NotNull + private Long id; + + /** + * 新的数量 + */ + @NotNull + @Min(value = 0) + private BigDecimal num; +} diff --git a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java index 67f7e921..e54fc93b 100644 --- a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java +++ b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java @@ -3,26 +3,38 @@ package com.nflg.wms.admin; import cn.hutool.core.util.StrUtil; import com.nflg.wms.common.util.DateTimeUtil; import org.junit.jupiter.api.Test; +import org.springframework.util.Assert; +import java.math.BigDecimal; import java.time.LocalDateTime; public class ATest { @Test - public void test1(){ - Long index=2L; - System.out.println("K"+ StrUtil.padPre(String.valueOf(index),6,"0")); + public void test1() { + Long index = 2L; + System.out.println("K" + StrUtil.padPre(String.valueOf(index), 6, "0")); } @Test - public void test2(){ - String index="0000"; - System.out.println(StrUtil.removeAllPrefix(index,"0")); + public void test2() { + String index = "0000"; + System.out.println(StrUtil.removeAllPrefix(index, "0")); } @Test - public void test3(){ - String date=DateTimeUtil.format(LocalDateTime.now(), "yyMMdd"); + public void test3() { + String date = DateTimeUtil.format(LocalDateTime.now(), "yyMMdd"); System.out.println(date); } + + @Test + public void test4() { + BigDecimal num1 = new BigDecimal("5"); + BigDecimal num2 = new BigDecimal("2"); + BigDecimal left = new BigDecimal("3"); + BigDecimal a = left.add(num2.subtract(num1)); + System.out.println(a); + Assert.isTrue(a.compareTo(BigDecimal.ZERO) == 0, "数量错误"); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java index 74aa218b..5d8c34c0 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java @@ -1,5 +1,6 @@ package com.nflg.wms.common.pojo.vo; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import lombok.experimental.Accessors; @@ -56,6 +57,20 @@ public class ApplyReturnRequestItemVO { */ private BigDecimal requestQuantity; + /** + * 剩余数量 + */ + private BigDecimal left; + + /** + * 领料数量最小值 + */ + private BigDecimal requestQuantityLimit; + + public BigDecimal getRequestQuantityLimit() { + return requestQuantity.subtract(left); + } + /** * 出库状态 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java index 6d4803c5..8da3c672 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java @@ -111,6 +111,15 @@ public class OutAssistanceItemVO { */ private BigDecimal left; + /** + * 领料数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return num.subtract(left); + } + /** * 发货仓库 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java index b3f313d2..a31122cd 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java @@ -105,4 +105,13 @@ public class OutCostcenterInfoItemVO { * 待领数量 */ private BigDecimal left; + + /** + * 领料数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return num.subtract(left); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java index 98bf605a..a9041eb1 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java @@ -126,6 +126,15 @@ public class OutProduceInfoItemVO { */ private BigDecimal lockNum; + /** + * 申请数量最小值 + */ + private BigDecimal sqslLimit; + + public BigDecimal getSqslLimit() { + return num; + } + /** * 已领数量 */ From b4cdc6387eed6865d82414d476474ecdbf18f43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Mar 2026 16:47:13 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=A1=B9=E6=95=B0=E9=87=8F=E4=BF=AE=E6=94=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在PurchaseReturnController中新增updateItemNum方法用于修改采购退货订单项数量 - 在TransferCompanyController中新增updateItemNum方法用于修改转储公司订单项数量 - 在TransferFactoryController中新增updateItemNum方法用于修改工厂调拨订单项数量 - 新增UpdateItemNumRequest请求类用于接收数量修改参数 - 添加业务逻辑验证确保修改后的数量不低于最小限制值 - 更新TransferCompanyItemVO和TransferFactoryItemVO添加数量限制相关字段 --- .../controller/PurchaseReturnController.java | 17 +++++++++++++++++ .../controller/TransferCompanyController.java | 17 +++++++++++++++++ .../controller/TransferFactoryController.java | 17 +++++++++++++++++ .../common/pojo/vo/TransferCompanyItemVO.java | 9 +++++++++ .../common/pojo/vo/TransferFactoryItemVO.java | 9 +++++++++ 5 files changed, 69 insertions(+) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java index 6ea485c8..6a257ea9 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; import com.nflg.wms.admin.service.SapService; import com.nflg.wms.admin.util.PdfGeneratorUtil; @@ -109,6 +110,22 @@ public class PurchaseReturnController extends BaseController { return ApiResult.success(vos); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsReturnRequestItem item = returnRequestItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getRequestQuantity().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getRequestQuantity()); + item.setLeft(item.getLeft().add(difference)); + item.setRequestQuantity(request.getNum()); + returnRequestItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取送货单的入库信息 * diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java index bcb76e17..48f08c4e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java @@ -10,6 +10,7 @@ import com.nflg.wms.admin.pojo.dto.PdfPageDTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17Item2DTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InMaterialScanRecordRespository; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; @@ -223,6 +224,22 @@ public class TransferCompanyController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsTransferCompanyItem item = transferCompanyItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + transferCompanyItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取转储单(PDA使用) */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java index 4135f831..152d4168 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InMaterialScanRecordRespository; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; @@ -221,6 +222,22 @@ public class TransferFactoryController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsTransferFactoryItem item = transferFactoryItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + transferFactoryItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取调拨单(PDA使用) */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferCompanyItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferCompanyItemVO.java index 2ff377b7..b665271a 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferCompanyItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferCompanyItemVO.java @@ -140,6 +140,15 @@ public class TransferCompanyItemVO { return num.subtract(left); } + /** + * 转储数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return outNum; + } + /** * 已入库数量 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferFactoryItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferFactoryItemVO.java index 344f6f83..b2321bb1 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferFactoryItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TransferFactoryItemVO.java @@ -125,6 +125,15 @@ public class TransferFactoryItemVO { return num.subtract(left); } + /** + * 调库数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return num.subtract(left); + } + /** * 已入库数量 */ From bf8e9baea9da29978e86103634b982d0c0fe0d28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Mar 2026 17:09:20 +0800 Subject: [PATCH 5/6] =?UTF-8?q?refactor(repository):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=8C=96=E5=8C=85=E8=A3=85=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=89=98=E7=9B=98=E9=A1=B9=E5=AE=9E=E4=BD=93=E5=92=8C=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 WmsStructuralPackageOrderTrayItem 实体中的图片和图号字段 - 修改 getListByTrayId 查询方法,添加物料表关联并获取图片和图号信息 - 更新 SQL 查询语句以从物料表获取图片和图号数据 - 保持 getSimpleListByTrayNo 方法的基本查询逻辑不变 --- .../WmsStructuralPackageOrderTrayItem.java | 18 +++++++++--------- ...WmsStructuralPackageOrderTrayItemMapper.xml | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java index a9227dc3..ee8c4443 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java @@ -74,15 +74,15 @@ public class WmsStructuralPackageOrderTrayItem implements Serializable { */ private BigDecimal storeNum; - /** - * 图片 - */ - private String image; - - /** - * 图号 - */ - private String drawingNo; +// /** +// * 图片 +// */ +// private String image; +// +// /** +// * 图号 +// */ +// private String drawingNo; /** * 线下交货原因 diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml index fa276d42..a387381b 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml @@ -3,18 +3,18 @@ - select oti.* from wms_structural_package_order_tray ot inner join wms_structural_package_order_tray_item oti on ot."id"=oti.tray_id From 770a325c9ee9f3473be5b8e36509d6ed942f1f14 Mon Sep 17 00:00:00 2001 From: zhangke Date: Tue, 24 Mar 2026 17:18:03 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=B4=A8=E6=A3=80=E7=89=A9=E6=96=99?= =?UTF-8?q?=E4=B8=8A=E6=9E=B6=EF=BC=8C=E4=B8=8D=E5=90=88=E6=A0=BC=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E8=AE=BE=E7=BD=AE=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nflg/wms/admin/controller/NormalQMController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java index 3b05f365..cb5bc11e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java @@ -442,7 +442,7 @@ public class NormalQMController extends BaseController { zwm3A18DTO.getItem1().add(item1DTO); } else { item1DTO.setErfmg1(item1DTO.getErfmg1().add(code.getQualifiedQty())); - item1DTO.setErfmg2(item1DTO.getErfmg2().add(code.getUnqualifiedQty())); + item1DTO.setErfmg2(BigDecimal.ZERO); } if (StrUtil.isNotBlank(code.getSerialNum())) { String flag = code.getInspectionResult().equals("合格") ? "X" : "";