Commit 67294192f004532b5f4285aa95097d4309a1bdff

Authored by YunaiV
1 parent 71c9a8ad

✨ feat(mes): 优化工单和任务管理功能,增强表单交互逻辑

调整工单表单和任务列表的展示,新增工单完成操作,优化表单数据处理逻辑,提升用户体验。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
@@ -6,12 +6,15 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -6,12 +6,15 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO;
7 import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO;
8 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; 8 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
9 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; 10 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
  11 +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
10 import cn.iocoder.yudao.module.mes.dal.mysql.pro.task.MesProTaskMapper; 12 import cn.iocoder.yudao.module.mes.dal.mysql.pro.task.MesProTaskMapper;
11 import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; 13 import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum;
12 import cn.iocoder.yudao.module.mes.enums.pro.MesProTaskStatusEnum; 14 import cn.iocoder.yudao.module.mes.enums.pro.MesProTaskStatusEnum;
13 import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; 15 import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService;
14 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; 16 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
  17 +import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
15 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; 18 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
16 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; 19 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
17 import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteService; 20 import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteService;
@@ -54,6 +57,8 @@ public class MesProTaskServiceImpl implements MesProTaskService { @@ -54,6 +57,8 @@ public class MesProTaskServiceImpl implements MesProTaskService {
54 @Resource 57 @Resource
55 private MesMdItemService itemService; 58 private MesMdItemService itemService;
56 @Resource 59 @Resource
  60 + private MesMdUnitMeasureService unitMeasureService;
  61 + @Resource
57 private MesProRouteService routeService; 62 private MesProRouteService routeService;
58 @Resource 63 @Resource
59 private MesMdAutoCodeRecordService autoCodeRecordService; 64 private MesMdAutoCodeRecordService autoCodeRecordService;
@@ -61,17 +66,20 @@ public class MesProTaskServiceImpl implements MesProTaskService { @@ -61,17 +66,20 @@ public class MesProTaskServiceImpl implements MesProTaskService {
61 @Override 66 @Override
62 public Long createTask(MesProTaskSaveReqVO createReqVO) { 67 public Long createTask(MesProTaskSaveReqVO createReqVO) {
63 // 1. 校验关联数据存在 68 // 1. 校验关联数据存在
64 - workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId()); 69 + MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId());
65 workstationService.validateWorkstationExists(createReqVO.getWorkstationId()); 70 workstationService.validateWorkstationExists(createReqVO.getWorkstationId());
66 routeService.validateRouteExists(createReqVO.getRouteId()); 71 routeService.validateRouteExists(createReqVO.getRouteId());
67 processService.validateProcessExists(createReqVO.getProcessId()); 72 processService.validateProcessExists(createReqVO.getProcessId());
68 MesMdItemDO item = itemService.validateItemExists(createReqVO.getItemId()); 73 MesMdItemDO item = itemService.validateItemExists(createReqVO.getItemId());
69 74
70 - // 2.1 构建任务 DO 75 + // 2.1 构建任务 DO:自动填充客户信息
71 MesProTaskDO task = BeanUtils.toBean(createReqVO, MesProTaskDO.class) 76 MesProTaskDO task = BeanUtils.toBean(createReqVO, MesProTaskDO.class)
72 - .setName(buildTaskName(item.getName(), createReqVO.getQuantity())) 77 + .setName(buildTaskName(item, createReqVO.getQuantity()))
73 .setCode(autoCodeRecordService.generateAutoCode(MesMdAutoCodeRuleCodeEnum.PRO_TASK_CODE.getCode())) 78 .setCode(autoCodeRecordService.generateAutoCode(MesMdAutoCodeRuleCodeEnum.PRO_TASK_CODE.getCode()))
74 .setStatus(MesProTaskStatusEnum.PREPARE.getStatus()); 79 .setStatus(MesProTaskStatusEnum.PREPARE.getStatus());
  80 + if (task.getClientId() == null && workOrder.getClientId() != null) {
  81 + task.setClientId(workOrder.getClientId());
  82 + }
75 // 2.2 插入 83 // 2.2 插入
76 taskMapper.insert(task); 84 taskMapper.insert(task);
77 return task.getId(); 85 return task.getId();
@@ -104,18 +112,29 @@ public class MesProTaskServiceImpl implements MesProTaskService { @@ -104,18 +112,29 @@ public class MesProTaskServiceImpl implements MesProTaskService {
104 112
105 // 2. 更新 113 // 2. 更新
106 MesProTaskDO updateObj = BeanUtils.toBean(updateReqVO, MesProTaskDO.class) 114 MesProTaskDO updateObj = BeanUtils.toBean(updateReqVO, MesProTaskDO.class)
107 - .setName(buildTaskName(item.getName(), quantity)); 115 + .setName(buildTaskName(item, quantity));
108 taskMapper.updateById(updateObj); 116 taskMapper.updateById(updateObj);
109 } 117 }
110 118
111 - private String buildTaskName(String itemName, BigDecimal quantity) {  
112 - return itemName + "【" + quantity + "】"; 119 + /**
  120 + * 构建任务名称,格式:"产品名【数量】单位"
  121 + */
  122 + private String buildTaskName(MesMdItemDO item, BigDecimal quantity) {
  123 + String unitName = "";
  124 + if (item.getUnitMeasureId() != null) {
  125 + MesMdUnitMeasureDO unit = unitMeasureService.getUnitMeasure(item.getUnitMeasureId());
  126 + if (unit != null) {
  127 + unitName = unit.getName();
  128 + }
  129 + }
  130 + return item.getName() + "【" + quantity + "】" + unitName;
113 } 131 }
114 132
115 @Override 133 @Override
116 public void deleteTask(Long id) { 134 public void deleteTask(Long id) {
117 - // 1. 校验存在  
118 - validateTaskExists(id); 135 + // 1. 校验存在且非终态
  136 + validateTaskNotFinished(id);
  137 +
119 // 2. 删除 138 // 2. 删除
120 taskMapper.deleteById(id); 139 taskMapper.deleteById(id);
121 } 140 }