Browse Source

✨ feat(mes): 新增批次管理相关字段和功能

在批次管理中新增多个字段,包括生产任务编号、工具编号、模具编号、生产批号、质量状态以及日期范围等。更新了相关的请求和响应对象,增强了批次查询功能,支持更多筛选条件。

同时,更新了前端组件以支持新的字段和功能,提升用户体验。
YunaiV 2 months ago
parent
commit
3f514a5cc0

+ 16 - 0
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;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
 import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
 import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
+import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
+import cn.iocoder.yudao.module.mes.service.tm.tool.MesTmToolService;
 import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -59,7 +63,11 @@ public class MesWmBatchController {
     @Resource
     private MesProWorkOrderService workOrderService;
     @Resource
+    private MesProTaskService taskService;
+    @Resource
     private MesMdWorkstationService workstationService;
+    @Resource
+    private MesTmToolService toolService;
 
     @GetMapping("/get")
     @Operation(summary = "获得批次详情")
@@ -111,8 +119,12 @@ public class MesWmBatchController {
                 convertSet(list, MesWmBatchDO::getClientId));
         Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap(
                 convertSet(list, MesWmBatchDO::getWorkOrderId));
+        Map<Long, MesProTaskDO> taskMap = taskService.getTaskMap(
+                convertSet(list, MesWmBatchDO::getTaskId));
         Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap(
                 convertSet(list, MesWmBatchDO::getWorkstationId));
+        Map<Long, MesTmToolDO> toolMap = toolService.getToolMap(
+                convertSet(list, MesWmBatchDO::getToolId));
         Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap(
                 convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
         // 2. 构建结果
@@ -129,8 +141,12 @@ public class MesWmBatchController {
                     client -> vo.setClientCode(client.getCode()).setClientName(client.getName()));
             MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(),
                     workOrder -> vo.setWorkOrderCode(workOrder.getCode()));
+            MapUtils.findAndThen(taskMap, vo.getTaskId(),
+                    task -> vo.setTaskCode(task.getCode()));
             MapUtils.findAndThen(workstationMap, vo.getWorkstationId(),
                     workstation -> vo.setWorkstationCode(workstation.getCode()));
+            MapUtils.findAndThen(toolMap, vo.getToolId(),
+                    tool -> vo.setToolCode(tool.getCode()));
         });
     }
 

+ 35 - 0
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;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
 @Schema(description = "管理后台 - MES 批次管理分页 Request VO")
 @Data
@@ -33,4 +38,34 @@ public class MesWmBatchPageReqVO extends PageParam {
     @Schema(description = "生产工单编号", example = "1")
     private Long workOrderId;
 
+    @Schema(description = "生产任务编号", example = "1")
+    private Long taskId;
+
+    @Schema(description = "工作站编号", example = "1")
+    private Long workstationId;
+
+    @Schema(description = "工具编号", example = "1")
+    private Long toolId;
+
+    @Schema(description = "模具编号", example = "1")
+    private Long moldId;
+
+    @Schema(description = "生产批号", example = "LOT20250314001")
+    private String lotNumber;
+
+    @Schema(description = "质量状态", example = "1")
+    private Integer qualityStatus;
+
+    @Schema(description = "生产日期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] produceDate;
+
+    @Schema(description = "有效期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] expireDate;
+
+    @Schema(description = "入库日期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] receiptDate;
+
 }

+ 6 - 0
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 {
     @Schema(description = "生产任务 ID", example = "1")
     private Long taskId;
 
+    @Schema(description = "生产任务编号", example = "TASK20250314001")
+    private String taskCode;
+
     @Schema(description = "工作站 ID", example = "1")
     private Long workstationId;
 
@@ -81,6 +84,9 @@ public class MesWmBatchRespVO {
     @Schema(description = "工具 ID", example = "1")
     private Long toolId;
 
+    @Schema(description = "工具编号", example = "TOOL001")
+    private String toolCode;
+
     @Schema(description = "模具 ID", example = "1")
     private Long moldId;
 

+ 9 - 0
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> {
                 .likeIfPresent(MesWmBatchDO::getSalesOrderCode, reqVO.getSalesOrderCode())
                 .likeIfPresent(MesWmBatchDO::getPurchaseOrderCode, reqVO.getPurchaseOrderCode())
                 .eqIfPresent(MesWmBatchDO::getWorkOrderId, reqVO.getWorkOrderId())
+                .eqIfPresent(MesWmBatchDO::getTaskId, reqVO.getTaskId())
+                .eqIfPresent(MesWmBatchDO::getWorkstationId, reqVO.getWorkstationId())
+                .eqIfPresent(MesWmBatchDO::getToolId, reqVO.getToolId())
+                .eqIfPresent(MesWmBatchDO::getMoldId, reqVO.getMoldId())
+                .likeIfPresent(MesWmBatchDO::getLotNumber, reqVO.getLotNumber())
+                .eqIfPresent(MesWmBatchDO::getQualityStatus, reqVO.getQualityStatus())
+                .betweenIfPresent(MesWmBatchDO::getProduceDate, reqVO.getProduceDate())
+                .betweenIfPresent(MesWmBatchDO::getExpireDate, reqVO.getExpireDate())
+                .betweenIfPresent(MesWmBatchDO::getReceiptDate, reqVO.getReceiptDate())
                 .orderByDesc(MesWmBatchDO::getId));
     }
 

+ 22 - 0
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
 import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO;
 import jakarta.validation.Valid;
 
+import java.util.Collection;
 import java.util.List;
+import java.util.Map;
+
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 
 /**
  * MES 工具台账 Service 接口
@@ -60,4 +64,22 @@ public interface MesTmToolService {
      */
     List<MesTmToolDO> getToolList();
 
+    /**
+     * 获得工具列表
+     *
+     * @param ids 编号列表
+     * @return 工具列表
+     */
+    List<MesTmToolDO> getToolList(Collection<Long> ids);
+
+    /**
+     * 获得工具 Map
+     *
+     * @param ids 编号列表
+     * @return 工具 Map
+     */
+    default Map<Long, MesTmToolDO> getToolMap(Collection<Long> ids) {
+        return convertMap(getToolList(ids), MesTmToolDO::getId);
+    }
+
 }

+ 9 - 0
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;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
 
@@ -123,4 +124,12 @@ public class MesTmToolServiceImpl implements MesTmToolService {
         return toolMapper.selectList();
     }
 
+    @Override
+    public List<MesTmToolDO> getToolList(Collection<Long> ids) {
+        if (ids == null || ids.isEmpty()) {
+            return List.of();
+        }
+        return toolMapper.selectBatchIds(ids);
+    }
+
 }