Bläddra i källkod

拆解工单、工单制定

liuwj 2 år sedan
förälder
incheckning
e296a85911

+ 2 - 3
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongdanDetail/entity/ItdmGongdanDetail.java

@@ -102,9 +102,8 @@ public class ItdmGongdanDetail implements Serializable {
 	/**所属部门*/
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;/**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     @Dict(dictTable = "itdm_chuanganqi", dicText = "xuliehao", dicCode = "id")
-
     private java.lang.String chuanganqi;
 }

+ 2 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongdanMaster/entity/ItdmGongdanMaster.java

@@ -116,7 +116,7 @@ public class ItdmGongdanMaster implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
     /**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     private java.lang.String chuanganqi;
 }

+ 46 - 27
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/controller/ItdmJCXMSHJHController.java

@@ -5,7 +5,8 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.modules.itdmTestPlan.entity.ItdmTestPlan;
+import org.jeecg.modules.itdmGongdanDetail.service.IItdmGongdanDetailService;
+import org.jeecg.modules.itdmGongdanMaster.service.IItdmGongdanMasterService;
 import org.jeecg.modules.itdmTestPlan.service.IItdmJCXMSHJHService;
 import org.jeecg.modules.itdmTestPlan.service.IItdmTestPlanService;
 import org.jeecg.modules.itdmTestPlan.vo.ItdmJHYQueryListVO;
@@ -17,10 +18,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * @Description: 试验计划
- * @Author: jeecg-boot
- * @Date:   2023-05-21
- * @Version: V1.0
+ * 计划排期——试验计划(计划员);工单制定(项目经理)
  */
 @Api(tags="计划排期")
 @RestController
@@ -34,9 +32,26 @@ public class ItdmJCXMSHJHController {
     @Autowired
     @SuppressWarnings("all")
     private IItdmJCXMSHJHService iItdmJCXMSHJHService;
+    @Autowired
+    @SuppressWarnings("all")
+    private IItdmGongdanMasterService iItdmGongdanMasterService;
+    @Autowired
+    @SuppressWarnings("all")
+    private IItdmGongdanDetailService iItdmGongdanDetailService;
+
 
     /**
-     * 项目经理查询列表——先看一级列表
+     * 项目经理新增或修改试验计划或工单master
+     */
+    @AutoLog(value = "项目经理新增或修改试验计划或工单master")
+    @ApiOperation(value="项目经理新增或修改试验计划或工单master", notes="项目经理新增或修改试验计划或工单master——直接left join")
+    @PostMapping(value = "/XMJLAddOrUpdate")
+    public Result<String> XMJLAddOrUpdate(@RequestBody ItdmXMJLQueryListVO vo) {
+        return Result.OK(iItdmJCXMSHJHService.XMJLAddOrUpdate(vo));
+    }
+
+    /**
+     * 项目经理查询列表——有两级
      */
     @ApiOperation(value="项目经理查询列表", notes="通过委托id查询,得到委托单的检测项目、试验计划部分信息")
     @GetMapping(value = "/XMJLList")
@@ -47,6 +62,28 @@ public class ItdmJCXMSHJHController {
         return Result.OK(list);
     }
 
+//    /**
+//     * 项目经理查询列表——有两级——项目经理只能查询到该委托单编号对应的分配给自己的试验计划——看实际情况决定是否要修改
+//     */
+//    @ApiOperation(value="项目经理查询列表", notes="通过委托id查询,得到委托单的检测项目、试验计划部分信息")
+//    @GetMapping(value = "/XMJLList")
+//    public Result<List<ItdmXMJLQueryListVO>> XMJLList(@RequestParam("weituoNo") String weituoNo) {
+//        List<ItdmXMJLQueryListVO> list = new ArrayList<>();
+//
+//        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//        String username = loginUser.getUsername();
+//        String realName = loginUser.getRealname();
+//
+//        if(username.equals("admin")){
+//            list.addAll(iItdmJCXMSHJHService.getXMJLFirstList(weituoNo));
+//            list.addAll(iItdmJCXMSHJHService.getXMJLSecondList(weituoNo));
+//        }else { //用户管理的用户姓名必须与人员管理的人员姓名一样,比如用户表的username:admin,realname:管理员,对应人员管理表的name:管理员
+//            list.addAll(iItdmJCXMSHJHService.getXMJLFirstListByUserName(weituoNo,realName));
+//            list.addAll(iItdmJCXMSHJHService.getXMJLSecondListByUserName(weituoNo,realName));
+//        }
+//        return Result.OK(list);
+//    }
+
     /**
      * 计划员查询列表
      */
@@ -62,27 +99,9 @@ public class ItdmJCXMSHJHController {
      */
     @AutoLog(value = "计划员新增或修改试验计划")
     @ApiOperation(value="计划员新增或修改试验计划", notes="计划员新增或修改试验计划——直接left join")
-    @PostMapping(value = "/addOrUpdate")
-    public Result<String> addAndUpdate(@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
-                itdmTestPlanService.save(itdmTestPlan);
-                vos.add(itdmTestPlan);
-            }else if(vo.getStatus() == 0){//状态为“未确定”,可以修改试验计划
-                itdmTestPlan.setId(vo.getTestPlanId());
-                itdmTestPlanService.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 Result.OK(msg);
-        else return Result.OK(msg+"状态已确定或完成,无法修改!");
+    @PostMapping(value = "/JHYAddOrUpdate")
+    public Result<String> JHYaddAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list) {
+        return Result.OK(iItdmJCXMSHJHService.JHYAddAndUpdate(list));
     }
 
     /**

+ 3 - 3
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/entity/ItdmTestPlan.java

@@ -100,8 +100,8 @@ public class ItdmTestPlan implements Serializable {
 	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
     private java.lang.String remark;
-    /**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    /**传感器id*/
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     private java.lang.String chuanganqi;
 }

+ 32 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/mapper/ItdmJCXMSHJHMapper.java

@@ -12,12 +12,43 @@ import java.util.List;
 public interface ItdmJCXMSHJHMapper {
 
 
+
+    /**
+     * 项目经理查询列表——二级列表——通过登录用户查询
+     */
+    @Select("select a.weituo_id, a.yangpin_id, a.id as testItemsId, a.test_items, " +
+            "b.id as testPlanId, b.shebei_id, b.pm, m.start_date as jihuaStartDate, m.end_date as jihuaEndDate, b.status, b.report_no, b.chuanganqi, " +
+            "d.sample_name, e.device_name, m.jihua_shiyan_id as parent, m.shiiyan_type, m.worker, m.yangpin_count, m.neirong, m.shiji_start_date,m.id " +
+            "from itdm_gongdan_master m " +
+            "left join itdm_test_plan b on m.jihua_shiyan_id = b.id " +
+            "left join itdm_weituo_yangpin_extend a  on m.test_items_id = a.id " +
+            "left join itdm_weituo_yangpin d on m.weituo_yangpin_id = d.id " +
+            "left join itdm_device e on b.shebei_id = e.id " +
+            "where a.weituo_id = #{weituoId} and m.jihua_shiyan_id " +
+            "in (select b.id from itdm_test_plan b " +
+            "left join itdm_weituo_info f on b.weituo_id = f.id " +
+            "where b.weituo_id = #{weituoId} and b.pm = #{realName} )")
+    List<ItdmXMJLQueryListVO> getXMJLSecondListByUserName(@Param("weituoId") String weituoId, @Param("realName") String realName);
+
+    /**
+     * 项目经理查询列表——一级列表——通过登录用户查询
+     */
+    @Select("select a.weituo_id, a.yangpin_id, a.id as testItemsId, a.test_items, " +
+            "b.id as testPlanId, b.shebei_id, b.pm, b.jihua_start_date, b.jihua_end_date, b.status, b.report_no, b.chuanganqi, " +
+            "d.sample_name, e.device_name " +
+            "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.pm = #{realName}")
+    List<ItdmXMJLQueryListVO> getXMJLFirstListByUserName(@Param("weituoId") String weituoId, @Param("realName") String realName);
+
     /**
      * 项目经理查询列表——二级列表
      */
     @Select("select a.weituo_id, a.yangpin_id, a.id as testItemsId, a.test_items, " +
             "b.id as testPlanId, b.shebei_id, b.pm, m.start_date as jihuaStartDate, m.end_date as jihuaEndDate, b.status, b.report_no, b.chuanganqi, " +
-            "d.sample_name, e.device_name, m.jihua_shiyan_id as parent, m.shiiyan_type, m.worker, m.yangpin_count, m.neirong " +
+            "d.sample_name, e.device_name, m.jihua_shiyan_id as parent, m.shiiyan_type, m.worker, m.yangpin_count, m.neirong, m.shiji_start_date,m.id " +
             "from itdm_gongdan_master m " +
             "left join itdm_test_plan b on m.jihua_shiyan_id = b.id " +
             "left join itdm_weituo_yangpin_extend a  on m.test_items_id = a.id " +

+ 28 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/service/IItdmJCXMSHJHService.java

@@ -1,23 +1,49 @@
 package org.jeecg.modules.itdmTestPlan.service;
 
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.itdmTestPlan.vo.ItdmJHYQueryListVO;
 import org.jeecg.modules.itdmTestPlan.vo.ItdmXMJLQueryListVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
+
+/**
+ * 计划排期——试验计划(计划员);工单制定(项目经理)
+ */
 public interface IItdmJCXMSHJHService {
 
+
+    /**
+     * 项目经理新增或修改试验计划或工单master
+     */
+    public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo);
+
+    /**
+     * 项目经理查询列表——一级列表——通过登录用户查询
+     */
+    public List<ItdmXMJLQueryListVO> getXMJLFirstListByUserName(String weituoNo,String realName);
     /**
-     * 项目经理查询列表——一级列表
+     * 项目经理查询列表——二级列表——通过登录用户查询
+     */
+    public List<ItdmXMJLQueryListVO> getXMJLSecondListByUserName(String weituoNo,String realName);
+
+    /**
+     * 项目经理查询列表——一级列表——admin
      */
     public List<ItdmXMJLQueryListVO> getXMJLFirstList(String weituoNo);
     /**
-     * 项目经理查询列表——二级列表
+     * 项目经理查询列表——二级列表——admin
      */
     public List<ItdmXMJLQueryListVO> getXMJLSecondList(String weituoNo);
 
     /**
+     * 计划员新增或修改试验计划
+     */
+    public String JHYAddAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list);
+
+    /**
      * 计划员查询列表
      */
     public List<ItdmJHYQueryListVO> getAll3(@Param("weituoNo") String weituoId);

+ 150 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/service/impl/ItdmJCXMSHJHServiceImpl.java

@@ -1,8 +1,16 @@
 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.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.ItdmTestPlanMapper;
 import org.jeecg.modules.itdmTestPlan.service.IItdmJCXMSHJHService;
 import org.jeecg.modules.itdmTestPlan.vo.ItdmJCXMAndSYJHVO;
 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.springframework.beans.factory.annotation.Autowired;
 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.stream.Collectors;
 
+
+/**
+ * 计划排期——试验计划(计划员);工单制定(项目经理)
+ */
 @Service
 public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
 
@@ -30,6 +45,114 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
     @Autowired
     @SuppressWarnings("all")
     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);
         List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLFirstList(weituoId);
         List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
-                ItdmXMJLQueryListVO.toItdmXMJLQueryListVO(i,weituoNo)).collect(Collectors.toList());
+                ItdmXMJLQueryListVO.toItdmXMJLQueryListVO1(i,weituoNo)).collect(Collectors.toList());
         return list2;
     }
 
