diff --git a/docs/prototype_design/design/2026-08-19-pda-sub-roll-weight-maintenance-design.html b/docs/prototype_design/design/2026-08-19-pda-sub-roll-weight-maintenance-design.html new file mode 100644 index 00000000..bcc62793 --- /dev/null +++ b/docs/prototype_design/design/2026-08-19-pda-sub-roll-weight-maintenance-design.html @@ -0,0 +1,21 @@ + + + + + + 子卷重量维护 - PDA 原型 + + + +

子卷重量维护

子卷信息

信息已加载,可修改重量后提交

+ + + diff --git a/nl-module-lms/nl-module-lms-api/src/main/java/cn/code/nl/module/lms/enums/ErrorCodeConstants.java b/nl-module-lms/nl-module-lms-api/src/main/java/cn/code/nl/module/lms/enums/ErrorCodeConstants.java index ba08f456..6a05d9f7 100644 --- a/nl-module-lms/nl-module-lms-api/src/main/java/cn/code/nl/module/lms/enums/ErrorCodeConstants.java +++ b/nl-module-lms/nl-module-lms-api/src/main/java/cn/code/nl/module/lms/enums/ErrorCodeConstants.java @@ -61,6 +61,7 @@ public interface ErrorCodeConstants { ErrorCode POINT_EXECUTE_REFUGE = new ErrorCode(200008, "{}的点位不允许操作{}"); ErrorCode PACKAGE_POINT_UNQUALIFIED_EMPTY_NOT_EXISTS = new ErrorCode(200009, "没有可用的不合格空位"); ErrorCode PACKAGE_POINT_CHECK_FAILED_TASK_CREATE_FAILED = new ErrorCode(200010, "创建质检不合格AGV任务失败"); + ErrorCode PACKAGE_SLITTING_PLAN_NOT_EXISTS = new ErrorCode(200011, "未查询到对应的子卷信息"); // ========== 子卷包装关系 ========== ErrorCode SUB_PACKAGE_RELATION_NOT_EXISTS = new ErrorCode(300001, "子卷包装关系不存在"); diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/PackagePdaController.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/PackagePdaController.java similarity index 71% rename from nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/PackagePdaController.java rename to nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/PackagePdaController.java index 1e638599..80337740 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/PackagePdaController.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/PackagePdaController.java @@ -1,9 +1,10 @@ -package cn.code.nl.module.lms.controller.pda; +package cn.code.nl.module.lms.controller.pda.boxpackage; import cn.code.nl.framework.common.pojo.CommonResult; -import cn.code.nl.module.lms.controller.pda.vo.ManaQualityCheckPdaReqVO; -import cn.code.nl.module.lms.controller.pda.vo.PackagePointPdaRespVO; -import cn.code.nl.module.lms.controller.pda.vo.QueryPackagePointInfoReqVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.ManaQualityCheckPdaReqVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.PackagePointPdaRespVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.QueryPackagePointInfoReqVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.UpdateWeightPdaReqVO; import cn.code.nl.module.lms.service.packagepoint.PackagePdaService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -33,12 +34,6 @@ public class PackagePdaController { @Resource private PackagePdaService packagePdaService; - /** - * 根据点位编码查询装箱区点位信息 - * - * @param manaQualityCheckPdaReqVO 查询参数 - * @return 点位编码、子卷号和载具号 - */ @PostMapping("/query-point-info") @Operation(summary = "查询点位信息") @PermitAll @@ -48,8 +43,6 @@ public class PackagePdaController { return success(packagePoint); } - - @PostMapping("/quality-check") @Operation(summary = "人工质检") @PermitAll @@ -58,4 +51,12 @@ public class PackagePdaController { return success("操作成功!"); } + @PostMapping("/update-weight") + @Operation(summary = "维护重量") + @PermitAll + public CommonResult executeUpdateWeight(@Valid @RequestBody UpdateWeightPdaReqVO weightPdaReqVO) { + packagePdaService.executeUpdateWeight(weightPdaReqVO); + return success("操作成功!"); + } + } diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/ManaQualityCheckPdaReqVO.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/ManaQualityCheckPdaReqVO.java similarity index 90% rename from nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/ManaQualityCheckPdaReqVO.java rename to nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/ManaQualityCheckPdaReqVO.java index abf2862f..284ec8a7 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/ManaQualityCheckPdaReqVO.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/ManaQualityCheckPdaReqVO.java @@ -1,4 +1,4 @@ -package cn.code.nl.module.lms.controller.pda.vo; +package cn.code.nl.module.lms.controller.pda.boxpackage.vo; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/PackagePointPdaRespVO.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/PackagePointPdaRespVO.java similarity index 93% rename from nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/PackagePointPdaRespVO.java rename to nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/PackagePointPdaRespVO.java index 969c1144..efe3e54e 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/PackagePointPdaRespVO.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/PackagePointPdaRespVO.java @@ -1,4 +1,4 @@ -package cn.code.nl.module.lms.controller.pda.vo; +package cn.code.nl.module.lms.controller.pda.boxpackage.vo; import lombok.Data; diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/QueryPackagePointInfoReqVO.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/QueryPackagePointInfoReqVO.java similarity index 82% rename from nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/QueryPackagePointInfoReqVO.java rename to nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/QueryPackagePointInfoReqVO.java index ea23e8a3..fa88d176 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/vo/QueryPackagePointInfoReqVO.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/QueryPackagePointInfoReqVO.java @@ -1,4 +1,4 @@ -package cn.code.nl.module.lms.controller.pda.vo; +package cn.code.nl.module.lms.controller.pda.boxpackage.vo; import jakarta.validation.constraints.NotEmpty; import lombok.Data; diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/UpdateWeightPdaReqVO.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/UpdateWeightPdaReqVO.java new file mode 100644 index 00000000..1097cde9 --- /dev/null +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/boxpackage/vo/UpdateWeightPdaReqVO.java @@ -0,0 +1,27 @@ +package cn.code.nl.module.lms.controller.pda.boxpackage.vo; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +/** + * + * 重量维护 + * @Author: liyongde + * @Date: 2026/8/19 9:36 + */ +@Data +public class UpdateWeightPdaReqVO { + + /** 点位编码 */ + private String pointCode; + + /** 子卷号 */ + @NotEmpty(message = "子卷号不能为空") + private String containerName; + + /** 子卷重量 */ + private String rollWeight; + + /** 管芯重量 */ + private String tubeWeight; +} diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/package-info.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/package-info.java new file mode 100644 index 00000000..cb4f02a0 --- /dev/null +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/pda/package-info.java @@ -0,0 +1,6 @@ +/** + * + * @Author: liyongde + * @Date: 2026/8/19 9:32 + */ +package cn.code.nl.module.lms.controller.pda; \ No newline at end of file diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaService.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaService.java index de7da0ad..4f4b53b5 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaService.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaService.java @@ -1,7 +1,8 @@ package cn.code.nl.module.lms.service.packagepoint; -import cn.code.nl.module.lms.controller.pda.vo.ManaQualityCheckPdaReqVO; -import cn.code.nl.module.lms.controller.pda.vo.PackagePointPdaRespVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.ManaQualityCheckPdaReqVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.PackagePointPdaRespVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.UpdateWeightPdaReqVO; import jakarta.validation.Valid; /** @@ -24,4 +25,10 @@ public interface PackagePdaService { * @param manaQualityCheckPdaReqVO */ void executeManualQualityCheck(@Valid ManaQualityCheckPdaReqVO manaQualityCheckPdaReqVO); + + /** + * 维护重量 + * @param weightPdaReqVO + */ + void executeUpdateWeight(@Valid UpdateWeightPdaReqVO weightPdaReqVO); } diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaServiceImpl.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaServiceImpl.java index 7c2d2fee..4db976d3 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaServiceImpl.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackagePdaServiceImpl.java @@ -2,8 +2,10 @@ package cn.code.nl.module.lms.service.packagepoint; import cn.code.nl.framework.common.exception.ServiceException; import cn.code.nl.framework.common.pojo.CommonResult; -import cn.code.nl.module.lms.controller.pda.vo.ManaQualityCheckPdaReqVO; -import cn.code.nl.module.lms.controller.pda.vo.PackagePointPdaRespVO; +import cn.code.nl.framework.security.core.util.SecurityFrameworkUtils; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.ManaQualityCheckPdaReqVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.PackagePointPdaRespVO; +import cn.code.nl.module.lms.controller.pda.boxpackage.vo.UpdateWeightPdaReqVO; import cn.code.nl.module.lms.dal.dataobject.packagepoint.PackagePointDO; import cn.code.nl.module.lms.dal.dataobject.slittingproductionplan.SlittingproductionplanDO; import cn.code.nl.module.lms.dal.mysql.packagepoint.PackagePointMapper; @@ -24,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.List; import java.util.Objects; @@ -44,7 +47,7 @@ public class PackagePdaServiceImpl implements PackagePdaService { private static final String NO_TASK = "无任务"; /** 无重量信息 */ - private static final String NO_WEIGHT_INFO = "无信息"; + private static final String NO_WEIGHT_INFO = "0.0"; /** 未绑定子卷信息 */ private static final String UNBOUND_CONTAINER_INFO = "未绑定子卷信息"; @@ -175,6 +178,35 @@ public class PackagePdaServiceImpl implements PackagePdaService { } } + @Override + public void executeUpdateWeight(UpdateWeightPdaReqVO weightPdaReqVO) { + log.info("用户给 {} 修改重量 {}", SecurityFrameworkUtils.getLoginUserNickname(), weightPdaReqVO); + // 根据子卷号或 ERP 子卷号查询分切生产计划 + SlittingproductionplanDO slittingPlan = slittingproductionplanMapper + .selectByContainerName(weightPdaReqVO.getContainerName()); + if (slittingPlan == null) { + throw exception(PACKAGE_SLITTING_PLAN_NOT_EXISTS); + } + + // 只维护用户输入且大于零的重量 + SlittingproductionplanDO updatePlan = new SlittingproductionplanDO(); + updatePlan.setWorkorderId(slittingPlan.getWorkorderId()); + boolean needUpdate = false; + if (StrUtil.isNotBlank(weightPdaReqVO.getRollWeight()) + && new BigDecimal(weightPdaReqVO.getRollWeight()).compareTo(BigDecimal.ZERO) > 0) { + updatePlan.setWeight(weightPdaReqVO.getRollWeight()); + needUpdate = true; + } + if (StrUtil.isNotBlank(weightPdaReqVO.getTubeWeight()) + && new BigDecimal(weightPdaReqVO.getTubeWeight()).compareTo(BigDecimal.ZERO) > 0) { + updatePlan.setPaperWeight(weightPdaReqVO.getTubeWeight()); + needUpdate = true; + } + if (needUpdate) { + slittingproductionplanMapper.updateById(updatePlan); + } + } + /** * 执行人工质检合格操作 *