瀏覽代碼

拆解工单,工单制定

liuwj 2 年之前
父節點
當前提交
5922685254
共有 14 個文件被更改,包括 273 次插入84 次删除
  1. 32 21
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/controller/ItdmGongdanDetailController.java
  2. 17 4
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/controller/ItdmJCXMSHJHController.java
  3. 43 0
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/convert/GongDanDetailConvert.java
  4. 0 1
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/entity/ItdmGongdanDetail.java
  5. 1 1
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmGongdanDetailMapper.java
  6. 6 3
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmJCXMSHJHMapper.java
  7. 17 1
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/xml/ItdmGongdanDetailMapper.xml
  8. 1 1
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/IItdmGongdanDetailService.java
  9. 5 0
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/IItdmJCXMSHJHService.java
  10. 2 2
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/impl/ItdmGongdanDetailServiceImpl.java
  11. 69 44
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/impl/ItdmJCXMSHJHServiceImpl.java
  12. 17 0
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmGongdanDetailListVO.java
  13. 24 0
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmJHYQueryListVO.java
  14. 39 6
      itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmXMJLQueryListVO.java

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

@@ -10,8 +10,13 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.itdmGongDan.convert.GongDanDetailConvert;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
+import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanMaster;
+import org.jeecg.modules.itdmGongDan.entity.ItdmTestPlan;
 import org.jeecg.modules.itdmGongDan.service.IItdmGongdanDetailService;
 import org.jeecg.modules.itdmGongDan.service.IItdmGongdanDetailService;
+import org.jeecg.modules.itdmGongDan.service.IItdmGongdanMasterService;
+import org.jeecg.modules.itdmGongDan.service.IItdmTestPlanService;
 import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
 import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
@@ -20,6 +25,8 @@ import org.springframework.web.servlet.ModelAndView;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: 工单detail
  * @Description: 工单detail
@@ -34,6 +41,10 @@ import java.util.Arrays;
 public class ItdmGongdanDetailController extends JeecgController<ItdmGongdanDetail, IItdmGongdanDetailService> {
 public class ItdmGongdanDetailController extends JeecgController<ItdmGongdanDetail, IItdmGongdanDetailService> {
 	@Autowired
 	@Autowired
 	private IItdmGongdanDetailService itdmGongdanDetailService;
 	private IItdmGongdanDetailService itdmGongdanDetailService;
+	@Autowired
+	private IItdmGongdanMasterService iItdmGongdanMasterService;
+	@Autowired
+	private IItdmTestPlanService itdmTestPlanService;
 
 
 	/**
 	/**
 	 * 分页列表查询
 	 * 分页列表查询
@@ -46,49 +57,49 @@ public class ItdmGongdanDetailController extends JeecgController<ItdmGongdanDeta
 	 */
 	 */
 	//@AutoLog(value = "工单detail-分页列表查询")
 	//@AutoLog(value = "工单detail-分页列表查询")
 	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
 	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
-	@GetMapping(value = "/list")
+	@GetMapping(value = "/list1")
 	public Result<Page<ItdmGongdanDetailListVO>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
 	public Result<Page<ItdmGongdanDetailListVO>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
 															   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 															   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 															   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 															   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 															   HttpServletRequest req) {
 															   HttpServletRequest req) {
 		Result<Page<ItdmGongdanDetailListVO>> result = new Result<Page<ItdmGongdanDetailListVO>>();
 		Result<Page<ItdmGongdanDetailListVO>> result = new Result<Page<ItdmGongdanDetailListVO>>();
 		Page<ItdmGongdanDetailListVO> pageList = new Page<>(pageNo,pageSize);
 		Page<ItdmGongdanDetailListVO> pageList = new Page<>(pageNo,pageSize);
-		pageList = itdmGongdanDetailService.getDetailList(pageList,"");//通知公告消息
+		pageList = itdmGongdanDetailService.getDetailList(pageList,itdmGongdanDetail.getWoId());//通知公告消息
 		result.setSuccess(true);
 		result.setSuccess(true);
 		result.setResult(pageList);
 		result.setResult(pageList);
 		return result;
 		return result;
 	}
 	}
