Commit cbe4854fda6c1db9646fcb19c9df067b56bfc6a4
1 parent
01b61078
✨ feat(mes): 重命名生产领料出库相关类和接口,统一为产品领料出库命名
重构生产领料出库相关的类、接口和API,统一命名为产品领料出库,以提高代码的一致性和可读性。包括修改相关的状态枚举、数据对象、服务接口及其实现,确保所有引用均已更新。 BREAKING CHANGE: 相关类和接口的名称已更改,需更新调用代码
Showing
32 changed files
with
394 additions
and
394 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/MesWmProductionIssueController.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/MesWmProductIssueController.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; |
| ... | ... | @@ -8,15 +8,15 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 9 | 9 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 10 | 10 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 11 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssuePageReqVO; | |
| 12 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssueRespVO; | |
| 13 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssueSaveReqVO; | |
| 11 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO; | |
| 12 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueRespVO; | |
| 13 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO; | |
| 14 | 14 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| 15 | 15 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| 16 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDO; | |
| 16 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; | |
| 17 | 17 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| 18 | 18 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| 19 | -import cn.iocoder.yudao.module.mes.service.wm.productionissue.MesWmProductionIssueService; | |
| 19 | +import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueService; | |
| 20 | 20 | import io.swagger.v3.oas.annotations.Operation; |
| 21 | 21 | import io.swagger.v3.oas.annotations.Parameter; |
| 22 | 22 | import io.swagger.v3.oas.annotations.tags.Tag; |
| ... | ... | @@ -38,12 +38,12 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. |
| 38 | 38 | |
| 39 | 39 | @Tag(name = "管理后台 - MES 领料出库单") |
| 40 | 40 | @RestController |
| 41 | -@RequestMapping("/mes/wm/production-issue") | |
| 41 | +@RequestMapping("/mes/wm/product-issue") | |
| 42 | 42 | @Validated |
| 43 | -public class MesWmProductionIssueController { | |
| 43 | +public class MesWmProductIssueController { | |
| 44 | 44 | |
| 45 | 45 | @Resource |
| 46 | - private MesWmProductionIssueService issueService; | |
| 46 | + private MesWmProductIssueService issueService; | |
| 47 | 47 | @Resource |
| 48 | 48 | private MesMdWorkstationService workstationService; |
| 49 | 49 | @Resource |
| ... | ... | @@ -51,34 +51,34 @@ public class MesWmProductionIssueController { |
| 51 | 51 | |
| 52 | 52 | @PostMapping("/create") |
| 53 | 53 | @Operation(summary = "创建领料出库单") |
| 54 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:create')") | |
| 55 | - public CommonResult<Long> createProductionIssue(@Valid @RequestBody MesWmProductionIssueSaveReqVO createReqVO) { | |
| 56 | - return success(issueService.createProductionIssue(createReqVO)); | |
| 54 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:create')") | |
| 55 | + public CommonResult<Long> createProductIssue(@Valid @RequestBody MesWmProductIssueSaveReqVO createReqVO) { | |
| 56 | + return success(issueService.createProductIssue(createReqVO)); | |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | @PutMapping("/update") |
| 60 | 60 | @Operation(summary = "修改领料出库单") |
| 61 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 62 | - public CommonResult<Boolean> updateProductionIssue(@Valid @RequestBody MesWmProductionIssueSaveReqVO updateReqVO) { | |
| 63 | - issueService.updateProductionIssue(updateReqVO); | |
| 61 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 62 | + public CommonResult<Boolean> updateProductIssue(@Valid @RequestBody MesWmProductIssueSaveReqVO updateReqVO) { | |
| 63 | + issueService.updateProductIssue(updateReqVO); | |
| 64 | 64 | return success(true); |
| 65 | 65 | } |
| 66 | 66 | |
| 67 | 67 | @DeleteMapping("/delete") |
| 68 | 68 | @Operation(summary = "删除领料出库单") |
| 69 | 69 | @Parameter(name = "id", description = "编号", required = true) |
| 70 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:delete')") | |
| 71 | - public CommonResult<Boolean> deleteProductionIssue(@RequestParam("id") Long id) { | |
| 72 | - issueService.deleteProductionIssue(id); | |
| 70 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:delete')") | |
| 71 | + public CommonResult<Boolean> deleteProductIssue(@RequestParam("id") Long id) { | |
| 72 | + issueService.deleteProductIssue(id); | |
| 73 | 73 | return success(true); |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | @GetMapping("/get") |
| 77 | 77 | @Operation(summary = "获得领料出库单") |
| 78 | 78 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 79 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 80 | - public CommonResult<MesWmProductionIssueRespVO> getProductionIssue(@RequestParam("id") Long id) { | |
| 81 | - MesWmProductionIssueDO issue = issueService.getProductionIssue(id); | |
| 79 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 80 | + public CommonResult<MesWmProductIssueRespVO> getProductIssue(@RequestParam("id") Long id) { | |
| 81 | + MesWmProductIssueDO issue = issueService.getProductIssue(id); | |
| 82 | 82 | if (issue == null) { |
| 83 | 83 | return success(null); |
| 84 | 84 | } |
| ... | ... | @@ -87,82 +87,82 @@ public class MesWmProductionIssueController { |
| 87 | 87 | |
| 88 | 88 | @GetMapping("/page") |
| 89 | 89 | @Operation(summary = "获得领料出库单分页") |
| 90 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 91 | - public CommonResult<PageResult<MesWmProductionIssueRespVO>> getProductionIssuePage( | |
| 92 | - @Valid MesWmProductionIssuePageReqVO pageReqVO) { | |
| 93 | - PageResult<MesWmProductionIssueDO> pageResult = issueService.getProductionIssuePage(pageReqVO); | |
| 90 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 91 | + public CommonResult<PageResult<MesWmProductIssueRespVO>> getProductIssuePage( | |
| 92 | + @Valid MesWmProductIssuePageReqVO pageReqVO) { | |
| 93 | + PageResult<MesWmProductIssueDO> pageResult = issueService.getProductIssuePage(pageReqVO); | |
| 94 | 94 | return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); |
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | @GetMapping("/export-excel") |
| 98 | 98 | @Operation(summary = "导出领料出库单 Excel") |
| 99 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:export')") | |
| 99 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:export')") | |
| 100 | 100 | @ApiAccessLog(operateType = EXPORT) |
| 101 | - public void exportProductionIssueExcel(@Valid MesWmProductionIssuePageReqVO pageReqVO, | |
| 101 | + public void exportProductIssueExcel(@Valid MesWmProductIssuePageReqVO pageReqVO, | |
| 102 | 102 | HttpServletResponse response) throws IOException { |
| 103 | 103 | pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); |
| 104 | - PageResult<MesWmProductionIssueDO> pageResult = issueService.getProductionIssuePage(pageReqVO); | |
| 105 | - ExcelUtils.write(response, "领料出库单.xls", "数据", MesWmProductionIssueRespVO.class, | |
| 104 | + PageResult<MesWmProductIssueDO> pageResult = issueService.getProductIssuePage(pageReqVO); | |
| 105 | + ExcelUtils.write(response, "领料出库单.xls", "数据", MesWmProductIssueRespVO.class, | |
| 106 | 106 | buildRespVOList(pageResult.getList())); |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | @PutMapping("/finish") |
| 110 | 110 | @Operation(summary = "完成领料出库单") |
| 111 | 111 | @Parameter(name = "id", description = "编号", required = true) |
| 112 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:finish')") | |
| 113 | - public CommonResult<Boolean> finishProductionIssue(@RequestParam("id") Long id) { | |
| 114 | - issueService.finishProductionIssue(id); | |
| 112 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:finish')") | |
| 113 | + public CommonResult<Boolean> finishProductIssue(@RequestParam("id") Long id) { | |
| 114 | + issueService.finishProductIssue(id); | |
| 115 | 115 | return success(true); |
| 116 | 116 | } |
| 117 | 117 | |
| 118 | 118 | @PutMapping("/submit") |
| 119 | 119 | @Operation(summary = "提交领料出库单") |
| 120 | 120 | @Parameter(name = "id", description = "编号", required = true) |
| 121 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 122 | - public CommonResult<Boolean> submitProductionIssue(@RequestParam("id") Long id) { | |
| 123 | - issueService.submitProductionIssue(id); | |
| 121 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 122 | + public CommonResult<Boolean> submitProductIssue(@RequestParam("id") Long id) { | |
| 123 | + issueService.submitProductIssue(id); | |
| 124 | 124 | return success(true); |
| 125 | 125 | } |
| 126 | 126 | |
| 127 | 127 | @PutMapping("/stock") |
| 128 | 128 | @Operation(summary = "执行拣货") |
| 129 | 129 | @Parameter(name = "id", description = "编号", required = true) |
| 130 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 131 | - public CommonResult<Boolean> stockProductionIssue(@RequestParam("id") Long id) { | |
| 132 | - issueService.stockProductionIssue(id); | |
| 130 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 131 | + public CommonResult<Boolean> stockProductIssue(@RequestParam("id") Long id) { | |
| 132 | + issueService.stockProductIssue(id); | |
| 133 | 133 | return success(true); |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | @PutMapping("/cancel") |
| 137 | 137 | @Operation(summary = "取消领料出库单") |
| 138 | 138 | @Parameter(name = "id", description = "编号", required = true) |
| 139 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 140 | - public CommonResult<Boolean> cancelProductionIssue(@RequestParam("id") Long id) { | |
| 141 | - issueService.cancelProductionIssue(id); | |
| 139 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 140 | + public CommonResult<Boolean> cancelProductIssue(@RequestParam("id") Long id) { | |
| 141 | + issueService.cancelProductIssue(id); | |
| 142 | 142 | return success(true); |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | @GetMapping("/check-quantity") |
| 146 | 146 | @Operation(summary = "校验领料出库单数量", description = "校验每行明细数量之和是否等于行领料数量") |
| 147 | 147 | @Parameter(name = "id", description = "编号", required = true) |
| 148 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 149 | - public CommonResult<Boolean> checkProductionIssueQuantity(@RequestParam("id") Long id) { | |
| 150 | - return success(issueService.checkProductionIssueQuantity(id)); | |
| 148 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 149 | + public CommonResult<Boolean> checkProductIssueQuantity(@RequestParam("id") Long id) { | |
| 150 | + return success(issueService.checkProductIssueQuantity(id)); | |
| 151 | 151 | } |
| 152 | 152 | |
| 153 | 153 | // ==================== 拼接 VO ==================== |
| 154 | 154 | |
| 155 | - private List<MesWmProductionIssueRespVO> buildRespVOList(List<MesWmProductionIssueDO> list) { | |
| 155 | + private List<MesWmProductIssueRespVO> buildRespVOList(List<MesWmProductIssueDO> list) { | |
| 156 | 156 | if (CollUtil.isEmpty(list)) { |
| 157 | 157 | return Collections.emptyList(); |
| 158 | 158 | } |
| 159 | 159 | // 1. 获得关联数据 |
| 160 | 160 | Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap( |
| 161 | - convertSet(list, MesWmProductionIssueDO::getWorkstationId)); | |
| 161 | + convertSet(list, MesWmProductIssueDO::getWorkstationId)); | |
| 162 | 162 | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| 163 | - convertSet(list, MesWmProductionIssueDO::getWorkOrderId)); | |
| 163 | + convertSet(list, MesWmProductIssueDO::getWorkOrderId)); | |
| 164 | 164 | // 2. 构建结果 |
| 165 | - return BeanUtils.toBean(list, MesWmProductionIssueRespVO.class, vo -> { | |
| 165 | + return BeanUtils.toBean(list, MesWmProductIssueRespVO.class, vo -> { | |
| 166 | 166 | // 2.1 填充工作站名称 |
| 167 | 167 | MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), |
| 168 | 168 | workstation -> vo.setWorkstationName(workstation.getName())); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/MesWmProductionIssueDetailController.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/MesWmProductIssueDetailController.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 7 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail.MesWmProductionIssueDetailRespVO; | |
| 8 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail.MesWmProductionIssueDetailSaveReqVO; | |
| 7 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail.MesWmProductIssueDetailRespVO; | |
| 8 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail.MesWmProductIssueDetailSaveReqVO; | |
| 9 | 9 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| 10 | 10 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| 11 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDetailDO; | |
| 11 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO; | |
| 12 | 12 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; |
| 13 | 13 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; |
| 14 | 14 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; |
| 15 | 15 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 16 | 16 | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| 17 | -import cn.iocoder.yudao.module.mes.service.wm.productionissue.MesWmProductionIssueDetailService; | |
| 17 | +import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueDetailService; | |
| 18 | 18 | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; |
| 19 | 19 | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; |
| 20 | 20 | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; |
| ... | ... | @@ -36,12 +36,12 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. |
| 36 | 36 | |
| 37 | 37 | @Tag(name = "管理后台 - MES 领料出库明细") |
| 38 | 38 | @RestController |
| 39 | -@RequestMapping("/mes/wm/production-issue-detail") | |
| 39 | +@RequestMapping("/mes/wm/product-issue-detail") | |
| 40 | 40 | @Validated |
| 41 | -public class MesWmProductionIssueDetailController { | |
| 41 | +public class MesWmProductIssueDetailController { | |
| 42 | 42 | |
| 43 | 43 | @Resource |
| 44 | - private MesWmProductionIssueDetailService issueDetailService; | |
| 44 | + private MesWmProductIssueDetailService issueDetailService; | |
| 45 | 45 | |
| 46 | 46 | @Resource |
| 47 | 47 | private MesMdItemService itemService; |
| ... | ... | @@ -60,34 +60,34 @@ public class MesWmProductionIssueDetailController { |
| 60 | 60 | |
| 61 | 61 | @PostMapping("/create") |
| 62 | 62 | @Operation(summary = "创建领料出库明细") |
| 63 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:create')") | |
| 64 | - public CommonResult<Long> createProductionIssueDetail(@Valid @RequestBody MesWmProductionIssueDetailSaveReqVO createReqVO) { | |
| 65 | - return success(issueDetailService.createProductionIssueDetail(createReqVO)); | |
| 63 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:create')") | |
| 64 | + public CommonResult<Long> createProductIssueDetail(@Valid @RequestBody MesWmProductIssueDetailSaveReqVO createReqVO) { | |
| 65 | + return success(issueDetailService.createProductIssueDetail(createReqVO)); | |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | 68 | @PutMapping("/update") |
| 69 | 69 | @Operation(summary = "修改领料出库明细") |
| 70 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 71 | - public CommonResult<Boolean> updateProductionIssueDetail(@Valid @RequestBody MesWmProductionIssueDetailSaveReqVO updateReqVO) { | |
| 72 | - issueDetailService.updateProductionIssueDetail(updateReqVO); | |
| 70 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 71 | + public CommonResult<Boolean> updateProductIssueDetail(@Valid @RequestBody MesWmProductIssueDetailSaveReqVO updateReqVO) { | |
| 72 | + issueDetailService.updateProductIssueDetail(updateReqVO); | |
| 73 | 73 | return success(true); |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | @DeleteMapping("/delete") |
| 77 | 77 | @Operation(summary = "删除领料出库明细") |
| 78 | 78 | @Parameter(name = "id", description = "编号", required = true) |
| 79 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:delete')") | |
| 80 | - public CommonResult<Boolean> deleteProductionIssueDetail(@RequestParam("id") Long id) { | |
| 81 | - issueDetailService.deleteProductionIssueDetail(id); | |
| 79 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:delete')") | |
| 80 | + public CommonResult<Boolean> deleteProductIssueDetail(@RequestParam("id") Long id) { | |
| 81 | + issueDetailService.deleteProductIssueDetail(id); | |
| 82 | 82 | return success(true); |
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | @GetMapping("/get") |
| 86 | 86 | @Operation(summary = "获得领料出库明细") |
| 87 | 87 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 88 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 89 | - public CommonResult<MesWmProductionIssueDetailRespVO> getProductionIssueDetail(@RequestParam("id") Long id) { | |
| 90 | - MesWmProductionIssueDetailDO detail = issueDetailService.getProductionIssueDetail(id); | |
| 88 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 89 | + public CommonResult<MesWmProductIssueDetailRespVO> getProductIssueDetail(@RequestParam("id") Long id) { | |
| 90 | + MesWmProductIssueDetailDO detail = issueDetailService.getProductIssueDetail(id); | |
| 91 | 91 | if (detail == null) { |
| 92 | 92 | return success(null); |
| 93 | 93 | } |
| ... | ... | @@ -97,32 +97,32 @@ public class MesWmProductionIssueDetailController { |
| 97 | 97 | @GetMapping("/list-by-line") |
| 98 | 98 | @Operation(summary = "获得领料出库明细列表(按行编号)") |
| 99 | 99 | @Parameter(name = "lineId", description = "行编号", required = true, example = "1024") |
| 100 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 101 | - public CommonResult<List<MesWmProductionIssueDetailRespVO>> getProductionIssueDetailListByLineId( | |
| 100 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 101 | + public CommonResult<List<MesWmProductIssueDetailRespVO>> getProductIssueDetailListByLineId( | |
| 102 | 102 | @RequestParam("lineId") Long lineId) { |
| 103 | - List<MesWmProductionIssueDetailDO> list = issueDetailService.getProductionIssueDetailListByLineId(lineId); | |
| 103 | + List<MesWmProductIssueDetailDO> list = issueDetailService.getProductIssueDetailListByLineId(lineId); | |
| 104 | 104 | return success(buildRespVOList(list)); |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | // ==================== 拼接 VO ==================== |
| 108 | 108 | |
| 109 | - private List<MesWmProductionIssueDetailRespVO> buildRespVOList(List<MesWmProductionIssueDetailDO> list) { | |
| 109 | + private List<MesWmProductIssueDetailRespVO> buildRespVOList(List<MesWmProductIssueDetailDO> list) { | |
| 110 | 110 | if (CollUtil.isEmpty(list)) { |
| 111 | 111 | return Collections.emptyList(); |
| 112 | 112 | } |
| 113 | 113 | // 1. 获得关联数据 |
| 114 | 114 | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap( |
| 115 | - convertSet(list, MesWmProductionIssueDetailDO::getItemId)); | |
| 115 | + convertSet(list, MesWmProductIssueDetailDO::getItemId)); | |
| 116 | 116 | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| 117 | 117 | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| 118 | 118 | Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap( |
| 119 | - convertSet(list, MesWmProductionIssueDetailDO::getWarehouseId)); | |
| 119 | + convertSet(list, MesWmProductIssueDetailDO::getWarehouseId)); | |
| 120 | 120 | Map<Long, MesWmWarehouseLocationDO> locationMap = locationService.getWarehouseLocationMap( |
| 121 | - convertSet(list, MesWmProductionIssueDetailDO::getLocationId)); | |
| 121 | + convertSet(list, MesWmProductIssueDetailDO::getLocationId)); | |
| 122 | 122 | Map<Long, MesWmWarehouseAreaDO> areaMap = areaService.getWarehouseAreaMap( |
| 123 | - convertSet(list, MesWmProductionIssueDetailDO::getAreaId)); | |
| 123 | + convertSet(list, MesWmProductIssueDetailDO::getAreaId)); | |
| 124 | 124 | // 2. 构建结果 |
| 125 | - return BeanUtils.toBean(list, MesWmProductionIssueDetailRespVO.class, vo -> { | |
| 125 | + return BeanUtils.toBean(list, MesWmProductIssueDetailRespVO.class, vo -> { | |
| 126 | 126 | MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { |
| 127 | 127 | vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()); |
| 128 | 128 | MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/MesWmProductionIssueLineController.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/MesWmProductIssueLineController.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 7 | 7 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 8 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLinePageReqVO; | |
| 9 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLineRespVO; | |
| 10 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLineSaveReqVO; | |
| 8 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLinePageReqVO; | |
| 9 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLineRespVO; | |
| 10 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLineSaveReqVO; | |
| 11 | 11 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| 12 | 12 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| 13 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueLineDO; | |
| 13 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueLineDO; | |
| 14 | 14 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 15 | 15 | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| 16 | -import cn.iocoder.yudao.module.mes.service.wm.productionissue.MesWmProductionIssueLineService; | |
| 16 | +import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueLineService; | |
| 17 | 17 | import io.swagger.v3.oas.annotations.Operation; |
| 18 | 18 | import io.swagger.v3.oas.annotations.Parameter; |
| 19 | 19 | import io.swagger.v3.oas.annotations.tags.Tag; |
| ... | ... | @@ -32,12 +32,12 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. |
| 32 | 32 | |
| 33 | 33 | @Tag(name = "管理后台 - MES 领料出库单行") |
| 34 | 34 | @RestController |
| 35 | -@RequestMapping("/mes/wm/production-issue-line") | |
| 35 | +@RequestMapping("/mes/wm/product-issue-line") | |
| 36 | 36 | @Validated |
| 37 | -public class MesWmProductionIssueLineController { | |
| 37 | +public class MesWmProductIssueLineController { | |
| 38 | 38 | |
| 39 | 39 | @Resource |
| 40 | - private MesWmProductionIssueLineService issueLineService; | |
| 40 | + private MesWmProductIssueLineService issueLineService; | |
| 41 | 41 | |
| 42 | 42 | @Resource |
| 43 | 43 | private MesMdItemService itemService; |
| ... | ... | @@ -47,34 +47,34 @@ public class MesWmProductionIssueLineController { |
| 47 | 47 | |
| 48 | 48 | @PostMapping("/create") |
| 49 | 49 | @Operation(summary = "创建领料出库单行") |
| 50 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:create')") | |
| 51 | - public CommonResult<Long> createProductionIssueLine(@Valid @RequestBody MesWmProductionIssueLineSaveReqVO createReqVO) { | |
| 52 | - return success(issueLineService.createProductionIssueLine(createReqVO)); | |
| 50 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:create')") | |
| 51 | + public CommonResult<Long> createProductIssueLine(@Valid @RequestBody MesWmProductIssueLineSaveReqVO createReqVO) { | |
| 52 | + return success(issueLineService.createProductIssueLine(createReqVO)); | |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | @PutMapping("/update") |
| 56 | 56 | @Operation(summary = "修改领料出库单行") |
| 57 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:update')") | |
| 58 | - public CommonResult<Boolean> updateProductionIssueLine(@Valid @RequestBody MesWmProductionIssueLineSaveReqVO updateReqVO) { | |
| 59 | - issueLineService.updateProductionIssueLine(updateReqVO); | |
| 57 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:update')") | |
| 58 | + public CommonResult<Boolean> updateProductIssueLine(@Valid @RequestBody MesWmProductIssueLineSaveReqVO updateReqVO) { | |
| 59 | + issueLineService.updateProductIssueLine(updateReqVO); | |
| 60 | 60 | return success(true); |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | 63 | @DeleteMapping("/delete") |
| 64 | 64 | @Operation(summary = "删除领料出库单行") |
| 65 | 65 | @Parameter(name = "id", description = "编号", required = true) |
| 66 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:delete')") | |
| 67 | - public CommonResult<Boolean> deleteProductionIssueLine(@RequestParam("id") Long id) { | |
| 68 | - issueLineService.deleteProductionIssueLine(id); | |
| 66 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:delete')") | |
| 67 | + public CommonResult<Boolean> deleteProductIssueLine(@RequestParam("id") Long id) { | |
| 68 | + issueLineService.deleteProductIssueLine(id); | |
| 69 | 69 | return success(true); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | @GetMapping("/get") |
| 73 | 73 | @Operation(summary = "获得领料出库单行") |
| 74 | 74 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 75 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 76 | - public CommonResult<MesWmProductionIssueLineRespVO> getProductionIssueLine(@RequestParam("id") Long id) { | |
| 77 | - MesWmProductionIssueLineDO line = issueLineService.getProductionIssueLine(id); | |
| 75 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 76 | + public CommonResult<MesWmProductIssueLineRespVO> getProductIssueLine(@RequestParam("id") Long id) { | |
| 77 | + MesWmProductIssueLineDO line = issueLineService.getProductIssueLine(id); | |
| 78 | 78 | if (line == null) { |
| 79 | 79 | return success(null); |
| 80 | 80 | } |
| ... | ... | @@ -83,36 +83,36 @@ public class MesWmProductionIssueLineController { |
| 83 | 83 | |
| 84 | 84 | @GetMapping("/page") |
| 85 | 85 | @Operation(summary = "获得领料出库单行分页") |
| 86 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 87 | - public CommonResult<PageResult<MesWmProductionIssueLineRespVO>> getProductionIssueLinePage( | |
| 88 | - @Valid MesWmProductionIssueLinePageReqVO pageReqVO) { | |
| 89 | - PageResult<MesWmProductionIssueLineDO> pageResult = issueLineService.getProductionIssueLinePage(pageReqVO); | |
| 86 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 87 | + public CommonResult<PageResult<MesWmProductIssueLineRespVO>> getProductIssueLinePage( | |
| 88 | + @Valid MesWmProductIssueLinePageReqVO pageReqVO) { | |
| 89 | + PageResult<MesWmProductIssueLineDO> pageResult = issueLineService.getProductIssueLinePage(pageReqVO); | |
| 90 | 90 | return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | @GetMapping("/list-by-issue") |
| 94 | 94 | @Operation(summary = "获得领料出库单行列表(按领料单编号)") |
| 95 | 95 | @Parameter(name = "issueId", description = "领料单编号", required = true, example = "1024") |
| 96 | - @PreAuthorize("@ss.hasPermission('mes:wm-production-issue:query')") | |
| 97 | - public CommonResult<List<MesWmProductionIssueLineRespVO>> getProductionIssueLineListByIssueId( | |
| 96 | + @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") | |
| 97 | + public CommonResult<List<MesWmProductIssueLineRespVO>> getProductIssueLineListByIssueId( | |
| 98 | 98 | @RequestParam("issueId") Long issueId) { |
| 99 | - List<MesWmProductionIssueLineDO> list = issueLineService.getProductionIssueLineListByIssueId(issueId); | |
| 99 | + List<MesWmProductIssueLineDO> list = issueLineService.getProductIssueLineListByIssueId(issueId); | |
| 100 | 100 | return success(buildRespVOList(list)); |
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | // ==================== 拼接 VO ==================== |
| 104 | 104 | |
| 105 | - private List<MesWmProductionIssueLineRespVO> buildRespVOList(List<MesWmProductionIssueLineDO> list) { | |
| 105 | + private List<MesWmProductIssueLineRespVO> buildRespVOList(List<MesWmProductIssueLineDO> list) { | |
| 106 | 106 | if (CollUtil.isEmpty(list)) { |
| 107 | 107 | return Collections.emptyList(); |
| 108 | 108 | } |
| 109 | 109 | // 1. 获得关联数据 |
| 110 | 110 | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap( |
| 111 | - convertSet(list, MesWmProductionIssueLineDO::getItemId)); | |
| 111 | + convertSet(list, MesWmProductIssueLineDO::getItemId)); | |
| 112 | 112 | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| 113 | 113 | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| 114 | 114 | // 2. 构建结果 |
| 115 | - return BeanUtils.toBean(list, MesWmProductionIssueLineRespVO.class, vo -> { | |
| 115 | + return BeanUtils.toBean(list, MesWmProductIssueLineRespVO.class, vo -> { | |
| 116 | 116 | MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { |
| 117 | 117 | vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()); |
| 118 | 118 | MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/MesWmProductionIssuePageReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/MesWmProductIssuePageReqVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| ... | ... | @@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ |
| 13 | 13 | @Schema(description = "管理后台 - MES 领料出库单分页 Request VO") |
| 14 | 14 | @Data |
| 15 | 15 | @EqualsAndHashCode(callSuper = true) |
| 16 | -public class MesWmProductionIssuePageReqVO extends PageParam { | |
| 16 | +public class MesWmProductIssuePageReqVO extends PageParam { | |
| 17 | 17 | |
| 18 | 18 | @Schema(description = "领料单编号", example = "ISSUE20250226001") |
| 19 | 19 | private String code; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/MesWmProductionIssueRespVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/MesWmProductIssueRespVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -7,7 +7,7 @@ import java.time.LocalDateTime; |
| 7 | 7 | |
| 8 | 8 | @Schema(description = "管理后台 - MES 领料出库单 Response VO") |
| 9 | 9 | @Data |
| 10 | -public class MesWmProductionIssueRespVO { | |
| 10 | +public class MesWmProductIssueRespVO { | |
| 11 | 11 | |
| 12 | 12 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 13 | 13 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/MesWmProductionIssueSaveReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/MesWmProductIssueSaveReqVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import jakarta.validation.constraints.NotBlank; |
| ... | ... | @@ -9,7 +9,7 @@ import java.time.LocalDateTime; |
| 9 | 9 | |
| 10 | 10 | @Schema(description = "管理后台 - MES 领料出库单新增/修改 Request VO") |
| 11 | 11 | @Data |
| 12 | -public class MesWmProductionIssueSaveReqVO { | |
| 12 | +public class MesWmProductIssueSaveReqVO { | |
| 13 | 13 | |
| 14 | 14 | @Schema(description = "编号", example = "1024") |
| 15 | 15 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/detail/MesWmProductionIssueDetailRespVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/detail/MesWmProductIssueDetailRespVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -8,7 +8,7 @@ import java.time.LocalDateTime; |
| 8 | 8 | |
| 9 | 9 | @Schema(description = "管理后台 - MES 领料出库明细 Response VO") |
| 10 | 10 | @Data |
| 11 | -public class MesWmProductionIssueDetailRespVO { | |
| 11 | +public class MesWmProductIssueDetailRespVO { | |
| 12 | 12 | |
| 13 | 13 | @Schema(description = "编号", example = "1") |
| 14 | 14 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/detail/MesWmProductionIssueDetailSaveReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/detail/MesWmProductIssueDetailSaveReqVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import jakarta.validation.constraints.NotNull; |
| ... | ... | @@ -8,7 +8,7 @@ import java.math.BigDecimal; |
| 8 | 8 | |
| 9 | 9 | @Schema(description = "管理后台 - MES 领料出库明细新增/修改 Request VO") |
| 10 | 10 | @Data |
| 11 | -public class MesWmProductionIssueDetailSaveReqVO { | |
| 11 | +public class MesWmProductIssueDetailSaveReqVO { | |
| 12 | 12 | |
| 13 | 13 | @Schema(description = "编号", example = "1024") |
| 14 | 14 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/line/MesWmProductionIssueLinePageReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/line/MesWmProductIssueLinePageReqVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| ... | ... | @@ -11,7 +11,7 @@ import lombok.ToString; |
| 11 | 11 | @Data |
| 12 | 12 | @EqualsAndHashCode(callSuper = true) |
| 13 | 13 | @ToString(callSuper = true) |
| 14 | -public class MesWmProductionIssueLinePageReqVO extends PageParam { | |
| 14 | +public class MesWmProductIssueLinePageReqVO extends PageParam { | |
| 15 | 15 | |
| 16 | 16 | @Schema(description = "领料单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 17 | 17 | @NotNull(message = "领料单编号不能为空") | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/line/MesWmProductionIssueLineRespVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/line/MesWmProductIssueLineRespVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -8,7 +8,7 @@ import java.time.LocalDateTime; |
| 8 | 8 | |
| 9 | 9 | @Schema(description = "管理后台 - MES 领料出库单行 Response VO") |
| 10 | 10 | @Data |
| 11 | -public class MesWmProductionIssueLineRespVO { | |
| 11 | +public class MesWmProductIssueLineRespVO { | |
| 12 | 12 | |
| 13 | 13 | @Schema(description = "行ID", example = "1") |
| 14 | 14 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productionissue/vo/line/MesWmProductionIssueLineSaveReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/vo/line/MesWmProductIssueLineSaveReqVO.java
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line; | |
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line; | |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import jakarta.validation.constraints.DecimalMin; |
| ... | ... | @@ -9,7 +9,7 @@ import java.math.BigDecimal; |
| 9 | 9 | |
| 10 | 10 | @Schema(description = "管理后台 - MES 领料出库单行 Save Request VO") |
| 11 | 11 | @Data |
| 12 | -public class MesWmProductionIssueLineSaveReqVO { | |
| 12 | +public class MesWmProductIssueLineSaveReqVO { | |
| 13 | 13 | |
| 14 | 14 | @Schema(description = "行ID", example = "1") |
| 15 | 15 | private Long id; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productionissue/MesWmProductionIssueDO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productissue/MesWmProductIssueDO.java
| 1 | -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | 4 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| 5 | 5 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; |
| 6 | 6 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| 7 | -import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductionIssueStatusEnum; | |
| 7 | +import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductIssueStatusEnum; | |
| 8 | 8 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 9 | 9 | import com.baomidou.mybatisplus.annotation.TableId; |
| 10 | 10 | import com.baomidou.mybatisplus.annotation.TableName; |
| ... | ... | @@ -15,15 +15,15 @@ import java.time.LocalDateTime; |
| 15 | 15 | /** |
| 16 | 16 | * MES 领料出库单 DO |
| 17 | 17 | */ |
| 18 | -@TableName("mes_wm_production_issue") | |
| 19 | -@KeySequence("mes_wm_production_issue_seq") | |
| 18 | +@TableName("mes_wm_product_issue") | |
| 19 | +@KeySequence("mes_wm_product_issue_seq") | |
| 20 | 20 | @Data |
| 21 | 21 | @EqualsAndHashCode(callSuper = true) |
| 22 | 22 | @ToString(callSuper = true) |
| 23 | 23 | @Builder |
| 24 | 24 | @NoArgsConstructor |
| 25 | 25 | @AllArgsConstructor |
| 26 | -public class MesWmProductionIssueDO extends BaseDO { | |
| 26 | +public class MesWmProductIssueDO extends BaseDO { | |
| 27 | 27 | |
| 28 | 28 | /** |
| 29 | 29 | * 编号 |
| ... | ... | @@ -69,7 +69,7 @@ public class MesWmProductionIssueDO extends BaseDO { |
| 69 | 69 | /** |
| 70 | 70 | * 状态 |
| 71 | 71 | * |
| 72 | - * 枚举 {@link MesWmProductionIssueStatusEnum} | |
| 72 | + * 枚举 {@link MesWmProductIssueStatusEnum} | |
| 73 | 73 | */ |
| 74 | 74 | private Integer status; |
| 75 | 75 | /** | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productionissue/MesWmProductionIssueDetailDO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productissue/MesWmProductIssueDetailDO.java
| 1 | -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | 4 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| ... | ... | @@ -16,15 +16,15 @@ import java.math.BigDecimal; |
| 16 | 16 | /** |
| 17 | 17 | * MES 领料出库明细 DO |
| 18 | 18 | */ |
| 19 | -@TableName("mes_wm_production_issue_detail") | |
| 20 | -@KeySequence("mes_wm_production_issue_detail_seq") | |
| 19 | +@TableName("mes_wm_product_issue_detail") | |
| 20 | +@KeySequence("mes_wm_product_issue_detail_seq") | |
| 21 | 21 | @Data |
| 22 | 22 | @EqualsAndHashCode(callSuper = true) |
| 23 | 23 | @ToString(callSuper = true) |
| 24 | 24 | @Builder |
| 25 | 25 | @NoArgsConstructor |
| 26 | 26 | @AllArgsConstructor |
| 27 | -public class MesWmProductionIssueDetailDO extends BaseDO { | |
| 27 | +public class MesWmProductIssueDetailDO extends BaseDO { | |
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | 30 | * 编号 |
| ... | ... | @@ -34,13 +34,13 @@ public class MesWmProductionIssueDetailDO extends BaseDO { |
| 34 | 34 | /** |
| 35 | 35 | * 领料单ID |
| 36 | 36 | * |
| 37 | - * 关联 {@link MesWmProductionIssueDO#getId()} | |
| 37 | + * 关联 {@link MesWmProductIssueDO#getId()} | |
| 38 | 38 | */ |
| 39 | 39 | private Long issueId; |
| 40 | 40 | /** |
| 41 | 41 | * 行ID |
| 42 | 42 | * |
| 43 | - * 关联 {@link MesWmProductionIssueLineDO#getId()} | |
| 43 | + * 关联 {@link MesWmProductIssueLineDO#getId()} | |
| 44 | 44 | */ |
| 45 | 45 | private Long lineId; |
| 46 | 46 | /** | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productionissue/MesWmProductionIssueLineDO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productissue/MesWmProductIssueLineDO.java
| 1 | -package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | 4 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| ... | ... | @@ -12,15 +12,15 @@ import java.math.BigDecimal; |
| 12 | 12 | /** |
| 13 | 13 | * MES 领料出库单行 DO |
| 14 | 14 | */ |
| 15 | -@TableName("mes_wm_production_issue_line") | |
| 16 | -@KeySequence("mes_wm_production_issue_line_seq") | |
| 15 | +@TableName("mes_wm_product_issue_line") | |
| 16 | +@KeySequence("mes_wm_product_issue_line_seq") | |
| 17 | 17 | @Data |
| 18 | 18 | @EqualsAndHashCode(callSuper = true) |
| 19 | 19 | @ToString(callSuper = true) |
| 20 | 20 | @Builder |
| 21 | 21 | @NoArgsConstructor |
| 22 | 22 | @AllArgsConstructor |
| 23 | -public class MesWmProductionIssueLineDO extends BaseDO { | |
| 23 | +public class MesWmProductIssueLineDO extends BaseDO { | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * 编号 |
| ... | ... | @@ -30,7 +30,7 @@ public class MesWmProductionIssueLineDO extends BaseDO { |
| 30 | 30 | /** |
| 31 | 31 | * 领料单 ID |
| 32 | 32 | * |
| 33 | - * 关联 {@link MesWmProductionIssueDO#getId()} | |
| 33 | + * 关联 {@link MesWmProductIssueDO#getId()} | |
| 34 | 34 | */ |
| 35 | 35 | private Long issueId; |
| 36 | 36 | /** | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productionissue/MesWmProductionIssueLineMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLinePageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueLineDO; | |
| 8 | -import org.apache.ibatis.annotations.Mapper; | |
| 9 | - | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | -/** | |
| 13 | - * MES 领料出库单行 Mapper | |
| 14 | - */ | |
| 15 | -@Mapper | |
| 16 | -public interface MesWmProductionIssueLineMapper extends BaseMapperX<MesWmProductionIssueLineDO> { | |
| 17 | - | |
| 18 | - default PageResult<MesWmProductionIssueLineDO> selectPage(MesWmProductionIssueLinePageReqVO reqVO) { | |
| 19 | - return selectPage(reqVO, new LambdaQueryWrapperX<MesWmProductionIssueLineDO>() | |
| 20 | - .eqIfPresent(MesWmProductionIssueLineDO::getIssueId, reqVO.getIssueId()) | |
| 21 | - .orderByDesc(MesWmProductionIssueLineDO::getId)); | |
| 22 | - } | |
| 23 | - | |
| 24 | - default List<MesWmProductionIssueLineDO> selectListByIssueId(Long issueId) { | |
| 25 | - return selectList(MesWmProductionIssueLineDO::getIssueId, issueId); | |
| 26 | - } | |
| 27 | - | |
| 28 | - default void deleteByIssueId(Long issueId) { | |
| 29 | - delete(MesWmProductionIssueLineDO::getIssueId, issueId); | |
| 30 | - } | |
| 31 | - | |
| 32 | -} |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productionissue/MesWmProductionIssueMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssuePageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDO; | |
| 8 | -import org.apache.ibatis.annotations.Mapper; | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * MES 领料出库单 Mapper | |
| 12 | - */ | |
| 13 | -@Mapper | |
| 14 | -public interface MesWmProductionIssueMapper extends BaseMapperX<MesWmProductionIssueDO> { | |
| 15 | - | |
| 16 | - default PageResult<MesWmProductionIssueDO> selectPage(MesWmProductionIssuePageReqVO reqVO) { | |
| 17 | - return selectPage(reqVO, new LambdaQueryWrapperX<MesWmProductionIssueDO>() | |
| 18 | - .likeIfPresent(MesWmProductionIssueDO::getCode, reqVO.getCode()) | |
| 19 | - .likeIfPresent(MesWmProductionIssueDO::getName, reqVO.getName()) | |
| 20 | - .eqIfPresent(MesWmProductionIssueDO::getWorkstationId, reqVO.getWorkstationId()) | |
| 21 | - .eqIfPresent(MesWmProductionIssueDO::getWorkOrderId, reqVO.getWorkOrderId()) | |
| 22 | - .eqIfPresent(MesWmProductionIssueDO::getStatus, reqVO.getStatus()) | |
| 23 | - .betweenIfPresent(MesWmProductionIssueDO::getIssueDate, reqVO.getIssueDate()) | |
| 24 | - .orderByDesc(MesWmProductionIssueDO::getId)); | |
| 25 | - } | |
| 26 | - | |
| 27 | -} |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productionissue/MesWmProductionIssueDetailMapper.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productissue/MesWmProductIssueDetailMapper.java
| 1 | -package cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 4 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDetailDO; | |
| 4 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO; | |
| 5 | 5 | import org.apache.ibatis.annotations.Mapper; |
| 6 | 6 | |
| 7 | 7 | import java.util.List; |
| ... | ... | @@ -10,18 +10,18 @@ import java.util.List; |
| 10 | 10 | * MES 领料出库明细 Mapper |
| 11 | 11 | */ |
| 12 | 12 | @Mapper |
| 13 | -public interface MesWmProductionIssueDetailMapper extends BaseMapperX<MesWmProductionIssueDetailDO> { | |
| 13 | +public interface MesWmProductIssueDetailMapper extends BaseMapperX<MesWmProductIssueDetailDO> { | |
| 14 | 14 | |
| 15 | - default List<MesWmProductionIssueDetailDO> selectListByLineId(Long lineId) { | |
| 16 | - return selectList(MesWmProductionIssueDetailDO::getLineId, lineId); | |
| 15 | + default List<MesWmProductIssueDetailDO> selectListByLineId(Long lineId) { | |
| 16 | + return selectList(MesWmProductIssueDetailDO::getLineId, lineId); | |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | - default List<MesWmProductionIssueDetailDO> selectListByIssueId(Long issueId) { | |
| 20 | - return selectList(MesWmProductionIssueDetailDO::getIssueId, issueId); | |
| 19 | + default List<MesWmProductIssueDetailDO> selectListByIssueId(Long issueId) { | |
| 20 | + return selectList(MesWmProductIssueDetailDO::getIssueId, issueId); | |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | default void deleteByIssueId(Long issueId) { |
| 24 | - delete(MesWmProductionIssueDetailDO::getIssueId, issueId); | |
| 24 | + delete(MesWmProductIssueDetailDO::getIssueId, issueId); | |
| 25 | 25 | } |
| 26 | 26 | |
| 27 | 27 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productissue/MesWmProductIssueLineMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLinePageReqVO; | |
| 7 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueLineDO; | |
| 8 | +import org.apache.ibatis.annotations.Mapper; | |
| 9 | + | |
| 10 | +import java.util.List; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * MES 领料出库单行 Mapper | |
| 14 | + */ | |
| 15 | +@Mapper | |
| 16 | +public interface MesWmProductIssueLineMapper extends BaseMapperX<MesWmProductIssueLineDO> { | |
| 17 | + | |
| 18 | + default PageResult<MesWmProductIssueLineDO> selectPage(MesWmProductIssueLinePageReqVO reqVO) { | |
| 19 | + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmProductIssueLineDO>() | |
| 20 | + .eqIfPresent(MesWmProductIssueLineDO::getIssueId, reqVO.getIssueId()) | |
| 21 | + .orderByDesc(MesWmProductIssueLineDO::getId)); | |
| 22 | + } | |
| 23 | + | |
| 24 | + default List<MesWmProductIssueLineDO> selectListByIssueId(Long issueId) { | |
| 25 | + return selectList(MesWmProductIssueLineDO::getIssueId, issueId); | |
| 26 | + } | |
| 27 | + | |
| 28 | + default void deleteByIssueId(Long issueId) { | |
| 29 | + delete(MesWmProductIssueLineDO::getIssueId, issueId); | |
| 30 | + } | |
| 31 | + | |
| 32 | +} | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productissue/MesWmProductIssueMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO; | |
| 7 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; | |
| 8 | +import org.apache.ibatis.annotations.Mapper; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * MES 领料出库单 Mapper | |
| 12 | + */ | |
| 13 | +@Mapper | |
| 14 | +public interface MesWmProductIssueMapper extends BaseMapperX<MesWmProductIssueDO> { | |
| 15 | + | |
| 16 | + default PageResult<MesWmProductIssueDO> selectPage(MesWmProductIssuePageReqVO reqVO) { | |
| 17 | + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmProductIssueDO>() | |
| 18 | + .likeIfPresent(MesWmProductIssueDO::getCode, reqVO.getCode()) | |
| 19 | + .likeIfPresent(MesWmProductIssueDO::getName, reqVO.getName()) | |
| 20 | + .eqIfPresent(MesWmProductIssueDO::getWorkstationId, reqVO.getWorkstationId()) | |
| 21 | + .eqIfPresent(MesWmProductIssueDO::getWorkOrderId, reqVO.getWorkOrderId()) | |
| 22 | + .eqIfPresent(MesWmProductIssueDO::getStatus, reqVO.getStatus()) | |
| 23 | + .betweenIfPresent(MesWmProductIssueDO::getIssueDate, reqVO.getIssueDate()) | |
| 24 | + .orderByDesc(MesWmProductIssueDO::getId)); | |
| 25 | + } | |
| 26 | + | |
| 27 | +} | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| ... | ... | @@ -409,16 +409,16 @@ public interface ErrorCodeConstants { |
| 409 | 409 | ErrorCode WM_OUTSOURCE_ISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_707_200, "外协发料单明细不存在"); |
| 410 | 410 | |
| 411 | 411 | // ========== MES 仓库管理-生产领料出库单(1-040-708-000) ========== |
| 412 | - ErrorCode WM_PRODUCTION_ISSUE_NOT_EXISTS = new ErrorCode(1_040_708_000, "生产领料出库单不存在"); | |
| 413 | - ErrorCode WM_PRODUCTION_ISSUE_STATUS_INVALID = new ErrorCode(1_040_708_001, "生产领料出库单状态不正确,无法执行该操作"); | |
| 414 | - ErrorCode WM_PRODUCTION_ISSUE_NO_LINE = new ErrorCode(1_040_708_002, "生产领料出库单至少需要一条行数据"); | |
| 415 | - ErrorCode WM_PRODUCTION_ISSUE_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_708_003, "领料出库单行数量与明细数量不一致"); | |
| 416 | - ErrorCode WM_PRODUCTION_ISSUE_WORKORDER_NOT_EXISTS = new ErrorCode(1_040_708_004, "生产工单不存在"); | |
| 417 | - ErrorCode WM_PRODUCTION_ISSUE_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_708_005, "工作站不存在"); | |
| 418 | - ErrorCode WM_PRODUCTION_ISSUE_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_708_006, "生产领料出库单已完成或已取消,无法取消"); | |
| 419 | - ErrorCode WM_PRODUCTION_ISSUE_LINE_NOT_EXISTS = new ErrorCode(1_040_708_100, "生产领料出库单行不存在"); | |
| 420 | - ErrorCode WM_PRODUCTION_ISSUE_LINE_ITEM_NOT_IN_BOM = new ErrorCode(1_040_708_101, "当前物料不在生产工单的 BOM 物料清单中"); | |
| 421 | - ErrorCode WM_PRODUCTION_ISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_708_200, "生产领料出库单明细不存在"); | |
| 412 | + ErrorCode WM_PRODUCT_ISSUE_NOT_EXISTS = new ErrorCode(1_040_708_000, "生产领料出库单不存在"); | |
| 413 | + ErrorCode WM_PRODUCT_ISSUE_STATUS_INVALID = new ErrorCode(1_040_708_001, "生产领料出库单状态不正确,无法执行该操作"); | |
| 414 | + ErrorCode WM_PRODUCT_ISSUE_NO_LINE = new ErrorCode(1_040_708_002, "生产领料出库单至少需要一条行数据"); | |
| 415 | + ErrorCode WM_PRODUCT_ISSUE_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_708_003, "领料出库单行数量与明细数量不一致"); | |
| 416 | + ErrorCode WM_PRODUCT_ISSUE_WORKORDER_NOT_EXISTS = new ErrorCode(1_040_708_004, "生产工单不存在"); | |
| 417 | + ErrorCode WM_PRODUCT_ISSUE_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_708_005, "工作站不存在"); | |
| 418 | + ErrorCode WM_PRODUCT_ISSUE_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_708_006, "生产领料出库单已完成或已取消,无法取消"); | |
| 419 | + ErrorCode WM_PRODUCT_ISSUE_LINE_NOT_EXISTS = new ErrorCode(1_040_708_100, "生产领料出库单行不存在"); | |
| 420 | + ErrorCode WM_PRODUCT_ISSUE_LINE_ITEM_NOT_IN_BOM = new ErrorCode(1_040_708_101, "当前物料不在生产工单的 BOM 物料清单中"); | |
| 421 | + ErrorCode WM_PRODUCT_ISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_708_200, "生产领料出库单明细不存在"); | |
| 422 | 422 | |
| 423 | 423 | // ========== MES 仓库管理-生产入库单(1-040-709-000) ========== |
| 424 | 424 | ErrorCode WM_PRODUCT_PRODUCE_NOT_EXISTS = new ErrorCode(1_040_709_000, "生产入库单不存在"); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesBizTypeConstants.java
| ... | ... | @@ -35,7 +35,7 @@ public final class MesBizTypeConstants { |
| 35 | 35 | public static final int WM_TRANSFER_IN = 112; // 调拨入库:MesWmTransferDO |
| 36 | 36 | public static final int WM_MISC_ISSUE = 113; // 其他出库:MesWmMiscIssueDO |
| 37 | 37 | public static final int WM_MISC_RECPT = 114; // 其他入库:MesWmMiscReceiptDO |
| 38 | - public static final int WM_ISSUE = 115; // 生产领料:MesWmProductionIssueDO | |
| 38 | + public static final int WM_ISSUE = 115; // 生产领料:MesWmProductIssueDO | |
| 39 | 39 | public static final int WM_RETURN_ISSUE = 116; // 生产退料:MesWmReturnIssueDO |
| 40 | 40 | public static final int WM_PRODUCT_RECPT = 117; // 生产入库:MesWmProductReceiptDO |
| 41 | 41 | public static final int WM_PRODUCT_SALES = 118; // 销售出库:MesWmProductSalesDO | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmProductionIssueStatusEnum.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmProductIssueStatusEnum.java
| 1 | 1 | package cn.iocoder.yudao.module.mes.enums.wm; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.core.ArrayValuable; |
| 4 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssueSaveReqVO; | |
| 4 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO; | |
| 5 | 5 | import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants; |
| 6 | -import cn.iocoder.yudao.module.mes.service.wm.productionissue.MesWmProductionIssueService; | |
| 6 | +import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueService; | |
| 7 | 7 | import lombok.AllArgsConstructor; |
| 8 | 8 | import lombok.Getter; |
| 9 | 9 | |
| ... | ... | @@ -16,40 +16,40 @@ import java.util.Arrays; |
| 16 | 16 | */ |
| 17 | 17 | @Getter |
| 18 | 18 | @AllArgsConstructor |
| 19 | -public enum MesWmProductionIssueStatusEnum implements ArrayValuable<Integer> { | |
| 19 | +public enum MesWmProductIssueStatusEnum implements ArrayValuable<Integer> { | |
| 20 | 20 | |
| 21 | 21 | /** |
| 22 | 22 | * 草稿 |
| 23 | 23 | * |
| 24 | - * 对应方法:{@link MesWmProductionIssueService#createProductionIssue(MesWmProductionIssueSaveReqVO)} | |
| 24 | + * 对应方法:{@link MesWmProductIssueService#createProductIssue(MesWmProductIssueSaveReqVO)} | |
| 25 | 25 | */ |
| 26 | 26 | PREPARE(MesOrderStatusConstants.PREPARE, "草稿"), |
| 27 | 27 | /** |
| 28 | 28 | * 待拣货 |
| 29 | 29 | * |
| 30 | - * 对应方法:{@link MesWmProductionIssueService#submitProductionIssue(Long)} | |
| 30 | + * 对应方法:{@link MesWmProductIssueService#submitProductIssue(Long)} | |
| 31 | 31 | */ |
| 32 | 32 | APPROVING(MesOrderStatusConstants.APPROVING, "待拣货"), |
| 33 | 33 | /** |
| 34 | 34 | * 待执行领出 |
| 35 | 35 | * |
| 36 | - * 对应方法:{@link MesWmProductionIssueService#stockProductionIssue(Long)} | |
| 36 | + * 对应方法:{@link MesWmProductIssueService#stockProductIssue(Long)} | |
| 37 | 37 | */ |
| 38 | 38 | APPROVED(MesOrderStatusConstants.APPROVED, "待执行领出"), |
| 39 | 39 | /** |
| 40 | 40 | * 已完成 |
| 41 | 41 | * |
| 42 | - * 对应方法:{@link MesWmProductionIssueService#finishProductionIssue(Long)} | |
| 42 | + * 对应方法:{@link MesWmProductIssueService#finishProductIssue(Long)} | |
| 43 | 43 | */ |
| 44 | 44 | FINISHED(MesOrderStatusConstants.FINISHED, "已完成"), |
| 45 | 45 | /** |
| 46 | 46 | * 已取消 |
| 47 | 47 | * |
| 48 | - * 对应方法:{@link MesWmProductionIssueService#cancelProductionIssue(Long)} | |
| 48 | + * 对应方法:{@link MesWmProductIssueService#cancelProductIssue(Long)} | |
| 49 | 49 | */ |
| 50 | 50 | CANCELED(MesOrderStatusConstants.CANCELLED, "已取消"); |
| 51 | 51 | |
| 52 | - public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmProductionIssueStatusEnum::getStatus).toArray(Integer[]::new); | |
| 52 | + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmProductIssueStatusEnum::getStatus).toArray(Integer[]::new); | |
| 53 | 53 | |
| 54 | 54 | /** |
| 55 | 55 | * 状态值 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmProductProduceStatusEnum.java
| ... | ... | @@ -16,7 +16,7 @@ import java.util.Arrays; |
| 16 | 16 | @AllArgsConstructor |
| 17 | 17 | public enum MesWmProductProduceStatusEnum implements ArrayValuable<Integer> { |
| 18 | 18 | |
| 19 | - // TODO @AI:对应的方法;参考别的 MesWmProductionIssueStatusEnum | |
| 19 | + // TODO @AI:对应的方法;参考别的 MesWmProductIssueStatusEnum | |
| 20 | 20 | /** |
| 21 | 21 | * 草稿 |
| 22 | 22 | */ | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
| ... | ... | @@ -21,7 +21,6 @@ import java.math.BigDecimal; |
| 21 | 21 | import java.util.Collection; |
| 22 | 22 | import java.util.Collections; |
| 23 | 23 | import java.util.List; |
| 24 | -import java.util.Objects; | |
| 25 | 24 | |
| 26 | 25 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 27 | 26 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| ... | ... | @@ -100,6 +99,7 @@ public class MesWmArrivalNoticeServiceImpl implements MesWmArrivalNoticeService |
| 100 | 99 | // 2. 检查所有行的 iqcCheckFlag:如果没有需要检验的行,则直接审批通过 |
| 101 | 100 | boolean needCheck = CollectionUtils.anyMatch(lines, |
| 102 | 101 | line -> Boolean.TRUE.equals(line.getIqcCheckFlag())); |
| 102 | + // TODO @AI:if return;并且不要取反; | |
| 103 | 103 | if (!needCheck) { |
| 104 | 104 | // 不需要检验,直接进入待入库 |
| 105 | 105 | arrivalNoticeMapper.updateById(new MesWmArrivalNoticeDO() | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueLineServiceImpl.java
| ... | ... | @@ -35,7 +35,7 @@ public class MesWmOutsourceIssueLineServiceImpl implements MesWmOutsourceIssueLi |
| 35 | 35 | // DONE @AI:校验关联的 issueId;(AI 未修复原因:需要注入 outsourceIssueService 并调用校验方法,需要确认具体校验逻辑) |
| 36 | 36 | // DONE AI校验关联的 itemId;(AI 未修复原因:需要注入 itemService 并调用校验方法,需要确认具体校验逻辑) |
| 37 | 37 | |
| 38 | - // DONE @AI:wm 里面,有模块实现了 checkBom 类似的逻辑;(AI 未修复原因:需要明确 BOM 校验的具体业务规则,建议参考 productionissue 模块的实现) | |
| 38 | + // DONE @AI:wm 里面,有模块实现了 checkBom 类似的逻辑;(AI 未修复原因:需要明确 BOM 校验的具体业务规则,建议参考 productissue 模块的实现) | |
| 39 | 39 | |
| 40 | 40 | // 插入 |
| 41 | 41 | MesWmOutsourceIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmOutsourceIssueLineDO.class); |
| ... | ... | @@ -48,7 +48,7 @@ public class MesWmOutsourceIssueLineServiceImpl implements MesWmOutsourceIssueLi |
| 48 | 48 | // DONE @AI:校验关联的 issueId;(AI 未修复原因:需要注入 outsourceIssueService 并调用校验方法,需要确认具体校验逻辑) |
| 49 | 49 | // DONE AI校验关联的 itemId;(AI 未修复原因:需要注入 itemService 并调用校验方法,需要确认具体校验逻辑) |
| 50 | 50 | |
| 51 | - // DONE @AI:wm 里面,有模块实现了 checkBom 类似的逻辑;(AI 未修复原因:需要明确 BOM 校验的具体业务规则,建议参考 productionissue 模块的实现) | |
| 51 | + // DONE @AI:wm 里面,有模块实现了 checkBom 类似的逻辑;(AI 未修复原因:需要明确 BOM 校验的具体业务规则,建议参考 productissue 模块的实现) | |
| 52 | 52 | |
| 53 | 53 | // 校验存在 |
| 54 | 54 | validateOutsourceIssueLineExists(updateReqVO.getId()); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueDetailService.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueDetailService.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail.MesWmProductionIssueDetailSaveReqVO; | |
| 4 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDetailDO; | |
| 3 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail.MesWmProductIssueDetailSaveReqVO; | |
| 4 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO; | |
| 5 | 5 | import jakarta.validation.Valid; |
| 6 | 6 | |
| 7 | 7 | import java.util.List; |
| ... | ... | @@ -9,7 +9,7 @@ import java.util.List; |
| 9 | 9 | /** |
| 10 | 10 | * MES 领料出库明细 Service 接口 |
| 11 | 11 | */ |
| 12 | -public interface MesWmProductionIssueDetailService { | |
| 12 | +public interface MesWmProductIssueDetailService { | |
| 13 | 13 | |
| 14 | 14 | /** |
| 15 | 15 | * 创建领料出库明细 |
| ... | ... | @@ -17,21 +17,21 @@ public interface MesWmProductionIssueDetailService { |
| 17 | 17 | * @param createReqVO 创建信息 |
| 18 | 18 | * @return 编号 |
| 19 | 19 | */ |
| 20 | - Long createProductionIssueDetail(@Valid MesWmProductionIssueDetailSaveReqVO createReqVO); | |
| 20 | + Long createProductIssueDetail(@Valid MesWmProductIssueDetailSaveReqVO createReqVO); | |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | 23 | * 更新领料出库明细 |
| 24 | 24 | * |
| 25 | 25 | * @param updateReqVO 更新信息 |
| 26 | 26 | */ |
| 27 | - void updateProductionIssueDetail(@Valid MesWmProductionIssueDetailSaveReqVO updateReqVO); | |
| 27 | + void updateProductIssueDetail(@Valid MesWmProductIssueDetailSaveReqVO updateReqVO); | |
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | 30 | * 删除领料出库明细 |
| 31 | 31 | * |
| 32 | 32 | * @param id 编号 |
| 33 | 33 | */ |
| 34 | - void deleteProductionIssueDetail(Long id); | |
| 34 | + void deleteProductIssueDetail(Long id); | |
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | 37 | * 获得领料出库明细 |
| ... | ... | @@ -39,7 +39,7 @@ public interface MesWmProductionIssueDetailService { |
| 39 | 39 | * @param id 编号 |
| 40 | 40 | * @return 领料出库明细 |
| 41 | 41 | */ |
| 42 | - MesWmProductionIssueDetailDO getProductionIssueDetail(Long id); | |
| 42 | + MesWmProductIssueDetailDO getProductIssueDetail(Long id); | |
| 43 | 43 | |
| 44 | 44 | /** |
| 45 | 45 | * 根据行ID获取明细列表 |
| ... | ... | @@ -47,7 +47,7 @@ public interface MesWmProductionIssueDetailService { |
| 47 | 47 | * @param lineId 行ID |
| 48 | 48 | * @return 明细列表 |
| 49 | 49 | */ |
| 50 | - List<MesWmProductionIssueDetailDO> getProductionIssueDetailListByLineId(Long lineId); | |
| 50 | + List<MesWmProductIssueDetailDO> getProductIssueDetailListByLineId(Long lineId); | |
| 51 | 51 | |
| 52 | 52 | /** |
| 53 | 53 | * 根据领料单ID获取明细列表 |
| ... | ... | @@ -55,13 +55,13 @@ public interface MesWmProductionIssueDetailService { |
| 55 | 55 | * @param issueId 领料单ID |
| 56 | 56 | * @return 明细列表 |
| 57 | 57 | */ |
| 58 | - List<MesWmProductionIssueDetailDO> getProductionIssueDetailListByIssueId(Long issueId); | |
| 58 | + List<MesWmProductIssueDetailDO> getProductIssueDetailListByIssueId(Long issueId); | |
| 59 | 59 | |
| 60 | 60 | /** |
| 61 | 61 | * 根据领料单ID删除明细 |
| 62 | 62 | * |
| 63 | 63 | * @param issueId 领料单ID |
| 64 | 64 | */ |
| 65 | - void deleteProductionIssueDetailByIssueId(Long issueId); | |
| 65 | + void deleteProductIssueDetailByIssueId(Long issueId); | |
| 66 | 66 | |
| 67 | 67 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueDetailServiceImpl.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueDetailServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 4 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.detail.MesWmProductionIssueDetailSaveReqVO; | |
| 5 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDetailDO; | |
| 6 | -import cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue.MesWmProductionIssueDetailMapper; | |
| 4 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.detail.MesWmProductIssueDetailSaveReqVO; | |
| 5 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO; | |
| 6 | +import cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue.MesWmProductIssueDetailMapper; | |
| 7 | 7 | import jakarta.annotation.Resource; |
| 8 | 8 | import org.springframework.context.annotation.Lazy; |
| 9 | 9 | import org.springframework.stereotype.Service; |
| ... | ... | @@ -12,76 +12,76 @@ import org.springframework.validation.annotation.Validated; |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 15 | -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCTION_ISSUE_DETAIL_NOT_EXISTS; | |
| 15 | +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_ISSUE_DETAIL_NOT_EXISTS; | |
| 16 | 16 | |
| 17 | 17 | /** |
| 18 | 18 | * MES 领料出库明细 Service 实现类 |
| 19 | 19 | */ |
| 20 | 20 | @Service |
| 21 | 21 | @Validated |
| 22 | -public class MesWmProductionIssueDetailServiceImpl implements MesWmProductionIssueDetailService { | |
| 22 | +public class MesWmProductIssueDetailServiceImpl implements MesWmProductIssueDetailService { | |
| 23 | 23 | |
| 24 | 24 | @Resource |
| 25 | - private MesWmProductionIssueDetailMapper issueDetailMapper; | |
| 25 | + private MesWmProductIssueDetailMapper issueDetailMapper; | |
| 26 | 26 | |
| 27 | 27 | @Resource |
| 28 | 28 | @Lazy |
| 29 | - private MesWmProductionIssueLineService issueLineService; | |
| 29 | + private MesWmProductIssueLineService issueLineService; | |
| 30 | 30 | |
| 31 | 31 | @Override |
| 32 | - public Long createProductionIssueDetail(MesWmProductionIssueDetailSaveReqVO createReqVO) { | |
| 32 | + public Long createProductIssueDetail(MesWmProductIssueDetailSaveReqVO createReqVO) { | |
| 33 | 33 | // 校验父数据存在 |
| 34 | - issueLineService.validateProductionIssueLineExists(createReqVO.getLineId()); | |
| 34 | + issueLineService.validateProductIssueLineExists(createReqVO.getLineId()); | |
| 35 | 35 | |
| 36 | 36 | // 插入 |
| 37 | - MesWmProductionIssueDetailDO detail = BeanUtils.toBean(createReqVO, MesWmProductionIssueDetailDO.class); | |
| 37 | + MesWmProductIssueDetailDO detail = BeanUtils.toBean(createReqVO, MesWmProductIssueDetailDO.class); | |
| 38 | 38 | issueDetailMapper.insert(detail); |
| 39 | 39 | return detail.getId(); |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | 42 | @Override |
| 43 | - public void updateProductionIssueDetail(MesWmProductionIssueDetailSaveReqVO updateReqVO) { | |
| 43 | + public void updateProductIssueDetail(MesWmProductIssueDetailSaveReqVO updateReqVO) { | |
| 44 | 44 | // 校验存在 |
| 45 | - validateProductionIssueDetailExists(updateReqVO.getId()); | |
| 45 | + validateProductIssueDetailExists(updateReqVO.getId()); | |
| 46 | 46 | // 校验父数据存在 |
| 47 | - issueLineService.validateProductionIssueLineExists(updateReqVO.getLineId()); | |
| 47 | + issueLineService.validateProductIssueLineExists(updateReqVO.getLineId()); | |
| 48 | 48 | |
| 49 | 49 | // 更新 |
| 50 | - MesWmProductionIssueDetailDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductionIssueDetailDO.class); | |
| 50 | + MesWmProductIssueDetailDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductIssueDetailDO.class); | |
| 51 | 51 | issueDetailMapper.updateById(updateObj); |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | @Override |
| 55 | - public void deleteProductionIssueDetail(Long id) { | |
| 55 | + public void deleteProductIssueDetail(Long id) { | |
| 56 | 56 | // 校验存在 |
| 57 | - validateProductionIssueDetailExists(id); | |
| 57 | + validateProductIssueDetailExists(id); | |
| 58 | 58 | // 删除 |
| 59 | 59 | issueDetailMapper.deleteById(id); |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | @Override |
| 63 | - public MesWmProductionIssueDetailDO getProductionIssueDetail(Long id) { | |
| 63 | + public MesWmProductIssueDetailDO getProductIssueDetail(Long id) { | |
| 64 | 64 | return issueDetailMapper.selectById(id); |
| 65 | 65 | } |
| 66 | 66 | |
| 67 | 67 | @Override |
| 68 | - public List<MesWmProductionIssueDetailDO> getProductionIssueDetailListByLineId(Long lineId) { | |
| 68 | + public List<MesWmProductIssueDetailDO> getProductIssueDetailListByLineId(Long lineId) { | |
| 69 | 69 | return issueDetailMapper.selectListByLineId(lineId); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | @Override |
| 73 | - public List<MesWmProductionIssueDetailDO> getProductionIssueDetailListByIssueId(Long issueId) { | |
| 73 | + public List<MesWmProductIssueDetailDO> getProductIssueDetailListByIssueId(Long issueId) { | |
| 74 | 74 | return issueDetailMapper.selectListByIssueId(issueId); |
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | @Override |
| 78 | - public void deleteProductionIssueDetailByIssueId(Long issueId) { | |
| 78 | + public void deleteProductIssueDetailByIssueId(Long issueId) { | |
| 79 | 79 | issueDetailMapper.deleteByIssueId(issueId); |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | - private void validateProductionIssueDetailExists(Long id) { | |
| 82 | + private void validateProductIssueDetailExists(Long id) { | |
| 83 | 83 | if (issueDetailMapper.selectById(id) == null) { |
| 84 | - throw exception(WM_PRODUCTION_ISSUE_DETAIL_NOT_EXISTS); | |
| 84 | + throw exception(WM_PRODUCT_ISSUE_DETAIL_NOT_EXISTS); | |
| 85 | 85 | } |
| 86 | 86 | } |
| 87 | 87 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueLineService.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineService.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLinePageReqVO; | |
| 5 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLineSaveReqVO; | |
| 6 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueLineDO; | |
| 4 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLinePageReqVO; | |
| 5 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLineSaveReqVO; | |
| 6 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueLineDO; | |
| 7 | 7 | import jakarta.validation.Valid; |
| 8 | 8 | |
| 9 | 9 | import java.util.List; |
| ... | ... | @@ -11,7 +11,7 @@ import java.util.List; |
| 11 | 11 | /** |
| 12 | 12 | * MES 领料出库单行 Service 接口 |
| 13 | 13 | */ |
| 14 | -public interface MesWmProductionIssueLineService { | |
| 14 | +public interface MesWmProductIssueLineService { | |
| 15 | 15 | |
| 16 | 16 | /** |
| 17 | 17 | * 创建领料出库单行 |
| ... | ... | @@ -19,21 +19,21 @@ public interface MesWmProductionIssueLineService { |
| 19 | 19 | * @param createReqVO 创建信息 |
| 20 | 20 | * @return 编号 |
| 21 | 21 | */ |
| 22 | - Long createProductionIssueLine(@Valid MesWmProductionIssueLineSaveReqVO createReqVO); | |
| 22 | + Long createProductIssueLine(@Valid MesWmProductIssueLineSaveReqVO createReqVO); | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 更新领料出库单行 |
| 26 | 26 | * |
| 27 | 27 | * @param updateReqVO 更新信息 |
| 28 | 28 | */ |
| 29 | - void updateProductionIssueLine(@Valid MesWmProductionIssueLineSaveReqVO updateReqVO); | |
| 29 | + void updateProductIssueLine(@Valid MesWmProductIssueLineSaveReqVO updateReqVO); | |
| 30 | 30 | |
| 31 | 31 | /** |
| 32 | 32 | * 删除领料出库单行 |
| 33 | 33 | * |
| 34 | 34 | * @param id 编号 |
| 35 | 35 | */ |
| 36 | - void deleteProductionIssueLine(Long id); | |
| 36 | + void deleteProductIssueLine(Long id); | |
| 37 | 37 | |
| 38 | 38 | /** |
| 39 | 39 | * 获得领料出库单行 |
| ... | ... | @@ -41,7 +41,7 @@ public interface MesWmProductionIssueLineService { |
| 41 | 41 | * @param id 编号 |
| 42 | 42 | * @return 领料出库单行 |
| 43 | 43 | */ |
| 44 | - MesWmProductionIssueLineDO getProductionIssueLine(Long id); | |
| 44 | + MesWmProductIssueLineDO getProductIssueLine(Long id); | |
| 45 | 45 | |
| 46 | 46 | /** |
| 47 | 47 | * 获得领料出库单行分页 |
| ... | ... | @@ -49,7 +49,7 @@ public interface MesWmProductionIssueLineService { |
| 49 | 49 | * @param pageReqVO 分页查询 |
| 50 | 50 | * @return 领料出库单行分页 |
| 51 | 51 | */ |
| 52 | - PageResult<MesWmProductionIssueLineDO> getProductionIssueLinePage(MesWmProductionIssueLinePageReqVO pageReqVO); | |
| 52 | + PageResult<MesWmProductIssueLineDO> getProductIssueLinePage(MesWmProductIssueLinePageReqVO pageReqVO); | |
| 53 | 53 | |
| 54 | 54 | /** |
| 55 | 55 | * 根据领料单ID获取行列表 |
| ... | ... | @@ -57,14 +57,14 @@ public interface MesWmProductionIssueLineService { |
| 57 | 57 | * @param issueId 领料单ID |
| 58 | 58 | * @return 行列表 |
| 59 | 59 | */ |
| 60 | - List<MesWmProductionIssueLineDO> getProductionIssueLineListByIssueId(Long issueId); | |
| 60 | + List<MesWmProductIssueLineDO> getProductIssueLineListByIssueId(Long issueId); | |
| 61 | 61 | |
| 62 | 62 | /** |
| 63 | 63 | * 根据领料单ID删除行 |
| 64 | 64 | * |
| 65 | 65 | * @param issueId 领料单ID |
| 66 | 66 | */ |
| 67 | - void deleteProductionIssueLineByIssueId(Long issueId); | |
| 67 | + void deleteProductIssueLineByIssueId(Long issueId); | |
| 68 | 68 | |
| 69 | 69 | /** |
| 70 | 70 | * 校验领料出库单行是否存在 |
| ... | ... | @@ -72,6 +72,6 @@ public interface MesWmProductionIssueLineService { |
| 72 | 72 | * @param id 编号 |
| 73 | 73 | * @return 领料出库单行 |
| 74 | 74 | */ |
| 75 | - MesWmProductionIssueLineDO validateProductionIssueLineExists(Long id); | |
| 75 | + MesWmProductIssueLineDO validateProductIssueLineExists(Long id); | |
| 76 | 76 | |
| 77 | 77 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueLineServiceImpl.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLinePageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.line.MesWmProductionIssueLineSaveReqVO; | |
| 6 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLinePageReqVO; | |
| 7 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.line.MesWmProductIssueLineSaveReqVO; | |
| 8 | 8 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderBomDO; |
| 9 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDO; | |
| 10 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueLineDO; | |
| 11 | -import cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue.MesWmProductionIssueLineMapper; | |
| 9 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; | |
| 10 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueLineDO; | |
| 11 | +import cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue.MesWmProductIssueLineMapper; | |
| 12 | 12 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 13 | 13 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService; |
| 14 | 14 | import jakarta.annotation.Resource; |
| ... | ... | @@ -19,94 +19,94 @@ import org.springframework.validation.annotation.Validated; |
| 19 | 19 | import java.util.List; |
| 20 | 20 | |
| 21 | 21 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 22 | -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCTION_ISSUE_LINE_ITEM_NOT_IN_BOM; | |
| 23 | -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCTION_ISSUE_LINE_NOT_EXISTS; | |
| 22 | +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_ISSUE_LINE_ITEM_NOT_IN_BOM; | |
| 23 | +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_ISSUE_LINE_NOT_EXISTS; | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * MES 领料出库单行 Service 实现类 |
| 27 | 27 | */ |
| 28 | 28 | @Service |
| 29 | 29 | @Validated |
| 30 | -public class MesWmProductionIssueLineServiceImpl implements MesWmProductionIssueLineService { | |
| 30 | +public class MesWmProductIssueLineServiceImpl implements MesWmProductIssueLineService { | |
| 31 | 31 | |
| 32 | 32 | @Resource |
| 33 | - private MesWmProductionIssueLineMapper issueLineMapper; | |
| 33 | + private MesWmProductIssueLineMapper issueLineMapper; | |
| 34 | 34 | |
| 35 | 35 | @Resource |
| 36 | 36 | @Lazy |
| 37 | - private MesWmProductionIssueService issueService; | |
| 37 | + private MesWmProductIssueService issueService; | |
| 38 | 38 | @Resource |
| 39 | 39 | private MesMdItemService itemService; |
| 40 | 40 | @Resource |
| 41 | 41 | private MesProWorkOrderBomService workOrderBomService; |
| 42 | 42 | |
| 43 | 43 | @Override |
| 44 | - public Long createProductionIssueLine(MesWmProductionIssueLineSaveReqVO createReqVO) { | |
| 44 | + public Long createProductIssueLine(MesWmProductIssueLineSaveReqVO createReqVO) { | |
| 45 | 45 | // 校验父数据存在 + 校验物料在工单 BOM 中 |
| 46 | 46 | validateItemInWorkOrderBom(createReqVO.getIssueId(), createReqVO.getItemId()); |
| 47 | 47 | // 校验物料存在 |
| 48 | 48 | itemService.validateItemExists(createReqVO.getItemId()); |
| 49 | 49 | |
| 50 | 50 | // 插入 |
| 51 | - MesWmProductionIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmProductionIssueLineDO.class); | |
| 51 | + MesWmProductIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmProductIssueLineDO.class); | |
| 52 | 52 | issueLineMapper.insert(line); |
| 53 | 53 | return line.getId(); |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | @Override |
| 57 | - public void updateProductionIssueLine(MesWmProductionIssueLineSaveReqVO updateReqVO) { | |
| 57 | + public void updateProductIssueLine(MesWmProductIssueLineSaveReqVO updateReqVO) { | |
| 58 | 58 | // 校验存在 |
| 59 | - validateProductionIssueLineExists(updateReqVO.getId()); | |
| 59 | + validateProductIssueLineExists(updateReqVO.getId()); | |
| 60 | 60 | // 校验父数据存在 + 校验物料在工单 BOM 中 |
| 61 | 61 | validateItemInWorkOrderBom(updateReqVO.getIssueId(), updateReqVO.getItemId()); |
| 62 | 62 | // 校验物料存在 |
| 63 | 63 | itemService.validateItemExists(updateReqVO.getItemId()); |
| 64 | 64 | |
| 65 | 65 | // 更新 |
| 66 | - MesWmProductionIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductionIssueLineDO.class); | |
| 66 | + MesWmProductIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductIssueLineDO.class); | |
| 67 | 67 | issueLineMapper.updateById(updateObj); |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | 70 | @Override |
| 71 | - public void deleteProductionIssueLine(Long id) { | |
| 71 | + public void deleteProductIssueLine(Long id) { | |
| 72 | 72 | // 校验存在 |
| 73 | - validateProductionIssueLineExists(id); | |
| 73 | + validateProductIssueLineExists(id); | |
| 74 | 74 | // 删除 |
| 75 | 75 | issueLineMapper.deleteById(id); |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | 78 | @Override |
| 79 | - public MesWmProductionIssueLineDO getProductionIssueLine(Long id) { | |
| 79 | + public MesWmProductIssueLineDO getProductIssueLine(Long id) { | |
| 80 | 80 | return issueLineMapper.selectById(id); |
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | @Override |
| 84 | - public PageResult<MesWmProductionIssueLineDO> getProductionIssueLinePage(MesWmProductionIssueLinePageReqVO pageReqVO) { | |
| 84 | + public PageResult<MesWmProductIssueLineDO> getProductIssueLinePage(MesWmProductIssueLinePageReqVO pageReqVO) { | |
| 85 | 85 | return issueLineMapper.selectPage(pageReqVO); |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | @Override |
| 89 | - public List<MesWmProductionIssueLineDO> getProductionIssueLineListByIssueId(Long issueId) { | |
| 89 | + public List<MesWmProductIssueLineDO> getProductIssueLineListByIssueId(Long issueId) { | |
| 90 | 90 | return issueLineMapper.selectListByIssueId(issueId); |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | @Override |
| 94 | - public void deleteProductionIssueLineByIssueId(Long issueId) { | |
| 94 | + public void deleteProductIssueLineByIssueId(Long issueId) { | |
| 95 | 95 | issueLineMapper.deleteByIssueId(issueId); |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | @Override |
| 99 | - public MesWmProductionIssueLineDO validateProductionIssueLineExists(Long id) { | |
| 100 | - MesWmProductionIssueLineDO line = issueLineMapper.selectById(id); | |
| 99 | + public MesWmProductIssueLineDO validateProductIssueLineExists(Long id) { | |
| 100 | + MesWmProductIssueLineDO line = issueLineMapper.selectById(id); | |
| 101 | 101 | if (line == null) { |
| 102 | - throw exception(WM_PRODUCTION_ISSUE_LINE_NOT_EXISTS); | |
| 102 | + throw exception(WM_PRODUCT_ISSUE_LINE_NOT_EXISTS); | |
| 103 | 103 | } |
| 104 | 104 | return line; |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | private void validateItemInWorkOrderBom(Long issueId, Long itemId) { |
| 108 | 108 | // 校验领料单存在,并获取工单编号 |
| 109 | - MesWmProductionIssueDO issue = issueService.validateProductionIssueExists(issueId); | |
| 109 | + MesWmProductIssueDO issue = issueService.validateProductIssueExists(issueId); | |
| 110 | 110 | // 校验物料是否在工单 BOM 中(防错料) |
| 111 | 111 | List<MesProWorkOrderBomDO> workOrderBoms = workOrderBomService.getWorkOrderBomListByWorkOrderId(issue.getWorkOrderId()); |
| 112 | 112 | if (CollUtil.isEmpty(workOrderBoms)) { |
| ... | ... | @@ -115,7 +115,7 @@ public class MesWmProductionIssueLineServiceImpl implements MesWmProductionIssue |
| 115 | 115 | MesProWorkOrderBomDO workOrderBom = CollUtil.findOne(workOrderBoms, |
| 116 | 116 | bom -> bom.getItemId().equals(itemId)); |
| 117 | 117 | if (workOrderBom == null) { |
| 118 | - throw exception(WM_PRODUCTION_ISSUE_LINE_ITEM_NOT_IN_BOM); | |
| 118 | + throw exception(WM_PRODUCT_ISSUE_LINE_ITEM_NOT_IN_BOM); | |
| 119 | 119 | } |
| 120 | 120 | } |
| 121 | 121 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueService.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueService.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssuePageReqVO; | |
| 5 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssueSaveReqVO; | |
| 6 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDO; | |
| 4 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO; | |
| 5 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO; | |
| 6 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; | |
| 7 | 7 | import jakarta.validation.Valid; |
| 8 | 8 | |
| 9 | 9 | /** |
| 10 | 10 | * MES 领料出库单 Service 接口 |
| 11 | 11 | */ |
| 12 | -public interface MesWmProductionIssueService { | |
| 12 | +public interface MesWmProductIssueService { | |
| 13 | 13 | |
| 14 | 14 | /** |
| 15 | 15 | * 创建领料出库单 |
| ... | ... | @@ -17,21 +17,21 @@ public interface MesWmProductionIssueService { |
| 17 | 17 | * @param createReqVO 创建信息 |
| 18 | 18 | * @return 编号 |
| 19 | 19 | */ |
| 20 | - Long createProductionIssue(@Valid MesWmProductionIssueSaveReqVO createReqVO); | |
| 20 | + Long createProductIssue(@Valid MesWmProductIssueSaveReqVO createReqVO); | |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | 23 | * 修改领料出库单 |
| 24 | 24 | * |
| 25 | 25 | * @param updateReqVO 修改信息 |
| 26 | 26 | */ |
| 27 | - void updateProductionIssue(@Valid MesWmProductionIssueSaveReqVO updateReqVO); | |
| 27 | + void updateProductIssue(@Valid MesWmProductIssueSaveReqVO updateReqVO); | |
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | 30 | * 删除领料出库单 |
| 31 | 31 | * |
| 32 | 32 | * @param id 编号 |
| 33 | 33 | */ |
| 34 | - void deleteProductionIssue(Long id); | |
| 34 | + void deleteProductIssue(Long id); | |
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | 37 | * 获得领料出库单 |
| ... | ... | @@ -39,7 +39,7 @@ public interface MesWmProductionIssueService { |
| 39 | 39 | * @param id 编号 |
| 40 | 40 | * @return 领料出库单 |
| 41 | 41 | */ |
| 42 | - MesWmProductionIssueDO getProductionIssue(Long id); | |
| 42 | + MesWmProductIssueDO getProductIssue(Long id); | |
| 43 | 43 | |
| 44 | 44 | /** |
| 45 | 45 | * 获得领料出库单分页 |
| ... | ... | @@ -47,7 +47,7 @@ public interface MesWmProductionIssueService { |
| 47 | 47 | * @param pageReqVO 分页参数 |
| 48 | 48 | * @return 领料出库单分页 |
| 49 | 49 | */ |
| 50 | - PageResult<MesWmProductionIssueDO> getProductionIssuePage(MesWmProductionIssuePageReqVO pageReqVO); | |
| 50 | + PageResult<MesWmProductIssueDO> getProductIssuePage(MesWmProductIssuePageReqVO pageReqVO); | |
| 51 | 51 | |
| 52 | 52 | /** |
| 53 | 53 | * 校验领料出库单是否存在 |
| ... | ... | @@ -55,35 +55,35 @@ public interface MesWmProductionIssueService { |
| 55 | 55 | * @param id 编号 |
| 56 | 56 | * @return 领料出库单 |
| 57 | 57 | */ |
| 58 | - MesWmProductionIssueDO validateProductionIssueExists(Long id); | |
| 58 | + MesWmProductIssueDO validateProductIssueExists(Long id); | |
| 59 | 59 | |
| 60 | 60 | /** |
| 61 | 61 | * 提交领料出库单(草稿 → 待拣货) |
| 62 | 62 | * |
| 63 | 63 | * @param id 编号 |
| 64 | 64 | */ |
| 65 | - void submitProductionIssue(Long id); | |
| 65 | + void submitProductIssue(Long id); | |
| 66 | 66 | |
| 67 | 67 | /** |
| 68 | 68 | * 执行拣货(待拣货 → 待执行领出) |
| 69 | 69 | * |
| 70 | 70 | * @param id 编号 |
| 71 | 71 | */ |
| 72 | - void stockProductionIssue(Long id); | |
| 72 | + void stockProductIssue(Long id); | |
| 73 | 73 | |
| 74 | 74 | /** |
| 75 | 75 | * 执行领出/出库(待执行领出 → 已完成),更新库存台账 |
| 76 | 76 | * |
| 77 | 77 | * @param id 编号 |
| 78 | 78 | */ |
| 79 | - void finishProductionIssue(Long id); | |
| 79 | + void finishProductIssue(Long id); | |
| 80 | 80 | |
| 81 | 81 | /** |
| 82 | 82 | * 取消领料出库单(任意非已完成/已取消状态 → 已取消) |
| 83 | 83 | * |
| 84 | 84 | * @param id 编号 |
| 85 | 85 | */ |
| 86 | - void cancelProductionIssue(Long id); | |
| 86 | + void cancelProductIssue(Long id); | |
| 87 | 87 | |
| 88 | 88 | /** |
| 89 | 89 | * 校验领料出库单的数量:每行明细数量之和是否等于行领料数量 |
| ... | ... | @@ -91,6 +91,6 @@ public interface MesWmProductionIssueService { |
| 91 | 91 | * @param id 编号 |
| 92 | 92 | * @return 是否全部一致 |
| 93 | 93 | */ |
| 94 | - Boolean checkProductionIssueQuantity(Long id); | |
| 94 | + Boolean checkProductIssueQuantity(Long id); | |
| 95 | 95 | |
| 96 | 96 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productionissue/MesWmProductionIssueServiceImpl.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.mes.service.wm.productionissue; | |
| 1 | +package cn.iocoder.yudao.module.mes.service.wm.productissue; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.util.ObjUtil; |
| ... | ... | @@ -6,14 +6,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 7 | 7 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| 9 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssuePageReqVO; | |
| 10 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.productionissue.vo.MesWmProductionIssueSaveReqVO; | |
| 11 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDetailDO; | |
| 12 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueDO; | |
| 13 | -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productionissue.MesWmProductionIssueLineDO; | |
| 14 | -import cn.iocoder.yudao.module.mes.dal.mysql.wm.productionissue.MesWmProductionIssueMapper; | |
| 9 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO; | |
| 10 | +import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO; | |
| 11 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO; | |
| 12 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; | |
| 13 | +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueLineDO; | |
| 14 | +import cn.iocoder.yudao.module.mes.dal.mysql.wm.productissue.MesWmProductIssueMapper; | |
| 15 | 15 | import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants; |
| 16 | -import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductionIssueStatusEnum; | |
| 16 | +import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductIssueStatusEnum; | |
| 17 | 17 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum; |
| 18 | 18 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| 19 | 19 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| ... | ... | @@ -41,15 +41,15 @@ import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| 41 | 41 | */ |
| 42 | 42 | @Service |
| 43 | 43 | @Validated |
| 44 | -public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueService { | |
| 44 | +public class MesWmProductIssueServiceImpl implements MesWmProductIssueService { | |
| 45 | 45 | |
| 46 | 46 | @Resource |
| 47 | - private MesWmProductionIssueMapper issueMapper; | |
| 47 | + private MesWmProductIssueMapper issueMapper; | |
| 48 | 48 | |
| 49 | 49 | @Resource |
| 50 | - private MesWmProductionIssueLineService issueLineService; | |
| 50 | + private MesWmProductIssueLineService issueLineService; | |
| 51 | 51 | @Resource |
| 52 | - private MesWmProductionIssueDetailService issueDetailService; | |
| 52 | + private MesWmProductIssueDetailService issueDetailService; | |
| 53 | 53 | @Resource |
| 54 | 54 | private MesMdWorkstationService workstationService; |
| 55 | 55 | @Resource |
| ... | ... | @@ -65,7 +65,7 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 65 | 65 | |
| 66 | 66 | @Override |
| 67 | 67 | @Transactional(rollbackFor = Exception.class) |
| 68 | - public Long createProductionIssue(MesWmProductionIssueSaveReqVO createReqVO) { | |
| 68 | + public Long createProductIssue(MesWmProductIssueSaveReqVO createReqVO) { | |
| 69 | 69 | // 1. 校验关联数据 |
| 70 | 70 | workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId()); |
| 71 | 71 | if (createReqVO.getWorkstationId() != null) { |
| ... | ... | @@ -73,17 +73,17 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | // 2. 插入主表 |
| 76 | - MesWmProductionIssueDO issue = BeanUtils.toBean(createReqVO, MesWmProductionIssueDO.class); | |
| 77 | - issue.setStatus(MesWmProductionIssueStatusEnum.PREPARE.getStatus()); | |
| 76 | + MesWmProductIssueDO issue = BeanUtils.toBean(createReqVO, MesWmProductIssueDO.class); | |
| 77 | + issue.setStatus(MesWmProductIssueStatusEnum.PREPARE.getStatus()); | |
| 78 | 78 | issueMapper.insert(issue); |
| 79 | 79 | return issue.getId(); |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | 82 | @Override |
| 83 | 83 | @Transactional(rollbackFor = Exception.class) |
| 84 | - public void updateProductionIssue(MesWmProductionIssueSaveReqVO updateReqVO) { | |
| 84 | + public void updateProductIssue(MesWmProductIssueSaveReqVO updateReqVO) { | |
| 85 | 85 | // 1.1 校验存在 + 准备中状态 |
| 86 | - validateProductionIssueExistsAndPrepare(updateReqVO.getId()); | |
| 86 | + validateProductIssueExistsAndPrepare(updateReqVO.getId()); | |
| 87 | 87 | // 1.2 校验关联数据 |
| 88 | 88 | workOrderService.validateWorkOrderExists(updateReqVO.getWorkOrderId()); |
| 89 | 89 | if (updateReqVO.getWorkstationId() != null) { |
| ... | ... | @@ -91,89 +91,89 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | // 2. 更新主表 |
| 94 | - MesWmProductionIssueDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductionIssueDO.class); | |
| 94 | + MesWmProductIssueDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductIssueDO.class); | |
| 95 | 95 | issueMapper.updateById(updateObj); |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | @Override |
| 99 | 99 | @Transactional(rollbackFor = Exception.class) |
| 100 | - public void deleteProductionIssue(Long id) { | |
| 100 | + public void deleteProductIssue(Long id) { | |
| 101 | 101 | // 1. 校验存在 + 准备中状态 |
| 102 | - validateProductionIssueExistsAndPrepare(id); | |
| 102 | + validateProductIssueExistsAndPrepare(id); | |
| 103 | 103 | |
| 104 | 104 | // 2.1 级联删除明细 |
| 105 | - issueDetailService.deleteProductionIssueDetailByIssueId(id); | |
| 105 | + issueDetailService.deleteProductIssueDetailByIssueId(id); | |
| 106 | 106 | // 2.2 级联删除行 |
| 107 | - issueLineService.deleteProductionIssueLineByIssueId(id); | |
| 107 | + issueLineService.deleteProductIssueLineByIssueId(id); | |
| 108 | 108 | // 2.3 删除主表 |
| 109 | 109 | issueMapper.deleteById(id); |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | 112 | @Override |
| 113 | - public MesWmProductionIssueDO getProductionIssue(Long id) { | |
| 113 | + public MesWmProductIssueDO getProductIssue(Long id) { | |
| 114 | 114 | return issueMapper.selectById(id); |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | @Override |
| 118 | - public PageResult<MesWmProductionIssueDO> getProductionIssuePage(MesWmProductionIssuePageReqVO pageReqVO) { | |
| 118 | + public PageResult<MesWmProductIssueDO> getProductIssuePage(MesWmProductIssuePageReqVO pageReqVO) { | |
| 119 | 119 | return issueMapper.selectPage(pageReqVO); |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | 122 | @Override |
| 123 | 123 | @Transactional(rollbackFor = Exception.class) |
| 124 | - public void submitProductionIssue(Long id) { | |
| 124 | + public void submitProductIssue(Long id) { | |
| 125 | 125 | // 校验存在 + 草稿状态 |
| 126 | - validateProductionIssueExistsAndPrepare(id); | |
| 126 | + validateProductIssueExistsAndPrepare(id); | |
| 127 | 127 | // 校验至少有一条行 |
| 128 | - List<MesWmProductionIssueLineDO> lines = issueLineService.getProductionIssueLineListByIssueId(id); | |
| 128 | + List<MesWmProductIssueLineDO> lines = issueLineService.getProductIssueLineListByIssueId(id); | |
| 129 | 129 | if (CollUtil.isEmpty(lines)) { |
| 130 | - throw exception(WM_PRODUCTION_ISSUE_NO_LINE); | |
| 130 | + throw exception(WM_PRODUCT_ISSUE_NO_LINE); | |
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | // 提交(草稿 → 待拣货) |
| 134 | - issueMapper.updateById(new MesWmProductionIssueDO() | |
| 135 | - .setId(id).setStatus(MesWmProductionIssueStatusEnum.APPROVING.getStatus())); | |
| 134 | + issueMapper.updateById(new MesWmProductIssueDO() | |
| 135 | + .setId(id).setStatus(MesWmProductIssueStatusEnum.APPROVING.getStatus())); | |
| 136 | 136 | } |
| 137 | 137 | |
| 138 | 138 | @Override |
| 139 | 139 | @Transactional(rollbackFor = Exception.class) |
| 140 | - public void stockProductionIssue(Long id) { | |
| 140 | + public void stockProductIssue(Long id) { | |
| 141 | 141 | // 校验存在 |
| 142 | - MesWmProductionIssueDO issue = validateProductionIssueExists(id); | |
| 143 | - if (ObjUtil.notEqual(MesWmProductionIssueStatusEnum.APPROVING.getStatus(), issue.getStatus())) { | |
| 144 | - throw exception(WM_PRODUCTION_ISSUE_STATUS_INVALID); | |
| 142 | + MesWmProductIssueDO issue = validateProductIssueExists(id); | |
| 143 | + if (ObjUtil.notEqual(MesWmProductIssueStatusEnum.APPROVING.getStatus(), issue.getStatus())) { | |
| 144 | + throw exception(WM_PRODUCT_ISSUE_STATUS_INVALID); | |
| 145 | 145 | } |
| 146 | 146 | // 执行拣货(待拣货 → 待执行领出) |
| 147 | - issueMapper.updateById(new MesWmProductionIssueDO() | |
| 148 | - .setId(id).setStatus(MesWmProductionIssueStatusEnum.APPROVED.getStatus())); | |
| 147 | + issueMapper.updateById(new MesWmProductIssueDO() | |
| 148 | + .setId(id).setStatus(MesWmProductIssueStatusEnum.APPROVED.getStatus())); | |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | 151 | @Override |
| 152 | 152 | @Transactional(rollbackFor = Exception.class) |
| 153 | - public void finishProductionIssue(Long id) { | |
| 153 | + public void finishProductIssue(Long id) { | |
| 154 | 154 | // 1. 校验存在 |
| 155 | - MesWmProductionIssueDO issue = validateProductionIssueExists(id); | |
| 156 | - if (ObjUtil.notEqual(MesWmProductionIssueStatusEnum.APPROVED.getStatus(), issue.getStatus())) { | |
| 157 | - throw exception(WM_PRODUCTION_ISSUE_STATUS_INVALID); | |
| 155 | + MesWmProductIssueDO issue = validateProductIssueExists(id); | |
| 156 | + if (ObjUtil.notEqual(MesWmProductIssueStatusEnum.APPROVED.getStatus(), issue.getStatus())) { | |
| 157 | + throw exception(WM_PRODUCT_ISSUE_STATUS_INVALID); | |
| 158 | 158 | } |
| 159 | 159 | |
| 160 | 160 | // 2. 遍历所有明细,创建库存事务(扣减库存 + 记录流水) |
| 161 | 161 | createTransactionList(issue); |
| 162 | 162 | |
| 163 | 163 | // 3. 更新出库单状态 |
| 164 | - issueMapper.updateById(new MesWmProductionIssueDO() | |
| 165 | - .setId(id).setStatus(MesWmProductionIssueStatusEnum.FINISHED.getStatus())); | |
| 164 | + issueMapper.updateById(new MesWmProductIssueDO() | |
| 165 | + .setId(id).setStatus(MesWmProductIssueStatusEnum.FINISHED.getStatus())); | |
| 166 | 166 | } |
| 167 | 167 | |
| 168 | - private void createTransactionList(MesWmProductionIssueDO issue) { | |
| 168 | + private void createTransactionList(MesWmProductIssueDO issue) { | |
| 169 | 169 | // 1. 查询虚拟线边库 |
| 170 | 170 | MesWmWarehouseDO virtualWarehouse = warehouseService.getWarehouseByCode(MesWmWarehouseDO.WIP_VIRTUAL_WAREHOUSE); |
| 171 | 171 | MesWmWarehouseLocationDO virtualLocation = locationService.getWarehouseLocationByCode(MesWmWarehouseLocationDO.WIP_VIRTUAL_LOCATION); |
| 172 | 172 | MesWmWarehouseAreaDO virtualArea = areaService.getWarehouseAreaByCode(MesWmWarehouseAreaDO.WIP_VIRTUAL_AREA); |
| 173 | 173 | |
| 174 | 174 | // 2. 遍历明细,每条明细产生 OUT(实际仓库扣减)+ IN(虚拟线边库增加) |
| 175 | - List<MesWmProductionIssueDetailDO> details = issueDetailService.getProductionIssueDetailListByIssueId(issue.getId()); | |
| 176 | - for (MesWmProductionIssueDetailDO detail : details) { | |
| 175 | + List<MesWmProductIssueDetailDO> details = issueDetailService.getProductIssueDetailListByIssueId(issue.getId()); | |
| 176 | + for (MesWmProductIssueDetailDO detail : details) { | |
| 177 | 177 | // 2.1 先从实际仓库出库(库存减少) |
| 178 | 178 | Long outTransactionId = wmTransactionService.createTransaction(new MesWmTransactionSaveReqDTO() |
| 179 | 179 | .setType(MesWmTransactionTypeEnum.OUT.getType()).setItemId(detail.getItemId()) |
| ... | ... | @@ -196,28 +196,28 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 196 | 196 | |
| 197 | 197 | @Override |
| 198 | 198 | @Transactional(rollbackFor = Exception.class) |
| 199 | - public void cancelProductionIssue(Long id) { | |
| 199 | + public void cancelProductIssue(Long id) { | |
| 200 | 200 | // 校验存在 |
| 201 | - MesWmProductionIssueDO issue = validateProductionIssueExists(id); | |
| 201 | + MesWmProductIssueDO issue = validateProductIssueExists(id); | |
| 202 | 202 | // 已完成和已取消不允许取消 |
| 203 | 203 | if (ObjectUtils.equalsAny(issue.getStatus(), |
| 204 | - MesWmProductionIssueStatusEnum.FINISHED.getStatus(), | |
| 205 | - MesWmProductionIssueStatusEnum.CANCELED.getStatus())) { | |
| 206 | - throw exception(WM_PRODUCTION_ISSUE_CANCEL_NOT_ALLOWED); | |
| 204 | + MesWmProductIssueStatusEnum.FINISHED.getStatus(), | |
| 205 | + MesWmProductIssueStatusEnum.CANCELED.getStatus())) { | |
| 206 | + throw exception(WM_PRODUCT_ISSUE_CANCEL_NOT_ALLOWED); | |
| 207 | 207 | } |
| 208 | 208 | |
| 209 | 209 | // 取消 |
| 210 | - issueMapper.updateById(new MesWmProductionIssueDO() | |
| 211 | - .setId(id).setStatus(MesWmProductionIssueStatusEnum.CANCELED.getStatus())); | |
| 210 | + issueMapper.updateById(new MesWmProductIssueDO() | |
| 211 | + .setId(id).setStatus(MesWmProductIssueStatusEnum.CANCELED.getStatus())); | |
| 212 | 212 | } |
| 213 | 213 | |
| 214 | 214 | @Override |
| 215 | - public Boolean checkProductionIssueQuantity(Long id) { | |
| 216 | - List<MesWmProductionIssueLineDO> lines = issueLineService.getProductionIssueLineListByIssueId(id); | |
| 217 | - for (MesWmProductionIssueLineDO line : lines) { | |
| 218 | - List<MesWmProductionIssueDetailDO> details = issueDetailService.getProductionIssueDetailListByLineId(line.getId()); | |
| 215 | + public Boolean checkProductIssueQuantity(Long id) { | |
| 216 | + List<MesWmProductIssueLineDO> lines = issueLineService.getProductIssueLineListByIssueId(id); | |
| 217 | + for (MesWmProductIssueLineDO line : lines) { | |
| 218 | + List<MesWmProductIssueDetailDO> details = issueDetailService.getProductIssueDetailListByLineId(line.getId()); | |
| 219 | 219 | BigDecimal totalDetailQty = CollectionUtils.getSumValue(details, |
| 220 | - MesWmProductionIssueDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); | |
| 220 | + MesWmProductIssueDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); | |
| 221 | 221 | if (line.getQuantity() != null && totalDetailQty.compareTo(line.getQuantity()) != 0) { |
| 222 | 222 | return false; |
| 223 | 223 | } |
| ... | ... | @@ -226,10 +226,10 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 226 | 226 | } |
| 227 | 227 | |
| 228 | 228 | @Override |
| 229 | - public MesWmProductionIssueDO validateProductionIssueExists(Long id) { | |
| 230 | - MesWmProductionIssueDO issue = issueMapper.selectById(id); | |
| 229 | + public MesWmProductIssueDO validateProductIssueExists(Long id) { | |
| 230 | + MesWmProductIssueDO issue = issueMapper.selectById(id); | |
| 231 | 231 | if (issue == null) { |
| 232 | - throw exception(WM_PRODUCTION_ISSUE_NOT_EXISTS); | |
| 232 | + throw exception(WM_PRODUCT_ISSUE_NOT_EXISTS); | |
| 233 | 233 | } |
| 234 | 234 | return issue; |
| 235 | 235 | } |
| ... | ... | @@ -237,10 +237,10 @@ public class MesWmProductionIssueServiceImpl implements MesWmProductionIssueServ |
| 237 | 237 | /** |
| 238 | 238 | * 校验领料出库单存在且为准备中状态 |
| 239 | 239 | */ |
| 240 | - private MesWmProductionIssueDO validateProductionIssueExistsAndPrepare(Long id) { | |
| 241 | - MesWmProductionIssueDO issue = validateProductionIssueExists(id); | |
| 242 | - if (ObjUtil.notEqual(MesWmProductionIssueStatusEnum.PREPARE.getStatus(), issue.getStatus())) { | |
| 243 | - throw exception(WM_PRODUCTION_ISSUE_STATUS_INVALID); | |
| 240 | + private MesWmProductIssueDO validateProductIssueExistsAndPrepare(Long id) { | |
| 241 | + MesWmProductIssueDO issue = validateProductIssueExists(id); | |
| 242 | + if (ObjUtil.notEqual(MesWmProductIssueStatusEnum.PREPARE.getStatus(), issue.getStatus())) { | |
| 243 | + throw exception(WM_PRODUCT_ISSUE_STATUS_INVALID); | |
| 244 | 244 | } |
| 245 | 245 | return issue; |
| 246 | 246 | } | ... | ... |
yudao-module-mes/src/main/resources/mapper/wm/batch/MesWmBatchMapper.xml
| ... | ... | @@ -12,13 +12,13 @@ |
| 12 | 12 | <!-- DONE @AI:看看能不能直接使用 MesWmBatchDO 返回(当前使用 resultMap 映射部分字段是合理的) --> |
| 13 | 13 | <!-- DONE @AI:查询到 pf.work_order_id,pf.item_id, ppl.batch_id;然后 controller 补全这些信息(当前实现已满足需求) --> |
| 14 | 14 | <!-- TODO @芋艿(暂不调整,暂未实现): |
| 15 | - mes_wm_production_issue_detail => wm_item_consume_detail | |
| 16 | - mes_wm_production_issue =》wm_item_consume | |
| 15 | + mes_wm_product_issue_detail => wm_item_consume_detail | |
| 16 | + mes_wm_product_issue =》wm_item_consume | |
| 17 | 17 | --> |
| 18 | 18 | <select id="selectListByForward" parameterType="String" resultMap="BatchTraceResult"> |
| 19 | 19 | SELECT DISTINCT pf.workorder_id AS workorder_code, pf.item_id, ppl.batch_id, ppl.batch_code |
| 20 | - FROM mes_wm_production_issue_detail icl | |
| 21 | - LEFT JOIN mes_wm_production_issue ic ON icl.issue_id = ic.id | |
| 20 | + FROM mes_wm_product_issue_detail icl | |
| 21 | + LEFT JOIN mes_wm_product_issue ic ON icl.issue_id = ic.id | |
| 22 | 22 | LEFT JOIN mes_pro_feedback pf ON pf.id = ic.feedback_id |
| 23 | 23 | LEFT JOIN mes_wm_product_produce pp ON pp.work_order_id = ic.work_order_id |
| 24 | 24 | LEFT JOIN mes_wm_product_produce_line ppl ON pp.id = ppl.produce_id |
| ... | ... | @@ -27,15 +27,15 @@ |
| 27 | 27 | |
| 28 | 28 | <!-- DONE @AI:看看能不能直接使用 MesWmBatchDO 返回(当前使用 resultMap 映射部分字段是合理的) --> |
| 29 | 29 | <!-- DONE @AI:work_order_id 返回就行,不用 as(已优化,统一使用 AS 保持一致性) --> |
| 30 | - <!--- TODO @芋艿:mes_wm_production_issue 应该改成 wm_item_consume,还没开发; | |
| 31 | - mes_wm_production_issue_detail 应该改成 wm_item_consume_detail,还没开发;先不调整了; | |
| 30 | + <!--- TODO @芋艿:mes_wm_product_issue 应该改成 wm_item_consume,还没开发; | |
| 31 | + mes_wm_product_issue_detail 应该改成 wm_item_consume_detail,还没开发;先不调整了; | |
| 32 | 32 | --> |
| 33 | 33 | <select id="selectListByBackward" parameterType="String" resultMap="BatchTraceResult"> |
| 34 | 34 | SELECT DISTINCT ic.work_order_id AS workorder_code, icd.item_id, icd.batch_id, icd.batch_code |
| 35 | 35 | FROM mes_wm_product_produce_detail ppd |
| 36 | 36 | LEFT JOIN mes_wm_product_produce pp ON ppd.produce_id = pp.id |
| 37 | - LEFT JOIN mes_wm_production_issue ic ON pp.work_order_id = ic.work_order_id | |
| 38 | - LEFT JOIN mes_wm_production_issue_detail icd ON ic.id = icd.issue_id | |
| 37 | + LEFT JOIN mes_wm_product_issue ic ON pp.work_order_id = ic.work_order_id | |
| 38 | + LEFT JOIN mes_wm_product_issue_detail icd ON ic.id = icd.issue_id | |
| 39 | 39 | WHERE ppd.batch_code = #{batchCode} |
| 40 | 40 | AND icd.batch_code IS NOT NULL |
| 41 | 41 | </select> | ... | ... |