From 89ae4e1c7400a1847f493a54a5f4455eba65407c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 21 Mar 2026 21:23:57 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=85=A5=E5=BA=93=E5=8D=95=E8=A1=8C=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=8A=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重命名和更新了生产入库单行的请求和响应对象,调整了字段名称以更好地反映业务逻辑。同时,优化了控制器中的相关方法,确保与新的数据结构一致。此变更旨在提升代码的可读性和维护性。 --- .../MesWmProductProduceController.java | 175 ------------------ .../MesWmProductProduceDetailController.java | 140 -------------- .../MesWmProductProduceLineController.java | 63 +------ .../MesWmProductProduceLinePageReqVO.java | 8 +- .../MesWmProductProduceLineRespVO.java | 2 +- .../vo/MesWmProductProducePageReqVO.java | 34 ---- .../vo/MesWmProductProduceRespVO.java | 54 ------ .../vo/MesWmProductProduceSaveReqVO.java | 38 ---- .../MesWmProductProduceDetailRespVO.java | 70 ------- .../MesWmProductProduceDetailSaveReqVO.java | 50 ----- .../MesWmProductProduceLineSaveReqVO.java | 52 ------ .../MesWmProductProduceDetailMapper.java | 8 - .../MesWmProductProduceLineMapper.java | 8 +- .../MesWmProductProduceMapper.java | 13 -- .../MesWmProductProduceDetailService.java | 46 +---- .../MesWmProductProduceDetailServiceImpl.java | 65 +------ .../MesWmProductProduceLineService.java | 72 ++----- .../MesWmProductProduceLineServiceImpl.java | 84 ++------- .../MesWmProductProduceService.java | 57 ------ .../MesWmProductProduceServiceImpl.java | 127 +------------ 20 files changed, 59 insertions(+), 1107 deletions(-) delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceController.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceDetailController.java rename yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/{line => }/MesWmProductProduceLinePageReqVO.java (77%) rename yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/{line => }/MesWmProductProduceLineRespVO.java (99%) delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProducePageReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceRespVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceSaveReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailRespVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailSaveReqVO.java delete mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineSaveReqVO.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceController.java deleted file mode 100644 index 2709a3c95f..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceController.java +++ /dev/null @@ -1,175 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce; - -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.collection.MapUtils; -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.productproduce.vo.MesWmProductProducePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO; -import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; -import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; -import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService; -import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; -import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceService; -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; - -@Tag(name = "管理后台 - MES 生产入库单") -@RestController -@RequestMapping("/mes/wm/product-produce") -@Validated -public class MesWmProductProduceController { - - @Resource - private MesWmProductProduceService produceService; - @Resource - private MesMdWorkstationService workstationService; - @Resource - private MesProWorkOrderService workOrderService; - @Resource - private MesProProcessService processService; - @Resource - private MesProTaskService taskService; - - @PostMapping("/create") - @Operation(summary = "创建生产入库单") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:create')") - public CommonResult createProductProduce(@Valid @RequestBody MesWmProductProduceSaveReqVO createReqVO) { - return success(produceService.createProductProduce(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "修改生产入库单") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:update')") - public CommonResult updateProductProduce(@Valid @RequestBody MesWmProductProduceSaveReqVO updateReqVO) { - produceService.updateProductProduce(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除生产入库单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:delete')") - public CommonResult deleteProductProduce(@RequestParam("id") Long id) { - produceService.deleteProductProduce(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得生产入库单") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult getProductProduce(@RequestParam("id") Long id) { - MesWmProductProduceDO produce = produceService.getProductProduce(id); - if (produce == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(produce)).get(0)); - } - - @GetMapping("/page") - @Operation(summary = "获得生产入库单分页") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult> getProductProducePage( - @Valid MesWmProductProducePageReqVO pageReqVO) { - PageResult pageResult = produceService.getProductProducePage(pageReqVO); - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出生产入库单 Excel") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportProductProduceExcel(@Valid MesWmProductProducePageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - PageResult pageResult = produceService.getProductProducePage(pageReqVO); - ExcelUtils.write(response, "生产入库单.xls", "数据", MesWmProductProduceRespVO.class, - buildRespVOList(pageResult.getList())); - } - - @PutMapping("/finish") - @Operation(summary = "完成生产入库单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:update-status')") - public CommonResult finishProductProduce(@RequestParam("id") Long id) { - produceService.finishProductProduce(id); - return success(true); - } - - @PutMapping("/cancel") - @Operation(summary = "取消生产入库单") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:update-status')") - public CommonResult cancelProductProduce(@RequestParam("id") Long id) { - produceService.cancelProductProduce(id); - return success(true); - } - - @GetMapping("/check-quantity") - @Operation(summary = "校验生产入库单数量", description = "校验每行明细数量之和是否等于行入库数量") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult checkProductProduceQuantity(@RequestParam("id") Long id) { - return success(produceService.checkProductProduceQuantity(id)); - } - - // ==================== 拼接 VO ==================== - - private List buildRespVOList(List list) { - if (CollUtil.isEmpty(list)) { - return Collections.emptyList(); - } - // 1. 获得关联数据 - Map workstationMap = workstationService.getWorkstationMap( - convertSet(list, MesWmProductProduceDO::getWorkstationId)); - Map workOrderMap = workOrderService.getWorkOrderMap( - convertSet(list, MesWmProductProduceDO::getWorkOrderId)); - Map processMap = processService.getProcessMap( - convertSet(list, MesWmProductProduceDO::getProcessId)); - Map taskMap = taskService.getTaskMap( - convertSet(list, MesWmProductProduceDO::getTaskId)); - // 2. 构建结果 - return BeanUtils.toBean(list, MesWmProductProduceRespVO.class, vo -> { - // 2.1 填充工作站名称 - MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), - workstation -> vo.setWorkstationName(workstation.getName())); - // 2.2 填充工单编号 - MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), - workOrder -> vo.setWorkOrderCode(workOrder.getCode())); - // 2.3 填充工序名称 - MapUtils.findAndThen(processMap, vo.getProcessId(), - process -> vo.setProcessName(process.getName())); - // 2.4 填充任务编号 - MapUtils.findAndThen(taskMap, vo.getTaskId(), - task -> vo.setTaskCode(task.getCode())); - }); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceDetailController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceDetailController.java deleted file mode 100644 index 94d5c1c0bc..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceDetailController.java +++ /dev/null @@ -1,140 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -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.productproduce.vo.detail.MesWmProductProduceDetailRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.detail.MesWmProductProduceDetailSaveReqVO; -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.productproduce.MesWmProductProduceDetailDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; -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.productproduce.MesWmProductProduceDetailService; -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; -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/product-produce-detail") -@Validated -public class MesWmProductProduceDetailController { - - @Resource - private MesWmProductProduceDetailService produceDetailService; - - @Resource - private MesMdItemService itemService; - - @Resource - private MesMdUnitMeasureService unitMeasureService; - - @Resource - private MesWmWarehouseService warehouseService; - - @Resource - private MesWmWarehouseLocationService locationService; - - @Resource - private MesWmWarehouseAreaService areaService; - - @PostMapping("/create") - @Operation(summary = "创建生产入库明细") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:create')") - public CommonResult createProductProduceDetail(@Valid @RequestBody MesWmProductProduceDetailSaveReqVO createReqVO) { - return success(produceDetailService.createProductProduceDetail(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "修改生产入库明细") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:update')") - public CommonResult updateProductProduceDetail(@Valid @RequestBody MesWmProductProduceDetailSaveReqVO updateReqVO) { - produceDetailService.updateProductProduceDetail(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除生产入库明细") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:delete')") - public CommonResult deleteProductProduceDetail(@RequestParam("id") Long id) { - produceDetailService.deleteProductProduceDetail(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得生产入库明细") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult getProductProduceDetail(@RequestParam("id") Long id) { - MesWmProductProduceDetailDO detail = produceDetailService.getProductProduceDetail(id); - if (detail == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(detail)).get(0)); - } - - @GetMapping("/list-by-line") - @Operation(summary = "获得生产入库明细列表(按行编号)") - @Parameter(name = "lineId", description = "行编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult> getProductProduceDetailListByLineId( - @RequestParam("lineId") Long lineId) { - List list = produceDetailService.getProductProduceDetailListByLineId(lineId); - return success(buildRespVOList(list)); - } - - // ==================== 拼接 VO ==================== - - private List buildRespVOList(List list) { - if (CollUtil.isEmpty(list)) { - return Collections.emptyList(); - } - // 1. 获得关联数据 - Map itemMap = itemService.getItemMap( - convertSet(list, MesWmProductProduceDetailDO::getItemId)); - Map unitMeasureMap = unitMeasureService.getUnitMeasureMap( - convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); - Map warehouseMap = warehouseService.getWarehouseMap( - convertSet(list, MesWmProductProduceDetailDO::getWarehouseId)); - Map locationMap = locationService.getWarehouseLocationMap( - convertSet(list, MesWmProductProduceDetailDO::getLocationId)); - Map areaMap = areaService.getWarehouseAreaMap( - convertSet(list, MesWmProductProduceDetailDO::getAreaId)); - // 2. 构建结果 - return BeanUtils.toBean(list, MesWmProductProduceDetailRespVO.class, vo -> { - MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { - vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()); - MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), - unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName())); - }); - MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), - warehouse -> vo.setWarehouseName(warehouse.getName())); - MapUtils.findAndThen(locationMap, vo.getLocationId(), - location -> vo.setLocationName(location.getName())); - MapUtils.findAndThen(areaMap, vo.getAreaId(), - area -> vo.setAreaName(area.getName())); - }); - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceLineController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceLineController.java index 8edde92477..9d663b584b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceLineController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceLineController.java @@ -5,9 +5,8 @@ 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.productproduce.vo.line.MesWmProductProduceLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line.MesWmProductProduceLineRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line.MesWmProductProduceLineSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceLinePageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceLineRespVO; 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.productproduce.MesWmProductProduceLineDO; @@ -15,13 +14,14 @@ 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.productproduce.MesWmProductProduceLineService; 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 org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.Collections; import java.util.List; @@ -37,69 +37,22 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. public class MesWmProductProduceLineController { @Resource - private MesWmProductProduceLineService produceLineService; - + private MesWmProductProduceLineService productProduceLineService; @Resource private MesMdItemService itemService; - @Resource private MesMdUnitMeasureService unitMeasureService; - @PostMapping("/create") - @Operation(summary = "创建生产入库单行") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:create')") - public CommonResult createProductProduceLine(@Valid @RequestBody MesWmProductProduceLineSaveReqVO createReqVO) { - return success(produceLineService.createProductProduceLine(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "修改生产入库单行") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:update')") - public CommonResult updateProductProduceLine(@Valid @RequestBody MesWmProductProduceLineSaveReqVO updateReqVO) { - produceLineService.updateProductProduceLine(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除生产入库单行") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:delete')") - public CommonResult deleteProductProduceLine(@RequestParam("id") Long id) { - produceLineService.deleteProductProduceLine(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得生产入库单行") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult getProductProduceLine(@RequestParam("id") Long id) { - MesWmProductProduceLineDO line = produceLineService.getProductProduceLine(id); - if (line == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(line)).get(0)); - } - @GetMapping("/page") @Operation(summary = "获得生产入库单行分页") @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") public CommonResult> getProductProduceLinePage( @Valid MesWmProductProduceLinePageReqVO pageReqVO) { - PageResult pageResult = produceLineService.getProductProduceLinePage(pageReqVO); + PageResult pageResult = productProduceLineService.getProductProduceLinePage( + pageReqVO); return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); } - @GetMapping("/list-by-produce") - @Operation(summary = "获得生产入库单行列表(按入库单编号)") - @Parameter(name = "produceId", description = "入库单编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('mes:wm-product-produce:query')") - public CommonResult> getProductProduceLineListByProduceId( - @RequestParam("produceId") Long produceId) { - List list = produceLineService.getProductProduceLineListByProduceId(produceId); - return success(buildRespVOList(list)); - } - // ==================== 拼接 VO ==================== private List buildRespVOList(List list) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLinePageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLinePageReqVO.java similarity index 77% rename from yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLinePageReqVO.java rename to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLinePageReqVO.java index 3af5ac8504..6d26b8af61 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLinePageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLinePageReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line; +package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo; import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; @@ -13,8 +13,8 @@ import lombok.ToString; @ToString(callSuper = true) public class MesWmProductProduceLinePageReqVO extends PageParam { - @Schema(description = "入库单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "入库单编号不能为空") - private Long produceId; + @Schema(description = "报工单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "报工单编号不能为空") + private Long feedbackId; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLineRespVO.java similarity index 99% rename from yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineRespVO.java rename to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLineRespVO.java index da76089089..7e41eed958 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceLineRespVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line; +package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProducePageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProducePageReqVO.java deleted file mode 100644 index c4cf12e408..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProducePageReqVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.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 MesWmProductProducePageReqVO extends PageParam { - - @Schema(description = "生产工单ID", example = "1") - private Long workOrderId; - - @Schema(description = "工作站ID", example = "1") - private Long workstationId; - - @Schema(description = "工序ID", example = "1") - private Long processId; - - @Schema(description = "状态", example = "10") - private Integer status; - - @Schema(description = "入库日期范围") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] produceDate; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceRespVO.java deleted file mode 100644 index ae6109b071..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceRespVO.java +++ /dev/null @@ -1,54 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 生产入库单 Response VO") -@Data -public class MesWmProductProduceRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Long id; - - @Schema(description = "生产工单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Long workOrderId; - - @Schema(description = "生产工单编号", example = "WO20250226001") - private String workOrderCode; - - @Schema(description = "报工单 ID", example = "1") - private Long feedbackId; - - @Schema(description = "生产任务 ID", example = "1") - private Long taskId; - - @Schema(description = "生产任务编号", example = "TASK20250226001") - private String taskCode; - - @Schema(description = "工作站 ID", example = "1") - private Long workstationId; - - @Schema(description = "工作站名称", example = "装配工作站") - private String workstationName; - - @Schema(description = "工序 ID", example = "1") - private Long processId; - - @Schema(description = "工序名称", example = "组装工序") - private String processName; - - @Schema(description = "入库日期") - private LocalDateTime produceDate; - - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") - private Integer status; - - @Schema(description = "备注", example = "备注") - private String remark; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime createTime; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceSaveReqVO.java deleted file mode 100644 index 049c37b98a..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/MesWmProductProduceSaveReqVO.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 生产入库单新增/修改 Request VO") -@Data -public class MesWmProductProduceSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "生产工单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "生产工单 ID 不能为空") - private Long workOrderId; - - @Schema(description = "报工单 ID", example = "1") - private Long feedbackId; - - @Schema(description = "生产任务 ID", example = "1") - private Long taskId; - - @Schema(description = "工作站 ID", example = "1") - private Long workstationId; - - @Schema(description = "工序 ID", example = "1") - private Long processId; - - @Schema(description = "入库日期") - private LocalDateTime produceDate; - - @Schema(description = "备注", example = "备注") - private String remark; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailRespVO.java deleted file mode 100644 index 4e322ff08e..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailRespVO.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.detail; - -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 -public class MesWmProductProduceDetailRespVO { - - @Schema(description = "编号", example = "1") - private Long id; - - @Schema(description = "入库单编号", example = "1") - private Long produceId; - - @Schema(description = "行编号", example = "1") - private Long lineId; - - @Schema(description = "物料编号", example = "1") - private Long itemId; - - @Schema(description = "物料编码", example = "ITEM001") - private String itemCode; - - @Schema(description = "物料名称", example = "螺丝") - private String itemName; - - @Schema(description = "规格型号", example = "M8*20") - private String specification; - - @Schema(description = "计量单位名称", example = "个") - private String unitMeasureName; - - @Schema(description = "入库数量", example = "300.00") - private BigDecimal quantity; - - @Schema(description = "批次编号", example = "1") - private Long batchId; - - @Schema(description = "批次号", example = "BATCH20260101001") - private String batchCode; - - @Schema(description = "仓库编号", example = "1") - private Long warehouseId; - - @Schema(description = "仓库名称", example = "成品仓库") - private String warehouseName; - - @Schema(description = "库区编号", example = "1") - private Long locationId; - - @Schema(description = "库区名称", example = "A区") - private String locationName; - - @Schema(description = "库位编号", example = "1") - private Long areaId; - - @Schema(description = "库位名称", example = "A01") - private String areaName; - - @Schema(description = "备注", example = "备注") - private String remark; - - @Schema(description = "创建时间") - private LocalDateTime createTime; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailSaveReqVO.java deleted file mode 100644 index 8c688ea8d1..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/detail/MesWmProductProduceDetailSaveReqVO.java +++ /dev/null @@ -1,50 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.detail; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -import java.math.BigDecimal; - -@Schema(description = "管理后台 - MES 生产入库明细新增/修改 Request VO") -@Data -public class MesWmProductProduceDetailSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "入库单行编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "入库单行编号不能为空") - private Long lineId; - - @Schema(description = "入库单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "入库单编号不能为空") - private Long produceId; - - @Schema(description = "物料编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "物料编号不能为空") - private Long itemId; - - @Schema(description = "入库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "300.00") - @NotNull(message = "入库数量不能为空") - private BigDecimal quantity; - - @Schema(description = "批次编号", example = "1") - private Long batchId; - - @Schema(description = "批次号", example = "BATCH20260101001") - private String batchCode; - - @Schema(description = "仓库编号", example = "1") - private Long warehouseId; - - @Schema(description = "库区编号", example = "1") - private Long locationId; - - @Schema(description = "库位编号", example = "1") - private Long areaId; - - @Schema(description = "备注", example = "备注") - private String remark; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineSaveReqVO.java deleted file mode 100644 index 2f399e942f..0000000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/vo/line/MesWmProductProduceLineSaveReqVO.java +++ /dev/null @@ -1,52 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.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; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - MES 生产入库单行 Save Request VO") -@Data -public class MesWmProductProduceLineSaveReqVO { - - @Schema(description = "行ID", example = "1") - private Long id; - - @Schema(description = "入库单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "入库单ID不能为空") - private Long produceId; - - @Schema(description = "报工单 ID", example = "1") - private Long feedbackId; - - @Schema(description = "物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "物料ID不能为空") - private Long itemId; - - @Schema(description = "入库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") - @NotNull(message = "入库数量不能为空") - @DecimalMin(value = "0", inclusive = false, message = "入库数量必须大于 0") - private BigDecimal quantity; - - @Schema(description = "批次ID", example = "1") - private Long batchId; - - @Schema(description = "批次号", example = "BATCH20260101001") - private String batchCode; - - @Schema(description = "有效期") - private LocalDateTime expireDate; - - @Schema(description = "批号", example = "LOT001") - private String lotNumber; - - @Schema(description = "质检状态", example = "1") - private Integer qualityStatus; - - @Schema(description = "备注", example = "备注") - private String remark; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceDetailMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceDetailMapper.java index 689696f8de..cb3348295c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceDetailMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceDetailMapper.java @@ -18,12 +18,4 @@ public interface MesWmProductProduceDetailMapper extends BaseMapperX selectListByProduceId(Long produceId) { - return selectList(MesWmProductProduceDetailDO::getProduceId, produceId); - } - - default void deleteByProduceId(Long produceId) { - delete(MesWmProductProduceDetailDO::getProduceId, produceId); - } - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceLineMapper.java index 2941f98528..51a23b593a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceLineMapper.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce; 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.productproduce.vo.line.MesWmProductProduceLinePageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceLinePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO; import org.apache.ibatis.annotations.Mapper; @@ -19,7 +19,7 @@ public interface MesWmProductProduceLineMapper extends BaseMapperX selectPage(MesWmProductProduceLinePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(MesWmProductProduceLineDO::getProduceId, reqVO.getProduceId()) + .eqIfPresent(MesWmProductProduceLineDO::getFeedbackId, reqVO.getFeedbackId()) .orderByDesc(MesWmProductProduceLineDO::getId)); } @@ -27,10 +27,6 @@ public interface MesWmProductProduceLineMapper extends BaseMapperX selectListByFeedbackId(Long feedbackId) { return selectList(MesWmProductProduceLineDO::getFeedbackId, feedbackId); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceMapper.java index 480087b3d9..f93fbbedfc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productproduce/MesWmProductProduceMapper.java @@ -1,9 +1,6 @@ package cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce; -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.productproduce.vo.MesWmProductProducePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO; import org.apache.ibatis.annotations.Mapper; @@ -15,14 +12,4 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MesWmProductProduceMapper extends BaseMapperX { - default PageResult selectPage(MesWmProductProducePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(MesWmProductProduceDO::getWorkOrderId, reqVO.getWorkOrderId()) - .eqIfPresent(MesWmProductProduceDO::getWorkstationId, reqVO.getWorkstationId()) - .eqIfPresent(MesWmProductProduceDO::getProcessId, reqVO.getProcessId()) - .eqIfPresent(MesWmProductProduceDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(MesWmProductProduceDO::getProduceDate, reqVO.getProduceDate()) - .orderByDesc(MesWmProductProduceDO::getId)); - } - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailService.java index 0914d64d37..d0dbdbc468 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailService.java @@ -1,8 +1,6 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.detail.MesWmProductProduceDetailSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDetailDO; -import jakarta.validation.Valid; import java.util.List; @@ -12,34 +10,11 @@ import java.util.List; public interface MesWmProductProduceDetailService { /** - * 创建生产入库明细 + * 创建生产入库明细(内部使用) * - * @param createReqVO 创建信息 - * @return 编号 + * @param detail 明细数据 */ - Long createProductProduceDetail(@Valid MesWmProductProduceDetailSaveReqVO createReqVO); - - /** - * 更新生产入库明细 - * - * @param updateReqVO 更新信息 - */ - void updateProductProduceDetail(@Valid MesWmProductProduceDetailSaveReqVO updateReqVO); - - /** - * 删除生产入库明细 - * - * @param id 编号 - */ - void deleteProductProduceDetail(Long id); - - /** - * 获得生产入库明细 - * - * @param id 编号 - * @return 生产入库明细 - */ - MesWmProductProduceDetailDO getProductProduceDetail(Long id); + void createProductProduceDetail(MesWmProductProduceDetailDO detail); /** * 根据行ID获取明细列表 @@ -49,19 +24,4 @@ public interface MesWmProductProduceDetailService { */ List getProductProduceDetailListByLineId(Long lineId); - /** - * 根据入库单ID获取明细列表 - * - * @param produceId 入库单ID - * @return 明细列表 - */ - List getProductProduceDetailListByProduceId(Long produceId); - - /** - * 根据入库单ID删除明细 - * - * @param produceId 入库单ID - */ - void deleteProductProduceDetailByProduceId(Long produceId); - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailServiceImpl.java index 4e9e76cd40..efe8ff9937 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceDetailServiceImpl.java @@ -1,19 +1,13 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.detail.MesWmProductProduceDetailSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDetailDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce.MesWmProductProduceDetailMapper; 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.WM_PRODUCT_PRODUCE_DETAIL_NOT_EXISTS; - /** * MES 生产入库明细 Service 实现类 */ @@ -22,67 +16,16 @@ import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_PR public class MesWmProductProduceDetailServiceImpl implements MesWmProductProduceDetailService { @Resource - private MesWmProductProduceDetailMapper produceDetailMapper; - - @Resource - @Lazy - private MesWmProductProduceLineService produceLineService; + private MesWmProductProduceDetailMapper productProduceDetailMapper; @Override - public Long createProductProduceDetail(MesWmProductProduceDetailSaveReqVO createReqVO) { - // 校验父数据存在 - produceLineService.validateProductProduceLineExists(createReqVO.getLineId()); - - // 插入 - MesWmProductProduceDetailDO detail = BeanUtils.toBean(createReqVO, MesWmProductProduceDetailDO.class); - produceDetailMapper.insert(detail); - return detail.getId(); - } - - @Override - public void updateProductProduceDetail(MesWmProductProduceDetailSaveReqVO updateReqVO) { - // 校验存在 - validateProductProduceDetailExists(updateReqVO.getId()); - // 校验父数据存在 - produceLineService.validateProductProduceLineExists(updateReqVO.getLineId()); - - // 更新 - MesWmProductProduceDetailDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductProduceDetailDO.class); - produceDetailMapper.updateById(updateObj); - } - - @Override - public void deleteProductProduceDetail(Long id) { - // 校验存在 - validateProductProduceDetailExists(id); - // 删除 - produceDetailMapper.deleteById(id); - } - - @Override - public MesWmProductProduceDetailDO getProductProduceDetail(Long id) { - return produceDetailMapper.selectById(id); + public void createProductProduceDetail(MesWmProductProduceDetailDO detail) { + productProduceDetailMapper.insert(detail); } @Override public List getProductProduceDetailListByLineId(Long lineId) { - return produceDetailMapper.selectListByLineId(lineId); - } - - @Override - public List getProductProduceDetailListByProduceId(Long produceId) { - return produceDetailMapper.selectListByProduceId(produceId); - } - - @Override - public void deleteProductProduceDetailByProduceId(Long produceId) { - produceDetailMapper.deleteByProduceId(produceId); - } - - private void validateProductProduceDetailExists(Long id) { - if (produceDetailMapper.selectById(id) == null) { - throw exception(WM_PRODUCT_PRODUCE_DETAIL_NOT_EXISTS); - } + return productProduceDetailMapper.selectListByLineId(lineId); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineService.java index 3f78321623..75ca17c680 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineService.java @@ -1,10 +1,8 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line.MesWmProductProduceLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line.MesWmProductProduceLineSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceLinePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO; -import jakarta.validation.Valid; import java.util.List; @@ -14,72 +12,34 @@ import java.util.List; public interface MesWmProductProduceLineService { /** - * 创建生产入库单行 + * 创建生产入库单行(内部使用) * - * @param createReqVO 创建信息 - * @return 编号 + * @param line 行数据 */ - Long createProductProduceLine(@Valid MesWmProductProduceLineSaveReqVO createReqVO); + void createProductProduceLine(MesWmProductProduceLineDO line); /** - * 更新生产入库单行 + * 根据入库单 ID 获取行列表 * - * @param updateReqVO 更新信息 - */ - void updateProductProduceLine(@Valid MesWmProductProduceLineSaveReqVO updateReqVO); - - /** - * 删除生产入库单行 - * - * @param id 编号 - */ - void deleteProductProduceLine(Long id); - - /** - * 获得生产入库单行 - * - * @param id 编号 - * @return 生产入库单行 - */ - MesWmProductProduceLineDO getProductProduceLine(Long id); - - /** - * 获得生产入库单行分页 - * - * @param pageReqVO 分页查询 - * @return 生产入库单行分页 - */ - PageResult getProductProduceLinePage(MesWmProductProduceLinePageReqVO pageReqVO); - - /** - * 根据入库单ID获取行列表 - * - * @param produceId 入库单ID + * @param produceId 入库单 ID * @return 行列表 */ List getProductProduceLineListByProduceId(Long produceId); /** - * 根据入库单ID删除行 + * 根据报工记录 ID 获取行列表 * - * @param produceId 入库单ID - */ - void deleteProductProduceLineByProduceId(Long produceId); - - /** - * 校验生产入库单行是否存在 - * - * @param id 编号 - * @return 生产入库单行 - */ - MesWmProductProduceLineDO validateProductProduceLineExists(Long id); - - /** - * 根据报工记录ID获取行列表 - * - * @param feedbackId 报工记录ID + * @param feedbackId 报工记录 ID * @return 行列表 */ List getProductProduceLineListByFeedbackId(Long feedbackId); + /** + * 获得生产入库单行分页 + * + * @param pageReqVO 分页查询参数 + * @return 行分页列表 + */ + PageResult getProductProduceLinePage(MesWmProductProduceLinePageReqVO pageReqVO); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineServiceImpl.java index ff115afa2e..d497dd74ad 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceLineServiceImpl.java @@ -1,22 +1,15 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; 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.productproduce.vo.line.MesWmProductProduceLinePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.line.MesWmProductProduceLineSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceLinePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce.MesWmProductProduceLineMapper; -import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; 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.WM_PRODUCT_PRODUCE_LINE_NOT_EXISTS; - /** * MES 生产入库单行 Service 实现类 */ @@ -25,81 +18,26 @@ import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_PR public class MesWmProductProduceLineServiceImpl implements MesWmProductProduceLineService { @Resource - private MesWmProductProduceLineMapper produceLineMapper; - - @Resource - @Lazy - private MesWmProductProduceService produceService; - @Resource - private MesMdItemService itemService; + private MesWmProductProduceLineMapper productProduceLineMapper; @Override - public Long createProductProduceLine(MesWmProductProduceLineSaveReqVO createReqVO) { - // 校验父数据存在 - produceService.validateProductProduceExists(createReqVO.getProduceId()); - // 校验物料存在 - itemService.validateItemExists(createReqVO.getItemId()); - - // 插入 - MesWmProductProduceLineDO line = BeanUtils.toBean(createReqVO, MesWmProductProduceLineDO.class); - produceLineMapper.insert(line); - return line.getId(); - } - - @Override - public void updateProductProduceLine(MesWmProductProduceLineSaveReqVO updateReqVO) { - // 校验存在 - validateProductProduceLineExists(updateReqVO.getId()); - // 校验父数据存在 - produceService.validateProductProduceExists(updateReqVO.getProduceId()); - // 校验物料存在 - itemService.validateItemExists(updateReqVO.getItemId()); - - // 更新 - MesWmProductProduceLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductProduceLineDO.class); - produceLineMapper.updateById(updateObj); - } - - @Override - public void deleteProductProduceLine(Long id) { - // 校验存在 - validateProductProduceLineExists(id); - // 删除 - produceLineMapper.deleteById(id); - } - - @Override - public MesWmProductProduceLineDO getProductProduceLine(Long id) { - return produceLineMapper.selectById(id); - } - - @Override - public PageResult getProductProduceLinePage(MesWmProductProduceLinePageReqVO pageReqVO) { - return produceLineMapper.selectPage(pageReqVO); + public void createProductProduceLine(MesWmProductProduceLineDO line) { + productProduceLineMapper.insert(line); } @Override public List getProductProduceLineListByProduceId(Long produceId) { - return produceLineMapper.selectListByProduceId(produceId); - } - - @Override - public void deleteProductProduceLineByProduceId(Long produceId) { - produceLineMapper.deleteByProduceId(produceId); - } - - @Override - public MesWmProductProduceLineDO validateProductProduceLineExists(Long id) { - MesWmProductProduceLineDO line = produceLineMapper.selectById(id); - if (line == null) { - throw exception(WM_PRODUCT_PRODUCE_LINE_NOT_EXISTS); - } - return line; + return productProduceLineMapper.selectListByProduceId(produceId); } @Override public List getProductProduceLineListByFeedbackId(Long feedbackId) { - return produceLineMapper.selectListByFeedbackId(feedbackId); + return productProduceLineMapper.selectListByFeedbackId(feedbackId); + } + + @Override + public PageResult getProductProduceLinePage(MesWmProductProduceLinePageReqVO pageReqVO) { + return productProduceLineMapper.selectPage(pageReqVO); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceService.java index bca963f80b..3fa65f8a22 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceService.java @@ -1,55 +1,13 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProducePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO; -import jakarta.validation.Valid; /** * MES 生产入库单 Service 接口 */ public interface MesWmProductProduceService { - /** - * 创建生产入库单 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createProductProduce(@Valid MesWmProductProduceSaveReqVO createReqVO); - - /** - * 修改生产入库单 - * - * @param updateReqVO 修改信息 - */ - void updateProductProduce(@Valid MesWmProductProduceSaveReqVO updateReqVO); - - /** - * 删除生产入库单 - * - * @param id 编号 - */ - void deleteProductProduce(Long id); - - /** - * 获得生产入库单 - * - * @param id 编号 - * @return 生产入库单 - */ - MesWmProductProduceDO getProductProduce(Long id); - - /** - * 获得生产入库单分页 - * - * @param pageReqVO 分页参数 - * @return 生产入库单分页 - */ - PageResult getProductProducePage(MesWmProductProducePageReqVO pageReqVO); - /** * 校验生产入库单是否存在 * @@ -65,21 +23,6 @@ public interface MesWmProductProduceService { */ void finishProductProduce(Long id); - /** - * 取消生产入库单(非已完成/已取消状态 → 已取消) - * - * @param id 编号 - */ - void cancelProductProduce(Long id); - - /** - * 校验生产入库单的数量:每行明细数量之和是否等于行入库数量 - * - * @param id 编号 - * @return 是否全部一致 - */ - Boolean checkProductProduceQuantity(Long id); - /** * 根据报工记录,自动生成产品产出单(头 + 行 + 明细) * diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java index 3b96f29030..28ebe7e8ec 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java @@ -3,25 +3,17 @@ package cn.iocoder.yudao.module.mes.service.wm.productproduce; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjectUtil; -import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProducePageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.productproduce.vo.MesWmProductProduceSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce.MesWmProductProduceDetailMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce.MesWmProductProduceLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.productproduce.MesWmProductProduceMapper; import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductProduceStatusEnum; import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum; -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.batch.MesWmBatchService; import jakarta.annotation.Resource; @@ -46,98 +38,31 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic @Resource private MesWmProductProduceMapper productProduceMapper; - // TODO @芋艿:需要优化,不要直接调用对方的 mapper - @Resource - private MesWmProductProduceLineMapper produceLineMapper; - // TODO @芋艿:需要优化,不要直接调用对方的 mapper - @Resource - private MesWmProductProduceDetailMapper produceDetailMapper; @Resource - private MesWmProductProduceLineService produceLineService; + private MesWmProductProduceLineService productProduceLineService; @Resource - private MesWmProductProduceDetailService produceDetailService; - @Resource - private MesMdWorkstationService workstationService; + private MesWmProductProduceDetailService productProduceDetailService; @Resource private MesProWorkOrderService workOrderService; @Resource private MesWmBatchService batchService; - @Override - @Transactional(rollbackFor = Exception.class) - public Long createProductProduce(MesWmProductProduceSaveReqVO createReqVO) { - // 1. 校验关联数据 - if (createReqVO.getWorkOrderId() != null) { - workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId()); - } - if (createReqVO.getWorkstationId() != null) { - workstationService.validateWorkstationExists(createReqVO.getWorkstationId()); - } - - // 2. 插入主表 - MesWmProductProduceDO produce = BeanUtils.toBean(createReqVO, MesWmProductProduceDO.class); - produce.setStatus(MesWmProductProduceStatusEnum.PREPARE.getStatus()); - productProduceMapper.insert(produce); - return produce.getId(); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateProductProduce(MesWmProductProduceSaveReqVO updateReqVO) { - // 1.1 校验存在 + 准备中状态 - validateProductProduceExistsAndPrepare(updateReqVO.getId()); - // 1.2 校验关联数据 - if (updateReqVO.getWorkOrderId() != null) { - workOrderService.validateWorkOrderExists(updateReqVO.getWorkOrderId()); - } - if (updateReqVO.getWorkstationId() != null) { - workstationService.validateWorkstationExists(updateReqVO.getWorkstationId()); - } - - // 2. 更新主表 - MesWmProductProduceDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductProduceDO.class); - productProduceMapper.updateById(updateObj); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteProductProduce(Long id) { - // 1. 校验存在 + 准备中状态 - validateProductProduceExistsAndPrepare(id); - - // 2.1 级联删除明细 - produceDetailService.deleteProductProduceDetailByProduceId(id); - // 2.2 级联删除行 - produceLineService.deleteProductProduceLineByProduceId(id); - // 2.3 删除主表 - productProduceMapper.deleteById(id); - } - - @Override - public MesWmProductProduceDO getProductProduce(Long id) { - return productProduceMapper.selectById(id); - } - - @Override - public PageResult getProductProducePage(MesWmProductProducePageReqVO pageReqVO) { - return productProduceMapper.selectPage(pageReqVO); - } - @Override @Transactional(rollbackFor = Exception.class) public void finishProductProduce(Long id) { // 1.1 校验存在 + 草稿状态 validateProductProduceExistsAndPrepare(id); // 1.2 校验至少有一条行 - List lines = produceLineService.getProductProduceLineListByProduceId(id); + List lines = productProduceLineService.getProductProduceLineListByProduceId(id); if (CollUtil.isEmpty(lines)) { throw exception(WM_PRODUCT_PRODUCE_NO_LINE); } // 2. 校验每行明细数量之和等于行数量 for (MesWmProductProduceLineDO line : lines) { - List details = produceDetailService.getProductProduceDetailListByLineId(line.getId()); + List details = productProduceDetailService.getProductProduceDetailListByLineId( + line.getId()); BigDecimal totalDetailQty = CollectionUtils.getSumValue(details, MesWmProductProduceDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); if (line.getQuantity() != null && totalDetailQty.compareTo(line.getQuantity()) != 0) { @@ -152,37 +77,6 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic .setId(id).setStatus(MesWmProductProduceStatusEnum.FINISHED.getStatus())); } - @Override - @Transactional(rollbackFor = Exception.class) - public void cancelProductProduce(Long id) { - // 1. 校验存在 - MesWmProductProduceDO produce = validateProductProduceExists(id); - // 已完成和已取消不允许取消 - if (ObjectUtils.equalsAny(produce.getStatus(), - MesWmProductProduceStatusEnum.FINISHED.getStatus(), - MesWmProductProduceStatusEnum.CANCELED.getStatus())) { - throw exception(WM_PRODUCT_PRODUCE_CANCEL_NOT_ALLOWED); - } - - // 2. 取消 - productProduceMapper.updateById(new MesWmProductProduceDO() - .setId(id).setStatus(MesWmProductProduceStatusEnum.CANCELED.getStatus())); - } - - @Override - public Boolean checkProductProduceQuantity(Long id) { - List lines = produceLineService.getProductProduceLineListByProduceId(id); - for (MesWmProductProduceLineDO line : lines) { - List details = produceDetailService.getProductProduceDetailListByLineId(line.getId()); - BigDecimal totalDetailQty = CollectionUtils.getSumValue(details, - MesWmProductProduceDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); - if (line.getQuantity() != null && totalDetailQty.compareTo(line.getQuantity()) != 0) { - return false; - } - } - return true; - } - @Override @Transactional(rollbackFor = Exception.class) public MesWmProductProduceDO generateProductProduce(MesProFeedbackDO feedback, boolean checkFlag) { @@ -217,7 +111,7 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic // 3.1 需要检验:创建一条行(质量状态=待检验),不生成明细 MesWmProductProduceLineDO line = buildProduceLine(produce, feedback, batchId, batchCode, feedback.getFeedbackQuantity(), MesWmQualityStatusEnum.PENDING.getStatus()); - produceLineMapper.insert(line); + productProduceLineService.createProductProduceLine(line); // TODO @芋艿:先不生成明细行,等待检验完成时,再根据行的质量状态生成明细行 } else { // 3.2 无需检验:按合格品/不合格品各生成一行 + 明细 @@ -227,19 +121,19 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic if (unqualifiedQty.compareTo(BigDecimal.ZERO) > 0) { MesWmProductProduceLineDO unqualifiedLine = buildProduceLine(produce, feedback, batchId, batchCode, unqualifiedQty, MesWmQualityStatusEnum.FAIL.getStatus()); - produceLineMapper.insert(unqualifiedLine); + productProduceLineService.createProductProduceLine(unqualifiedLine); MesWmProductProduceDetailDO unqualifiedDetail = buildProduceDetail(produce, feedback, batchId, batchCode, unqualifiedLine.getId(), unqualifiedQty); - produceDetailMapper.insert(unqualifiedDetail); + productProduceDetailService.createProductProduceDetail(unqualifiedDetail); } // 3.2.2 合格品行 + 明细 if (qualifiedQty.compareTo(BigDecimal.ZERO) > 0) { MesWmProductProduceLineDO qualifiedLine = buildProduceLine(produce, feedback, batchId, batchCode, qualifiedQty, MesWmQualityStatusEnum.PASS.getStatus()); - produceLineMapper.insert(qualifiedLine); + productProduceLineService.createProductProduceLine(qualifiedLine); MesWmProductProduceDetailDO qualifiedDetail = buildProduceDetail(produce, feedback, batchId, batchCode, qualifiedLine.getId(), qualifiedQty); - produceDetailMapper.insert(qualifiedDetail); + productProduceDetailService.createProductProduceDetail(qualifiedDetail); } } return produce; @@ -288,5 +182,4 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic return produce; } - }