-//	public Result<Page<ItdmGongdanDetail>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
-//								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-//								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-//								   HttpServletRequest req) {
-//		Result<Page<ItdmGongdanDetail>> result = new Result<Page<ItdmGongdanDetail>>();
-//		Page<ItdmGongdanDetail> pageList = new Page<>(pageNo,pageSize);
-//		pageList = itdmGongdanDetailService.getDetailList(pageList,"");//通知公告消息
-//		result.setSuccess(true);
-//		result.setResult(pageList);
-//		return result;
-//	}
 
 
 
 
+	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<Page<ItdmGongdanDetailListVO>> queryPageList1(ItdmGongdanDetail itdmGongdanDetail,
+														   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														   HttpServletRequest req) {
+		QueryWrapper<ItdmGongdanDetail> queryWrapper = QueryGenerator.initQueryWrapper(itdmGongdanDetail, req.getParameterMap());
+		Page<ItdmGongdanDetail> page = new Page<ItdmGongdanDetail>(pageNo, pageSize);
+		Page<ItdmGongdanDetail> pageList = itdmGongdanDetailService.page(page, queryWrapper);
+
+		List<ItdmGongdanDetailListVO> list=pageList.getRecords().stream().map(i -> {
+			ItdmGongdanMaster master = iItdmGongdanMasterService.getById(i.getWoId());
+			ItdmTestPlan itdmTestPlan = itdmTestPlanService.getById(master.getJihuaShiyanId());
+			return GongDanDetailConvert.INSTANCE.toList(i, master,itdmTestPlan);
+		}).collect(Collectors.toList());
+		return Result.OK(GongDanDetailConvert.INSTANCE.converter(pageList,list));
+	}
+
 
 
 //	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
 //	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
 //	@GetMapping(value = "/list")
 //	@GetMapping(value = "/list")
-//	public Result<IPage<ItdmGongdanDetail>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
+//	public Result<IPage<ItdmGongdanDetail>> queryPageList1(ItdmGongdanDetail itdmGongdanDetail,
 //														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 //														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 //														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 //														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 //														  HttpServletRequest req) {
 //														  HttpServletRequest req) {
 //		QueryWrapper<ItdmGongdanDetail> queryWrapper = QueryGenerator.initQueryWrapper(itdmGongdanDetail, req.getParameterMap());
 //		QueryWrapper<ItdmGongdanDetail> queryWrapper = QueryGenerator.initQueryWrapper(itdmGongdanDetail, req.getParameterMap());
-////		queryWrapper.select().orderByAsc("work_date");
 //		Page<ItdmGongdanDetail> page = new Page<ItdmGongdanDetail>(pageNo, pageSize);
 //		Page<ItdmGongdanDetail> page = new Page<ItdmGongdanDetail>(pageNo, pageSize);
 //		IPage<ItdmGongdanDetail> pageList = itdmGongdanDetailService.page(page, queryWrapper);
 //		IPage<ItdmGongdanDetail> pageList = itdmGongdanDetailService.page(page, queryWrapper);
 //		return Result.OK(pageList);
 //		return Result.OK(pageList);
-////		IPage<ItdmGongdanDetailListVO> pageVOList = pageList.convert(result -> {
-////			ItdmGongdanDetailListVO vo = new ItdmGongdanDetailListVO();
-////			BeanUtil.copyProperties(result, vo);
-////			return vo;
-////		});
-////		return Result.OK(pageVOList);
 //	}
 //	}
 
 
 	/**
 	/**

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

@@ -20,7 +20,7 @@ import java.util.List;
 /**
 /**
  * 计划排期——试验计划(计划员);工单制定(项目经理)
  * 计划排期——试验计划(计划员);工单制定(项目经理)
  */
  */
-@Api(tags="计划排期")
+@Api(tags=".计划排期")
 @RestController
 @RestController
 @RequestMapping("/sych")
 @RequestMapping("/sych")
 @Slf4j
 @Slf4j
