Browse Source

经理和计划员角色对应多个用户时,只新增一条task,待处理用户为多个用户名以逗号间隔

LLL 1 year ago
parent
commit
1f75e4a027

+ 12 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmJCXMSHJHMapper.java

@@ -11,6 +11,18 @@ import java.util.List;
 public interface ItdmJCXMSHJHMapper {
 
 
+    /**
+     * 查询改委托id对应的test_plan的状态(为0或者为空时该计划排期还未确定,说明计划排期未完成)
+     */
+    @Select("select b.status " +
+            "from itdm_weituo_yangpin_extend a " +
+            "left join itdm_test_plan b on a.id = b.test_items_id " +
+            "left join itdm_weituo_yangpin d on a.yangpin_id = d.id " +
+            "left join itdm_device e on b.shebei_id = e.id " +
+            "where a.weituo_id = #{weituoId}" +
+            "and (b.status =0 or b.status is null)")
+    List<Integer> getTestPlanStatus(@Param("weituoId") String weituoId);
+
 
     /**
      * 项目经理查询列表——二级列表——通过登录用户查询

+ 24 - 22
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/impl/ItdmJCXMSHJHServiceImpl.java

@@ -2,7 +2,7 @@ package org.jeecg.modules.itdmGongDan.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.itdmDevice.mapper.ItdmDeviceMapper;
@@ -20,7 +20,6 @@ import org.jeecg.modules.itdmGongDan.mapper.ItdmGongdanMasterMapper;
 import org.jeecg.modules.itdmGongDan.mapper.ItdmJCXMSHJHMapper;
 import org.jeecg.modules.itdmGongDan.mapper.ItdmTestPlanMapper;
 import org.jeecg.modules.itdmGongDan.service.IItdmJCXMSHJHService;
-import org.jeecg.modules.itdmGongDan.vo.ItdmJCXMAndSYJHVO;
 import org.jeecg.modules.itdmGongDan.vo.ItdmJHYQueryListVO;
 import org.jeecg.modules.itdmGongDan.vo.ItdmXMJLQueryListVO;
 import org.jeecg.modules.itdmGongDan.vo.ShijiDate;
@@ -310,24 +309,27 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
             taskService.insertTaskAfterJudge(itdmTask);
 
 
-            //修改计划员计划排期task状态为1进行中
-            Map<String, Object> columnMap = new HashMap<>();
-            columnMap.put("task_role",GlobalVariables.jhy);//"计划员"
-            columnMap.put("weituo_id",dto.getWeituoId());
-            columnMap.put("task_user",realName);
-            List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
-            if(!taskList.isEmpty()) {
-                ItdmTask itdmTask1 = taskList.get(0);
-                itdmTask1.setTaskStatus(1);
-                taskMapper.updateById(itdmTask1);
-            }
-
-            //删除该委托其他计划员计划排期task
-            Map<String, Object> deleteMap = new HashMap<>();
-            deleteMap.put("task_role", GlobalVariables.jhy);//”计划员“
-            columnMap.put("weituo_id", dto.getWeituoId());
-            deleteMap.put("task_status",0);
-            taskService.removeByMap(deleteMap);
+            UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("task_role",GlobalVariables.jhy);//"计划员"
+            updateWrapper.eq("task_content",GlobalVariables.jhpq);//"计划排期"
+            updateWrapper.eq("weituo_id",dto.getWeituoId());
+
+            ItdmTask itdmTask1 = new ItdmTask();
+            itdmTask1.setTaskStatus(1);//进行
+            taskService.update(itdmTask1,updateWrapper);
+
+//            //查该委托id对应的计划排期未确认的集合
+//            List<Integer> testPlanStatusList = itdmJCXMSHJHMapper.getTestPlanStatus(dto.getWeituoId());
+//            if(testPlanStatusList==null || testPlanStatusList.isEmpty()){// 集合为空的话说明所有计划排期已确定,修改计划员计划排期task状态为1进行中
+//                UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>();
+//                updateWrapper.eq("task_role",GlobalVariables.jhy);//"计划员"
+//                updateWrapper.eq("task_content",GlobalVariables.jhpq);//"计划排期"
+//                updateWrapper.eq("weituo_id",dto.getWeituoId());
+//
+//                ItdmTask itdmTask1 = new ItdmTask();
+//                itdmTask1.setTaskStatus(1);//进行
+//                taskService.update(itdmTask1,updateWrapper);
+//            }
 
             //修改该委托的委托进度为"计划排期"
             itdmWeituoInfoService.updateWeituoStepByWeituoId(dto.getWeituoId(),GlobalVariables.jhpq);//计划排期
@@ -432,7 +434,7 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                 String testPlanId = i.getTestPlanId();
                 ShijiDate shijiDate = itdmGongdanMasterMapper.getShijiDateByTestPlanId(testPlanId);
 
-                String jhpqStatus = "0"; //0未完成1完成
+                String jhpqStatus = "0"; //该计划是否完成(0未完成1完成
                 List<ItdmGongdanMaster> shijiEndList = itdmGongdanMasterMapper.getShijiEndDateListByTestPlanId(testPlanId);
                 if(shijiEndList==null || shijiEndList.isEmpty()) jhpqStatus="1"; //已完成
 
@@ -451,7 +453,7 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                 String testPlanId = i.getTestPlanId();
                 ShijiDate shijiDate = itdmGongdanMasterMapper.getShijiDateByTestPlanId(testPlanId);
 
-                String jhpqStatus = "0"; //0未完成1完成
+                String jhpqStatus = "0"; //该计划是否完成(0未完成1完成
                 List<ItdmGongdanMaster> shijiEndList = itdmGongdanMasterMapper.getShijiEndDateListByTestPlanId(testPlanId);
                 if(shijiEndList==null || shijiEndList.isEmpty()) jhpqStatus="1"; //已完成
 

+ 18 - 40
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/weituo/controller/ItdmWeituoInfoController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.weituo.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -154,8 +155,8 @@ public class ItdmWeituoInfoController extends JeecgController<ItdmWeituoInfo, II
      * @param itdmWeituoInfo
      * @return
      */
-    @AutoLog(value = "委托信息-添加")
-    @ApiOperation(value = "委托信息-添加", notes = "委托信息-添加")
+    @AutoLog(value = "委托信息-添加——提交")
+    @ApiOperation(value = "委托信息-添加——提交", notes = "委托信息-添加——提交")
     //@RequiresPermissions("org.jeecg.modules:itdm_weituo_info:add")
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody WeituoInsertCommand itdmWeituoInfo) {
@@ -314,60 +315,37 @@ public class ItdmWeituoInfoController extends JeecgController<ItdmWeituoInfo, II
 
                     //新增所有计划员计划排期的task
                     List<String> userNameList = sysUserMapper.getUserNameByRoleName(GlobalVariables.jhy);//计划员
-                    for (String userName : userNameList){
+                    if(userNameList!=null && !userNameList.isEmpty()){
+                        String userName = String.join(",", userNameList);
+
                         ItdmTask itdmTask = new ItdmTask();
                         itdmTask.setTaskRole(GlobalVariables.jhy);//计划员
                         itdmTask.setTaskStatus(0);//待办
                         itdmTask.setWeituoId(weituoInfo.getId());
                         itdmTask.setTaskContent("计划排期");
                         itdmTask.setTaskUser(userName);
-                        taskService.save(itdmTask);
+                        taskService.insertTaskAfterJudge(itdmTask);
                     }
 
                     LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
                     String realName = loginUser.getRealname(); // 登录人姓名
 
-                    //修改该委托单该经理的task,状态改为1进行中
-                    Map<String, Object> columnMap = new HashMap<>();
-                    columnMap.put("task_role", GlobalVariables.jl);//”经理“
-                    columnMap.put("weituo_id", weituoInfo.getId());
-                    columnMap.put("task_user", realName);
-                    List<ItdmTask> taskList = taskService.listByMap(columnMap);
-
-                    if (taskList!=null && !taskList.isEmpty()) {
-                        ItdmTask itdmTask1 = taskList.get(0);
-                        itdmTask1.setTaskStatus(1);//已完成
-                        taskService.updateById(itdmTask1);
-
-                        //删除该委托单其他经理状态为待办的task
-                        Map<String, Object> deleteMap = new HashMap<>();
-                        deleteMap.put("task_role",GlobalVariables.jl);//”经理“
-                        columnMap.put("weituo_id", weituoInfo.getId());
-                        deleteMap.put("task_status",0);
-                        taskService.removeByMap(deleteMap);
-                    }else {
-                        //删除该委托单所有经理的状态为待办的task
-                        Map<String, Object> deleteMap = new HashMap<>();
-                        deleteMap.put("task_role",GlobalVariables.jl);//”经理“
-                        columnMap.put("weituo_id", weituoInfo.getId());
-                        deleteMap.put("task_status",0);
-                        taskService.removeByMap(deleteMap);
-
-                        //新增一条当前登录用户作为经理职责的状态为已完成任务
-                        ItdmTask itdmTask = new ItdmTask();
-                        itdmTask.setTaskUser(realName);
-                        itdmTask.setTaskRole(GlobalVariables.jl);//经理
-                        itdmTask.setTaskStatus(1);//已完成
-                        itdmTask.setTaskContent(GlobalVariables.wtsh);//委托审核
-                        itdmTask.setWeituoId(weituoInfo.getId());
-                        taskService.save(itdmTask);
-                    }
+                    //修改该委托单经理角色委托审核任务的task,状态改为1进行中
+                    UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>();
+                    updateWrapper.eq("task_role", GlobalVariables.jl);//”经理“
+                    updateWrapper.eq("task_content", GlobalVariables.wtsh);//”委托审核“
+                    updateWrapper.eq("weituo_id", weituoInfo.getId());
+
+                    ItdmTask itdmTask = new ItdmTask();
+                    itdmTask.setTaskStatus(1);//进行
+
+                    taskService.update(itdmTask,updateWrapper);
+
                 }else if (weituoInfo.getShenheStatus().equals("2")) { //审核拒绝
                     //删掉所有该委托id对应的“审核”的任务
                     Map<String, Object> deleteMap = new HashMap<>();
                     deleteMap.put("weituo_id", weituoInfo.getId());
                     deleteMap.put("task_role",GlobalVariables.jl);//”经理“
-                    deleteMap.put("task_status",0);
                     taskService.removeByMap(deleteMap);
 
                 }

+ 9 - 8
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/weituo/service/impl/ItdmWeituoInfoServiceImpl.java

@@ -159,7 +159,9 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
 
         //新增所有经理待审核的task
         List<String> userNameList = sysUserMapper.getUserNameByRoleName(GlobalVariables.jl);//经理
-        for (String userName : userNameList){
+        if(userNameList!=null && !userNameList.isEmpty()){
+            String userName =  String.join(",", userNameList);
+
             ItdmTask itdmTask = new ItdmTask();
             itdmTask.setTaskRole(GlobalVariables.jl);//经理
             itdmTask.setTaskStatus(0);//待办
@@ -217,7 +219,9 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
 
         //新增所有经理待审核的task
         List<String> userNameList = sysUserMapper.getUserNameByRoleName(GlobalVariables.jl);//经理
-        for (String userName : userNameList){
+        if(userNameList!=null && !userNameList.isEmpty()){
+            String userName =  String.join(",", userNameList);
+
             ItdmTask itdmTask = new ItdmTask();
             itdmTask.setTaskRole(GlobalVariables.jl);//经理
             itdmTask.setTaskStatus(0);//待办
@@ -227,8 +231,6 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
             taskMapper.insert(itdmTask);
         }
 
-
-
     }
 
 
@@ -260,9 +262,7 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
         this.yangpinExtendMapper.delete(Wrappers.lambdaQuery(ItdmWeituoYangpinExtend.class).eq(ItdmWeituoYangpinExtend::getWeituoId, id));
 
         //删除对应委托id的task
-        Map<String, Object> map = new HashMap<>();
-        map.put("weituo_id", id);
-        taskMapper.deleteByMap(map);
+        taskMapper.delete(Wrappers.lambdaQuery(ItdmTask.class).eq(ItdmTask::getWeituoId, id));
     }
 
 
@@ -281,7 +281,8 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
         this.yangpinMapper.delete(Wrappers.lambdaQuery(ItdmWeituoYangpin.class).in(ItdmWeituoYangpin::getWeituoId, id));
         this.yangpinExtendMapper.delete(Wrappers.lambdaQuery(ItdmWeituoYangpinExtend.class).in(ItdmWeituoYangpinExtend::getWeituoId, id));
 
-
+        //删所有委托id对应的任务
+        taskMapper.delete(Wrappers.lambdaQuery(ItdmTask.class).in(ItdmTask::getWeituoId, id));
     }