Commit 3f514a5cc0758435ca51f60397a50c9b463fc0e5
1 parent
51d64e08
✨ feat(mes): 新增批次管理相关字段和功能
在批次管理中新增多个字段,包括生产任务编号、工具编号、模具编号、生产批号、质量状态以及日期范围等。更新了相关的请求和响应对象,增强了批次查询功能,支持更多筛选条件。 同时,更新了前端组件以支持新的字段和功能,提升用户体验。
Showing
6 changed files
with
97 additions
and
0 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java
| ... | ... | @@ -12,14 +12,18 @@ 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 | 13 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; |
| 14 | 14 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| 15 | +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; | |
| 15 | 16 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| 17 | +import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; | |
| 16 | 18 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; |
| 17 | 19 | import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService; |
| 18 | 20 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 19 | 21 | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| 20 | 22 | import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; |
| 21 | 23 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| 24 | +import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService; | |
| 22 | 25 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| 26 | +import cn.iocoder.yudao.module.mes.service.tm.tool.MesTmToolService; | |
| 23 | 27 | import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; |
| 24 | 28 | import io.swagger.v3.oas.annotations.Operation; |
| 25 | 29 | import io.swagger.v3.oas.annotations.Parameter; |
| ... | ... | @@ -59,7 +63,11 @@ public class MesWmBatchController { |
| 59 | 63 | @Resource |
| 60 | 64 | private MesProWorkOrderService workOrderService; |
| 61 | 65 | @Resource |
| 66 | + private MesProTaskService taskService; | |
| 67 | + @Resource | |
| 62 | 68 | private MesMdWorkstationService workstationService; |
| 69 | + @Resource | |
| 70 | + private MesTmToolService toolService; | |
| 63 | 71 | |
| 64 | 72 | @GetMapping("/get") |
| 65 | 73 | @Operation(summary = "获得批次详情") |
| ... | ... | @@ -111,8 +119,12 @@ public class MesWmBatchController { |
| 111 | 119 | convertSet(list, MesWmBatchDO::getClientId)); |
| 112 | 120 | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| 113 | 121 | convertSet(list, MesWmBatchDO::getWorkOrderId)); |
| 122 | + Map<Long, MesProTaskDO> taskMap = taskService.getTaskMap( | |
| 123 | + convertSet(list, MesWmBatchDO::getTaskId)); | |
| 114 | 124 | Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap( |
| 115 | 125 | convertSet(list, MesWmBatchDO::getWorkstationId)); |
| 126 | + Map<Long, MesTmToolDO> toolMap = toolService.getToolMap( | |
| 127 | + convertSet(list, MesWmBatchDO::getToolId)); | |
| 116 | 128 | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| 117 | 129 | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| 118 | 130 | // 2. 构建结果 |
| ... | ... | @@ -129,8 +141,12 @@ public class MesWmBatchController { |
| 129 | 141 | client -> vo.setClientCode(client.getCode()).setClientName(client.getName())); |
| 130 | 142 | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), |
| 131 | 143 | workOrder -> vo.setWorkOrderCode(workOrder.getCode())); |
| 144 | + MapUtils.findAndThen(taskMap, vo.getTaskId(), | |
| 145 | + task -> vo.setTaskCode(task.getCode())); | |
| 132 | 146 | MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), |
| 133 | 147 | workstation -> vo.setWorkstationCode(workstation.getCode())); |
| 148 | + MapUtils.findAndThen(toolMap, vo.getToolId(), | |
| 149 | + tool -> vo.setToolCode(tool.getCode())); | |
| 134 | 150 | }); |
| 135 | 151 | } |
| 136 | 152 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/vo/MesWmBatchPageReqVO.java
| ... | ... | @@ -5,6 +5,11 @@ import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | + | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | + | |
| 12 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 8 | 13 | |
| 9 | 14 | @Schema(description = "管理后台 - MES 批次管理分页 Request VO") |
| 10 | 15 | @Data |
| ... | ... | @@ -33,4 +38,34 @@ public class MesWmBatchPageReqVO extends PageParam { |
| 33 | 38 | @Schema(description = "生产工单编号", example = "1") |
| 34 | 39 | private Long workOrderId; |
| 35 | 40 | |
| 41 | + @Schema(description = "生产任务编号", example = "1") | |
| 42 | + private Long taskId; | |
| 43 | + | |
| 44 | + @Schema(description = "工作站编号", example = "1") | |
| 45 | + private Long workstationId; | |
| 46 | + | |
| 47 | + @Schema(description = "工具编号", example = "1") | |
| 48 | + private Long toolId; | |
| 49 | + | |
| 50 | + @Schema(description = "模具编号", example = "1") | |
| 51 | + private Long moldId; | |
| 52 | + | |
| 53 | + @Schema(description = "生产批号", example = "LOT20250314001") | |
| 54 | + private String lotNumber; | |
| 55 | + | |
| 56 | + @Schema(description = "质量状态", example = "1") | |
| 57 | + private Integer qualityStatus; | |
| 58 | + | |
| 59 | + @Schema(description = "生产日期") | |
| 60 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 61 | + private LocalDateTime[] produceDate; | |
| 62 | + | |
| 63 | + @Schema(description = "有效期") | |
| 64 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 65 | + private LocalDateTime[] expireDate; | |
| 66 | + | |
| 67 | + @Schema(description = "入库日期") | |
| 68 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 69 | + private LocalDateTime[] receiptDate; | |
| 70 | + | |
| 36 | 71 | } |
| 37 | 72 | \ No newline at end of file | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/vo/MesWmBatchRespVO.java
| ... | ... | @@ -72,6 +72,9 @@ public class MesWmBatchRespVO { |
| 72 | 72 | @Schema(description = "生产任务 ID", example = "1") |
| 73 | 73 | private Long taskId; |
| 74 | 74 | |
| 75 | + @Schema(description = "生产任务编号", example = "TASK20250314001") | |
| 76 | + private String taskCode; | |
| 77 | + | |
| 75 | 78 | @Schema(description = "工作站 ID", example = "1") |
| 76 | 79 | private Long workstationId; |
| 77 | 80 | |
| ... | ... | @@ -81,6 +84,9 @@ public class MesWmBatchRespVO { |
| 81 | 84 | @Schema(description = "工具 ID", example = "1") |
| 82 | 85 | private Long toolId; |
| 83 | 86 | |
| 87 | + @Schema(description = "工具编号", example = "TOOL001") | |
| 88 | + private String toolCode; | |
| 89 | + | |
| 84 | 90 | @Schema(description = "模具 ID", example = "1") |
| 85 | 91 | private Long moldId; |
| 86 | 92 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java
| ... | ... | @@ -33,6 +33,15 @@ public interface MesWmBatchMapper extends BaseMapperX<MesWmBatchDO> { |
| 33 | 33 | .likeIfPresent(MesWmBatchDO::getSalesOrderCode, reqVO.getSalesOrderCode()) |
| 34 | 34 | .likeIfPresent(MesWmBatchDO::getPurchaseOrderCode, reqVO.getPurchaseOrderCode()) |
| 35 | 35 | .eqIfPresent(MesWmBatchDO::getWorkOrderId, reqVO.getWorkOrderId()) |
| 36 | + .eqIfPresent(MesWmBatchDO::getTaskId, reqVO.getTaskId()) | |
| 37 | + .eqIfPresent(MesWmBatchDO::getWorkstationId, reqVO.getWorkstationId()) | |
| 38 | + .eqIfPresent(MesWmBatchDO::getToolId, reqVO.getToolId()) | |
| 39 | + .eqIfPresent(MesWmBatchDO::getMoldId, reqVO.getMoldId()) | |
| 40 | + .likeIfPresent(MesWmBatchDO::getLotNumber, reqVO.getLotNumber()) | |
| 41 | + .eqIfPresent(MesWmBatchDO::getQualityStatus, reqVO.getQualityStatus()) | |
| 42 | + .betweenIfPresent(MesWmBatchDO::getProduceDate, reqVO.getProduceDate()) | |
| 43 | + .betweenIfPresent(MesWmBatchDO::getExpireDate, reqVO.getExpireDate()) | |
| 44 | + .betweenIfPresent(MesWmBatchDO::getReceiptDate, reqVO.getReceiptDate()) | |
| 36 | 45 | .orderByDesc(MesWmBatchDO::getId)); |
| 37 | 46 | } |
| 38 | 47 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolService.java
| ... | ... | @@ -6,7 +6,11 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV |
| 6 | 6 | import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; |
| 7 | 7 | import jakarta.validation.Valid; |
| 8 | 8 | |
| 9 | +import java.util.Collection; | |
| 9 | 10 | import java.util.List; |
| 11 | +import java.util.Map; | |
| 12 | + | |
| 13 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | |
| 10 | 14 | |
| 11 | 15 | /** |
| 12 | 16 | * MES 工具台账 Service 接口 |
| ... | ... | @@ -60,4 +64,22 @@ public interface MesTmToolService { |
| 60 | 64 | */ |
| 61 | 65 | List<MesTmToolDO> getToolList(); |
| 62 | 66 | |
| 67 | + /** | |
| 68 | + * 获得工具列表 | |
| 69 | + * | |
| 70 | + * @param ids 编号列表 | |
| 71 | + * @return 工具列表 | |
| 72 | + */ | |
| 73 | + List<MesTmToolDO> getToolList(Collection<Long> ids); | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * 获得工具 Map | |
| 77 | + * | |
| 78 | + * @param ids 编号列表 | |
| 79 | + * @return 工具 Map | |
| 80 | + */ | |
| 81 | + default Map<Long, MesTmToolDO> getToolMap(Collection<Long> ids) { | |
| 82 | + return convertMap(getToolList(ids), MesTmToolDO::getId); | |
| 83 | + } | |
| 84 | + | |
| 63 | 85 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java
| ... | ... | @@ -15,6 +15,7 @@ import org.springframework.context.annotation.Lazy; |
| 15 | 15 | import org.springframework.stereotype.Service; |
| 16 | 16 | import org.springframework.validation.annotation.Validated; |
| 17 | 17 | |
| 18 | +import java.util.Collection; | |
| 18 | 19 | import java.util.List; |
| 19 | 20 | import java.util.Objects; |
| 20 | 21 | |
| ... | ... | @@ -123,4 +124,12 @@ public class MesTmToolServiceImpl implements MesTmToolService { |
| 123 | 124 | return toolMapper.selectList(); |
| 124 | 125 | } |
| 125 | 126 | |
| 127 | + @Override | |
| 128 | + public List<MesTmToolDO> getToolList(Collection<Long> ids) { | |
| 129 | + if (ids == null || ids.isEmpty()) { | |
| 130 | + return List.of(); | |
| 131 | + } | |
| 132 | + return toolMapper.selectBatchIds(ids); | |
| 133 | + } | |
| 134 | + | |
| 126 | 135 | } | ... | ... |