@@ -41,12 +41,25 @@ public class ItdmJCXMSHJHController {
 
 
 
 
     /**
     /**
-     * 项目经理新增或修改试验计划或工单master
+     *   删除2级工单master+对应的工单detail
      */
      */
-    @AutoLog(value = "项目经理新增或修改试验计划或工单master")
-    @ApiOperation(value="项目经理新增或修改试验计划或工单master", notes="项目经理新增或修改试验计划或工单master——直接left join")
+    @AutoLog(value = "删除")
+    @ApiOperation(value="删除", notes="删除工单master")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        System.out.println(id);
+        return Result.OK(iItdmJCXMSHJHService.deleteByGongdanMasterId(id));
+    }
+
+
+    /**
+     * 项目经理新增或修改工单master
+     */
+    @AutoLog(value = "项目经理新增或修改工单master")
+    @ApiOperation(value="项目经理新增或修改工单master", notes="项目经理新增或修改工单master")
     @PostMapping(value = "/XMJLAddOrUpdate")
     @PostMapping(value = "/XMJLAddOrUpdate")
     public Result<String> XMJLAddOrUpdate(@RequestBody ItdmXMJLQueryListVO vo) {
     public Result<String> XMJLAddOrUpdate(@RequestBody ItdmXMJLQueryListVO vo) {
+        System.out.println("项目经理新增工单master");
         return Result.OK(iItdmJCXMSHJHService.XMJLAddOrUpdate(vo));
         return Result.OK(iItdmJCXMSHJHService.XMJLAddOrUpdate(vo));
     }
     }
 
 

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

@@ -0,0 +1,43 @@
+package org.jeecg.modules.itdmGongDan.convert;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.baogao.dto.ItdmBaogaoCreateDTO;
+import org.jeecg.modules.baogao.entity.ItdmBaogao;
+import org.jeecg.modules.baogao.vo.ItdmBaogaoListVO;
+import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
+import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanMaster;
+import org.jeecg.modules.itdmGongDan.entity.ItdmTestPlan;
+import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 敏感词 Convert
+ *
+ * @author 永不言败
+ */
+@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE,imports ={ CollectionUtils.class, Collectors.class})
+public interface GongDanDetailConvert {
+
+    GongDanDetailConvert INSTANCE = Mappers.getMapper(GongDanDetailConvert.class);
+
+    ItdmGongdanDetailListVO convert(ItdmGongdanDetail convert);
+
+    @Mapping(target ="records",source ="results" )
+    Page<ItdmGongdanDetailListVO> converter(Page<ItdmGongdanDetail> page, List<ItdmGongdanDetailListVO> results);
+
+
+    @Mapping(target ="id",source ="detail.id")
+    @Mapping(target ="chuanganqi",source ="detail.chuanganqi")
+    @Mapping(target ="testItemsId",source ="master.testItemsId")
+    @Mapping(target ="weituoYangpinId",source ="master.weituoYangpinId")
+    @Mapping(target ="shebeiId",source ="master.shebeiId")
+    ItdmGongdanDetailListVO toList(ItdmGongdanDetail detail, ItdmGongdanMaster master, ItdmTestPlan itdmTestPlan);
+}

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

