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,14 +12,18 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; | ||
| 12 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; | 12 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| 13 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; | 13 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; |
| 14 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; | 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 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; | 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 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; | 18 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; |
| 17 | import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService; | 19 | import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService; |
| 18 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; | 20 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 19 | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; | 21 | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| 20 | import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; | 22 | import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; |
| 21 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; | 23 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| 24 | +import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService; | ||
| 22 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; | 25 | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| 26 | +import cn.iocoder.yudao.module.mes.service.tm.tool.MesTmToolService; | ||
| 23 | import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; | 27 | import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; |
| 24 | import io.swagger.v3.oas.annotations.Operation; | 28 | import io.swagger.v3.oas.annotations.Operation; |
| 25 | import io.swagger.v3.oas.annotations.Parameter; | 29 | import io.swagger.v3.oas.annotations.Parameter; |
| @@ -59,7 +63,11 @@ public class MesWmBatchController { | @@ -59,7 +63,11 @@ public class MesWmBatchController { | ||
| 59 | @Resource | 63 | @Resource |
| 60 | private MesProWorkOrderService workOrderService; | 64 | private MesProWorkOrderService workOrderService; |
| 61 | @Resource | 65 | @Resource |
| 66 | + private MesProTaskService taskService; | ||
| 67 | + @Resource | ||
| 62 | private MesMdWorkstationService workstationService; | 68 | private MesMdWorkstationService workstationService; |
| 69 | + @Resource | ||
| 70 | + private MesTmToolService toolService; | ||
| 63 | 71 | ||
| 64 | @GetMapping("/get") | 72 | @GetMapping("/get") |
| 65 | @Operation(summary = "获得批次详情") | 73 | @Operation(summary = "获得批次详情") |
| @@ -111,8 +119,12 @@ public class MesWmBatchController { | @@ -111,8 +119,12 @@ public class MesWmBatchController { | ||
| 111 | convertSet(list, MesWmBatchDO::getClientId)); | 119 | convertSet(list, MesWmBatchDO::getClientId)); |
| 112 | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( | 120 | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| 113 | convertSet(list, MesWmBatchDO::getWorkOrderId)); | 121 | convertSet(list, MesWmBatchDO::getWorkOrderId)); |
| 122 | + Map<Long, MesProTaskDO> taskMap = taskService.getTaskMap( | ||
| 123 | + convertSet(list, MesWmBatchDO::getTaskId)); | ||
| 114 | Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap( | 124 | Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap( |
| 115 | convertSet(list, MesWmBatchDO::getWorkstationId)); | 125 | convertSet(list, MesWmBatchDO::getWorkstationId)); |
| 126 | + Map<Long, MesTmToolDO> toolMap = toolService.getToolMap( | ||
| 127 | + convertSet(list, MesWmBatchDO::getToolId)); | ||
| 116 | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( | 128 | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| 117 | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); | 129 | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| 118 | // 2. 构建结果 | 130 | // 2. 构建结果 |
| @@ -129,8 +141,12 @@ public class MesWmBatchController { | @@ -129,8 +141,12 @@ public class MesWmBatchController { | ||
| 129 | client -> vo.setClientCode(client.getCode()).setClientName(client.getName())); | 141 | client -> vo.setClientCode(client.getCode()).setClientName(client.getName())); |
| 130 | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), | 142 | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), |
| 131 | workOrder -> vo.setWorkOrderCode(workOrder.getCode())); | 143 | workOrder -> vo.setWorkOrderCode(workOrder.getCode())); |
| 144 | + MapUtils.findAndThen(taskMap, vo.getTaskId(), | ||
| 145 | + task -> vo.setTaskCode(task.getCode())); | ||
| 132 | MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), | 146 | MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), |
| 133 | workstation -> vo.setWorkstationCode(workstation.getCode())); | 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,6 +5,11 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | import lombok.Data; | 5 | import lombok.Data; |
| 6 | import lombok.EqualsAndHashCode; | 6 | import lombok.EqualsAndHashCode; |
| 7 | import lombok.ToString; | 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 | @Schema(description = "管理后台 - MES 批次管理分页 Request VO") | 14 | @Schema(description = "管理后台 - MES 批次管理分页 Request VO") |
| 10 | @Data | 15 | @Data |
| @@ -33,4 +38,34 @@ public class MesWmBatchPageReqVO extends PageParam { | @@ -33,4 +38,34 @@ public class MesWmBatchPageReqVO extends PageParam { | ||
| 33 | @Schema(description = "生产工单编号", example = "1") | 38 | @Schema(description = "生产工单编号", example = "1") |
| 34 | private Long workOrderId; | 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 | \ No newline at end of file | 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,6 +72,9 @@ public class MesWmBatchRespVO { | ||
| 72 | @Schema(description = "生产任务 ID", example = "1") | 72 | @Schema(description = "生产任务 ID", example = "1") |
| 73 | private Long taskId; | 73 | private Long taskId; |
| 74 | 74 | ||
| 75 | + @Schema(description = "生产任务编号", example = "TASK20250314001") | ||
| 76 | + private String taskCode; | ||
| 77 | + | ||
| 75 | @Schema(description = "工作站 ID", example = "1") | 78 | @Schema(description = "工作站 ID", example = "1") |
| 76 | private Long workstationId; | 79 | private Long workstationId; |
| 77 | 80 | ||
| @@ -81,6 +84,9 @@ public class MesWmBatchRespVO { | @@ -81,6 +84,9 @@ public class MesWmBatchRespVO { | ||
| 81 | @Schema(description = "工具 ID", example = "1") | 84 | @Schema(description = "工具 ID", example = "1") |
| 82 | private Long toolId; | 85 | private Long toolId; |
| 83 | 86 | ||
| 87 | + @Schema(description = "工具编号", example = "TOOL001") | ||
| 88 | + private String toolCode; | ||
| 89 | + | ||
| 84 | @Schema(description = "模具 ID", example = "1") | 90 | @Schema(description = "模具 ID", example = "1") |
| 85 | private Long moldId; | 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,6 +33,15 @@ public interface MesWmBatchMapper extends BaseMapperX<MesWmBatchDO> { | ||
| 33 | .likeIfPresent(MesWmBatchDO::getSalesOrderCode, reqVO.getSalesOrderCode()) | 33 | .likeIfPresent(MesWmBatchDO::getSalesOrderCode, reqVO.getSalesOrderCode()) |
| 34 | .likeIfPresent(MesWmBatchDO::getPurchaseOrderCode, reqVO.getPurchaseOrderCode()) | 34 | .likeIfPresent(MesWmBatchDO::getPurchaseOrderCode, reqVO.getPurchaseOrderCode()) |
| 35 | .eqIfPresent(MesWmBatchDO::getWorkOrderId, reqVO.getWorkOrderId()) | 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 | .orderByDesc(MesWmBatchDO::getId)); | 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,7 +6,11 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV | ||
| 6 | import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; | 6 | import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; |
| 7 | import jakarta.validation.Valid; | 7 | import jakarta.validation.Valid; |
| 8 | 8 | ||
| 9 | +import java.util.Collection; | ||
| 9 | import java.util.List; | 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 | * MES 工具台账 Service 接口 | 16 | * MES 工具台账 Service 接口 |
| @@ -60,4 +64,22 @@ public interface MesTmToolService { | @@ -60,4 +64,22 @@ public interface MesTmToolService { | ||
| 60 | */ | 64 | */ |
| 61 | List<MesTmToolDO> getToolList(); | 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,6 +15,7 @@ import org.springframework.context.annotation.Lazy; | ||
| 15 | import org.springframework.stereotype.Service; | 15 | import org.springframework.stereotype.Service; |
| 16 | import org.springframework.validation.annotation.Validated; | 16 | import org.springframework.validation.annotation.Validated; |
| 17 | 17 | ||
| 18 | +import java.util.Collection; | ||
| 18 | import java.util.List; | 19 | import java.util.List; |
| 19 | import java.util.Objects; | 20 | import java.util.Objects; |
| 20 | 21 | ||
| @@ -123,4 +124,12 @@ public class MesTmToolServiceImpl implements MesTmToolService { | @@ -123,4 +124,12 @@ public class MesTmToolServiceImpl implements MesTmToolService { | ||
| 123 | return toolMapper.selectList(); | 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 | } |