liuwj 2 years ago
parent
commit
60250540ef

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.itdmGongDan.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.modules.itdmDevice.mapper.ItdmDeviceMapper;
 
@@ -136,17 +137,26 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                     detail.setChuanganqi(vo.getChuanganqi());
                     itdmGongdanDetailMapper.insert(detail);//新增对应日期的工单detail
                 }
-                //新增一条操作员工单制定的task
-                ItdmTask itdmTask = new ItdmTask();
-                itdmTask.setTaskRole("操作员");
-                itdmTask.setTaskUser(vo.getWorker());//操作员
-                itdmTask.setTaskStatus(0);//待办
-                itdmTask.setWeituoId(vo.getWeituoId());
-                itdmTask.setTaskContent("工单制定");
-                taskMapper.insert(itdmTask);
+
+                //先判断有无该操作员的试验实施的task
+                ItdmTask i = new ItdmTask();
+                i.setTaskRole("试验实施");
+                i.setTaskUser(vo.getWorker());
+                QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(i);
+                List<ItdmTask> tList= taskMapper.selectList(queryWrapper);
+                if(tList == null || tList.isEmpty() || tList.get(0)==null){ //原来没有,新增一条操作员试验实施的task
+                    ItdmTask itdmTask = new ItdmTask();
+                    itdmTask.setTaskRole("操作员");
+                    itdmTask.setTaskUser(vo.getWorker());//操作员
+                    itdmTask.setTaskStatus(0);//待办
+                    itdmTask.setWeituoId(vo.getWeituoId());
+                    itdmTask.setTaskContent("试验实施");
+                    taskMapper.insert(itdmTask);
+                }
                 //修改项目经理拆解工单task状态为1进行中——需要先判断
                 Map<String, Object> testPlanMap = new HashMap<>();
                 testPlanMap.put("weituo_id",vo.getWeituoId());