@@ -44,7 +44,6 @@ public class ItdmGongdanDetail implements Serializable {
 	@Excel(name = "实绩设备id", width = 15)
 	@Excel(name = "实绩设备id", width = 15)
     @ApiModelProperty(value = "实绩设备id")
     @ApiModelProperty(value = "实绩设备id")
     @Dict(dictTable = "itdm_device", dicText = "device_name", dicCode = "id")
     @Dict(dictTable = "itdm_device", dicText = "device_name", dicCode = "id")
-
     private java.lang.String shijiShebeiId;
     private java.lang.String shijiShebeiId;
 	/**实绩试验类型*/
 	/**实绩试验类型*/
 	@Excel(name = "实绩试验类型", width = 15, dicCode = "shiyan_type")
 	@Excel(name = "实绩试验类型", width = 15, dicCode = "shiyan_type")

+ 1 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmGongdanDetailMapper.java

@@ -14,5 +14,5 @@ import java.util.List;
  * @Version: V1.0
  * @Version: V1.0
  */
  */
 public interface ItdmGongdanDetailMapper extends BaseMapper<ItdmGongdanDetail> {
 public interface ItdmGongdanDetailMapper extends BaseMapper<ItdmGongdanDetail> {
-    List<ItdmGongdanDetailListVO> getDetailList (Page<ItdmGongdanDetailListVO> page, String weituoId);
+    List<ItdmGongdanDetailListVO> getDetailList (Page<ItdmGongdanDetailListVO> page, String woId);
 }
 }

+ 6 - 3
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmJCXMSHJHMapper.java

@@ -45,9 +45,12 @@ 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 " +
+    @Select("select a.weituo_id, m.weituo_yangpin_id, m.test_items_id, a.test_items, " +
+            "m.jihua_shiyan_id, b.pm, " +
+            "m.shebei_id, m.start_date as jihuaStartDate, m.end_date as jihuaEndDate, " +
+            "b.status, b.report_no, m.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 " +
             "from itdm_gongdan_master m " +
             "left join itdm_test_plan b on m.jihua_shiyan_id = b.id " +
             "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_extend a  on m.test_items_id = a.id " +

+ 17 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/xml/ItdmGongdanDetailMapper.xml

@@ -14,16 +14,32 @@
         <result column="shiji_start_time" property="shijiStartTime" jdbcType="VARCHAR"/>
         <result column="shiji_start_time" property="shijiStartTime" jdbcType="VARCHAR"/>
         <result column="shiji_end_time" property="shijiEndTime" jdbcType="VARCHAR"/>
         <result column="shiji_end_time" property="shijiEndTime" jdbcType="VARCHAR"/>
         <result column="chuanganqi" property="chuanganqi" jdbcType="VARCHAR"/>
         <result column="chuanganqi" property="chuanganqi" jdbcType="VARCHAR"/>
+
+        <result column="jihua_shiyan_id" property="jihuaShiyanId" jdbcType="VARCHAR"/>
+        <result column="test_items_id" property="testItemsId" jdbcType="VARCHAR"/>
+        <result column="weituo_yangpin_id" property="weituoYangpinId" jdbcType="VARCHAR"/>
+        <result column="shebei_id" property="shebeiId" jdbcType="VARCHAR"/>
+
+        <result column="shiiyan_type" property="shiiyanType" jdbcType="VARCHAR"/>
+        <result column="worker" property="worker" jdbcType="VARCHAR"/>
+        <result column="yangpin_count" property="yangpinCount" jdbcType="INTEGER"/>
+
+        <result column="weituo_id" property="weituoId" jdbcType="VARCHAR"/>
     </resultMap>
     </resultMap>
 
 
 
 
     <select id="getDetailList" parameterType="String"  resultMap="ItdmGongdanDetailListVO">
     <select id="getDetailList" parameterType="String"  resultMap="ItdmGongdanDetailListVO">
         select d.id, d.wo_id, d.shiji_shebei_id, d.shiji_shiiyan_type, d.work_date, d.start_time, d.end_time,
         select d.id, d.wo_id, d.shiji_shebei_id, d.shiji_shiiyan_type, d.work_date, d.start_time, d.end_time,
                d.shiji_work_date, d.shiji_start_time, d.shiji_end_time, d.chuanganqi,
                d.shiji_work_date, d.shiji_start_time, d.shiji_end_time, d.chuanganqi,
-               m.jihua_shiyan_id, m.test_items_id, m.weituo_yangpin_id, m.shebei_id, t.weituo_id
+               m.jihua_shiyan_id, m.test_items_id, m.weituo_yangpin_id, m.shebei_id, m.shiiyan_type, m.worker, m.yangpin_count,
+               t.weituo_id
         from itdm_gongdan_detail d
         from itdm_gongdan_detail d
 left join itdm_gongdan_master m on d.wo_id = m.id
 left join itdm_gongdan_master m on d.wo_id = m.id
 left join itdm_test_plan t on m.jihua_shiyan_id = t.id
 left join itdm_test_plan t on m.jihua_shiyan_id = t.id
+        <where>
+            <if test="woId != null "> and d.wo_id = #{woId}</if>
+        </where>
+        order by d.wo_id, d.work_date
     </select>
     </select>
 
 
 
 

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

@@ -13,6 +13,6 @@ import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
  */
  */
 public interface IItdmGongdanDetailService extends IService<ItdmGongdanDetail> {
 public interface IItdmGongdanDetailService extends IService<ItdmGongdanDetail> {
 
 
-    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String weituoId);
+    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String woId);
 
 
 }
 }

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

