Commit 2f78c4df4fb590678b94218c90f93f885e5b60fb
1 parent
1fa8e1ac
✨ feat(mes): 新增来源单据编号和类型字段,更新必填验证
Showing
7 changed files
with
22 additions
and
9 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/miscreceipt/vo/MesWmMiscReceiptPageReqVO.java
| @@ -26,6 +26,12 @@ public class MesWmMiscReceiptPageReqVO extends PageParam { | @@ -26,6 +26,12 @@ public class MesWmMiscReceiptPageReqVO extends PageParam { | ||
| 26 | @Schema(description = "杂项类型", example = "1") | 26 | @Schema(description = "杂项类型", example = "1") |
| 27 | private Integer type; | 27 | private Integer type; |
| 28 | 28 | ||
| 29 | + @Schema(description = "来源单据编号", example = "DOC2026030001") | ||
| 30 | + private String sourceDocCode; | ||
| 31 | + | ||
| 32 | + @Schema(description = "来源单据类型", example = "WORK_ORDER") | ||
| 33 | + private String sourceDocType; | ||
| 34 | + | ||
| 29 | @Schema(description = "状态", example = "0") | 35 | @Schema(description = "状态", example = "0") |
| 30 | private Integer status; | 36 | private Integer status; |
| 31 | 37 |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/miscreceipt/vo/MesWmMiscReceiptSaveReqVO.java
| @@ -7,7 +7,6 @@ import lombok.Data; | @@ -7,7 +7,6 @@ import lombok.Data; | ||
| 7 | 7 | ||
| 8 | import java.time.LocalDateTime; | 8 | import java.time.LocalDateTime; |
| 9 | 9 | ||
| 10 | -// TODO @AI:字段的必传,需要对齐下前端; | ||
| 11 | @Schema(description = "管理后台 - MES 杂项入库单新增/修改 Request VO") | 10 | @Schema(description = "管理后台 - MES 杂项入库单新增/修改 Request VO") |
| 12 | @Data | 11 | @Data |
| 13 | public class MesWmMiscReceiptSaveReqVO { | 12 | public class MesWmMiscReceiptSaveReqVO { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/miscreceipt/vo/line/MesWmMiscReceiptLineSaveReqVO.java
| @@ -34,10 +34,12 @@ public class MesWmMiscReceiptLineSaveReqVO { | @@ -34,10 +34,12 @@ public class MesWmMiscReceiptLineSaveReqVO { | ||
| 34 | @NotNull(message = "仓库不能为空") | 34 | @NotNull(message = "仓库不能为空") |
| 35 | private Long warehouseId; | 35 | private Long warehouseId; |
| 36 | 36 | ||
| 37 | - @Schema(description = "库区编号", example = "1") | 37 | + @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 38 | + @NotNull(message = "库区不能为空") | ||
| 38 | private Long locationId; | 39 | private Long locationId; |
| 39 | 40 | ||
| 40 | - @Schema(description = "库位编号", example = "1") | 41 | + @Schema(description = "库位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 42 | + @NotNull(message = "库位不能为空") | ||
| 41 | private Long areaId; | 43 | private Long areaId; |
| 42 | 44 | ||
| 43 | @Schema(description = "备注", example = "备注") | 45 | @Schema(description = "备注", example = "备注") |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/miscreceipt/MesWmMiscReceiptDO.java
| @@ -44,7 +44,6 @@ public class MesWmMiscReceiptDO extends BaseDO { | @@ -44,7 +44,6 @@ public class MesWmMiscReceiptDO extends BaseDO { | ||
| 44 | * 枚举 {@link MesWmMiscReceiptTypeEnum} | 44 | * 枚举 {@link MesWmMiscReceiptTypeEnum} |
| 45 | */ | 45 | */ |
| 46 | private Integer type; | 46 | private Integer type; |
| 47 | - // TODO @芋艿:后续看看怎么跟进; | ||
| 48 | /** | 47 | /** |
| 49 | * 来源单据 ID | 48 | * 来源单据 ID |
| 50 | */ | 49 | */ |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/miscreceipt/MesWmMiscReceiptMapper.java
| @@ -20,6 +20,8 @@ public interface MesWmMiscReceiptMapper extends BaseMapperX<MesWmMiscReceiptDO> | @@ -20,6 +20,8 @@ public interface MesWmMiscReceiptMapper extends BaseMapperX<MesWmMiscReceiptDO> | ||
| 20 | .likeIfPresent(MesWmMiscReceiptDO::getCode, reqVO.getCode()) | 20 | .likeIfPresent(MesWmMiscReceiptDO::getCode, reqVO.getCode()) |
| 21 | .likeIfPresent(MesWmMiscReceiptDO::getName, reqVO.getName()) | 21 | .likeIfPresent(MesWmMiscReceiptDO::getName, reqVO.getName()) |
| 22 | .eqIfPresent(MesWmMiscReceiptDO::getType, reqVO.getType()) | 22 | .eqIfPresent(MesWmMiscReceiptDO::getType, reqVO.getType()) |
| 23 | + .likeIfPresent(MesWmMiscReceiptDO::getSourceDocCode, reqVO.getSourceDocCode()) | ||
| 24 | + .eqIfPresent(MesWmMiscReceiptDO::getSourceDocType, reqVO.getSourceDocType()) | ||
| 23 | .eqIfPresent(MesWmMiscReceiptDO::getStatus, reqVO.getStatus()) | 25 | .eqIfPresent(MesWmMiscReceiptDO::getStatus, reqVO.getStatus()) |
| 24 | .betweenIfPresent(MesWmMiscReceiptDO::getReceiptDate, reqVO.getReceiptDate()) | 26 | .betweenIfPresent(MesWmMiscReceiptDO::getReceiptDate, reqVO.getReceiptDate()) |
| 25 | .orderByDesc(MesWmMiscReceiptDO::getId)); | 27 | .orderByDesc(MesWmMiscReceiptDO::getId)); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
| @@ -32,7 +32,8 @@ public enum MesMdAutoCodeRuleCodeEnum { | @@ -32,7 +32,8 @@ public enum MesMdAutoCodeRuleCodeEnum { | ||
| 32 | WM_WAREHOUSE_CODE("WM_WAREHOUSE_CODE", "仓库编码"), | 32 | WM_WAREHOUSE_CODE("WM_WAREHOUSE_CODE", "仓库编码"), |
| 33 | WM_LOCATION_CODE("WM_LOCATION_CODE", "库区编码"), | 33 | WM_LOCATION_CODE("WM_LOCATION_CODE", "库区编码"), |
| 34 | WM_AREA_CODE("WM_AREA_CODE", "库位编码"), | 34 | WM_AREA_CODE("WM_AREA_CODE", "库位编码"), |
| 35 | - WM_PRODUCT_SALES_CODE("WM_PRODUCT_SALES_CODE", "销售出库单编码"); | 35 | + WM_PRODUCT_SALES_CODE("WM_PRODUCT_SALES_CODE", "销售出库单编码"), |
| 36 | + WM_MISC_RECEIPT_CODE("WM_MISC_RECEIPT_CODE", "杂项入库单编码"); | ||
| 36 | 37 | ||
| 37 | /** | 38 | /** |
| 38 | * 规则代码 | 39 | * 规则代码 |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java
| @@ -44,7 +44,6 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | @@ -44,7 +44,6 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | ||
| 44 | @Transactional(rollbackFor = Exception.class) | 44 | @Transactional(rollbackFor = Exception.class) |
| 45 | public Long createMiscReceiptLine(MesWmMiscReceiptLineSaveReqVO createReqVO) { | 45 | public Long createMiscReceiptLine(MesWmMiscReceiptLineSaveReqVO createReqVO) { |
| 46 | // 1. 校验 | 46 | // 1. 校验 |
| 47 | - miscReceiptService.validateMiscReceiptEditable(createReqVO.getReceiptId()); | ||
| 48 | validateLineSaveData(createReqVO); | 47 | validateLineSaveData(createReqVO); |
| 49 | 48 | ||
| 50 | // 2. 新增行 | 49 | // 2. 新增行 |
| @@ -62,8 +61,7 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | @@ -62,8 +61,7 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | ||
| 62 | public void updateMiscReceiptLine(MesWmMiscReceiptLineSaveReqVO updateReqVO) { | 61 | public void updateMiscReceiptLine(MesWmMiscReceiptLineSaveReqVO updateReqVO) { |
| 63 | // 1. 校验 | 62 | // 1. 校验 |
| 64 | MesWmMiscReceiptLineDO line = validateMiscReceiptLineExists(updateReqVO.getId()); | 63 | MesWmMiscReceiptLineDO line = validateMiscReceiptLineExists(updateReqVO.getId()); |
| 65 | - miscReceiptService.validateMiscReceiptEditable(line.getReceiptId()); | ||
| 66 | - validateLineSaveData(updateReqVO); | 64 | + updateReqVO.setReceiptId(line.getReceiptId()); |
| 67 | 65 | ||
| 68 | // 2. 更新行 | 66 | // 2. 更新行 |
| 69 | MesWmMiscReceiptLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscReceiptLineDO.class); | 67 | MesWmMiscReceiptLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscReceiptLineDO.class); |
| @@ -77,7 +75,9 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | @@ -77,7 +75,9 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | ||
| 77 | @Transactional(rollbackFor = Exception.class) | 75 | @Transactional(rollbackFor = Exception.class) |
| 78 | public void deleteMiscReceiptLine(Long id) { | 76 | public void deleteMiscReceiptLine(Long id) { |
| 79 | // 校验存在 | 77 | // 校验存在 |
| 80 | - validateMiscReceiptLineExists(id); | 78 | + MesWmMiscReceiptLineDO line = validateMiscReceiptLineExists(id); |
| 79 | + // 校验父单据存在且为可编辑状态 | ||
| 80 | + miscReceiptService.validateMiscReceiptEditable(line.getReceiptId()); | ||
| 81 | 81 | ||
| 82 | // 删除行 | 82 | // 删除行 |
| 83 | miscReceiptLineMapper.deleteById(id); | 83 | miscReceiptLineMapper.deleteById(id); |
| @@ -122,7 +122,11 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | @@ -122,7 +122,11 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ | ||
| 122 | * 校验行保存数据(物料存在、仓库层级关系) | 122 | * 校验行保存数据(物料存在、仓库层级关系) |
| 123 | */ | 123 | */ |
| 124 | private void validateLineSaveData(MesWmMiscReceiptLineSaveReqVO reqVO) { | 124 | private void validateLineSaveData(MesWmMiscReceiptLineSaveReqVO reqVO) { |
| 125 | + // 校验父单据存在且为可编辑状态 | ||
| 126 | + miscReceiptService.validateMiscReceiptEditable(reqVO.getReceiptId()); | ||
| 127 | + // 校验物料存在 | ||
| 125 | itemService.validateItemExists(reqVO.getItemId()); | 128 | itemService.validateItemExists(reqVO.getItemId()); |
| 129 | + // 校验仓库层级关系(仓库 - 库位 - 库区) | ||
| 126 | warehouseAreaService.validateWarehouseAreaExists(reqVO.getWarehouseId(), | 130 | warehouseAreaService.validateWarehouseAreaExists(reqVO.getWarehouseId(), |
| 127 | reqVO.getLocationId(), reqVO.getAreaId()); | 131 | reqVO.getLocationId(), reqVO.getAreaId()); |
| 128 | } | 132 | } |