@@ -49,11 +172,36 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         String weituoId = itdmWeituoInfoMapper.selectByWeituoNo(weituoNo);
         List<ItdmXMJLQueryListVO> list1 = itdmJCXMSHJHMapper.getXMJLSecondList(weituoId);
         List<ItdmXMJLQueryListVO> list2 = list1.stream().map(i->
-                ItdmXMJLQueryListVO.toItdmXMJLQueryListVO(i,weituoNo)).collect(Collectors.toList());
+                ItdmXMJLQueryListVO.toItdmXMJLQueryListVO2(i,weituoNo)).collect(Collectors.toList());
         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){

+ 3 - 3
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/vo/ItdmJCXMAndSYJHVO.java

@@ -63,9 +63,9 @@ public class ItdmJCXMAndSYJHVO {
     @Excel(name = "报告编号", width = 15)
     @ApiModelProperty(value = "报告编号")
     private java.lang.String reportNo;
-    /**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    /**传感器id*/
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     private java.lang.String chuanganqi;
 
     public String getWeituoId() {

+ 54 - 13
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/vo/ItdmJHYQueryListVO.java

@@ -64,9 +64,9 @@ public class ItdmJHYQueryListVO {
     @Excel(name = "报告编号", width = 15)
     @ApiModelProperty(value = "报告编号")
     private java.lang.String reportNo;
-    /**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    /**传感器id*/
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     private java.lang.String chuanganqi;
     /**委托编号*/
     @Excel(name = "委托编号", width = 15)
@@ -92,6 +92,14 @@ public class ItdmJHYQueryListVO {
     @Excel(name = "status转化", width = 15)
     @ApiModelProperty(value = "status转化")
     private java.lang.String statusC;
+    /**传感器数组*/
+    @Excel(name = "传感器数组", width = 15)
+    @ApiModelProperty(value = "传感器数组")
+    private java.lang.String[] chuanganqiArray;
+    /**前端用的到,用来放试验计划id*/
+    @Excel(name = "试验计划id", width = 15)
+    @ApiModelProperty(value = "试验计划id")
+    private String id;
 
 
 
@@ -231,6 +239,29 @@ public class ItdmJHYQueryListVO {
         this.lastTime = lastTime;
     }
 
+    public String getStatusC() {
+        return statusC;
+    }
+
+    public void setStatusC(String statusC) {
+        this.statusC = statusC;
+    }
+    public String[] getChuanganqiArray() {
+        return chuanganqiArray;
+    }
+
+    public void setChuanganqiArray(String[] chuanganqiArray) {
+        this.chuanganqiArray = chuanganqiArray;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
     /**测试*/
     public static ItdmJHYQueryListVO toItdmJHYQueryListVO(ItdmJCXMAndSYJHVO itdmVO, String weituoNo, String sampleName, String deviceName){
         ItdmJHYQueryListVO vo = new ItdmJHYQueryListVO();
@@ -257,8 +288,9 @@ public class ItdmJHYQueryListVO {
         return vo;
     }
 
-    /**填入委托编号,计算持续时间——计划员查询列表对象*/
+    /**填入委托编号,计算持续时间,状态转化——计划员查询列表对象*/
     public static ItdmJHYQueryListVO toItdmJHYQueryListVO3(ItdmJHYQueryListVO vo, String weituoNo){
+        vo.setId(vo.getTestItemsId());//用来放检测项目id
         if(vo.getJihuaEndDate()!=null && vo.getTestItemsId()!=null){
             int days = (int) ((vo.getJihuaEndDate().getTime() - vo.getJihuaStartDate().getTime()) / (1000*3600*24));
             vo.setLastTime(days+1);
@@ -271,6 +303,11 @@ public class ItdmJHYQueryListVO {
         else if(vo.getStatus()==1) vo.setStatusC("已确认");
         else if(vo.getStatus()==2) vo.setStatusC("完成");
         vo.setWeituoNo(weituoNo);
+
+        if(vo.getChuanganqi()!=null && !vo.getChuanganqi().equals("")){
+            String[] arr = vo.getChuanganqi().split(",");
+            vo.setChuanganqiArray(arr);
+        }
         return vo;
     }
 
@@ -282,20 +319,24 @@ public class ItdmJHYQueryListVO {
         itdmTestPlan.setWeituoYangpinId(vo.getYangpinId());
         itdmTestPlan.setShebeiId(vo.getShebeiId());
         itdmTestPlan.setPm(vo.getPm());
+        itdmTestPlan.setReportNo(vo.getReportNo());
+
         itdmTestPlan.setJihuaStartDate(vo.getJihuaStartDate());
-        int lastTime = vo.getLastTime();//通过持续时间计算结束时间,注意开始时间2023-5-21,持续时间1,则结束时间为2023-5-1
+        int lastTime = vo.getLastTime();//通过持续时间计算结束时间,注意开始时间2023-5-21,持续时间1,则结束时间为2023-5-21
         Date jihuaEndTime = new Date(vo.getJihuaStartDate().getTime() + (lastTime-1)*1000*3600*24);
         itdmTestPlan.setJihuaEndDate(jihuaEndTime);
-        itdmTestPlan.setReportNo(vo.getReportNo());
-        itdmTestPlan.setChuanganqi(vo.getChuanganqi());
+
+        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];
+        }
+        itdmTestPlan.setChuanganqi(chuanganqi);
+
         return  itdmTestPlan;
     }
 
-    public String getStatusC() {
-        return statusC;
-    }
 
-    public void setStatusC(String statusC) {
-        this.statusC = statusC;
-    }
+
 }

+ 147 - 5
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmTestPlan/vo/ItdmXMJLQueryListVO.java

@@ -3,6 +3,8 @@ package org.jeecg.modules.itdmTestPlan.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.itdmGongdanMaster.entity.ItdmGongdanMaster;
+import org.jeecg.modules.itdmTestPlan.entity.ItdmTestPlan;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -59,9 +61,9 @@ public class ItdmXMJLQueryListVO {
     @Excel(name = "报告编号", width = 15)
     @ApiModelProperty(value = "报告编号")
     private java.lang.String reportNo;
-    /**传感器*/
-    @Excel(name = "传感器", width = 20)
-    @ApiModelProperty(value = "传感器")
+    /**传感器id*/
+    @Excel(name = "传感器id", width = 20)
+    @ApiModelProperty(value = "传感器id")
     private java.lang.String chuanganqi;
     /**委托编号*/
     @Excel(name = "委托编号", width = 15)
@@ -99,7 +101,24 @@ public class ItdmXMJLQueryListVO {
     @Excel(name = "内容", width = 15)
     @ApiModelProperty(value = "内容")
     private java.lang.String neirong;
-
+    /**status转化*/
+    @Excel(name = "status转化", width = 15)
+    @ApiModelProperty(value = "status转化")
+    private java.lang.String statusC;
+    /**实绩开始日期*/
+    @Excel(name = "实绩开始日期", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "实绩开始日期")
+    private java.util.Date shijiStartDate;
+    /**试验计划id或工单master的id*/
+    @Excel(name = "试验计划id或工单master的id", width = 15)
+    @ApiModelProperty(value = "试验计划id或工单master的id")
+    private String id;
+    /**传感器数组*/
+    @Excel(name = "传感器数组", width = 15)
+    @ApiModelProperty(value = "传感器数组")
+    private java.lang.String[] chuanganqiArray;
 
 
     public String getWeituoId() {
@@ -271,17 +290,140 @@ public class ItdmXMJLQueryListVO {
         this.neirong = neirong;
     }
 
+    public String getStatusC() {
+        return statusC;
+    }
+
+    public void setStatusC(String statusC) {
+        this.statusC = statusC;
+    }
+    public Date getShijiStartDate() {
+        return shijiStartDate;
+    }
+
+    public void setShijiStartDate(Date shijiStartDate) {
+        this.shijiStartDate = shijiStartDate;
+    }
+
+    public String getId() {
+        return id;
+    }
 
-    public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO(ItdmXMJLQueryListVO vo, String weituoNo){
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String[] getChuanganqiArray() {
+        return chuanganqiArray;
+    }
+
+    public void setChuanganqiArray(String[] chuanganqiArray) {
+        this.chuanganqiArray = chuanganqiArray;
+    }
+
+
+    /**
+     * 将二级对象转化为工单master,用于新增或修改
+     * */
+    public static ItdmGongdanMaster toItdmGongdanMaster(ItdmXMJLQueryListVO vo){
+        ItdmGongdanMaster m = new ItdmGongdanMaster();
+        m.setId(vo.getId());//如果用于新增,为空
+        m.setJihuaShiyanId(vo.getTestPlanId());
+        m.setTestItemsId(vo.getTestItemsId());
+        m.setWeituoYangpinId(vo.getYangpinId());
+        m.setShebeiId(vo.getShebeiId());
+        m.setShiiyanType(vo.getShiiyanType());
+        m.setWorker(vo.getWorker());
+        m.setYangpinCount(vo.getYangpinCount());
+
+        m.setStartDate(vo.getJihuaStartDate());
+        int lastTime = vo.getLastTime();//通过持续时间计算结束时间,注意开始时间2023-5-21,持续时间1,则结束时间为2023-5-21
+        Date endDate = new Date(vo.getJihuaStartDate().getTime() + (lastTime-1)*1000*3600*24);
+        m.setEndDate(endDate);
+
+        m.setShijiStartDate(vo.getShijiStartDate());//如果用于新增,为空
+        m.setNeirong(vo.getNeirong());
+        m.setChuanganqi(vo.getChuanganqi());
+        return m;
+    }
+
+    /**
+     * 填入委托编号,计算持续时间,状态转换——项目经理查询列表对象——一级列表
+     * */
+    public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO1(ItdmXMJLQueryListVO vo, String weituoNo){
         vo.setWeituoNo(weituoNo);
         if(vo.getJihuaEndDate()!=null && vo.getTestItemsId()!=null){
             int days = (int) ((vo.getJihuaEndDate().getTime() - vo.getJihuaStartDate().getTime()) / (1000*3600*24));
             vo.setLastTime(days+1);
         }
+
+        if(vo.getStatus()==0) vo.setStatusC("未确认");
+        else if(vo.getStatus()==1) vo.setStatusC("已确认");
+        else if(vo.getStatus()==2) vo.setStatusC("完成");
+        vo.setWeituoNo(weituoNo);
+        vo.setId(vo.getTestPlanId());//一级列表,id为试验计划id
+
+        if(vo.getChuanganqi()!=null && !vo.getChuanganqi().equals("")){
+            String[] arr = vo.getChuanganqi().split(",");
+            vo.setChuanganqiArray(arr);
+        }
+        return vo;
+    }
+
+    /**
+     * 填入委托编号,计算持续时间,状态转换——项目经理查询列表对象——一二级列表——id直接为工单master的id
+     * */
+    public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO2(ItdmXMJLQueryListVO vo, String weituoNo){
+        vo.setWeituoNo(weituoNo);
+        if(vo.getJihuaEndDate()!=null && vo.getTestItemsId()!=null){
+            int days = (int) ((vo.getJihuaEndDate().getTime() - vo.getJihuaStartDate().getTime()) / (1000*3600*24));
+            vo.setLastTime(days+1);
+        }
+
+        if(vo.getShijiStartDate()==null)  vo.setStatus(3);
+        else if(vo.getShijiStartDate()!=null)  vo.setStatus(4);
+        if(vo.getStatus()==3) vo.setStatusC("可以修改");
+        else if(vo.getStatus()==4) vo.setStatusC("不可修改");
+        vo.setWeituoNo(weituoNo);
+
+        if(vo.getChuanganqi()!=null && !vo.getChuanganqi().equals("")){
+            String[] arr = vo.getChuanganqi().split(",");
+            vo.setChuanganqiArray(arr);
+        }
         return vo;
     }
 
 
+    /**转化成试验计划对象——项目经理修改试验计划*/
+    public static ItdmTestPlan toItdmTestPlan(ItdmXMJLQueryListVO vo){
+        ItdmTestPlan itdmTestPlan = new ItdmTestPlan();
+        itdmTestPlan.setId(vo.getTestPlanId());
+        itdmTestPlan.setWeituoId(vo.getWeituoId());
+        itdmTestPlan.setTestItemsId(vo.getTestItemsId());
+        itdmTestPlan.setWeituoYangpinId(vo.getYangpinId());
+        itdmTestPlan.setShebeiId(vo.getShebeiId());
+        itdmTestPlan.setPm(vo.getPm());
+
+        itdmTestPlan.setJihuaStartDate(vo.getJihuaStartDate());
+        int lastTime = vo.getLastTime();//通过持续时间计算结束时间,注意开始时间2023-5-21,持续时间1,则结束时间为2023-5-1
+        Date jihuaEndTime = new Date(vo.getJihuaStartDate().getTime() + (lastTime-1)*1000*3600*24);
+        itdmTestPlan.setJihuaEndDate(jihuaEndTime);
+
+        itdmTestPlan.setReportNo(vo.getReportNo());
+        itdmTestPlan.setChuanganqi(vo.getChuanganqi());
+        itdmTestPlan.setStatus(vo.getStatus());
+
+        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];
+        }
+        itdmTestPlan.setChuanganqi(chuanganqi);
+
+        return  itdmTestPlan;
+    }
+
 
 
 }