Pārlūkot izejas kodu

根据新甘特图修改计划排期

LLL 1 gadu atpakaļ
vecāks
revīzija
738c38254d

+ 36 - 32
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/controller/ItdmJCXMSHJHController.java

@@ -111,32 +111,32 @@ public class ItdmJCXMSHJHController {
     @GetMapping(value = "/JHYList")
     @GetMapping(value = "/JHYList")
     public Result<List<ItdmJHYQueryListVO>> JHYList3(@RequestParam(required = false,name = "weituoNo") String weituoNo) {
     public Result<List<ItdmJHYQueryListVO>> JHYList3(@RequestParam(required = false,name = "weituoNo") String weituoNo) {
         List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll3(weituoNo);
         List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll3(weituoNo);
-        List<ItdmJHYQueryListVO> totalList = new ArrayList<>();
-        int i =1;
-        for (ItdmJHYQueryListVO vo: list){
-            vo.setIzShiji("计划"); //非实绩
-            totalList.add(vo);
-
-            Date shijiStartDate = vo.getShijiStartDate();
-            Date shijiEndDate = vo.getShijiEndDate();
-
-            int lasTime = -1;
-            if(shijiStartDate!=null && shijiEndDate!=null){
-                int days = (int) ((shijiStartDate.getTime() - shijiEndDate.getTime()) / (1000*3600*24));
-                lasTime = days+1;
-            }else if(shijiStartDate!=null && shijiEndDate==null) {
-                //如果有开始时间,没有结束时间,不设置持续时间
-            }else if(shijiStartDate==null){
-                //如果没有开始时间和结束时间,初始化开始时间为今天,不设置持续时间
-                shijiStartDate = new Date();
-            }
-
-            String izShiji ="实绩";  //实绩
-            ItdmJHYQueryListVO shijiVO = ItdmJHYQueryConvert.INSTANCE.convert(vo,shijiStartDate,shijiEndDate,i++,izShiji);
-            shijiVO.setLastTime(lasTime);
-            totalList.add(shijiVO);
-        }
-        return Result.OK(totalList);
+//        List<ItdmJHYQueryListVO> totalList = new ArrayList<>();
+//        int i =1;
+//        for (ItdmJHYQueryListVO vo: list){
+//            vo.setIzShiji("计划"); //非实绩
+//            totalList.add(vo);
+//
+//            Date shijiStartDate = vo.getShijiStartDate();
+//            Date shijiEndDate = vo.getShijiEndDate();
+//
+//            int lasTime = -1;
+//            if(shijiStartDate!=null && shijiEndDate!=null){
+//                int days = (int) ((shijiEndDate.getTime() - shijiStartDate.getTime()) / (1000*3600*24));
+//                lasTime = days+1;
+//            }else if(shijiStartDate!=null && shijiEndDate==null) {
+//                //如果有开始时间,没有结束时间,不必修改持续时间(为-1即可)
+//            }else if(shijiStartDate==null){
+//                //如果没有开始时间和结束时间,初始化开始时间为今天,不必修改持续时间(为-1即可)
+//                shijiStartDate = new Date();
+//            }
+//
+//            String izShiji ="实绩";  //实绩
+//            ItdmJHYQueryListVO shijiVO = ItdmJHYQueryConvert.INSTANCE.convert(vo,shijiStartDate,shijiEndDate,i++,izShiji);
+//            shijiVO.setLastTime(lasTime);
+//            totalList.add(shijiVO);
+//        }
+        return Result.OK(list);
     }
     }
 
 
     /**
     /**
@@ -145,14 +145,18 @@ public class ItdmJCXMSHJHController {
     @AutoLog(value = "计划员新增或修改试验计划")
     @AutoLog(value = "计划员新增或修改试验计划")
     @ApiOperation(value="计划员新增或修改试验计划", notes="计划员新增或修改试验计划——直接left join")
     @ApiOperation(value="计划员新增或修改试验计划", notes="计划员新增或修改试验计划——直接left join")
     @PostMapping(value = "/JHYAddOrUpdate")
     @PostMapping(value = "/JHYAddOrUpdate")
-    public Result<String> JHYaddAndUpdate(@RequestBody List<ItdmJHYAddOrUpdateDTO> list) {
-        List<ItdmJHYAddOrUpdateDTO> list1 = new ArrayList<>();
-        for(ItdmJHYAddOrUpdateDTO dto: list){
-            if(dto.getIzShiji().equals("计划")) list1.add(dto);
-        }
-        return Result.OK(iItdmJCXMSHJHService.JHYAddAndUpdate(list1));
+    public Result<String> JHYaddAndUpdate(@RequestBody ItdmJHYAddOrUpdateDTO dto) {
+        return Result.OK(iItdmJCXMSHJHService.JHYAddAndUpdate(dto));
     }
     }
 
 
+//    public Result<String> JHYaddAndUpdate(@RequestBody List<ItdmJHYAddOrUpdateDTO> list) {
+//        List<ItdmJHYAddOrUpdateDTO> list1 = new ArrayList<>();
+//        for(ItdmJHYAddOrUpdateDTO dto: list){
+//            if(dto.getIzShiji().equals("计划")) list1.add(dto);
+//        }
+//        return Result.OK(iItdmJCXMSHJHService.JHYAddAndUpdate(list1));
+//    }
+
     /**
     /**
      * 测试
      * 测试
      * */
      * */

+ 0 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/convert/ItdmJHYQueryConvert.java

@@ -1,7 +1,6 @@
 package org.jeecg.modules.itdmGongDan.convert;
 package org.jeecg.modules.itdmGongDan.convert;
 
 
 import org.jeecg.modules.itdmGongDan.vo.ItdmJHYQueryListVO;
 import org.jeecg.modules.itdmGongDan.vo.ItdmJHYQueryListVO;
-import org.jeecg.modules.itdmGongDan.vo.ItdmJHYQueryShijiListVO;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Mapping;
 import org.mapstruct.ReportingPolicy;
 import org.mapstruct.ReportingPolicy;

+ 1 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/IItdmJCXMSHJHService.java

@@ -49,6 +49,7 @@ public interface IItdmJCXMSHJHService {
      */
      */
     public String JHYAddAndUpdate(@RequestBody List<ItdmJHYAddOrUpdateDTO> list);
     public String JHYAddAndUpdate(@RequestBody List<ItdmJHYAddOrUpdateDTO> list);
 
 
+    public String JHYAddAndUpdate(@RequestBody ItdmJHYAddOrUpdateDTO dto);
     /**
     /**
      * 计划员查询列表
      * 计划员查询列表
      */
      */

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

@@ -117,7 +117,7 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         }
         }
         dto.setChuanganqi(chuanganqi);
         dto.setChuanganqi(chuanganqi);
 
 
