|
@@ -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+"状态已确定或完成,无法修改!";
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 计划员查询列表
|
|
* 计划员查询列表
|
|
*/
|
|
*/
|