From a6c58825ec7334d4dc60ece70d5100bfd1c7bad4 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 5 Apr 2026 12:21:08 +0800 Subject: [PATCH] ✨ feat(mes): 移除多余的 material request --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java | 173 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java | 111 --------------------------------------------------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java | 34 ---------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java | 68 -------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java | 36 ------------------------------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java | 16 ---------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java | 57 --------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java | 36 ------------------------------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java | 73 ------------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java | 58 ---------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java | 32 -------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java | 26 -------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java | 41 ----------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java | 69 --------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java | 109 ------------------------------------------------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java | 98 -------------------------------------------------------------------------------------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java | 160 ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 17 files changed, 0 insertions(+), 1197 deletions(-) delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java deleted file mode 100644 index 589c755..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestController.java +++ /dev/null @@ -1,173 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; -import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; -import cn.iocoder.yudao.module.mes.service.wm.materialrequest.MesWmMaterialRequestService; -import cn.iocoder.yudao.module.system.api.user.AdminUserApi; -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; -import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; - -@Tag(name = "管理后台 - MES 领料申请单") -@RestController -@RequestMapping("/mes/wm/material-request") -@Validated -public class MesWmMaterialRequestController { - - @Resource - private MesWmMaterialRequestService materialRequestService; - @Resource - private MesMdWorkstationService workstationService; - @Resource - private MesProWorkOrderService workOrderService; - @Resource - private AdminUserApi adminUserApi; - - @PostMapping("/create") - @Operation(summary = "创建领料申请单") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:create')") - public CommonResult createMaterialRequest(@Valid @RequestBody MesWmMaterialRequestSaveReqVO createReqVO) { - return success(materialRequestService.createMaterialRequest(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "修改领料申请单") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult updateMaterialRequest(@Valid @RequestBody MesWmMaterialRequestSaveReqVO updateReqVO) { - materialRequestService.updateMaterialRequest(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除领料申请单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:delete')") - public CommonResult deleteMaterialRequest(@RequestParam("id") Long id) { - materialRequestService.deleteMaterialRequest(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得领料申请单") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')") - public CommonResult getMaterialRequest(@RequestParam("id") Long id) { - MesWmMaterialRequestDO materialRequest = materialRequestService.getMaterialRequest(id); - if (materialRequest == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(materialRequest)).get(0)); - } - - @GetMapping("/page") - @Operation(summary = "获得领料申请单分页") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')") - public CommonResult> getMaterialRequestPage( - @Valid MesWmMaterialRequestPageReqVO pageReqVO) { - PageResult pageResult = materialRequestService.getMaterialRequestPage(pageReqVO); - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出领料申请单 Excel") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportMaterialRequestExcel(@Valid MesWmMaterialRequestPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - PageResult pageResult = materialRequestService.getMaterialRequestPage(pageReqVO); - ExcelUtils.write(response, "领料申请单.xls", "数据", MesWmMaterialRequestRespVO.class, - buildRespVOList(pageResult.getList())); - } - - @PutMapping("/submit") - @Operation(summary = "提交领料申请单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult submitMaterialRequest(@RequestParam("id") Long id) { - materialRequestService.submitMaterialRequest(id); - return success(true); - } - - @PutMapping("/approve") - @Operation(summary = "审批领料申请单(开始备料)") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult approveMaterialRequest(@RequestParam("id") Long id) { - materialRequestService.approveMaterialRequest(id); - return success(true); - } - - @PutMapping("/finish") - @Operation(summary = "完成领料申请单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult finishMaterialRequest(@RequestParam("id") Long id) { - materialRequestService.finishMaterialRequest(id); - return success(true); - } - - @PutMapping("/cancel") - @Operation(summary = "取消领料申请单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult cancelMaterialRequest(@RequestParam("id") Long id) { - materialRequestService.cancelMaterialRequest(id); - return success(true); - } - - // ==================== 拼接 VO ==================== - - private List buildRespVOList(List list) { - if (CollUtil.isEmpty(list)) { - return Collections.emptyList(); - } - // 1. 获得关联数据 - Map workstationMap = workstationService.getWorkstationMap( - convertSet(list, MesWmMaterialRequestDO::getWorkstationId)); - Map workOrderMap = workOrderService.getWorkOrderMap( - convertSet(list, MesWmMaterialRequestDO::getWorkOrderId)); - Map userMap = adminUserApi.getUserMap( - convertSet(list, MesWmMaterialRequestDO::getUserId)); - // 2. 构建结果 - return BeanUtils.toBean(list, MesWmMaterialRequestRespVO.class, vo -> { - findAndThen(workstationMap, vo.getWorkstationId(), ws -> - vo.setWorkstationCode(ws.getCode()).setWorkstationName(ws.getName())); - findAndThen(workOrderMap, vo.getWorkOrderId(), wo -> - vo.setWorkOrderCode(wo.getCode())); - findAndThen(userMap, vo.getUserId(), user -> - vo.setUserNickname(user.getNickname())); - }); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java deleted file mode 100644 index ea09214..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java +++ /dev/null @@ -1,111 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.collection.MapUtils; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; -import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; -import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; -import cn.iocoder.yudao.module.mes.service.wm.materialrequest.MesWmMaterialRequestLineService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; - -@Tag(name = "管理后台 - MES 领料申请单行") -@RestController -@RequestMapping("/mes/wm/material-request-line") -@Validated -public class MesWmMaterialRequestLineController { - - @Resource - private MesWmMaterialRequestLineService materialRequestLineService; - @Resource - private MesMdItemService itemService; - @Resource - private MesMdUnitMeasureService unitMeasureService; - - @PostMapping("/create") - @Operation(summary = "创建领料申请单行") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:create')") - public CommonResult createMaterialRequestLine(@Valid @RequestBody MesWmMaterialRequestLineSaveReqVO createReqVO) { - return success(materialRequestLineService.createMaterialRequestLine(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "修改领料申请单行") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:update')") - public CommonResult updateMaterialRequestLine(@Valid @RequestBody MesWmMaterialRequestLineSaveReqVO updateReqVO) { - materialRequestLineService.updateMaterialRequestLine(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除领料申请单行") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:delete')") - public CommonResult deleteMaterialRequestLine(@RequestParam("id") Long id) { - materialRequestLineService.deleteMaterialRequestLine(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得领料申请单行") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')") - public CommonResult getMaterialRequestLine(@RequestParam("id") Long id) { - MesWmMaterialRequestLineDO line = materialRequestLineService.getMaterialRequestLine(id); - if (line == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(line)).get(0)); - } - - @GetMapping("/page") - @Operation(summary = "获得领料申请单行分页") - @PreAuthorize("@ss.hasPermission('mes:wm-material-request:query')") - public CommonResult> getMaterialRequestLinePage( - @Valid MesWmMaterialRequestLinePageReqVO pageReqVO) { - PageResult pageResult = materialRequestLineService.getMaterialRequestLinePage(pageReqVO); - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); - } - - // ==================== 拼接 VO ==================== - - private List buildRespVOList(List list) { - if (CollUtil.isEmpty(list)) { - return Collections.emptyList(); - } - // 1. 获得关联数据 - Map itemMap = itemService.getItemMap( - convertSet(list, MesWmMaterialRequestLineDO::getItemId)); - Map unitMeasureMap = unitMeasureService.getUnitMeasureMap( - convertSet(list, MesWmMaterialRequestLineDO::getUnitMeasureId)); - // 2. 构建结果 - return BeanUtils.toBean(list, MesWmMaterialRequestLineRespVO.class, vo -> { - MapUtils.findAndThen(itemMap, vo.getItemId(), item -> - vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification())); - MapUtils.findAndThen(unitMeasureMap, vo.getUnitMeasureId(), unit -> - vo.setUnitMeasureName(unit.getName())); - }); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java deleted file mode 100644 index 1931712..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestPageReqVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.format.annotation.DateTimeFormat; - -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - MES 领料申请单分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -public class MesWmMaterialRequestPageReqVO extends PageParam { - - @Schema(description = "工作站ID", example = "1") - private Long workstationId; - - @Schema(description = "生产工单ID", example = "1") - private Long workOrderId; - - @Schema(description = "需求人用户ID", example = "1") - private Long userId; - - @Schema(description = "状态", example = "0") - private Integer status; - - @Schema(description = "需求时间范围") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] requestTime; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java deleted file mode 100644 index 3fc6392..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestRespVO.java +++ /dev/null @@ -1,68 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo; - -import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 领料申请单 Response VO") -@Data -@ExcelIgnoreUnannotated -public class MesWmMaterialRequestRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("编号") - private Long id; - - @Schema(description = "工作站ID", example = "1") - private Long workstationId; - - @Schema(description = "工作站编码", example = "WS0001") - @ExcelProperty("工作站编码") - private String workstationCode; - - @Schema(description = "工作站名称", example = "1#注塑工作站") - @ExcelProperty("工作站名称") - private String workstationName; - - @Schema(description = "生产工单ID", example = "1") - private Long workOrderId; - - @Schema(description = "生产工单编码", example = "MO20260222001") - @ExcelProperty("生产工单编码") - private String workOrderCode; - - @Schema(description = "需求人用户ID", example = "1") - private Long userId; - - @Schema(description = "需求人昵称", example = "管理员") - @ExcelProperty("需求人昵称") - private String userNickname; - - @Schema(description = "需求时间") - @ExcelProperty("需求时间") - private LocalDateTime requestTime; - - @Schema(description = "开始备料时间") - @ExcelProperty("开始备料时间") - private LocalDateTime startTime; - - @Schema(description = "完成时间") - @ExcelProperty("完成时间") - private LocalDateTime endTime; - - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") - @ExcelProperty("状态") - private Integer status; - - @Schema(description = "备注", example = "备注") - @ExcelProperty("备注") - private String remark; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java deleted file mode 100644 index c20d2db..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/MesWmMaterialRequestSaveReqVO.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 领料申请单新增/修改 Request VO") -@Data -public class MesWmMaterialRequestSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "工作站ID", example = "1") - private Long workstationId; - - @Schema(description = "生产工单ID", example = "1") - private Long workOrderId; - - @Schema(description = "需求人用户ID", example = "1") - private Long userId; - - @Schema(description = "需求时间") - private LocalDateTime requestTime; - - @Schema(description = "开始备料时间") - private LocalDateTime startTime; - - @Schema(description = "完成时间") - private LocalDateTime endTime; - - @Schema(description = "备注", example = "备注") - private String remark; - - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java deleted file mode 100644 index 86a844d..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLinePageReqVO.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Schema(description = "管理后台 - MES 领料申请单行分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -public class MesWmMaterialRequestLinePageReqVO extends PageParam { - - @Schema(description = "领料申请单ID", example = "1") - private Long materialRequestId; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java deleted file mode 100644 index d8fc536..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineRespVO.java +++ /dev/null @@ -1,57 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line; - -import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.math.BigDecimal; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 领料申请单行 Response VO") -@Data -@ExcelIgnoreUnannotated -public class MesWmMaterialRequestLineRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("编号") - private Long id; - - @Schema(description = "领料申请单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Long materialRequestId; - - @Schema(description = "产品物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Long itemId; - - @Schema(description = "产品物料编码", example = "IF2022082432") - @ExcelProperty("物料编码") - private String itemCode; - - @Schema(description = "产品物料名称", example = "PVC 颗粒") - @ExcelProperty("物料名称") - private String itemName; - - @Schema(description = "规格型号", example = "透明") - @ExcelProperty("规格型号") - private String specification; - - @Schema(description = "计量单位ID", example = "1") - private Long unitMeasureId; - - @Schema(description = "计量单位名称", example = "公斤") - @ExcelProperty("计量单位") - private String unitMeasureName; - - @Schema(description = "需求数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10.00") - @ExcelProperty("需求数量") - private BigDecimal quantity; - - @Schema(description = "备注", example = "备注") - @ExcelProperty("备注") - private String remark; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java deleted file mode 100644 index e653622..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -import java.math.BigDecimal; - -@Schema(description = "管理后台 - MES 领料申请单行新增/修改 Request VO") -@Data -public class MesWmMaterialRequestLineSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "领料申请单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "领料申请单ID不能为空") - private Long materialRequestId; - - @Schema(description = "产品物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "产品物料ID不能为空") - private Long itemId; - - @Schema(description = "计量单位ID", example = "1") - private Long unitMeasureId; - - @Schema(description = "需求数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10.00") - @NotNull(message = "需求数量不能为空") - @DecimalMin(value = "0.01", message = "需求数量必须大于 0") - private BigDecimal quantity; - - @Schema(description = "备注", example = "备注") - private String remark; - - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java deleted file mode 100644 index 57bee88..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java +++ /dev/null @@ -1,73 +0,0 @@ -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest; - -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.*; - -import java.time.LocalDateTime; - -/** - * MES 领料申请单 DO - */ -@TableName("mes_wm_material_request") -@KeySequence("mes_wm_material_request_seq") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class MesWmMaterialRequestDO extends BaseDO { - - /** - * 编号 - */ - @TableId - private Long id; - /** - * 工作站ID - * - * 关联 {@link MesMdWorkstationDO#getId()} - */ - private Long workstationId; - /** - * 生产工单ID - * - * 关联 {@link MesProWorkOrderDO#getId()} - */ - private Long workOrderId; - /** - * 需求人用户ID - * - * 关联 system_users.id - */ - private Long userId; - /** - * 需求时间 - */ - private LocalDateTime requestTime; - /** - * 开始备料时间 - */ - private LocalDateTime startTime; - /** - * 完成时间 - */ - private LocalDateTime endTime; - /** - * 状态 - * - * 枚举 {@link MesWmMaterialRequestStatusEnum} - */ - private Integer status; - /** - * 备注 - */ - private String remark; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java deleted file mode 100644 index f49ddb2..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java +++ /dev/null @@ -1,58 +0,0 @@ -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest; - -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.*; - -import java.math.BigDecimal; - -/** - * MES 领料申请单行 DO - */ -@TableName("mes_wm_material_request_line") -@KeySequence("mes_wm_material_request_line_seq") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class MesWmMaterialRequestLineDO extends BaseDO { - - /** - * 编号 - */ - @TableId - private Long id; - /** - * 领料申请单ID - * - * 关联 {@link MesWmMaterialRequestDO#getId()} - */ - private Long materialRequestId; - /** - * 产品物料ID - * - * 关联 {@link MesMdItemDO#getId()} - */ - private Long itemId; - /** - * 计量单位ID - * - * 关联 {@link MesMdUnitMeasureDO#getId()} - */ - private Long unitMeasureId; - /** - * 需求数量 - */ - private BigDecimal quantity; - /** - * 备注 - */ - private String remark; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java deleted file mode 100644 index 125c468..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestLineMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * MES 领料申请单行 Mapper - */ -@Mapper -public interface MesWmMaterialRequestLineMapper extends BaseMapperX { - - default PageResult selectPage(MesWmMaterialRequestLinePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(MesWmMaterialRequestLineDO::getMaterialRequestId, reqVO.getMaterialRequestId()) - .orderByDesc(MesWmMaterialRequestLineDO::getId)); - } - - default List selectListByMaterialRequestId(Long materialRequestId) { - return selectList(MesWmMaterialRequestLineDO::getMaterialRequestId, materialRequestId); - } - - default void deleteByMaterialRequestId(Long materialRequestId) { - delete(MesWmMaterialRequestLineDO::getMaterialRequestId, materialRequestId); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java deleted file mode 100644 index da8d2a4..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/materialrequest/MesWmMaterialRequestMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * MES 领料申请单 Mapper - */ -@Mapper -public interface MesWmMaterialRequestMapper extends BaseMapperX { - - default PageResult selectPage(MesWmMaterialRequestPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(MesWmMaterialRequestDO::getWorkstationId, reqVO.getWorkstationId()) - .eqIfPresent(MesWmMaterialRequestDO::getWorkOrderId, reqVO.getWorkOrderId()) - .eqIfPresent(MesWmMaterialRequestDO::getUserId, reqVO.getUserId()) - .eqIfPresent(MesWmMaterialRequestDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(MesWmMaterialRequestDO::getRequestTime, reqVO.getRequestTime()) - .orderByDesc(MesWmMaterialRequestDO::getId)); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java deleted file mode 100644 index 102d662..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.mes.enums.wm; - -import cn.iocoder.yudao.framework.common.core.ArrayValuable; -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.Arrays; - -/** - * MES 领料申请单状态枚举 - * - * @author 芋道源码 - */ -@Getter -@AllArgsConstructor -public enum MesWmMaterialRequestStatusEnum implements ArrayValuable { - - PREPARE(MesOrderStatusConstants.PREPARE, "草稿"), - PREPARING(MesOrderStatusConstants.APPROVING, "备料中"), - WAITING(MesOrderStatusConstants.APPROVED, "待领料"), - FINISHED(MesOrderStatusConstants.FINISHED, "已完成"), - CANCELED(MesOrderStatusConstants.CANCELLED, "已取消"); - - public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmMaterialRequestStatusEnum::getStatus).toArray(Integer[]::new); - - /** - * 状态值 - */ - private final Integer status; - /** - * 状态名 - */ - private final String name; - - @Override - public Integer[] array() { - return ARRAYS; - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java deleted file mode 100644 index d232a31..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java +++ /dev/null @@ -1,69 +0,0 @@ -package cn.iocoder.yudao.module.mes.service.wm.materialrequest; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; -import jakarta.validation.Valid; - -import java.util.List; - -/** - * MES 领料申请单行 Service 接口 - */ -public interface MesWmMaterialRequestLineService { - - /** - * 创建领料申请单行 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createMaterialRequestLine(@Valid MesWmMaterialRequestLineSaveReqVO createReqVO); - - /** - * 修改领料申请单行 - * - * @param updateReqVO 修改信息 - */ - void updateMaterialRequestLine(@Valid MesWmMaterialRequestLineSaveReqVO updateReqVO); - - /** - * 删除领料申请单行 - * - * @param id 编号 - */ - void deleteMaterialRequestLine(Long id); - - /** - * 获得领料申请单行 - * - * @param id 编号 - * @return 领料申请单行 - */ - MesWmMaterialRequestLineDO getMaterialRequestLine(Long id); - - /** - * 获得领料申请单行分页 - * - * @param pageReqVO 分页参数 - * @return 领料申请单行分页 - */ - PageResult getMaterialRequestLinePage(MesWmMaterialRequestLinePageReqVO pageReqVO); - - /** - * 获得指定领料申请单的所有行 - * - * @param materialRequestId 领料申请单编号 - * @return 领料申请单行列表 - */ - List getMaterialRequestLineListByMaterialRequestId(Long materialRequestId); - - /** - * 根据领料申请单编号,删除所有行 - * - * @param materialRequestId 领料申请单编号 - */ - void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId); - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java deleted file mode 100644 index 1926bda..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -package cn.iocoder.yudao.module.mes.service.wm.materialrequest; - -import cn.hutool.core.util.ObjUtil; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestLineMapper; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; - -/** - * MES 领料申请单行 Service 实现类 - */ -@Service -@Validated -public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequestLineService { - - @Resource - private MesWmMaterialRequestLineMapper materialRequestLineMapper; - - @Resource - @Lazy - private MesWmMaterialRequestService materialRequestService; - - @Override - public Long createMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO createReqVO) { - // 校验父单据存在且为草稿状态 - validateMaterialRequestStatusDraft(createReqVO.getMaterialRequestId()); - - // 插入 - MesWmMaterialRequestLineDO line = BeanUtils.toBean(createReqVO, MesWmMaterialRequestLineDO.class); - materialRequestLineMapper.insert(line); - return line.getId(); - } - - @Override - public void updateMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO updateReqVO) { - // 校验存在 - MesWmMaterialRequestLineDO line = validateMaterialRequestLineExists(updateReqVO.getId()); - // 校验父单据存在且为草稿状态 - validateMaterialRequestStatusDraft(line.getMaterialRequestId()); - - // 更新 - MesWmMaterialRequestLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestLineDO.class); - materialRequestLineMapper.updateById(updateObj); - } - - @Override - public void deleteMaterialRequestLine(Long id) { - // 校验存在 - validateMaterialRequestLineExists(id); - // 删除 - materialRequestLineMapper.deleteById(id); - } - - @Override - public MesWmMaterialRequestLineDO getMaterialRequestLine(Long id) { - return materialRequestLineMapper.selectById(id); - } - - @Override - public PageResult getMaterialRequestLinePage(MesWmMaterialRequestLinePageReqVO pageReqVO) { - return materialRequestLineMapper.selectPage(pageReqVO); - } - - @Override - public List getMaterialRequestLineListByMaterialRequestId(Long materialRequestId) { - return materialRequestLineMapper.selectListByMaterialRequestId(materialRequestId); - } - - @Override - public void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId) { - materialRequestLineMapper.deleteByMaterialRequestId(materialRequestId); - } - - private MesWmMaterialRequestLineDO validateMaterialRequestLineExists(Long id) { - MesWmMaterialRequestLineDO line = materialRequestLineMapper.selectById(id); - if (line == null) { - throw exception(WM_MATERIAL_REQUEST_LINE_NOT_EXISTS); - } - return line; - } - - /** - * 校验父领料申请单存在且为草稿状态 - */ - private void validateMaterialRequestStatusDraft(Long materialRequestId) { - // TODO @AI:类似 itemReceiptService.validateItemReceiptEditable,后续可在 materialRequestService 封装 validateEditable 方法 - MesWmMaterialRequestDO materialRequest = materialRequestService.getMaterialRequest(materialRequestId); - if (materialRequest == null) { - throw exception(WM_MATERIAL_REQUEST_NOT_EXISTS); - } - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java deleted file mode 100644 index fed303d..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java +++ /dev/null @@ -1,98 +0,0 @@ -package cn.iocoder.yudao.module.mes.service.wm.materialrequest; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import jakarta.validation.Valid; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; - -/** - * MES 领料申请单 Service 接口 - */ -public interface MesWmMaterialRequestService { - - /** - * 创建领料申请单 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createMaterialRequest(@Valid MesWmMaterialRequestSaveReqVO createReqVO); - - /** - * 修改领料申请单 - * - * @param updateReqVO 修改信息 - */ - void updateMaterialRequest(@Valid MesWmMaterialRequestSaveReqVO updateReqVO); - - /** - * 删除领料申请单(级联删除行,仅草稿状态允许) - * - * @param id 编号 - */ - void deleteMaterialRequest(Long id); - - /** - * 获得领料申请单 - * - * @param id 编号 - * @return 领料申请单 - */ - MesWmMaterialRequestDO getMaterialRequest(Long id); - - /** - * 获得领料申请单分页 - * - * @param pageReqVO 分页参数 - * @return 领料申请单分页 - */ - PageResult getMaterialRequestPage(MesWmMaterialRequestPageReqVO pageReqVO); - - /** - * 提交领料申请单(草稿 → 备料中) - * - * @param id 编号 - */ - void submitMaterialRequest(Long id); - - /** - * 审批领料申请单(备料中 → 待领料) - * - * @param id 编号 - */ - void approveMaterialRequest(Long id); - - /** - * 完成领料申请单(待领料 → 已完成),内部调用 - * - * @param id 编号 - */ - void finishMaterialRequest(Long id); - - /** - * 取消领料申请单(非已完成 → 已取消) - * - * @param id 编号 - */ - void cancelMaterialRequest(Long id); - - /** - * 按编号集合获得领料申请单列表 - * - * @param ids 编号集合 - * @return 领料申请单列表 - */ - List getMaterialRequestList(Collection ids); - - default Map getMaterialRequestMap(Collection ids) { - return convertMap(getMaterialRequestList(ids), MesWmMaterialRequestDO::getId); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java deleted file mode 100644 index 9f53217..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java +++ /dev/null @@ -1,160 +0,0 @@ -package cn.iocoder.yudao.module.mes.service.wm.materialrequest; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjUtil; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestMapper; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.validation.annotation.Validated; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; - -/** - * MES 领料申请单 Service 实现类 - */ -@Service -@Validated -public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestService { - - @Resource - private MesWmMaterialRequestMapper materialRequestMapper; - - @Resource - private MesWmMaterialRequestLineService materialRequestLineService; - - @Override - public Long createMaterialRequest(MesWmMaterialRequestSaveReqVO createReqVO) { - // TODO DONE @AI:领料申请关联数据校验待领料模块完善后补充(仓库、物料等基础数据校验) - - // 2. 插入 - MesWmMaterialRequestDO materialRequest = BeanUtils.toBean(createReqVO, MesWmMaterialRequestDO.class); - materialRequest.setStatus(MesWmMaterialRequestStatusEnum.PREPARE.getStatus()); - materialRequestMapper.insert(materialRequest); - return materialRequest.getId(); - } - - @Override - public void updateMaterialRequest(MesWmMaterialRequestSaveReqVO updateReqVO) { - // 1. 校验存在 + 草稿状态 - validateMaterialRequestExistsAndDraft(updateReqVO.getId()); - // TODO DONE @AI:领料申请关联数据校验待领料模块完善后补充(仓库、物料等基础数据校验) - - // 2. 更新 - MesWmMaterialRequestDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestDO.class); - materialRequestMapper.updateById(updateObj); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteMaterialRequest(Long id) { - // 1. 校验存在 + 草稿状态 - validateMaterialRequestExistsAndDraft(id); - - // 2.1 级联删除行 - materialRequestLineService.deleteMaterialRequestLineByMaterialRequestId(id); - // 2.2 删除 - materialRequestMapper.deleteById(id); - } - - @Override - public MesWmMaterialRequestDO getMaterialRequest(Long id) { - return materialRequestMapper.selectById(id); - } - - @Override - public PageResult getMaterialRequestPage(MesWmMaterialRequestPageReqVO pageReqVO) { - return materialRequestMapper.selectPage(pageReqVO); - } - - @Override - public void submitMaterialRequest(Long id) { - // 1. 校验存在 + 草稿状态 - validateMaterialRequestExistsAndDraft(id); - - // 2. 草稿 → 备料中 - materialRequestMapper.updateById(new MesWmMaterialRequestDO() - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.PREPARING.getStatus())); - } - - @Override - public void approveMaterialRequest(Long id) { - // 1.1 校验存在 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 1.2 校验状态:只有备料中才允许审批 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARING.getStatus(), materialRequest.getStatus())) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - - // 2. 备料中 → 待领料 - materialRequestMapper.updateById(new MesWmMaterialRequestDO() - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.WAITING.getStatus())); - } - - @Override - public void finishMaterialRequest(Long id) { - // 1.1 校验存在 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 1.2 校验状态:只有待领料才允许完成 - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.WAITING.getStatus(), materialRequest.getStatus())) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - - // 2. 待领料 → 已完成 - materialRequestMapper.updateById(new MesWmMaterialRequestDO() - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.FINISHED.getStatus())); - } - - @Override - public void cancelMaterialRequest(Long id) { - // 1.1 校验存在 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 1.2 已完成不可取消 - if (ObjUtil.equal(MesWmMaterialRequestStatusEnum.FINISHED.getStatus(), materialRequest.getStatus())) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - - // 2. 非已完成 → 已取消 - materialRequestMapper.updateById(new MesWmMaterialRequestDO() - .setId(id).setStatus(MesWmMaterialRequestStatusEnum.CANCELED.getStatus())); - } - - @Override - public List getMaterialRequestList(Collection ids) { - if (CollUtil.isEmpty(ids)) { - return Collections.emptyList(); - } - return materialRequestMapper.selectByIds(ids); - } - - private MesWmMaterialRequestDO validateMaterialRequestExists(Long id) { - MesWmMaterialRequestDO materialRequest = materialRequestMapper.selectById(id); - if (materialRequest == null) { - throw exception(WM_MATERIAL_REQUEST_NOT_EXISTS); - } - return materialRequest; - } - - /** - * 校验领料申请单存在且为草稿状态 - */ - private MesWmMaterialRequestDO validateMaterialRequestExistsAndDraft(Long id) { - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - return materialRequest; - } - -} -- libgit2 0.21.4