-        if(dto.getParent()!=null){ //二级,先根据id查询工单master,判断有无该对象存在,无的话为新增,有的话修改
+        if(dto.getParent()!=null){ //二级,先根据id查询工单master,判断有无该对象存在,无的话为新增,有的话修改(项目经理不可修改一级)
             ItdmGongdanMaster gongdanMaster = itdmGongdanMasterMapper.selectById(dto.getId());
             ItdmGongdanMaster gongdanMaster = itdmGongdanMasterMapper.selectById(dto.getId());
 
 
             if(gongdanMaster==null){//是新增的数据
             if(gongdanMaster==null){//是新增的数据
@@ -378,6 +378,136 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         else return msg+"状态已确定或完成,无法修改!";
         else return msg+"状态已确定或完成,无法修改!";
     }
     }
 
 
+    public String JHYAddAndUpdate(@RequestBody ItdmJHYAddOrUpdateDTO dto){
+        String msg = "提交成功!";
+        ItdmTestPlan itdmTestPlan = ItdmJHYAddOrUpdateDTO.toItdmTestPlan(dto);
+        if(dto.getTestPlanId()==null){ //新增试验计划
+            itdmTestPlan.setStatus(0);//试验计划初始状态为未确认0
+            itdmTestPlanMapper.insert(itdmTestPlan);
+            dto.setTestPlanId(itdmTestPlan.getId());
+            //同时新增一条一样的工单master
+            ItdmGongdanMaster master = ItdmJHYAddOrUpdateDTO.toItdmGongdanMaster(dto);
+            itdmGongdanMasterMapper.insert(master);
+            System.out.println("======================================计划员新增试验计划新增master" + master.getId());
+            //再拆成工单detail,再插入新的工单detail
+            Date startDate = dto.getJihuaStartDate();
+            int lastDay = dto.getLastTime();
+            for (int i=1;i<=lastDay;i++){
+                Date workDate = new Date(startDate.getTime() + (i-1)*1000*3600*24);
+                ItdmGongdanDetail detail = new ItdmGongdanDetail();
+                detail.setWoId(master.getId());
+                detail.setWorkDate(workDate);
+                detail.setStartTime("00:00");
+                detail.setEndTime("23:59");
+                detail.setChuanganqi(dto.getChuanganqi());
+                detail.setJihuaDeviceId(master.getShebeiId());
+                itdmGongdanDetailMapper.insert(detail);
+            }
+            //新增该pm的项目经理拆解工单的task
+            ItdmTask itdmTask = new ItdmTask();
+            itdmTask.setTaskRole("项目经理");
+            itdmTask.setTaskUser(dto.getPm());
+            itdmTask.setWeituoId(dto.getWeituoId());
+            itdmTask.setTaskContent("拆解工单");
+            itdmTask.setTaskStatus(0);//待办
+            taskService.insertTaskAfterJudge(itdmTask);
+
+            //修改计划员计划排期task状态为1进行中
+            Map<String, Object> columnMap = new HashMap<>();
+            columnMap.put("task_role","计划员");
+            columnMap.put("weituo_id",dto.getWeituoId());
+            List<ItdmTask> taskList = taskMapper.selectByMap(columnMap);
+            if(!taskList.isEmpty()) {
+                ItdmTask itdmTask1 = taskList.get(0);
+                itdmTask1.setTaskStatus(1);
+                taskMapper.updateById(itdmTask1);
+            }
+        }else if(dto.getStatus() == 0){//状态为“未确定”,可以修改试验计划
+
+            QueryWrapper<ItdmTestPlan> planWrapper = new QueryWrapper<>();
+            planWrapper.eq("id",dto.getTestPlanId());
+            ItdmTestPlan plan = itdmTestPlanMapper.selectOne(planWrapper);//原计划试验对象
+
+            itdmTestPlan.setId(dto.getTestPlanId());
+            itdmTestPlanMapper.updateById(itdmTestPlan);//修改试验计划
+
+            //先判断有没有改项目经理
+            String pmplan = plan.getPm(); //原来的
+            String pmVO = dto.getPm(); // 此次的
+            if(pmplan==null){ //原来的为空,此次不为空
+                //查原来该委托id,项目经理,新pm的task
+                ItdmTask nItdmTask = new ItdmTask();
+                nItdmTask.setTaskUser(pmVO);
+                nItdmTask.setWeituoId(dto.getWeituoId());
+                nItdmTask.setTaskRole("项目经理");
+                nItdmTask.setTaskContent("拆解工单");
+                nItdmTask.setTaskStatus(0);
+                taskService.insertTaskAfterJudge(nItdmTask);
+            }else if(pmplan!=null && !pmplan.equals(pmVO)){  //改了:
+                QueryWrapper<ItdmTestPlan> planWrapper1 = new QueryWrapper<>();
+                planWrapper1.eq("weituo_id",dto.getWeituoId());
+                planWrapper1.eq("pm",pmplan); //原来的
+                List<ItdmTestPlan> testPlanList = itdmTestPlanMapper.selectList(planWrapper1);
+                if(testPlanList.isEmpty()){
+                    //该委托id、原pm对应试验计划列表若为空删除原pm、项目经理、委托id对应的task
+                    QueryWrapper<ItdmTask> taskWrapper = new QueryWrapper<>();
+                    taskWrapper.eq("weituo_id",dto.getWeituoId());
+                    taskWrapper.eq("task_role","项目经理");
+                    taskWrapper.eq("task_user",plan.getPm());
+                    taskMapper.delete(taskWrapper);
+                }
+
+                //查原来该委托id,项目经理,新pm的task
+                ItdmTask nItdmTask = new ItdmTask();
+                nItdmTask.setTaskUser(dto.getPm());
+                nItdmTask.setWeituoId(dto.getWeituoId());
+                nItdmTask.setTaskRole("项目经理");
+                nItdmTask.setTaskContent("拆解工单");
+                nItdmTask.setTaskStatus(0);
+                taskService.insertTaskAfterJudge(nItdmTask);
+            }
+
+            //查原来的工单master
+            Map<String, Object> masterMap = new HashMap<>();
+            masterMap.put("jihua_shiyan_id",itdmTestPlan.getId());
+            List<ItdmGongdanMaster> masterList = itdmGongdanMasterMapper.selectByMap(masterMap);
+            //删原来的工单master
+            itdmGongdanMasterMapper.deleteByMap(masterMap);
+            //删掉原来的工单detail
+            if(masterList != null && !masterList.isEmpty() && masterList.get(0)!=null){
+                for (ItdmGongdanMaster m: masterList){
+                    Map<String, Object> detailMap = new HashMap<>();
+                    detailMap.put("wo_id",m.getId());
+                    itdmGongdanDetailMapper.deleteByMap(detailMap);
+                }
+            }
+
+            //新增一条一样的工单master
+            ItdmGongdanMaster master = ItdmJHYAddOrUpdateDTO.toItdmGongdanMaster(dto);
+            itdmGongdanMasterMapper.insert(master);
+            System.out.println("======================================计划员修改试验计划新增master" + master.getId());
+            //再拆成工单detail,再插入新的工单detail
+            Date startDate = dto.getJihuaStartDate();
+            int lastDay = dto.getLastTime();
+            for (int i=1;i<=lastDay;i++){
+                Date workDate = new Date(startDate.getTime() + (i-1)*1000*3600*24);
+                ItdmGongdanDetail detail = new ItdmGongdanDetail();
+                detail.setWoId(master.getId());
+                detail.setWorkDate(workDate);
+                detail.setStartTime("00:00");
+                detail.setEndTime("23:59");
+                detail.setChuanganqi(dto.getChuanganqi());
+                detail.setJihuaDeviceId(master.getShebeiId());
+                itdmGongdanDetailMapper.insert(detail);
+            }
+        }else if(dto.getStatus() != 0){
+            if(msg.equals("提交成功!")) msg="检测项目"+ dto.getTestItems();
+            else msg=msg+ "和"+ dto.getTestItems();
+        }
+        if(msg.equals("提交成功!")) return msg;
+        else return msg+"状态已确定或完成,无法修改!";
+    }
+
     /**
     /**
      * 计划员查询列表
      * 计划员查询列表
      */
      */