docs/return_issue_integration.md
@@ -103,3 +103,16 @@ - 后端已做兼容:如果前端暂时不改,旧数据(warehouseId=虚拟库)仍能通过事务流水反查原始仓库,不会报错 - 前端改完后,新的退料单 detail 应传实际仓库的库位,逻辑更清晰 - 已存在的旧退料数据不受影响(反查兜底) ## 退料单行"需要质检"字段调整(2026-09-01) ### 变更内容 退料单行(`/mes/wm-return-issue-line/create`、`/mes/wm-return-issue-line/update`)的 `rqcCheckFlag`(是否需要质检)**由必填改为选填**: - 新增行时:前端未传该字段,后端默认按 `false`(不需要质检)处理,不再提示"是否需要质检不能为空" - 编辑行时:前端未传该字段,后端沿用该行原值,不会误覆盖 ### 前端修改点 - 生产工作台 - 退料"添加物料"弹窗中的"需要质检"字段**可以不再要求必填**,不填即默认为"不需要质检" - 前端不传该字段即可正常提交,无需额外改动;如需保留"需要质检"选项,仍可正常传 `true`/`false` yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/returnissue/vo/line/MesWmReturnIssueLineSaveReqVO.java
@@ -39,8 +39,7 @@ @Schema(description = "批次编码", example = "BCH20260330001") private String batchCode; @Schema(description = "是否需要质检", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") @NotNull(message = "是否需要质检不能为空") @Schema(description = "是否需要质检", example = "false") private Boolean rqcCheckFlag; @Schema(description = "备注", example = "备注") yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java
@@ -52,6 +52,8 @@ // 插入 MesWmReturnIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmReturnIssueLineDO.class); // 兜底:前端未传需要质检时默认不需要质检 line.setRqcCheckFlag(Boolean.TRUE.equals(line.getRqcCheckFlag())); line.setQualityStatus(calculateQualityStatus(line.getRqcCheckFlag(), issue.getType())); // 质量状态自动赋值 issueLineMapper.insert(line); return line.getId(); @@ -60,12 +62,16 @@ @Override public void updateReturnIssueLine(MesWmReturnIssueLineSaveReqVO updateReqVO) { // 校验存在 validateReturnIssueLineExists(updateReqVO.getId()); MesWmReturnIssueLineDO line = validateReturnIssueLineExists(updateReqVO.getId()); // 校验数据 MesWmReturnIssueDO issue = validateReturnIssueLineSaveData(updateReqVO); // 更新 MesWmReturnIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmReturnIssueLineDO.class); // 兜底:编辑时未传需要质检字段,沿用原值,避免误覆盖 if (updateObj.getRqcCheckFlag() == null) { updateObj.setRqcCheckFlag(line.getRqcCheckFlag()); } updateObj.setQualityStatus(calculateQualityStatus(updateObj.getRqcCheckFlag(), issue.getType())); // 质量状态自动赋值 issueLineMapper.updateById(updateObj); }