|
@@ -1,8 +1,16 @@
|
|
package org.jeecg.modules.itdmTestPlan.service.impl;
|
|
package org.jeecg.modules.itdmTestPlan.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import org.jeecg.modules.itdmDevice.mapper.ItdmDeviceMapper;
|
|
import org.jeecg.modules.itdmDevice.mapper.ItdmDeviceMapper;
|
|
|
|
+import org.jeecg.modules.itdmGongdanDetail.entity.ItdmGongdanDetail;
|
|
|
|
+import org.jeecg.modules.itdmGongdanDetail.mapper.ItdmGongdanDetailMapper;
|
|
|
|
+import org.jeecg.modules.itdmGongdanMaster.entity.ItdmGongdanMaster;
|
|
|
|
+import org.jeecg.modules.itdmGongdanMaster.mapper.ItdmGongdanMasterMapper;
|
|
|
|
+import org.jeecg.modules.itdmTestPlan.entity.ItdmTestPlan;
|
|
import org.jeecg.modules.itdmTestPlan.mapper.ItdmJCXMSHJHMapper;
|
|
import org.jeecg.modules.itdmTestPlan.mapper.ItdmJCXMSHJHMapper;
|
|
|
|
+import org.jeecg.modules.itdmTestPlan.mapper.ItdmTestPlanMapper;
|
|
import org.jeecg.modules.itdmTestPlan.service.IItdmJCXMSHJHService;
|
|
import org.jeecg.modules.itdmTestPlan.service.IItdmJCXMSHJHService;
|
|
import org.jeecg.modules.itdmTestPlan.vo.ItdmJCXMAndSYJHVO;
|
|
import org.jeecg.modules.itdmTestPlan.vo.ItdmJCXMAndSYJHVO;
|
|
import org.jeecg.modules.itdmTestPlan.vo.ItdmJHYQueryListVO;
|
|
import org.jeecg.modules.itdmTestPlan.vo.ItdmJHYQueryListVO;
|
|
@@ -11,10 +19,17 @@ import org.jeecg.modules.weituo.mapper.ItdmWeituoInfoMapper;
|
|
import org.jeecg.modules.weituo.mapper.ItdmWeituoYangpinMapper;
|
|
import org.jeecg.modules.weituo.mapper.ItdmWeituoYangpinMapper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 计划排期——试验计划(计划员);工单制定(项目经理)
|
|
|
|
+ */
|
|
@Service
|
|
@Service
|
|
public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
|
|
public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
|
|
|
|
|
|
@@ -30,6 +45,114 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
|
|
@Autowired
|
|
@Autowired
|
|
@SuppressWarnings("all")
|
|
@SuppressWarnings("all")
|
|
private ItdmWeituoYangpinMapper itdmWeituoYangpinMapper;
|
|
private ItdmWeituoYangpinMapper itdmWeituoYangpinMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ @SuppressWarnings("all")
|
|
|
|
+ private ItdmTestPlanMapper itdmTestPlanMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ @SuppressWarnings("all")
|
|
|
|
+ private ItdmGongdanMasterMapper itdmGongdanMasterMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ @SuppressWarnings("all")
|
|
|
|
+ private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 项目经理新增或修改试验计划或工单master
|
|
|
|
+ */
|
|
|
|
+ public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo){
|
|
|
|
+ String msg = "操作成功!";
|
|
|
|
+
|
|
|
|
+ String[] arr = vo.getChuanganqiArray();
|
|
|
|
+ String chuanganqi = "";
|
|
|
|
+ for (int i = 0; i < arr.length; i++) {
|
|
|
|
+ if(i==0) chuanganqi = arr[i];
|
|
|
|
+ else chuanganqi = chuanganqi + ","+ arr[i];
|
|
|
|
+ }
|
|
|
|
+ vo.setChuanganqi(chuanganqi);
|
|
|
|
+
|
|
|
|
+ if(vo.getParent()==null){//一级,不能新增或删除,只能修改——需判断能否修改
|
|
|
|
+ int num = 0;
|
|
|
|
+ List<ItdmGongdanMaster> list = itdmGongdanMasterMapper.selectList(Wrappers.lambdaQuery(ItdmGongdanMaster.class)
|
|
|
|
+ .eq(ItdmGongdanMaster::getJihuaShiyanId,vo.getTestPlanId()));
|
|
|
|
+ if(list != null && !list.isEmpty() && list.get(0)!=null){
|
|
|
|
+ for (ItdmGongdanMaster m: list){
|
|
|
|
+ if(m.getShijiStartDate()!=null) num++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(num==0){//工单master均没有实绩开始时间,可以修改
|
|
|
|
+ ItdmTestPlan itdmTestPlan = ItdmXMJLQueryListVO.toItdmTestPlan(vo);
|
|
|
|
+ itdmTestPlanMapper.updateById(itdmTestPlan);
|
|
|
|
+ }else msg = "不可修改!";
|
|
|
|
+ }else { //二级,先根据id查询工单master,判断有无该对象存在,无的话为新增,有的话修改
|
|
|
|
+ ItdmGongdanMaster gongdanMaster = itdmGongdanMasterMapper.selectById(vo.getId());
|
|
|
|
+ if(gongdanMaster==null){//是新增的数据
|
|
|
|
+ ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
|
|
|
|
+ itdmGongdanMasterMapper.insert(itdmGongdanMaster);//新增一条工单master
|
|
|
|
+
|
|
|
|
+ Date startDate = vo.getJihuaStartDate();
|
|
|
|
+ int lastDay = vo.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(vo.getId());
|
|
|
|
+ detail.setWorkDate(workDate);
|
|
|
|
+ detail.setStartTime("00:00");
|
|
|
|
+ detail.setEndTime("23:59");
|
|
|
|
+ detail.setChuanganqi(vo.getChuanganqi());
|
|
|
|
+ itdmGongdanDetailMapper.insert(detail);//新增对应日期的工单detail
|
|
|
|
+ }
|
|
|
|
+ }else {//非空,则修改——先判断能否修改
|
|
|
|
+ if(vo.getShijiStartDate()==null){//此时可以修改
|
|
|
|
+ //先修改工单master
|
|
|
|
+ ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
|
|
|
|
+ itdmGongdanMasterMapper.updateById(itdmGongdanMaster);
|
|
|
|
+
|
|
|
|
+ //然后删原来的工单detail
|
|
|
|
+ ItdmGongdanDetail itdmGongdanDetail = new ItdmGongdanDetail();
|
|
|
|
+ itdmGongdanDetail.setWoId(vo.getId());
|
|
|
|
+ QueryWrapper<ItdmGongdanDetail> wrapper = new QueryWrapper<>(itdmGongdanDetail);
|
|
|
|
+ itdmGongdanDetailMapper.delete(wrapper);
|
|
|
|
+
|
|
|
|
+ //再拆成工单detail,再插入新的工单detail
|
|
|
|
+ Date startDate = vo.getJihuaStartDate();
|
|
|
|
+ int lastDay = vo.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(vo.getId());
|
|
|
|
+ detail.setWorkDate(workDate);
|
|
|
|
+ detail.setStartTime("00:00");
|
|
|
|
+ detail.setEndTime("23:59");
|
|
|
|
+ detail.setChuanganqi(vo.getChuanganqi());
|
|
|
|
+ itdmGongdanDetailMapper.insert(detail);//新增对应日期的工单detail
|
|
|
|
+ }
|
|
|
|
+ }else msg="不可修改!";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 项目经理查询列表——一级列表——通过登录用户查询
|
|
|
|
+ */
|
|
|
|
+ public List<ItdmXMJLQueryListVO> getXMJLFirstListByUserName(String weituoNo,String realName){
|
|
|
|
+ String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
|
|
+ List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLFirstListByUserName(weituoId,realName);
|
|
|
|
+ List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
|
|
+ ItdmXMJLQueryListVO.toItdmXMJLQueryListVO1(i,weituoNo)).collect(Collectors.toList());
|
|
|
|
+ return list2;
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 项目经理查询列表——二级列表——通过登录用户查询
|
|
|
|
+ */
|
|
|
|
+ public List<ItdmXMJLQueryListVO> getXMJLSecondListByUserName(String weituoNo,String realName){
|
|
|
|
+ String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
|
|
+ List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLSecondListByUserName(weituoId,realName);
|
|
|
|
+ List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
|
|
+ ItdmXMJLQueryListVO.toItdmXMJLQueryListVO2(i,weituoNo)).collect(Collectors.toList());
|
|
|
|
+ return list2;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* 项目经理查询列表——一级列表
|
|
* 项目经理查询列表——一级列表
|
|
@@ -38,7 +161,7 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
|
|
String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLFirstList(weituoId);
|
|
List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLFirstList(weituoId);
|
|
List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
- ItdmXMJLQueryListVO.toItdmXMJLQueryListVO(i,weituoNo)).collect(Collectors.toList());
|
|
|
|
|
|
+ ItdmXMJLQueryListVO.toItdmXMJLQueryListVO1(i,weituoNo)).collect(Collectors.toList());
|
|
return list2;
|
|
return list2;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -49,11 +172,36 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
|
|
String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
|
|
List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLSecondList(weituoId);
|
|
List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLSecondList(weituoId);
|
|
List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
|
|
- ItdmXMJLQueryListVO.toItdmXMJLQueryListVO(i,weituoNo)).collect(Collectors.toList());
|
|
|
|
|
|
+ ItdmXMJLQueryListVO.toItdmXMJLQueryListVO2(i,weituoNo)).collect(Collectors.toList());
|
|
return list2;
|
|
return list2;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 计划员新增或修改试验计划
|
|
|
|
+ */
|
|
|
|
+ public String JHYAddAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list){
|
|
|
|
+ List<ItdmTestPlan> vos = new ArrayList<>();
|
|
|
|
+ String msg = "提交成功!";
|
|
|
|
+ for(ItdmJHYQueryListVO vo:list){
|
|
|
|
+ ItdmTestPlan itdmTestPlan = ItdmJHYQueryListVO.toItdmTestPlan(vo);
|
|
|
|
+ if(vo.getTestPlanId()==null){ //新增试验计划
|
|
|
|
+ itdmTestPlan.setStatus(0);//试验计划初始状态为未确认0
|
|
|
|
+ itdmTestPlanMapper.insert(itdmTestPlan);
|
|
|
|
+ vos.add(itdmTestPlan);
|
|
|
|
+ }else if(vo.getStatus() == 0){//状态为“未确定”,可以修改试验计划
|
|
|
|
+ itdmTestPlan.setId(vo.getTestPlanId());
|
|
|
|
+ itdmTestPlanMapper.updateById(itdmTestPlan);
|
|
|
|
+ vos.add(itdmTestPlan);
|
|
|
|
+ }else if(vo.getStatus() != 0){
|
|
|
|
+ if(msg.equals("提交成功!")) msg="检测项目"+ vo.getTestItems();
|
|
|
|
+ else msg=msg+ "和"+ vo.getTestItems();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(msg.equals("提交成功!")) return msg;
|
|
|
|
+ else return msg+"状态已确定或完成,无法修改!";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 计划员查询列表
|
|
* 计划员查询列表
|
|
*/
|
|
*/
|
|
public List<ItdmJHYQueryListVO> getAll3(String weituoNo){
|
|
public List<ItdmJHYQueryListVO> getAll3(String weituoNo){
|