Commit a6c58825ec7334d4dc60ece70d5100bfd1c7bad4

Authored by YunaiV
1 parent 80f7f51c

✨ feat(mes): 移除多余的 material request

Showing 17 changed files with 0 additions and 1197 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;  
5 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
9 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
10 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO;  
11 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestRespVO;  
12 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO;  
13 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;  
14 -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;  
15 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO;  
16 -import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;  
17 -import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;  
18 -import cn.iocoder.yudao.module.mes.service.wm.materialrequest.MesWmMaterialRequestService;  
19 -import cn.iocoder.yudao.module.system.api.user.AdminUserApi;  
20 -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;  
21 -import io.swagger.v3.oas.annotations.Operation;  
22 -import io.swagger.v3.oas.annotations.Parameter;  
23 -import io.swagger.v3.oas.annotations.tags.Tag;  
24 -import jakarta.annotation.Resource;  
25 -import jakarta.servlet.http.HttpServletResponse;  
26 -import jakarta.validation.Valid;  
27 -import org.springframework.security.access.prepost.PreAuthorize;  
28 -import org.springframework.validation.annotation.Validated;  
29 -import org.springframework.web.bind.annotation.*;  
30 -  
31 -import java.io.IOException;  
32 -import java.util.Collections;  
33 -import java.util.List;  
34 -import java.util.Map;  
35 -  
36 -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;  
37 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
38 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;  
39 -import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;  
40 -  
41 -@Tag(name = "管理后台 - MES 领料申请单")  
42 -@RestController  
43 -@RequestMapping("/mes/wm/material-request")  
44 -@Validated  
45 -public class MesWmMaterialRequestController {  
46 -  
47 - @Resource  
48 - private MesWmMaterialRequestService materialRequestService;  
49 - @Resource  
50 - private MesMdWorkstationService workstationService;  
51 - @Resource  
52 - private MesProWorkOrderService workOrderService;  
53 - @Resource  
54 - private AdminUserApi adminUserApi;  
55 -  
56 - @PostMapping("/create")  
57 - @Operation(summary = "创建领料申请单")  
58 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:create')")  
59 - public CommonResult<Long> createMaterialRequest(@Valid @RequestBody MesWmMaterialRequestSaveReqVO createReqVO) {  
60 - return success(materialRequestService.createMaterialRequest(createReqVO));  
61 - }  
62 -  
63 - @PutMapping("/update")  
64 - @Operation(summary = "修改领料申请单")  
65 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
66 - public CommonResult<Boolean> updateMaterialRequest(@Valid @RequestBody MesWmMaterialRequestSaveReqVO updateReqVO) {  
67 - materialRequestService.updateMaterialRequest(updateReqVO);  
68 - return success(true);  
69 - }  
70 -  
71 - @DeleteMapping("/delete")  
72 - @Operation(summary = "删除领料申请单")  
73 - @Parameter(name = "id", description = "编号", required = true)  
74 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:delete')")  
75 - public CommonResult<Boolean> deleteMaterialRequest(@RequestParam("id") Long id) {  
76 - materialRequestService.deleteMaterialRequest(id);  
77 - return success(true);  
78 - }  
79 -  
80 - @GetMapping("/get")  
81 - @Operation(summary = "获得领料申请单")  
82 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
83 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')")  
84 - public CommonResult<MesWmMaterialRequestRespVO> getMaterialRequest(@RequestParam("id") Long id) {  
85 - MesWmMaterialRequestDO materialRequest = materialRequestService.getMaterialRequest(id);  
86 - if (materialRequest == null) {  
87 - return success(null);  
88 - }  
89 - return success(buildRespVOList(Collections.singletonList(materialRequest)).get(0));  
90 - }  
91 -  
92 - @GetMapping("/page")  
93 - @Operation(summary = "获得领料申请单分页")  
94 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')")  
95 - public CommonResult<PageResult<MesWmMaterialRequestRespVO>> getMaterialRequestPage(  
96 - @Valid MesWmMaterialRequestPageReqVO pageReqVO) {  
97 - PageResult<MesWmMaterialRequestDO> pageResult = materialRequestService.getMaterialRequestPage(pageReqVO);  
98 - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal()));  
99 - }  
100 -  
101 - @GetMapping("/export-excel")  
102 - @Operation(summary = "导出领料申请单 Excel")  
103 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:export')")  
104 - @ApiAccessLog(operateType = EXPORT)  
105 - public void exportMaterialRequestExcel(@Valid MesWmMaterialRequestPageReqVO pageReqVO,  
106 - HttpServletResponse response) throws IOException {  
107 - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);  
108 - PageResult<MesWmMaterialRequestDO> pageResult = materialRequestService.getMaterialRequestPage(pageReqVO);  
109 - ExcelUtils.write(response, "领料申请单.xls", "数据", MesWmMaterialRequestRespVO.class,  
110 - buildRespVOList(pageResult.getList()));  
111 - }  
112 -  
113 - @PutMapping("/submit")  
114 - @Operation(summary = "提交领料申请单")  
115 - @Parameter(name = "id", description = "编号", required = true)  
116 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
117 - public CommonResult<Boolean> submitMaterialRequest(@RequestParam("id") Long id) {  
118 - materialRequestService.submitMaterialRequest(id);  
119 - return success(true);  
120 - }  
121 -  
122 - @PutMapping("/approve")  
123 - @Operation(summary = "审批领料申请单(开始备料)")  
124 - @Parameter(name = "id", description = "编号", required = true)  
125 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
126 - public CommonResult<Boolean> approveMaterialRequest(@RequestParam("id") Long id) {  
127 - materialRequestService.approveMaterialRequest(id);  
128 - return success(true);  
129 - }  
130 -  
131 - @PutMapping("/finish")  
132 - @Operation(summary = "完成领料申请单")  
133 - @Parameter(name = "id", description = "编号", required = true)  
134 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
135 - public CommonResult<Boolean> finishMaterialRequest(@RequestParam("id") Long id) {  
136 - materialRequestService.finishMaterialRequest(id);  
137 - return success(true);  
138 - }  
139 -  
140 - @PutMapping("/cancel")  
141 - @Operation(summary = "取消领料申请单")  
142 - @Parameter(name = "id", description = "编号", required = true)  
143 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
144 - public CommonResult<Boolean> cancelMaterialRequest(@RequestParam("id") Long id) {  
145 - materialRequestService.cancelMaterialRequest(id);  
146 - return success(true);  
147 - }  
148 -  
149 - // ==================== 拼接 VO ====================  
150 -  
151 - private List<MesWmMaterialRequestRespVO> buildRespVOList(List<MesWmMaterialRequestDO> list) {  
152 - if (CollUtil.isEmpty(list)) {  
153 - return Collections.emptyList();  
154 - }  
155 - // 1. 获得关联数据  
156 - Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap(  
157 - convertSet(list, MesWmMaterialRequestDO::getWorkstationId));  
158 - Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap(  
159 - convertSet(list, MesWmMaterialRequestDO::getWorkOrderId));  
160 - Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(  
161 - convertSet(list, MesWmMaterialRequestDO::getUserId));  
162 - // 2. 构建结果  
163 - return BeanUtils.toBean(list, MesWmMaterialRequestRespVO.class, vo -> {  
164 - findAndThen(workstationMap, vo.getWorkstationId(), ws ->  
165 - vo.setWorkstationCode(ws.getCode()).setWorkstationName(ws.getName()));  
166 - findAndThen(workOrderMap, vo.getWorkOrderId(), wo ->  
167 - vo.setWorkOrderCode(wo.getCode()));  
168 - findAndThen(userMap, vo.getUserId(), user ->  
169 - vo.setUserNickname(user.getNickname()));  
170 - });  
171 - }  
172 -  
173 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.common.util.collection.MapUtils;  
7 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
8 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO;  
9 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineRespVO;  
10 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO;  
11 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;  
12 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;  
13 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO;  
14 -import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;  
15 -import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;  
16 -import cn.iocoder.yudao.module.mes.service.wm.materialrequest.MesWmMaterialRequestLineService;  
17 -import io.swagger.v3.oas.annotations.Operation;  
18 -import io.swagger.v3.oas.annotations.Parameter;  
19 -import io.swagger.v3.oas.annotations.tags.Tag;  
20 -import jakarta.annotation.Resource;  
21 -import jakarta.validation.Valid;  
22 -import org.springframework.security.access.prepost.PreAuthorize;  
23 -import org.springframework.validation.annotation.Validated;  
24 -import org.springframework.web.bind.annotation.*;  
25 -  
26 -import java.util.Collections;  
27 -import java.util.List;  
28 -import java.util.Map;  
29 -  
30 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
31 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;  
32 -  
33 -@Tag(name = "管理后台 - MES 领料申请单行")  
34 -@RestController  
35 -@RequestMapping("/mes/wm/material-request-line")  
36 -@Validated  
37 -public class MesWmMaterialRequestLineController {  
38 -  
39 - @Resource  
40 - private MesWmMaterialRequestLineService materialRequestLineService;  
41 - @Resource  
42 - private MesMdItemService itemService;  
43 - @Resource  
44 - private MesMdUnitMeasureService unitMeasureService;  
45 -  
46 - @PostMapping("/create")  
47 - @Operation(summary = "创建领料申请单行")  
48 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:create')")  
49 - public CommonResult<Long> createMaterialRequestLine(@Valid @RequestBody MesWmMaterialRequestLineSaveReqVO createReqVO) {  
50 - return success(materialRequestLineService.createMaterialRequestLine(createReqVO));  
51 - }  
52 -  
53 - @PutMapping("/update")  
54 - @Operation(summary = "修改领料申请单行")  
55 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')")  
56 - public CommonResult<Boolean> updateMaterialRequestLine(@Valid @RequestBody MesWmMaterialRequestLineSaveReqVO updateReqVO) {  
57 - materialRequestLineService.updateMaterialRequestLine(updateReqVO);  
58 - return success(true);  
59 - }  
60 -  
61 - @DeleteMapping("/delete")  
62 - @Operation(summary = "删除领料申请单行")  
63 - @Parameter(name = "id", description = "编号", required = true)  
64 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:delete')")  
65 - public CommonResult<Boolean> deleteMaterialRequestLine(@RequestParam("id") Long id) {  
66 - materialRequestLineService.deleteMaterialRequestLine(id);  
67 - return success(true);  
68 - }  
69 -  
70 - @GetMapping("/get")  
71 - @Operation(summary = "获得领料申请单行")  
72 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
73 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')")  
74 - public CommonResult<MesWmMaterialRequestLineRespVO> getMaterialRequestLine(@RequestParam("id") Long id) {  
75 - MesWmMaterialRequestLineDO line = materialRequestLineService.getMaterialRequestLine(id);  
76 - if (line == null) {  
77 - return success(null);  
78 - }  
79 - return success(buildRespVOList(Collections.singletonList(line)).get(0));  
80 - }  
81 -  
82 - @GetMapping("/page")  
83 - @Operation(summary = "获得领料申请单行分页")  
84 - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')")  
85 - public CommonResult<PageResult<MesWmMaterialRequestLineRespVO>> getMaterialRequestLinePage(  
86 - @Valid MesWmMaterialRequestLinePageReqVO pageReqVO) {  
87 - PageResult<MesWmMaterialRequestLineDO> pageResult = materialRequestLineService.getMaterialRequestLinePage(pageReqVO);  
88 - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal()));  
89 - }  
90 -  
91 - // ==================== 拼接 VO ====================  
92 -  
93 - private List<MesWmMaterialRequestLineRespVO> buildRespVOList(List<MesWmMaterialRequestLineDO> list) {  
94 - if (CollUtil.isEmpty(list)) {  
95 - return Collections.emptyList();  
96 - }  
97 - // 1. 获得关联数据  
98 - Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(  
99 - convertSet(list, MesWmMaterialRequestLineDO::getItemId));  
100 - Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap(  
101 - convertSet(list, MesWmMaterialRequestLineDO::getUnitMeasureId));  
102 - // 2. 构建结果  
103 - return BeanUtils.toBean(list, MesWmMaterialRequestLineRespVO.class, vo -> {  
104 - MapUtils.findAndThen(itemMap, vo.getItemId(), item ->  
105 - vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()));  
106 - MapUtils.findAndThen(unitMeasureMap, vo.getUnitMeasureId(), unit ->  
107 - vo.setUnitMeasureName(unit.getName()));  
108 - });  
109 - }  
110 -  
111 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -import lombok.EqualsAndHashCode;  
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import java.time.LocalDateTime;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
12 -  
13 -@Schema(description = "管理后台 - MES 领料申请单分页 Request VO")  
14 -@Data  
15 -@EqualsAndHashCode(callSuper = true)  
16 -public class MesWmMaterialRequestPageReqVO extends PageParam {  
17 -  
18 - @Schema(description = "工作站ID", example = "1")  
19 - private Long workstationId;  
20 -  
21 - @Schema(description = "生产工单ID", example = "1")  
22 - private Long workOrderId;  
23 -  
24 - @Schema(description = "需求人用户ID", example = "1")  
25 - private Long userId;  
26 -  
27 - @Schema(description = "状态", example = "0")  
28 - private Integer status;  
29 -  
30 - @Schema(description = "需求时间范围")  
31 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
32 - private LocalDateTime[] requestTime;  
33 -  
34 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo;  
2 -  
3 -import cn.idev.excel.annotation.ExcelIgnoreUnannotated;  
4 -import cn.idev.excel.annotation.ExcelProperty;  
5 -import io.swagger.v3.oas.annotations.media.Schema;  
6 -import lombok.Data;  
7 -  
8 -import java.time.LocalDateTime;  
9 -  
10 -@Schema(description = "管理后台 - MES 领料申请单 Response VO")  
11 -@Data  
12 -@ExcelIgnoreUnannotated  
13 -public class MesWmMaterialRequestRespVO {  
14 -  
15 - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
16 - @ExcelProperty("编号")  
17 - private Long id;  
18 -  
19 - @Schema(description = "工作站ID", example = "1")  
20 - private Long workstationId;  
21 -  
22 - @Schema(description = "工作站编码", example = "WS0001")  
23 - @ExcelProperty("工作站编码")  
24 - private String workstationCode;  
25 -  
26 - @Schema(description = "工作站名称", example = "1#注塑工作站")  
27 - @ExcelProperty("工作站名称")  
28 - private String workstationName;  
29 -  
30 - @Schema(description = "生产工单ID", example = "1")  
31 - private Long workOrderId;  
32 -  
33 - @Schema(description = "生产工单编码", example = "MO20260222001")  
34 - @ExcelProperty("生产工单编码")  
35 - private String workOrderCode;  
36 -  
37 - @Schema(description = "需求人用户ID", example = "1")  
38 - private Long userId;  
39 -  
40 - @Schema(description = "需求人昵称", example = "管理员")  
41 - @ExcelProperty("需求人昵称")  
42 - private String userNickname;  
43 -  
44 - @Schema(description = "需求时间")  
45 - @ExcelProperty("需求时间")  
46 - private LocalDateTime requestTime;  
47 -  
48 - @Schema(description = "开始备料时间")  
49 - @ExcelProperty("开始备料时间")  
50 - private LocalDateTime startTime;  
51 -  
52 - @Schema(description = "完成时间")  
53 - @ExcelProperty("完成时间")  
54 - private LocalDateTime endTime;  
55 -  
56 - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")  
57 - @ExcelProperty("状态")  
58 - private Integer status;  
59 -  
60 - @Schema(description = "备注", example = "备注")  
61 - @ExcelProperty("备注")  
62 - private String remark;  
63 -  
64 - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)  
65 - @ExcelProperty("创建时间")  
66 - private LocalDateTime createTime;  
67 -  
68 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -import java.time.LocalDateTime;  
7 -  
8 -@Schema(description = "管理后台 - MES 领料申请单新增/修改 Request VO")  
9 -@Data  
10 -public class MesWmMaterialRequestSaveReqVO {  
11 -  
12 - @Schema(description = "编号", example = "1024")  
13 - private Long id;  
14 -  
15 - @Schema(description = "工作站ID", example = "1")  
16 - private Long workstationId;  
17 -  
18 - @Schema(description = "生产工单ID", example = "1")  
19 - private Long workOrderId;  
20 -  
21 - @Schema(description = "需求人用户ID", example = "1")  
22 - private Long userId;  
23 -  
24 - @Schema(description = "需求时间")  
25 - private LocalDateTime requestTime;  
26 -  
27 - @Schema(description = "开始备料时间")  
28 - private LocalDateTime startTime;  
29 -  
30 - @Schema(description = "完成时间")  
31 - private LocalDateTime endTime;  
32 -  
33 - @Schema(description = "备注", example = "备注")  
34 - private String remark;  
35 -  
36 - }  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -import lombok.EqualsAndHashCode;  
7 -  
8 -@Schema(description = "管理后台 - MES 领料申请单行分页 Request VO")  
9 -@Data  
10 -@EqualsAndHashCode(callSuper = true)  
11 -public class MesWmMaterialRequestLinePageReqVO extends PageParam {  
12 -  
13 - @Schema(description = "领料申请单ID", example = "1")  
14 - private Long materialRequestId;  
15 -  
16 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line;  
2 -  
3 -import cn.idev.excel.annotation.ExcelIgnoreUnannotated;  
4 -import cn.idev.excel.annotation.ExcelProperty;  
5 -import io.swagger.v3.oas.annotations.media.Schema;  
6 -import lombok.Data;  
7 -  
8 -import java.math.BigDecimal;  
9 -import java.time.LocalDateTime;  
10 -  
11 -@Schema(description = "管理后台 - MES 领料申请单行 Response VO")  
12 -@Data  
13 -@ExcelIgnoreUnannotated  
14 -public class MesWmMaterialRequestLineRespVO {  
15 -  
16 - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
17 - @ExcelProperty("编号")  
18 - private Long id;  
19 -  
20 - @Schema(description = "领料申请单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
21 - private Long materialRequestId;  
22 -  
23 - @Schema(description = "产品物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
24 - private Long itemId;  
25 -  
26 - @Schema(description = "产品物料编码", example = "IF2022082432")  
27 - @ExcelProperty("物料编码")  
28 - private String itemCode;  
29 -  
30 - @Schema(description = "产品物料名称", example = "PVC 颗粒")  
31 - @ExcelProperty("物料名称")  
32 - private String itemName;  
33 -  
34 - @Schema(description = "规格型号", example = "透明")  
35 - @ExcelProperty("规格型号")  
36 - private String specification;  
37 -  
38 - @Schema(description = "计量单位ID", example = "1")  
39 - private Long unitMeasureId;  
40 -  
41 - @Schema(description = "计量单位名称", example = "公斤")  
42 - @ExcelProperty("计量单位")  
43 - private String unitMeasureName;  
44 -  
45 - @Schema(description = "需求数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10.00")  
46 - @ExcelProperty("需求数量")  
47 - private BigDecimal quantity;  
48 -  
49 - @Schema(description = "备注", example = "备注")  
50 - @ExcelProperty("备注")  
51 - private String remark;  
52 -  
53 - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)  
54 - @ExcelProperty("创建时间")  
55 - private LocalDateTime createTime;  
56 -  
57 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import jakarta.validation.constraints.DecimalMin;  
5 -import jakarta.validation.constraints.NotNull;  
6 -import lombok.Data;  
7 -  
8 -import java.math.BigDecimal;  
9 -  
10 -@Schema(description = "管理后台 - MES 领料申请单行新增/修改 Request VO")  
11 -@Data  
12 -public class MesWmMaterialRequestLineSaveReqVO {  
13 -  
14 - @Schema(description = "编号", example = "1024")  
15 - private Long id;  
16 -  
17 - @Schema(description = "领料申请单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
18 - @NotNull(message = "领料申请单ID不能为空")  
19 - private Long materialRequestId;  
20 -  
21 - @Schema(description = "产品物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
22 - @NotNull(message = "产品物料ID不能为空")  
23 - private Long itemId;  
24 -  
25 - @Schema(description = "计量单位ID", example = "1")  
26 - private Long unitMeasureId;  
27 -  
28 - @Schema(description = "需求数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10.00")  
29 - @NotNull(message = "需求数量不能为空")  
30 - @DecimalMin(value = "0.01", message = "需求数量必须大于 0")  
31 - private BigDecimal quantity;  
32 -  
33 - @Schema(description = "备注", example = "备注")  
34 - private String remark;  
35 -  
36 - }  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java deleted
1 -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;  
5 -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;  
6 -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum;  
7 -import com.baomidou.mybatisplus.annotation.KeySequence;  
8 -import com.baomidou.mybatisplus.annotation.TableId;  
9 -import com.baomidou.mybatisplus.annotation.TableName;  
10 -import lombok.*;  
11 -  
12 -import java.time.LocalDateTime;  
13 -  
14 -/**  
15 - * MES 领料申请单 DO  
16 - */  
17 -@TableName("mes_wm_material_request")  
18 -@KeySequence("mes_wm_material_request_seq")  
19 -@Data  
20 -@EqualsAndHashCode(callSuper = true)  
21 -@ToString(callSuper = true)  
22 -@Builder  
23 -@NoArgsConstructor  
24 -@AllArgsConstructor  
25 -public class MesWmMaterialRequestDO extends BaseDO {  
26 -  
27 - /**  
28 - * 编号  
29 - */  
30 - @TableId  
31 - private Long id;  
32 - /**  
33 - * 工作站ID  
34 - *  
35 - * 关联 {@link MesMdWorkstationDO#getId()}  
36 - */  
37 - private Long workstationId;  
38 - /**  
39 - * 生产工单ID  
40 - *  
41 - * 关联 {@link MesProWorkOrderDO#getId()}  
42 - */  
43 - private Long workOrderId;  
44 - /**  
45 - * 需求人用户ID  
46 - *  
47 - * 关联 system_users.id  
48 - */  
49 - private Long userId;  
50 - /**  
51 - * 需求时间  
52 - */  
53 - private LocalDateTime requestTime;  
54 - /**  
55 - * 开始备料时间  
56 - */  
57 - private LocalDateTime startTime;  
58 - /**  
59 - * 完成时间  
60 - */  
61 - private LocalDateTime endTime;  
62 - /**  
63 - * 状态  
64 - *  
65 - * 枚举 {@link MesWmMaterialRequestStatusEnum}  
66 - */  
67 - private Integer status;  
68 - /**  
69 - * 备注  
70 - */  
71 - private String remark;  
72 -  
73 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java deleted
1 -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;  
5 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import lombok.*;  
10 -  
11 -import java.math.BigDecimal;  
12 -  
13 -/**  
14 - * MES 领料申请单行 DO  
15 - */  
16 -@TableName("mes_wm_material_request_line")  
17 -@KeySequence("mes_wm_material_request_line_seq")  
18 -@Data  
19 -@EqualsAndHashCode(callSuper = true)  
20 -@ToString(callSuper = true)  
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor  
24 -public class MesWmMaterialRequestLineDO extends BaseDO {  
25 -  
26 - /**  
27 - * 编号  
28 - */  
29 - @TableId  
30 - private Long id;  
31 - /**  
32 - * 领料申请单ID  
33 - *  
34 - * 关联 {@link MesWmMaterialRequestDO#getId()}  
35 - */  
36 - private Long materialRequestId;  
37 - /**  
38 - * 产品物料ID  
39 - *  
40 - * 关联 {@link MesMdItemDO#getId()}  
41 - */  
42 - private Long itemId;  
43 - /**  
44 - * 计量单位ID  
45 - *  
46 - * 关联 {@link MesMdUnitMeasureDO#getId()}  
47 - */  
48 - private Long unitMeasureId;  
49 - /**  
50 - * 需求数量  
51 - */  
52 - private BigDecimal quantity;  
53 - /**  
54 - * 备注  
55 - */  
56 - private String remark;  
57 -  
58 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java deleted
1 -package cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO;  
7 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * MES 领料申请单行 Mapper  
14 - */  
15 -@Mapper  
16 -public interface MesWmMaterialRequestLineMapper extends BaseMapperX<MesWmMaterialRequestLineDO> {  
17 -  
18 - default PageResult<MesWmMaterialRequestLineDO> selectPage(MesWmMaterialRequestLinePageReqVO reqVO) {  
19 - return selectPage(reqVO, new LambdaQueryWrapperX<MesWmMaterialRequestLineDO>()  
20 - .eqIfPresent(MesWmMaterialRequestLineDO::getMaterialRequestId, reqVO.getMaterialRequestId())  
21 - .orderByDesc(MesWmMaterialRequestLineDO::getId));  
22 - }  
23 -  
24 - default List<MesWmMaterialRequestLineDO> selectListByMaterialRequestId(Long materialRequestId) {  
25 - return selectList(MesWmMaterialRequestLineDO::getMaterialRequestId, materialRequestId);  
26 - }  
27 -  
28 - default void deleteByMaterialRequestId(Long materialRequestId) {  
29 - delete(MesWmMaterialRequestLineDO::getMaterialRequestId, materialRequestId);  
30 - }  
31 -  
32 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java deleted
1 -package cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO;  
7 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -/**  
11 - * MES 领料申请单 Mapper  
12 - */  
13 -@Mapper  
14 -public interface MesWmMaterialRequestMapper extends BaseMapperX<MesWmMaterialRequestDO> {  
15 -  
16 - default PageResult<MesWmMaterialRequestDO> selectPage(MesWmMaterialRequestPageReqVO reqVO) {  
17 - return selectPage(reqVO, new LambdaQueryWrapperX<MesWmMaterialRequestDO>()  
18 - .eqIfPresent(MesWmMaterialRequestDO::getWorkstationId, reqVO.getWorkstationId())  
19 - .eqIfPresent(MesWmMaterialRequestDO::getWorkOrderId, reqVO.getWorkOrderId())  
20 - .eqIfPresent(MesWmMaterialRequestDO::getUserId, reqVO.getUserId())  
21 - .eqIfPresent(MesWmMaterialRequestDO::getStatus, reqVO.getStatus())  
22 - .betweenIfPresent(MesWmMaterialRequestDO::getRequestTime, reqVO.getRequestTime())  
23 - .orderByDesc(MesWmMaterialRequestDO::getId));  
24 - }  
25 -  
26 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java deleted
1 -package cn.iocoder.yudao.module.mes.enums.wm;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.ArrayValuable;  
4 -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants;  
5 -import lombok.AllArgsConstructor;  
6 -import lombok.Getter;  
7 -  
8 -import java.util.Arrays;  
9 -  
10 -/**  
11 - * MES 领料申请单状态枚举  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -@Getter  
16 -@AllArgsConstructor  
17 -public enum MesWmMaterialRequestStatusEnum implements ArrayValuable<Integer> {  
18 -  
19 - PREPARE(MesOrderStatusConstants.PREPARE, "草稿"),  
20 - PREPARING(MesOrderStatusConstants.APPROVING, "备料中"),  
21 - WAITING(MesOrderStatusConstants.APPROVED, "待领料"),  
22 - FINISHED(MesOrderStatusConstants.FINISHED, "已完成"),  
23 - CANCELED(MesOrderStatusConstants.CANCELLED, "已取消");  
24 -  
25 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmMaterialRequestStatusEnum::getStatus).toArray(Integer[]::new);  
26 -  
27 - /**  
28 - * 状态值  
29 - */  
30 - private final Integer status;  
31 - /**  
32 - * 状态名  
33 - */  
34 - private final String name;  
35 -  
36 - @Override  
37 - public Integer[] array() {  
38 - return ARRAYS;  
39 - }  
40 -  
41 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java deleted
1 -package cn.iocoder.yudao.module.mes.service.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO;  
5 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO;  
6 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO;  
7 -import jakarta.validation.Valid;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * MES 领料申请单行 Service 接口  
13 - */  
14 -public interface MesWmMaterialRequestLineService {  
15 -  
16 - /**  
17 - * 创建领料申请单行  
18 - *  
19 - * @param createReqVO 创建信息  
20 - * @return 编号  
21 - */  
22 - Long createMaterialRequestLine(@Valid MesWmMaterialRequestLineSaveReqVO createReqVO);  
23 -  
24 - /**  
25 - * 修改领料申请单行  
26 - *  
27 - * @param updateReqVO 修改信息  
28 - */  
29 - void updateMaterialRequestLine(@Valid MesWmMaterialRequestLineSaveReqVO updateReqVO);  
30 -  
31 - /**  
32 - * 删除领料申请单行  
33 - *  
34 - * @param id 编号  
35 - */  
36 - void deleteMaterialRequestLine(Long id);  
37 -  
38 - /**  
39 - * 获得领料申请单行  
40 - *  
41 - * @param id 编号  
42 - * @return 领料申请单行  
43 - */  
44 - MesWmMaterialRequestLineDO getMaterialRequestLine(Long id);  
45 -  
46 - /**  
47 - * 获得领料申请单行分页  
48 - *  
49 - * @param pageReqVO 分页参数  
50 - * @return 领料申请单行分页  
51 - */  
52 - PageResult<MesWmMaterialRequestLineDO> getMaterialRequestLinePage(MesWmMaterialRequestLinePageReqVO pageReqVO);  
53 -  
54 - /**  
55 - * 获得指定领料申请单的所有行  
56 - *  
57 - * @param materialRequestId 领料申请单编号  
58 - * @return 领料申请单行列表  
59 - */  
60 - List<MesWmMaterialRequestLineDO> getMaterialRequestLineListByMaterialRequestId(Long materialRequestId);  
61 -  
62 - /**  
63 - * 根据领料申请单编号,删除所有行  
64 - *  
65 - * @param materialRequestId 领料申请单编号  
66 - */  
67 - void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId);  
68 -  
69 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.mes.service.wm.materialrequest;  
2 -  
3 -import cn.hutool.core.util.ObjUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
6 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO;  
7 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO;  
8 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO;  
9 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO;  
10 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestLineMapper;  
11 -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum;  
12 -import jakarta.annotation.Resource;  
13 -import org.springframework.context.annotation.Lazy;  
14 -import org.springframework.stereotype.Service;  
15 -import org.springframework.validation.annotation.Validated;  
16 -  
17 -import java.util.List;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
20 -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;  
21 -  
22 -/**  
23 - * MES 领料申请单行 Service 实现类  
24 - */  
25 -@Service  
26 -@Validated  
27 -public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequestLineService {  
28 -  
29 - @Resource  
30 - private MesWmMaterialRequestLineMapper materialRequestLineMapper;  
31 -  
32 - @Resource  
33 - @Lazy  
34 - private MesWmMaterialRequestService materialRequestService;  
35 -  
36 - @Override  
37 - public Long createMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO createReqVO) {  
38 - // 校验父单据存在且为草稿状态  
39 - validateMaterialRequestStatusDraft(createReqVO.getMaterialRequestId());  
40 -  
41 - // 插入  
42 - MesWmMaterialRequestLineDO line = BeanUtils.toBean(createReqVO, MesWmMaterialRequestLineDO.class);  
43 - materialRequestLineMapper.insert(line);  
44 - return line.getId();  
45 - }  
46 -  
47 - @Override  
48 - public void updateMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO updateReqVO) {  
49 - // 校验存在  
50 - MesWmMaterialRequestLineDO line = validateMaterialRequestLineExists(updateReqVO.getId());  
51 - // 校验父单据存在且为草稿状态  
52 - validateMaterialRequestStatusDraft(line.getMaterialRequestId());  
53 -  
54 - // 更新  
55 - MesWmMaterialRequestLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestLineDO.class);  
56 - materialRequestLineMapper.updateById(updateObj);  
57 - }  
58 -  
59 - @Override  
60 - public void deleteMaterialRequestLine(Long id) {  
61 - // 校验存在  
62 - validateMaterialRequestLineExists(id);  
63 - // 删除  
64 - materialRequestLineMapper.deleteById(id);  
65 - }  
66 -  
67 - @Override  
68 - public MesWmMaterialRequestLineDO getMaterialRequestLine(Long id) {  
69 - return materialRequestLineMapper.selectById(id);  
70 - }  
71 -  
72 - @Override  
73 - public PageResult<MesWmMaterialRequestLineDO> getMaterialRequestLinePage(MesWmMaterialRequestLinePageReqVO pageReqVO) {  
74 - return materialRequestLineMapper.selectPage(pageReqVO);  
75 - }  
76 -  
77 - @Override  
78 - public List<MesWmMaterialRequestLineDO> getMaterialRequestLineListByMaterialRequestId(Long materialRequestId) {  
79 - return materialRequestLineMapper.selectListByMaterialRequestId(materialRequestId);  
80 - }  
81 -  
82 - @Override  
83 - public void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId) {  
84 - materialRequestLineMapper.deleteByMaterialRequestId(materialRequestId);  
85 - }  
86 -  
87 - private MesWmMaterialRequestLineDO validateMaterialRequestLineExists(Long id) {  
88 - MesWmMaterialRequestLineDO line = materialRequestLineMapper.selectById(id);  
89 - if (line == null) {  
90 - throw exception(WM_MATERIAL_REQUEST_LINE_NOT_EXISTS);  
91 - }  
92 - return line;  
93 - }  
94 -  
95 - /**  
96 - * 校验父领料申请单存在且为草稿状态  
97 - */  
98 - private void validateMaterialRequestStatusDraft(Long materialRequestId) {  
99 - // TODO @AI:类似 itemReceiptService.validateItemReceiptEditable,后续可在 materialRequestService 封装 validateEditable 方法  
100 - MesWmMaterialRequestDO materialRequest = materialRequestService.getMaterialRequest(materialRequestId);  
101 - if (materialRequest == null) {  
102 - throw exception(WM_MATERIAL_REQUEST_NOT_EXISTS);  
103 - }  
104 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) {  
105 - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID);  
106 - }  
107 - }  
108 -  
109 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java deleted
1 -package cn.iocoder.yudao.module.mes.service.wm.materialrequest;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO;  
5 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO;  
6 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO;  
7 -import jakarta.validation.Valid;  
8 -  
9 -import java.util.Collection;  
10 -import java.util.List;  
11 -import java.util.Map;  
12 -  
13 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;  
14 -  
15 -/**  
16 - * MES 领料申请单 Service 接口  
17 - */  
18 -public interface MesWmMaterialRequestService {  
19 -  
20 - /**  
21 - * 创建领料申请单  
22 - *  
23 - * @param createReqVO 创建信息  
24 - * @return 编号  
25 - */  
26 - Long createMaterialRequest(@Valid MesWmMaterialRequestSaveReqVO createReqVO);  
27 -  
28 - /**  
29 - * 修改领料申请单  
30 - *  
31 - * @param updateReqVO 修改信息  
32 - */  
33 - void updateMaterialRequest(@Valid MesWmMaterialRequestSaveReqVO updateReqVO);  
34 -  
35 - /**  
36 - * 删除领料申请单(级联删除行,仅草稿状态允许)  
37 - *  
38 - * @param id 编号  
39 - */  
40 - void deleteMaterialRequest(Long id);  
41 -  
42 - /**  
43 - * 获得领料申请单  
44 - *  
45 - * @param id 编号  
46 - * @return 领料申请单  
47 - */  
48 - MesWmMaterialRequestDO getMaterialRequest(Long id);  
49 -  
50 - /**  
51 - * 获得领料申请单分页  
52 - *  
53 - * @param pageReqVO 分页参数  
54 - * @return 领料申请单分页  
55 - */  
56 - PageResult<MesWmMaterialRequestDO> getMaterialRequestPage(MesWmMaterialRequestPageReqVO pageReqVO);  
57 -  
58 - /**  
59 - * 提交领料申请单(草稿 → 备料中)  
60 - *  
61 - * @param id 编号  
62 - */  
63 - void submitMaterialRequest(Long id);  
64 -  
65 - /**  
66 - * 审批领料申请单(备料中 → 待领料)  
67 - *  
68 - * @param id 编号  
69 - */  
70 - void approveMaterialRequest(Long id);  
71 -  
72 - /**  
73 - * 完成领料申请单(待领料 → 已完成),内部调用  
74 - *  
75 - * @param id 编号  
76 - */  
77 - void finishMaterialRequest(Long id);  
78 -  
79 - /**  
80 - * 取消领料申请单(非已完成 → 已取消)  
81 - *  
82 - * @param id 编号  
83 - */  
84 - void cancelMaterialRequest(Long id);  
85 -  
86 - /**  
87 - * 按编号集合获得领料申请单列表  
88 - *  
89 - * @param ids 编号集合  
90 - * @return 领料申请单列表  
91 - */  
92 - List<MesWmMaterialRequestDO> getMaterialRequestList(Collection<Long> ids);  
93 -  
94 - default Map<Long, MesWmMaterialRequestDO> getMaterialRequestMap(Collection<Long> ids) {  
95 - return convertMap(getMaterialRequestList(ids), MesWmMaterialRequestDO::getId);  
96 - }  
97 -  
98 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.mes.service.wm.materialrequest;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.ObjUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
7 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO;  
8 -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO;  
9 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO;  
10 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestMapper;  
11 -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum;  
12 -import jakarta.annotation.Resource;  
13 -import org.springframework.stereotype.Service;  
14 -import org.springframework.transaction.annotation.Transactional;  
15 -import org.springframework.validation.annotation.Validated;  
16 -  
17 -import java.util.Collection;  
18 -import java.util.Collections;  
19 -import java.util.List;  
20 -  
21 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
22 -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;  
23 -  
24 -/**  
25 - * MES 领料申请单 Service 实现类  
26 - */  
27 -@Service  
28 -@Validated  
29 -public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestService {  
30 -  
31 - @Resource  
32 - private MesWmMaterialRequestMapper materialRequestMapper;  
33 -  
34 - @Resource  
35 - private MesWmMaterialRequestLineService materialRequestLineService;  
36 -  
37 - @Override  
38 - public Long createMaterialRequest(MesWmMaterialRequestSaveReqVO createReqVO) {  
39 - // TODO DONE @AI:领料申请关联数据校验待领料模块完善后补充(仓库、物料等基础数据校验)  
40 -  
41 - // 2. 插入  
42 - MesWmMaterialRequestDO materialRequest = BeanUtils.toBean(createReqVO, MesWmMaterialRequestDO.class);  
43 - materialRequest.setStatus(MesWmMaterialRequestStatusEnum.PREPARE.getStatus());  
44 - materialRequestMapper.insert(materialRequest);  
45 - return materialRequest.getId();  
46 - }  
47 -  
48 - @Override  
49 - public void updateMaterialRequest(MesWmMaterialRequestSaveReqVO updateReqVO) {  
50 - // 1. 校验存在 + 草稿状态  
51 - validateMaterialRequestExistsAndDraft(updateReqVO.getId());  
52 - // TODO DONE @AI:领料申请关联数据校验待领料模块完善后补充(仓库、物料等基础数据校验)  
53 -  
54 - // 2. 更新  
55 - MesWmMaterialRequestDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestDO.class);  
56 - materialRequestMapper.updateById(updateObj);  
57 - }  
58 -  
59 - @Override  
60 - @Transactional(rollbackFor = Exception.class)  
61 - public void deleteMaterialRequest(Long id) {  
62 - // 1. 校验存在 + 草稿状态  
63 - validateMaterialRequestExistsAndDraft(id);  
64 -  
65 - // 2.1 级联删除行  
66 - materialRequestLineService.deleteMaterialRequestLineByMaterialRequestId(id);  
67 - // 2.2 删除  
68 - materialRequestMapper.deleteById(id);  
69 - }  
70 -  
71 - @Override  
72 - public MesWmMaterialRequestDO getMaterialRequest(Long id) {  
73 - return materialRequestMapper.selectById(id);  
74 - }  
75 -  
76 - @Override  
77 - public PageResult<MesWmMaterialRequestDO> getMaterialRequestPage(MesWmMaterialRequestPageReqVO pageReqVO) {  
78 - return materialRequestMapper.selectPage(pageReqVO);  
79 - }  
80 -  
81 - @Override  
82 - public void submitMaterialRequest(Long id) {  
83 - // 1. 校验存在 + 草稿状态  
84 - validateMaterialRequestExistsAndDraft(id);  
85 -  
86 - // 2. 草稿 → 备料中  
87 - materialRequestMapper.updateById(new MesWmMaterialRequestDO()  
88 - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.PREPARING.getStatus()));  
89 - }  
90 -  
91 - @Override  
92 - public void approveMaterialRequest(Long id) {  
93 - // 1.1 校验存在  
94 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id);  
95 - // 1.2 校验状态:只有备料中才允许审批  
96 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARING.getStatus(), materialRequest.getStatus())) {  
97 - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID);  
98 - }  
99 -  
100 - // 2. 备料中 → 待领料  
101 - materialRequestMapper.updateById(new MesWmMaterialRequestDO()  
102 - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.WAITING.getStatus()));  
103 - }  
104 -  
105 - @Override  
106 - public void finishMaterialRequest(Long id) {  
107 - // 1.1 校验存在  
108 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id);  
109 - // 1.2 校验状态:只有待领料才允许完成  
110 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.WAITING.getStatus(), materialRequest.getStatus())) {  
111 - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID);  
112 - }  
113 -  
114 - // 2. 待领料 → 已完成  
115 - materialRequestMapper.updateById(new MesWmMaterialRequestDO()  
116 - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.FINISHED.getStatus()));  
117 - }  
118 -  
119 - @Override  
120 - public void cancelMaterialRequest(Long id) {  
121 - // 1.1 校验存在  
122 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id);  
123 - // 1.2 已完成不可取消  
124 - if (ObjUtil.equal(MesWmMaterialRequestStatusEnum.FINISHED.getStatus(), materialRequest.getStatus())) {  
125 - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID);  
126 - }  
127 -  
128 - // 2. 非已完成 → 已取消  
129 - materialRequestMapper.updateById(new MesWmMaterialRequestDO()  
130 - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.CANCELED.getStatus()));  
131 - }  
132 -  
133 - @Override  
134 - public List<MesWmMaterialRequestDO> getMaterialRequestList(Collection<Long> ids) {  
135 - if (CollUtil.isEmpty(ids)) {  
136 - return Collections.emptyList();  
137 - }  
138 - return materialRequestMapper.selectByIds(ids);  
139 - }  
140 -  
141 - private MesWmMaterialRequestDO validateMaterialRequestExists(Long id) {  
142 - MesWmMaterialRequestDO materialRequest = materialRequestMapper.selectById(id);  
143 - if (materialRequest == null) {  
144 - throw exception(WM_MATERIAL_REQUEST_NOT_EXISTS);  
145 - }  
146 - return materialRequest;  
147 - }  
148 -  
149 - /**  
150 - * 校验领料申请单存在且为草稿状态  
151 - */  
152 - private MesWmMaterialRequestDO validateMaterialRequestExistsAndDraft(Long id) {  
153 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id);  
154 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) {  
155 - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID);  
156 - }  
157 - return materialRequest;  
158 - }  
159 -  
160 -}