From a4ed0f250009167453ca637ce042ef8e0b69f613 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 24 十月 2026 19:30:00 +0800
Subject: [PATCH] feat(aftersales): 增加售后退货流程管理功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
index d6ebc52..1b7464f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
@@ -18,6 +18,8 @@
 import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum;
 import cn.iocoder.yudao.module.mes.enums.pro.MesProTaskStatusEnum;
 import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService;
+import cn.iocoder.yudao.module.mes.service.cal.team.MesCalTeamService;
+import cn.iocoder.yudao.module.mes.dal.dataobject.cal.team.MesCalTeamDO;
 import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService;
 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
 import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
@@ -108,6 +110,8 @@
     @Resource
     @Lazy
     private MesDvMachineryService machineryService;
+    @Resource
+    private MesCalTeamService teamService;
 
     @Override
     public Long createTask(MesProTaskSaveReqVO createReqVO) {
@@ -116,6 +120,7 @@
         workstationService.validateWorkstationExists(createReqVO.getWorkstationId());
         routeService.validateRouteExists(createReqVO.getRouteId());
         processService.validateProcessExistsAndEnable(createReqVO.getProcessId());
+        fillTeamInfo(createReqVO);
 
         // 2. 鑷姩纭畾 itemId锛氫紭鍏堝墠绔紶鍏� 鈫� 宸ヨ壓璺嚎宸ュ簭鐨勪骇鍑轰骇鍝� 鈫� 宸ュ崟鎴愬搧
         Long itemId = createReqVO.getItemId();
@@ -161,6 +166,7 @@
         if (updateReqVO.getProcessId() != null) {
             processService.validateProcessExistsAndEnable(updateReqVO.getProcessId());
         }
+        fillTeamInfo(updateReqVO);
         MesMdItemDO item;
         if (updateReqVO.getItemId() != null) {
             item = itemService.validateItemExists(updateReqVO.getItemId());
@@ -173,6 +179,19 @@
         MesProTaskDO updateObj = BeanUtils.toBean(updateReqVO, MesProTaskDO.class)
                 .setName(buildTaskName(item, quantity));
         taskMapper.updateById(updateObj);
+    }
+
+    /**
+     * 鏍¢獙鐝粍瀛樺湪骞跺洖濉彮缁勫悕绉�
+     */
+    private void fillTeamInfo(MesProTaskSaveReqVO reqVO) {
+        if (reqVO.getTeamId() == null) {
+            return;
+        }
+        MesCalTeamDO team = teamService.validateTeamExists(reqVO.getTeamId());
+        if (team != null) {
+            reqVO.setTeamName(team.getName());
+        }
     }
 
     /**
@@ -252,6 +271,11 @@
     @Override
     public MesProTaskDO getTask(Long id) {
         return taskMapper.selectById(id);
+    }
+
+    @Override
+    public MesProTaskDO getTaskByCode(String code) {
+        return taskMapper.selectByCode(code);
     }
 
     @Override
@@ -446,7 +470,8 @@
         // 1. 鏍¢獙浠诲姟瀛樺湪
         MesProTaskDO task = validateTaskExists(pauseReqVO.getId());
         // 2. 鏍¢獙鐘舵�佹槸鍚﹀厑璁稿仠宸ワ紙濡傚繀椤绘槸 鐢熶骇涓� 鎴� 閮ㄥ垎瀹屾垚锛�
-        if (!ObjectUtils.equalsAny(task.getStatus(), MesProTaskStatusEnum.PREPARE.getStatus())) {
+        if (!ObjectUtils.equalsAny(task.getStatus(), MesProTaskStatusEnum.PRODUCING.getStatus(),
+                MesProTaskStatusEnum.PARTIAL_FINISHED.getStatus())) {
             throw exception(PRO_TASK_CANNOT_PAUSE);
         }
         
@@ -476,7 +501,10 @@
         }
 
         // 3. 鎭㈠浠诲姟鐘舵��
-        Integer resumeStatus = MesProTaskStatusEnum.PREPARE.getStatus();
+        Integer resumeStatus = task.getProducedQuantity() != null
+                && task.getProducedQuantity().signum() > 0
+                ? MesProTaskStatusEnum.PARTIAL_FINISHED.getStatus()
+                : MesProTaskStatusEnum.PRODUCING.getStatus();
         taskMapper.updateById(new MesProTaskDO().setId(task.getId()).setStatus(resumeStatus));
 
         // 4. 鏇存柊鏈�鏂扮殑涓�鏉″仠宸ヨ褰�

--
Gitblit v1.9.3