@@ -15,6 +15,11 @@ public interface IItdmJCXMSHJHService {
 
 
 
 
     /**
     /**
+     *   删除2级工单master+对应的工单detail
+     */
+    public String deleteByGongdanMasterId(String id);
+
+    /**
      * 项目经理新增或修改试验计划或工单master
      * 项目经理新增或修改试验计划或工单master
      */
      */
     public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo);
     public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo);

+ 2 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/impl/ItdmGongdanDetailServiceImpl.java

@@ -23,8 +23,8 @@ public class ItdmGongdanDetailServiceImpl extends ServiceImpl<ItdmGongdanDetailM
     @SuppressWarnings("all")
     @SuppressWarnings("all")
     private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
     private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
 
 
-    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String weituoId) {
-        return page.setRecords(itdmGongdanDetailMapper.getDetailList(page, weituoId));
+    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String woId) {
+        return page.setRecords(itdmGongdanDetailMapper.getDetailList(page, woId));
     }
     }
 
 
 }
 }

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

@@ -21,9 +21,7 @@ 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 org.springframework.web.bind.annotation.RequestBody;
 
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 
 
@@ -56,9 +54,26 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
     private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
     private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
 
 
     /**
     /**
+     *   删除2级工单master+对应的工单detail
+     */
+    public String deleteByGongdanMasterId(String id){
+        ItdmGongdanMaster master = itdmGongdanMasterMapper.selectById(id);
+        if(master.getShijiStartDate()==null) {//此时可以删除
+            itdmGongdanMasterMapper.deleteById(id);
+
+            //然后删原来的工单detail
+            Map<String, Object> columnMap = new HashMap<>();
+            columnMap.put("wo_id",id);
+            itdmGongdanDetailMapper.deleteByMap(columnMap);
+
+            return "删除成功!";
+        }else  return "不可删除!";
+    }
+
+
+    /**
      * 项目经理新增或修改试验计划或工单master
      * 项目经理新增或修改试验计划或工单master
      */
      */
-    // TODO 初版,前端单个提交,还要改,前端可能用整体提交——删除怎么办
     public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo){
     public String XMJLAddOrUpdate(ItdmXMJLQueryListVO vo){
         String msg = "操作成功!";
         String msg = "操作成功!";
 
 
@@ -70,25 +85,18 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         }
         }
         vo.setChuanganqi(chuanganqi);
         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,判断有无该对象存在,无的话为新增,有的话修改
