Commit 67294192f004532b5f4285aa95097d4309a1bdff
1 parent
71c9a8ad
✨ feat(mes): 优化工单和任务管理功能,增强表单交互逻辑
调整工单表单和任务列表的展示,新增工单完成操作,优化表单数据处理逻辑,提升用户体验。
Showing
1 changed file
with
27 additions
and
8 deletions
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 | 6 | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO; |
| 7 | 7 | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO; |
| 8 | 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 | 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 | 12 | import cn.iocoder.yudao.module.mes.dal.mysql.pro.task.MesProTaskMapper; |
| 11 | 13 | import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; |
| 12 | 14 | import cn.iocoder.yudao.module.mes.enums.pro.MesProTaskStatusEnum; |
| 13 | 15 | import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; |
| 14 | 16 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 17 | +import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; | |
| 15 | 18 | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| 16 | 19 | import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; |
| 17 | 20 | import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteService; |
| ... | ... | @@ -54,6 +57,8 @@ public class MesProTaskServiceImpl implements MesProTaskService { |
| 54 | 57 | @Resource |
| 55 | 58 | private MesMdItemService itemService; |
| 56 | 59 | @Resource |
| 60 | + private MesMdUnitMeasureService unitMeasureService; | |
| 61 | + @Resource | |
| 57 | 62 | private MesProRouteService routeService; |
| 58 | 63 | @Resource |
| 59 | 64 | private MesMdAutoCodeRecordService autoCodeRecordService; |
| ... | ... | @@ -61,17 +66,20 @@ public class MesProTaskServiceImpl implements MesProTaskService { |
| 61 | 66 | @Override |
| 62 | 67 | public Long createTask(MesProTaskSaveReqVO createReqVO) { |
| 63 | 68 | // 1. 校验关联数据存在 |
| 64 | - workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId()); | |
| 69 | + MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId()); | |
| 65 | 70 | workstationService.validateWorkstationExists(createReqVO.getWorkstationId()); |
| 66 | 71 | routeService.validateRouteExists(createReqVO.getRouteId()); |
| 67 | 72 | processService.validateProcessExists(createReqVO.getProcessId()); |
| 68 | 73 | MesMdItemDO item = itemService.validateItemExists(createReqVO.getItemId()); |
| 69 | 74 | |
| 70 | - // 2.1 构建任务 DO | |
| 75 | + // 2.1 构建任务 DO:自动填充客户信息 | |
| 71 | 76 | MesProTaskDO task = BeanUtils.toBean(createReqVO, MesProTaskDO.class) |
| 72 | - .setName(buildTaskName(item.getName(), createReqVO.getQuantity())) | |
| 77 | + .setName(buildTaskName(item, createReqVO.getQuantity())) | |
| 73 | 78 | .setCode(autoCodeRecordService.generateAutoCode(MesMdAutoCodeRuleCodeEnum.PRO_TASK_CODE.getCode())) |
| 74 | 79 | .setStatus(MesProTaskStatusEnum.PREPARE.getStatus()); |
| 80 | + if (task.getClientId() == null && workOrder.getClientId() != null) { | |
| 81 | + task.setClientId(workOrder.getClientId()); | |
| 82 | + } | |
| 75 | 83 | // 2.2 插入 |
| 76 | 84 | taskMapper.insert(task); |
| 77 | 85 | return task.getId(); |
| ... | ... | @@ -104,18 +112,29 @@ public class MesProTaskServiceImpl implements MesProTaskService { |
| 104 | 112 | |
| 105 | 113 | // 2. 更新 |
| 106 | 114 | MesProTaskDO updateObj = BeanUtils.toBean(updateReqVO, MesProTaskDO.class) |
| 107 | - .setName(buildTaskName(item.getName(), quantity)); | |
| 115 | + .setName(buildTaskName(item, quantity)); | |
| 108 | 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 | 133 | @Override |
| 116 | 134 | public void deleteTask(Long id) { |
| 117 | - // 1. 校验存在 | |
| 118 | - validateTaskExists(id); | |
| 135 | + // 1. 校验存在且非终态 | |
| 136 | + validateTaskNotFinished(id); | |
| 137 | + | |
| 119 | 138 | // 2. 删除 |
| 120 | 139 | taskMapper.deleteById(id); |
| 121 | 140 | } | ... | ... |