+                testPlanMap.put("pm",vo.getPm());
                 List<ItdmTestPlan> testPlanList = itdmTestPlanMapper.selectByMap(testPlanMap);
                 int num =0;
                 for(ItdmTestPlan p:testPlanList){
@@ -156,8 +166,9 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                     Map<String, Object> columnMap = new HashMap<>();
                     columnMap.put("task_role","项目经理");
                     columnMap.put("weituo_id",vo.getWeituoId());
+                    columnMap.put("task_user",vo.getPm());
                     List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
-                    if(taskList!=null) {
+                    if(taskList != null && !taskList.isEmpty() && taskList.get(0)!=null) {
                         ItdmTask itdmTask1 = taskList.get(0);
                         itdmTask1.setTaskStatus(1);
                         taskMapper.updateById(itdmTask1);
@@ -165,6 +176,11 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                 }
             }else {//非空,则修改——先判断能否修改
                 if(vo.getShijiStartDate()==null){//此时可以修改
+
+                    ItdmGongdanMaster master = itdmGongdanMasterMapper.selectById(vo.getId());
+                    String workerBefore = master.getWorker(); //原来的操作员
+                    String workerNow = vo.getWorker(); //现在的操作员
+
                     //先修改工单master
                     ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
                     itdmGongdanMaster.setId(vo.getId());
@@ -196,19 +212,62 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                         itdmGongdanDetailMapper.insert(detail);//新增对应日期的工单detail
                     }
 
-                    //修改项目经理拆解工单task的操作员
-                    Map<String, Object> columnMap = new HashMap<>();
-                    columnMap.put("task_role","项目经理");
-                    columnMap.put("weituo_id",vo.getWeituoId());
-                    List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
-                    if(taskList!=null) {
-                        ItdmTask itdmTask1 = taskList.get(0);
-                        itdmTask1.setTaskUser(vo.getWorker());
-                        taskMapper.updateById(itdmTask1);
+                    if(!workerBefore.equals(workerNow)){ //操作员改了
+                        //查该委托单id、原操作员对应的工单master列表,若为空删除委托地、原操作员对应的task
+                        int m = 0;
+                        QueryWrapper<ItdmTestPlan> planWrapper1 = new QueryWrapper<>();
+                        planWrapper1.eq("weituo_id",vo.getWeituoId());
+                        planWrapper1.eq("pm",vo.getPm());
+                        List<ItdmTestPlan> testPlanList = itdmTestPlanMapper.selectList(planWrapper1);
+                        if(testPlanList == null || testPlanList.isEmpty() || testPlanList.get(0)==null){
+                            for (ItdmTestPlan p:testPlanList){
+                                QueryWrapper<ItdmGongdanMaster> planWrapper2 = new QueryWrapper<>();
+                                planWrapper2.eq("jihua_shiyan_id",p.getId());
+                                planWrapper2.eq("worker",workerBefore);
+                                List<ItdmGongdanMaster> masterList = itdmGongdanMasterMapper.selectList(planWrapper2);
+                                if(masterList != null && !masterList.isEmpty() && masterList.get(0)!=null) m++;
+                            }
+
+                            if(m==0){
+                                QueryWrapper<ItdmTask> taskWrapper = new QueryWrapper<>();
+                                taskWrapper.eq("weituo_id",vo.getWeituoId());
+                                taskWrapper.eq("taskRole","操作员");
+                                taskWrapper.eq("task_user",workerBefore);
+                                taskMapper.delete(taskWrapper);
+                            }
+                        }
+                        //查该委托单id、新操作员对应的task列表,若为空则新增新操作员的task
+                        ItdmTask iTask = new ItdmTask();
+                        iTask.setTaskRole("操作员");
+                        iTask.setTaskUser(workerNow);
+                        iTask.setWeituoId(vo.getWeituoId());
+                        QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(iTask);
+                        List<ItdmTask> tList= taskMapper.selectList(queryWrapper);
+                        if(tList == null || tList.isEmpty() || tList.get(0)==null){ //没有的话新增该委托id、新操作员的task
+                            ItdmTask nItdmTask = new ItdmTask();
+                            nItdmTask.setTaskUser(workerNow);
+                            nItdmTask.setWeituoId(vo.getWeituoId());
+                            nItdmTask.setTaskRole("操作员");
+                            nItdmTask.setTaskContent("试验实施");
+                            nItdmTask.setTaskStatus(0);
+                            taskMapper.insert(nItdmTask);
+                        }
                     }
+
+//                    //修改项目经理拆解工单task的操作员
+//                    Map<String, Object> columnMap = new HashMap<>();
+//                    columnMap.put("task_role","项目经理");
+//                    columnMap.put("weituo_id",vo.getWeituoId());
+//                    List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
+//                    if(taskList != null && !taskList.isEmpty() && taskList.get(0)!=null){
+//                        ItdmTask itdmTask1 = taskList.get(0);
+//                        itdmTask1.setTaskUser(vo.getWorker());
+//                        taskMapper.updateById(itdmTask1);
+//                    }
                     //修改项目经理拆解工单task状态为1进行中——需要先判断
                     Map<String, Object> testPlanMap = new HashMap<>();
                     testPlanMap.put("weituo_id",vo.getWeituoId());
+                    testPlanMap.put("pm",vo.getPm());
                     List<ItdmTestPlan> testPlanList = itdmTestPlanMapper.selectByMap(testPlanMap);
                     int num =0;
                     for(ItdmTestPlan p:testPlanList){
@@ -218,8 +277,9 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                         Map<String, Object> map = new HashMap<>();
                         map.put("task_role","项目经理");
                         map.put("weituo_id",vo.getWeituoId());
+                        map.put("task_user",vo.getPm());
                         List<ItdmTask> tList = taskMapper.selectByMap(map);
-                        if(tList!=null) {
+                        if(tList != null && !tList.isEmpty() && tList.get(0)!=null){
                             ItdmTask itdmTask1 = tList.get(0);
                             itdmTask1.setTaskStatus(1);
                             taskMapper.updateById(itdmTask1);
@@ -281,14 +341,22 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                     detail.setChuanganqi(vo.getChuanganqi());
                     itdmGongdanDetailMapper.insert(detail);
                 }
-                //新增一条项目经理计划拆单的task
-                ItdmTask itdmTask = new ItdmTask();
-                itdmTask.setTaskRole("项目经理");
-                itdmTask.setTaskUser(vo.getPm());
-                itdmTask.setTaskStatus(0);//待办
-                itdmTask.setWeituoId(vo.getWeituoId());
-                itdmTask.setTaskContent("计划拆单");
-                taskMapper.insert(itdmTask);
+                //先判断有无该pm的项目经理拆解工单的task
+                ItdmTask i = new ItdmTask();
+                i.setTaskRole("项目经理");
+                i.setTaskUser(vo.getPm());
+                QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(i);
+                List<ItdmTask> tList= taskMapper.selectList(queryWrapper);
+                if(tList == null || tList.isEmpty() || tList.get(0)==null){ //原来没有,新增一条
+                    ItdmTask itdmTask = new ItdmTask();
+                    itdmTask.setTaskRole("项目经理");
+                    itdmTask.setTaskUser(vo.getPm());
+                    itdmTask.setTaskStatus(0);//待办
+                    itdmTask.setWeituoId(vo.getWeituoId());
+                    itdmTask.setTaskContent("拆解工单");
+                    taskMapper.insert(itdmTask);
+                }
+
                 //修改计划员计划排期task状态为1进行中
                 Map<String, Object> columnMap = new HashMap<>();
                 columnMap.put("task_role","计划员");
@@ -300,18 +368,49 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                     taskMapper.updateById(itdmTask1);
                 }
             }else if(vo.getStatus() == 0){//状态为“未确定”,可以修改试验计划
+
+                QueryWrapper<ItdmTestPlan> planWrapper = new QueryWrapper<>();
+                planWrapper.eq("id",vo.getTestPlanId());
+                ItdmTestPlan plan = itdmTestPlanMapper.selectOne(planWrapper);//原计划试验对象
+
                 itdmTestPlan.setId(vo.getTestPlanId());
-                itdmTestPlanMapper.updateById(itdmTestPlan);
-                //修改计划拆单的项目经理
-                Map<String, Object> columnMap = new HashMap<>();
-                columnMap.put("task_role","项目经理");
-                columnMap.put("weituo_id",vo.getWeituoId());
-                List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
-                if(taskList!=null) {
-                    ItdmTask itdmTask1 = taskList.get(0);
-                    itdmTask1.setTaskUser(vo.getPm());
-                    taskMapper.updateById(itdmTask1);
+                itdmTestPlanMapper.updateById(itdmTestPlan);//修改试验计划
+
+                //先判断有没有改项目经理
+                String pmplan = plan.getPm();
+                String pmVO = vo.getPm();
+                if(!plan.getPm().equals(vo.getPm())){ //改了:
+                    QueryWrapper<ItdmTestPlan> planWrapper1 = new QueryWrapper<>();
+                    planWrapper1.eq("weituo_id",vo.getWeituoId());
+                    planWrapper1.eq("pm",plan.getPm());
+                    List<ItdmTestPlan> testPlanList = itdmTestPlanMapper.selectList(planWrapper1);
+                    if(testPlanList == null || testPlanList.isEmpty() || testPlanList.get(0)==null){
+                        //该委托id、原pm对应试验计划列表若为空删除原pm、项目经理、委托id对应的task
+                        QueryWrapper<ItdmTask> taskWrapper = new QueryWrapper<>();
+                        taskWrapper.eq("weituo_id",vo.getWeituoId());
+                        taskWrapper.eq("taskRole","项目经理");
+                        taskWrapper.eq("task_user",plan.getPm());
+                        taskMapper.delete(taskWrapper);
+                    }
+
+                    //查原来该委托id,项目经理,新pm的task
+                    ItdmTask iTask = new ItdmTask();
+                    iTask.setTaskRole("项目经理");
+                    iTask.setTaskUser(vo.getPm());
+                    iTask.setWeituoId(vo.getWeituoId());
+                    QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(iTask);
+                    List<ItdmTask> tList= taskMapper.selectList(queryWrapper);
+                    if(tList == null || tList.isEmpty() || tList.get(0)==null){ //没有的话新增该委托id的项目经理task
+                        ItdmTask nItdmTask = new ItdmTask();
+                        nItdmTask.setTaskUser(vo.getPm());
+                        nItdmTask.setWeituoId(vo.getWeituoId());
+                        nItdmTask.setTaskRole("项目经理");
+                        nItdmTask.setTaskContent("拆解工单");
+                        nItdmTask.setTaskStatus(0);
+                        taskMapper.insert(nItdmTask);
+                    }
                 }
+
                 //查原来的工单master
                 Map<String, Object> masterMap = new HashMap<>();
                 masterMap.put("jihua_shiyan_id",itdmTestPlan.getId());