+        if(vo.getParent()!=null){ //二级,先根据id查询工单master,判断有无该对象存在,无的话为新增,有的话修改
             ItdmGongdanMaster gongdanMaster = itdmGongdanMasterMapper.selectById(vo.getId());
             ItdmGongdanMaster gongdanMaster = itdmGongdanMasterMapper.selectById(vo.getId());
+
             if(gongdanMaster==null){//是新增的数据
             if(gongdanMaster==null){//是新增的数据
                 ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
                 ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
                 itdmGongdanMasterMapper.insert(itdmGongdanMaster);//新增一条工单master
                 itdmGongdanMasterMapper.insert(itdmGongdanMaster);//新增一条工单master
 
 
+                //修改工单master对应的试验计划,将状态改为已确认
+                ItdmTestPlan itdmTestPlan = itdmTestPlanMapper.selectById(vo.getParent());
+                itdmTestPlan.setStatus(1);
+                itdmTestPlanMapper.updateById(itdmTestPlan);
+
                 Date startDate = vo.getJihuaStartDate();
                 Date startDate = vo.getJihuaStartDate();
                 int lastDay = vo.getLastTime();
                 int lastDay = vo.getLastTime();
                 for (int i=1;i<=lastDay;i++){
                 for (int i=1;i<=lastDay;i++){
@@ -107,6 +115,11 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
                     ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
                     ItdmGongdanMaster itdmGongdanMaster = ItdmXMJLQueryListVO.toItdmGongdanMaster(vo);
                     itdmGongdanMasterMapper.updateById(itdmGongdanMaster);
                     itdmGongdanMasterMapper.updateById(itdmGongdanMaster);
 
 
+                    //修改工单master对应的试验计划,将状态改为已确认
+                    ItdmTestPlan itdmTestPlan = itdmTestPlanMapper.selectById(vo.getParent());
+                    itdmTestPlan.setStatus(1);
+                    itdmTestPlanMapper.updateById(itdmTestPlan);
+
                     //然后删原来的工单detail
                     //然后删原来的工单detail
                     ItdmGongdanDetail itdmGongdanDetail = new ItdmGongdanDetail();
                     ItdmGongdanDetail itdmGongdanDetail = new ItdmGongdanDetail();
                     itdmGongdanDetail.setWoId(vo.getId());
                     itdmGongdanDetail.setWoId(vo.getId());
@@ -132,29 +145,6 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         return 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;
-    }
-
-
     /**
     /**
      * 项目经理查询列表——一级列表
      * 项目经理查询列表——一级列表
      */
      */
@@ -181,18 +171,31 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
      * 计划员新增或修改试验计划
      * 计划员新增或修改试验计划
      */
      */
     public String JHYAddAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list){
     public String JHYAddAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list){
-        List<ItdmTestPlan> vos = new ArrayList<>();
         String msg = "提交成功!";
         String msg = "提交成功!";
         for(ItdmJHYQueryListVO vo:list){
         for(ItdmJHYQueryListVO vo:list){
             ItdmTestPlan itdmTestPlan = ItdmJHYQueryListVO.toItdmTestPlan(vo);
             ItdmTestPlan itdmTestPlan = ItdmJHYQueryListVO.toItdmTestPlan(vo);
             if(vo.getTestPlanId()==null){ //新增试验计划
             if(vo.getTestPlanId()==null){ //新增试验计划
                 itdmTestPlan.setStatus(0);//试验计划初始状态为未确认0
                 itdmTestPlan.setStatus(0);//试验计划初始状态为未确认0
                 itdmTestPlanMapper.insert(itdmTestPlan);
                 itdmTestPlanMapper.insert(itdmTestPlan);
-                vos.add(itdmTestPlan);
+                //同时新增一条一样的工单master
+                ItdmGongdanMaster master = ItdmJHYQueryListVO.toItdmGongdanMaster(vo);
+                itdmGongdanMasterMapper.insert(master);
+                //再拆成工单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);
+                }
             }else if(vo.getStatus() == 0){//状态为“未确定”,可以修改试验计划
             }else if(vo.getStatus() == 0){//状态为“未确定”,可以修改试验计划
                 itdmTestPlan.setId(vo.getTestPlanId());
                 itdmTestPlan.setId(vo.getTestPlanId());
                 itdmTestPlanMapper.updateById(itdmTestPlan);
                 itdmTestPlanMapper.updateById(itdmTestPlan);
-                vos.add(itdmTestPlan);
             }else if(vo.getStatus() != 0){
             }else if(vo.getStatus() != 0){
                 if(msg.equals("提交成功!")) msg="检测项目"+ vo.getTestItems();
                 if(msg.equals("提交成功!")) msg="检测项目"+ vo.getTestItems();
                 else msg=msg+ "和"+ vo.getTestItems();
                 else msg=msg+ "和"+ vo.getTestItems();
@@ -226,4 +229,26 @@ public class ItdmJCXMSHJHServiceImpl implements IItdmJCXMSHJHService {
         ).collect(Collectors.toList());
         ).collect(Collectors.toList());
         return list1;
         return list1;
     }
     }
+
+    /**
+     * 项目经理查询列表——一级列表——通过登录用户查询
+     */
+    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;
+    }
+
 }
 }

+ 17 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmGongdanDetailListVO.java

@@ -96,6 +96,7 @@ public class ItdmGongdanDetailListVO implements Serializable {
     @Dict(dictTable = "itdm_chuanganqi", dicText = "xuliehao", dicCode = "id")
     @Dict(dictTable = "itdm_chuanganqi", dicText = "xuliehao", dicCode = "id")
     private java.lang.String chuanganqi;
     private java.lang.String chuanganqi;
 
 
+
     //来自于工单master(itdm_gongdan_master),通过工单ID(woId)查询
     //来自于工单master(itdm_gongdan_master),通过工单ID(woId)查询
     /**试验计划id*/
     /**试验计划id*/
     @Excel(name = "试验计划id", width = 15)
     @Excel(name = "试验计划id", width = 15)
@@ -118,6 +119,21 @@ public class ItdmGongdanDetailListVO implements Serializable {
     @Dict(dictTable = "itdm_device", dicText = "device_name", dicCode = "id")
     @Dict(dictTable = "itdm_device", dicText = "device_name", dicCode = "id")
     private java.lang.String shebeiId;
     private java.lang.String shebeiId;
 
 
+    /**试验类型*/
+    @Excel(name = "试验类型", width = 15)
+    @ApiModelProperty(value = "试验类型")
+    @Dict(dicCode = "shiiyan_type")
+    private java.lang.String shiiyanType;
+    /**试验员*/
+    @Excel(name = "试验员", width = 15)
+    @ApiModelProperty(value = "试验员")
+    @Dict(dictTable = "itdm_person_manage", dicText = "name", dicCode = "id")
+    private java.lang.String worker;
+    /**委托样品数量*/
+    @Excel(name = "委托样品数量", width = 15)
+    @ApiModelProperty(value = "委托样品数量")
+    private java.lang.Integer yangpinCount;
+
     //来自于试验计划表(itdm_test_plan),通过试验计划id(jihuaShiyanId)查询
     //来自于试验计划表(itdm_test_plan),通过试验计划id(jihuaShiyanId)查询
 //    /**报告编号*/
 //    /**报告编号*/
 //    @Excel(name = "报告编号", width = 15)
 //    @Excel(name = "报告编号", width = 15)
@@ -160,4 +176,5 @@ public class ItdmGongdanDetailListVO implements Serializable {
 //    private String testItems;
 //    private String testItems;
 
 
 
 
+
 }
 }

+ 24 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmJHYQueryListVO.java

@@ -4,6 +4,7 @@ package org.jeecg.modules.itdmGongDan.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanMaster;
 import org.jeecg.modules.itdmGongDan.entity.ItdmTestPlan;
 import org.jeecg.modules.itdmGongDan.entity.ItdmTestPlan;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -337,6 +338,29 @@ public class ItdmJHYQueryListVO {
         return  itdmTestPlan;
         return  itdmTestPlan;
     }
     }
 
 
+    /**转化成工单master对象——用于新增工单master*/
+    public static ItdmGongdanMaster toItdmGongdanMaster(ItdmJHYQueryListVO vo){
+        ItdmGongdanMaster m = new ItdmGongdanMaster();
+        m.setJihuaShiyanId(vo.getTestPlanId());
+        m.setTestItemsId(vo.getTestItemsId());
+        m.setWeituoYangpinId(vo.getYangpinId());
+        m.setShebeiId(vo.getShebeiId());
+
+        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);
+
+        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];
+        }
+        m.setChuanganqi(chuanganqi);
+        return m;
+    }
+
 
 
 
 
 }
 }

+ 39 - 6
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/vo/ItdmXMJLQueryListVO.java

@@ -119,6 +119,10 @@ public class ItdmXMJLQueryListVO {
     @Excel(name = "传感器数组", width = 15)
     @Excel(name = "传感器数组", width = 15)
     @ApiModelProperty(value = "传感器数组")
     @ApiModelProperty(value = "传感器数组")
     private java.lang.String[] chuanganqiArray;
     private java.lang.String[] chuanganqiArray;
+    /**试验类型数组*/
+    @Excel(name = "试验类型数组", width = 15)
+    @ApiModelProperty(value = "试验类型数组")
+    private java.lang.String[] shiiyanTypeArray;
 
 
 
 
     public String getWeituoId() {
     public String getWeituoId() {
@@ -321,6 +325,14 @@ public class ItdmXMJLQueryListVO {
         this.chuanganqiArray = chuanganqiArray;
         this.chuanganqiArray = chuanganqiArray;
     }
     }
 
 
+    public String[] getShiiyanTypeArray() {
+        return shiiyanTypeArray;
+    }
+
+    public void setShiiyanTypeArray(String[] shiiyanTypeArray) {
+        this.shiiyanTypeArray = shiiyanTypeArray;
+    }
+
 
 
     /**
     /**
      * 将二级对象转化为工单master,用于新增或修改
      * 将二级对象转化为工单master,用于新增或修改
@@ -343,12 +355,29 @@ public class ItdmXMJLQueryListVO {
 
 
         m.setShijiStartDate(vo.getShijiStartDate());//如果用于新增,为空
         m.setShijiStartDate(vo.getShijiStartDate());//如果用于新增,为空
         m.setNeirong(vo.getNeirong());
         m.setNeirong(vo.getNeirong());
-        m.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];
+        }
+        m.setChuanganqi(chuanganqi);
+
+        String[] shiyanTypeArr = vo.getShiiyanTypeArray();
+        String shiyanType = "";
+        for (int i = 0; i < shiyanTypeArr.length; i++) {
+            if(i==0) shiyanType = shiyanTypeArr[i];
+            else shiyanType = shiyanType + ","+ shiyanTypeArr[i];
+        }
+        m.setShiiyanType(shiyanType);
         return m;
         return m;
     }
     }
 
 
     /**
     /**
-     * 填入委托编号,计算持续时间,状态转换——项目经理查询列表对象——一级列表
+     * 项目经理查询
+     * 1级列表
+     * 填入委托编号,计算持续时间,状态转换
      * */
      * */
     public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO1(ItdmXMJLQueryListVO vo, String weituoNo){
     public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO1(ItdmXMJLQueryListVO vo, String weituoNo){
         vo.setWeituoNo(weituoNo);
         vo.setWeituoNo(weituoNo);
@@ -371,7 +400,10 @@ public class ItdmXMJLQueryListVO {
     }
     }
 
 
     /**
     /**
-     * 填入委托编号,计算持续时间,状态转换——项目经理查询列表对象——一二级列表——id直接为工单master的id
+     * 项目经理查询
+     * 2级列表
+     * 填入委托编号,计算持续时间,状态转换
+     * id为直接查询出来的工单master的id
      * */
      * */
     public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO2(ItdmXMJLQueryListVO vo, String weituoNo){
     public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO2(ItdmXMJLQueryListVO vo, String weituoNo){
         vo.setWeituoNo(weituoNo);
         vo.setWeituoNo(weituoNo);
@@ -390,6 +422,10 @@ public class ItdmXMJLQueryListVO {
             String[] arr = vo.getChuanganqi().split(",");
             String[] arr = vo.getChuanganqi().split(",");
             vo.setChuanganqiArray(arr);
             vo.setChuanganqiArray(arr);
         }
         }
+        if(vo.getShiiyanType()!=null && !vo.getShiiyanType().equals("")){
+            String[] arr = vo.getShiiyanType().split(",");
+            vo.setShiiyanTypeArray(arr);
+        }
         return vo;
         return vo;
     }
     }
 
 
@@ -423,7 +459,4 @@ public class ItdmXMJLQueryListVO {
 
 
         return  itdmTestPlan;
         return  itdmTestPlan;
     }
     }
-
-
-
 }
 }