检测计划相关功能代码
This commit is contained in:
@@ -1,17 +1,27 @@
|
||||
package com.njcn.gather.plan.controller;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.LogUtil;
|
||||
import com.njcn.gather.device.pojo.enums.CommonEnum;
|
||||
import com.njcn.gather.device.pojo.param.PqDevParam;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.device.pojo.vo.PqDevVO;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
import com.njcn.gather.plan.pojo.param.AdPlanParam;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.plan.pojo.vo.AdPlanVO;
|
||||
import com.njcn.gather.plan.service.IAdPlanService;
|
||||
import com.njcn.gather.type.pojo.po.DevType;
|
||||
import com.njcn.gather.type.service.IDevTypeService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import com.njcn.web.utils.FileUtil;
|
||||
import com.njcn.web.utils.HttpResultUtil;
|
||||
@@ -28,6 +38,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@@ -42,15 +53,17 @@ import java.util.Map;
|
||||
public class AdPlanController extends BaseController {
|
||||
|
||||
private final IAdPlanService adPlanService;
|
||||
private final IPqDevService pqDevService;
|
||||
private final IDevTypeService devTypeService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/list")
|
||||
@ApiOperation("分页查询检测计划")
|
||||
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
|
||||
public HttpResult<Page<AdPlanVO>> list(@RequestBody @Validated AdPlanParam.QueryParam queryParam) {
|
||||
public HttpResult<List<AdPlanVO>> list(@RequestBody @Validated AdPlanParam.QueryParam queryParam) {
|
||||
String methodDescribe = getMethodDescribe("list");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
|
||||
Page<AdPlanVO> result = adPlanService.listAdPlan(queryParam);
|
||||
List<AdPlanVO> result = adPlanService.listAdPlan(queryParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -77,6 +90,7 @@ public class AdPlanController extends BaseController {
|
||||
String methodDescribe = getMethodDescribe("update");
|
||||
LogUtil.njcnDebug(log, "{},修改数据为:{}", methodDescribe, updateParam);
|
||||
boolean result = adPlanService.updateAdPlan(updateParam);
|
||||
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
@@ -87,11 +101,11 @@ public class AdPlanController extends BaseController {
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
|
||||
@PostMapping("/delete")
|
||||
@ApiOperation("删除检测计划")
|
||||
@ApiImplicitParam(name = "ids", value = "检测计划id", required = true)
|
||||
public HttpResult<Boolean> delete(@RequestBody List<String> ids) {
|
||||
@ApiImplicitParam(name = "ids", value = "计划id列表", required = true)
|
||||
public HttpResult<Boolean> delete(@RequestBody List<String> ids, @RequestParam("pattern") String pattern) {
|
||||
String methodDescribe = getMethodDescribe("delete");
|
||||
LogUtil.njcnDebug(log, "{},删除ID数据为:{}", methodDescribe, String.join(StrUtil.COMMA, ids));
|
||||
boolean result = adPlanService.deleteAdPlan(ids);
|
||||
LogUtil.njcnDebug(log, "{},删除ID数据为:{}", methodDescribe, String.join(StrUtil.COMMA, ids), pattern);
|
||||
boolean result = adPlanService.deleteAdPlan(ids, pattern);
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
@@ -146,7 +160,7 @@ public class AdPlanController extends BaseController {
|
||||
boolean result = adPlanService.importPlan(file, patternId, response);
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
}else{
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -172,19 +186,178 @@ public class AdPlanController extends BaseController {
|
||||
adPlanService.analyse(ids);
|
||||
}
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/splitPlan")
|
||||
@ApiOperation("拆分检测计划")
|
||||
@ApiImplicitParam(name = "param", value = "检测计划", required = true)
|
||||
public HttpResult<Boolean> splitPlan(@RequestBody @Validated AdPlanParam.SplitParam param) {
|
||||
String methodDescribe = getMethodDescribe("splitPlan");
|
||||
LogUtil.njcnDebug(log, "{},拆分数据为:{}", methodDescribe, param);
|
||||
boolean result = adPlanService.splitPlan(param);
|
||||
@PostMapping("/listByPlanId")
|
||||
@ApiOperation("查询出所有已绑定的设备")
|
||||
@ApiImplicitParam(name = "planId", value = "计划id", required = true)
|
||||
public HttpResult<List<PqDevVO>> listByPlanId(@RequestBody @Validated PqDevParam.QueryParam param) {
|
||||
String methodDescribe = getMethodDescribe("listByPlanId");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
|
||||
|
||||
AdPlan plan = adPlanService.getById(param.getPlanIdList().get(0));
|
||||
if (CommonEnum.FATHER_ID.getValue().equals(plan.getFatherPlanId())) {
|
||||
List<AdPlan> planList = adPlanService.lambdaQuery().eq(AdPlan::getFatherPlanId, param.getPlanIdList().get(0)).list();
|
||||
List<String> planIdList = planList.stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||
param.getPlanIdList().addAll(planIdList);
|
||||
}
|
||||
List<PqDevVO> pqDevVOList = pqDevService.listByPlanId(param);
|
||||
List<AdPlan> planList = adPlanService.listByIds(param.getPlanIdList());
|
||||
|
||||
pqDevVOList.forEach(pqDevVO -> {
|
||||
DevType devType = devTypeService.getById(pqDevVO.getDevType());
|
||||
if (ObjectUtil.isNotNull(devType)) {
|
||||
pqDevVO.setDevType(devType.getName());
|
||||
pqDevVO.setDevVolt(devType.getDevVolt());
|
||||
pqDevVO.setDevCurr(devType.getDevCurr());
|
||||
pqDevVO.setDevChns(devType.getDevChns());
|
||||
}
|
||||
if (StrUtil.isNotBlank(pqDevVO.getPlanId())) {
|
||||
AdPlan plan1 = planList.stream().filter(p -> p.getId().equals(pqDevVO.getPlanId())).findFirst().get();
|
||||
if (ObjectUtil.isNotNull(plan1) && plan.getId().equals(plan1.getFatherPlanId())) {
|
||||
pqDevVO.setBoundPlanName(plan1.getName());
|
||||
pqDevVO.setAssign(DataStateEnum.ENABLE.getCode());
|
||||
} else {
|
||||
pqDevVO.setAssign(DataStateEnum.DELETED.getCode());
|
||||
}
|
||||
} else {
|
||||
pqDevVO.setAssign(DataStateEnum.DELETED.getCode());
|
||||
}
|
||||
});
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqDevVOList, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/listDevByPlanId")
|
||||
@ApiOperation("根据计划id分页查询被检设备")
|
||||
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
|
||||
public HttpResult<Page<PqDevVO>> listDevByPlanId(@RequestBody @Validated PqDevParam.QueryParam param) {
|
||||
String methodDescribe = getMethodDescribe("listDevByPlanId");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
|
||||
|
||||
AdPlan plan = adPlanService.getById(param.getPlanIdList().get(0));
|
||||
if (CommonEnum.FATHER_ID.getValue().equals(plan.getFatherPlanId())) {
|
||||
List<AdPlan> planList = adPlanService.lambdaQuery().eq(AdPlan::getFatherPlanId, param.getPlanIdList().get(0)).list();
|
||||
List<String> planIdList = planList.stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||
param.getPlanIdList().addAll(planIdList);
|
||||
}
|
||||
Page<PqDevVO> pqDevVOPage = pqDevService.listPqDevs(param);
|
||||
|
||||
List<AdPlan> planList = adPlanService.listByIds(param.getPlanIdList());
|
||||
for (PqDevVO pqDevVO : pqDevVOPage.getRecords()) {
|
||||
if (StrUtil.isNotBlank(pqDevVO.getPlanId())) {
|
||||
AdPlan plan1 = planList.stream().filter(p -> p.getId().equals(pqDevVO.getPlanId())).findFirst().get();
|
||||
if (!ObjectUtil.isNotNull(plan1) && plan.getId().equals(plan1.getFatherPlanId())) {
|
||||
pqDevVO.setBoundPlanName(plan1.getName());
|
||||
pqDevVO.setAssign(DataStateEnum.ENABLE.getCode());
|
||||
} else {
|
||||
pqDevVO.setAssign(DataStateEnum.DELETED.getCode());
|
||||
}
|
||||
} else {
|
||||
pqDevVO.setAssign(DataStateEnum.DELETED.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqDevVOPage, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
|
||||
@GetMapping("/updateSubPlanName")
|
||||
@ApiOperation("修改子计划名称")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "planId", value = "计划id", required = true),
|
||||
@ApiImplicitParam(name = "name", value = "计划名称", required = true)
|
||||
})
|
||||
public HttpResult<Boolean> updateSubPlanName(@RequestParam("planId") String planId, @RequestParam("name") String name) {
|
||||
String methodDescribe = getMethodDescribe("updateSubPlanName");
|
||||
LogUtil.njcnDebug(log, "{},修改数据为:{}", methodDescribe, planId, name);
|
||||
boolean result = adPlanService.updateSubPlanName(planId, name);
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@GetMapping("/getUnBoundStandardDev")
|
||||
@ApiOperation("根据父计划ID获取未被子计划绑定的标准设备")
|
||||
@ApiImplicitParam(name = "fatherPlanId", value = "父计划ID", required = true)
|
||||
public HttpResult<List<PqStandardDev>> getUnBoundStandardDev(@RequestParam("fatherPlanId") String fatherPlanId) {
|
||||
String methodDescribe = getMethodDescribe("getUnBoundStandardDev");
|
||||
LogUtil.njcnDebug(log, "{},父计划ID为:{}", methodDescribe, fatherPlanId);
|
||||
List<PqStandardDev> result = adPlanService.getUnBoundStandardDev(fatherPlanId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@GetMapping("/getBoundStandardDev")
|
||||
@ApiOperation("根据计划ID获取已绑定的标准设备")
|
||||
@ApiImplicitParam(name = "planId", value = "计划ID", required = true)
|
||||
public HttpResult<List<PqStandardDev>> getBoundStandardDev(@RequestParam("planId") String planId) {
|
||||
String methodDescribe = getMethodDescribe("getUnBoundStandardDev");
|
||||
LogUtil.njcnDebug(log, "{},计划ID为:{}", methodDescribe, planId);
|
||||
List<PqStandardDev> result = adPlanService.getBoundStandardDev(planId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/updateBindStandardDev")
|
||||
@ApiOperation("子计划绑定/解绑标准设备")
|
||||
@ApiImplicitParam(name = "param", value = "绑定/解绑参数", required = true)
|
||||
public HttpResult<Boolean> updateBindStandardDev(@RequestBody @Validated PqDevParam.BindPlanParam param) {
|
||||
String methodDescribe = getMethodDescribe("updateBindStandardDev");
|
||||
LogUtil.njcnDebug(log, "{},绑定/解绑参数为:{}", methodDescribe, param);
|
||||
|
||||
boolean result = adPlanService.updateBindStandardDev(param.getPlanId(), param.getDevIds());
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/updateBindDev")
|
||||
@ApiOperation("子计划绑定/解绑被检设备")
|
||||
@ApiImplicitParam(name = "param", value = "绑定/解绑参数", required = true)
|
||||
public HttpResult<Boolean> updateBindDev(@RequestBody @Validated PqDevParam.BindPlanParam param) {
|
||||
String methodDescribe = getMethodDescribe("updateBindDev");
|
||||
LogUtil.njcnDebug(log, "{},绑定/解绑参数为:{}", methodDescribe, param);
|
||||
|
||||
boolean result = adPlanService.updateBindDev(param.getPlanId(), param.getDevIds());
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
|
||||
// @PostMapping("/deleteSubPlan")
|
||||
// @ApiOperation("删除子计划")
|
||||
// @ApiImplicitParam(name = "ids", value = "子计划id列表", required = true)
|
||||
// public HttpResult<Boolean> deleteSubPlan(@RequestBody List<String> ids) {
|
||||
// String methodDescribe = getMethodDescribe("deleteSubPlan");
|
||||
// LogUtil.njcnDebug(log, "{},删除ID数据为:{}", methodDescribe, String.join(StrUtil.COMMA, ids));
|
||||
// boolean result = adPlanService.deleteAdPlan(ids);
|
||||
// if (result) {
|
||||
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
// } else {
|
||||
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
// }
|
||||
// }
|
||||
|
||||
@OperateInfo(operateType = OperateType.DOWNLOAD)
|
||||
@PostMapping("/exportSubPlan")
|
||||
@ApiOperation("导出子计划")
|
||||
@ApiImplicitParam(name = "planId", value = "子计划id", required = true)
|
||||
public void exportSubPlan(@RequestParam("planId") String planId, HttpServletResponse response) {
|
||||
String methodDescribe = getMethodDescribe("exportSubPlan");
|
||||
LogUtil.njcnDebug(log, "{},导出ID数据为:{}", methodDescribe, planId);
|
||||
adPlanService.exportSubPlan(planId, response);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.gather.plan.mapper;
|
||||
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @date 2025-07-16
|
||||
*/
|
||||
public interface AdPlanStandardDevMapper extends MPJBaseMapper<AdPlanStandardDev> {
|
||||
|
||||
/**
|
||||
* 根据计划id查询标准设备列表
|
||||
*
|
||||
* @param planIdList
|
||||
* @return
|
||||
*/
|
||||
List<PqStandardDev> listByPlanId(@Param("planIdList") List<String> planIdList);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.gather.plan.mapper.AdPlanStandardDevMapper">
|
||||
|
||||
|
||||
<select id="listByPlanId" resultType="com.njcn.gather.device.pojo.po.PqStandardDev">
|
||||
select standard_dev.*
|
||||
from ad_plan_standard_dev plan_std_dev left join pq_standard_dev standard_dev on plan_std_dev.Standard_Dev_Id = standard_dev.Id
|
||||
<if test="planIdList!= null and planIdList.size() != 0">
|
||||
where plan_std_dev.Plan_Id in
|
||||
<foreach collection="planIdList" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -27,12 +27,7 @@ public class AdPlanParam {
|
||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PATTERN_FORMAT_ERROR)
|
||||
private String pattern;
|
||||
|
||||
// @ApiModelProperty(value = "父计划ID")
|
||||
// @Pattern(regexp = PatternRegex.SYSTEM_ID, message = DeviceValidMessage.PATTERN_FORMAT_ERROR)
|
||||
// private String fatherPlanId;
|
||||
|
||||
@ApiModelProperty(value = "检测源ID列表", required = true)
|
||||
@NotEmpty(message = DetectionValidMessage.SOURCE_IDS_NOT_EMPTY)
|
||||
private List<@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SOURCE_ID_FORMAT_ERROR) String> sourceIds;
|
||||
|
||||
@ApiModelProperty(value = "数据源ID列表", required = true)
|
||||
@@ -40,8 +35,6 @@ public class AdPlanParam {
|
||||
private List<String> datasourceIds;
|
||||
|
||||
@ApiModelProperty(value = "检测脚本ID", required = true)
|
||||
@NotBlank(message = DetectionValidMessage.SCRIPT_ID_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SCRIPT_ID_FORMAT_ERROR)
|
||||
private String scriptId;
|
||||
|
||||
@ApiModelProperty(value = "误差体系ID", required = true)
|
||||
@@ -56,7 +49,6 @@ public class AdPlanParam {
|
||||
private Integer timeCheck;
|
||||
|
||||
@ApiModelProperty("被检设备ID列表")
|
||||
@NotNull(message = DetectionValidMessage.PQ_DEV_IDS_NOT_NULL)
|
||||
private List<String> devIds;
|
||||
|
||||
@ApiModelProperty(value = "是否关联报告")
|
||||
@@ -70,6 +62,16 @@ public class AdPlanParam {
|
||||
@NotBlank(message = DetectionValidMessage.DATA_RULE_NOT_BLANK)
|
||||
private String dataRule;
|
||||
|
||||
@ApiModelProperty(value = "父计划ID")
|
||||
private String fatherPlanId;
|
||||
|
||||
@ApiModelProperty(value = "标准设备ID列表")
|
||||
private List<String> standardDevIds;
|
||||
|
||||
@ApiModelProperty(value = "测试项ID列表")
|
||||
private List<@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SOURCE_ID_FORMAT_ERROR)String> testItems;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询实体
|
||||
*/
|
||||
@@ -117,15 +119,4 @@ public class AdPlanParam {
|
||||
private String planId;
|
||||
private List<String> devIds;
|
||||
}
|
||||
|
||||
@Data
|
||||
public class SplitParam {
|
||||
@ApiModelProperty(value = "id", required = true)
|
||||
@NotBlank(message = DetectionValidMessage.ID_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PID_FORMAT_ERROR)
|
||||
private String pId;
|
||||
|
||||
@ApiModelProperty(value = "拆分后的计划", required = true)
|
||||
private List<AdPlanParam> splitPlans;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,14 +90,25 @@ public class AdPlan extends BaseEntity implements Serializable {
|
||||
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||
private String reportTemplateId;
|
||||
|
||||
/**
|
||||
* 数据处理原则。任意值、部分值、所有值、cp95值、平均值
|
||||
*/
|
||||
private String dataRule;
|
||||
|
||||
/**
|
||||
* 状态:0-删除 1-正常
|
||||
*/
|
||||
private Integer state;
|
||||
|
||||
|
||||
/**
|
||||
* 数据处理原则。任意值、部分值、所有值、cp95值、平均值
|
||||
* 检测项ID,中间使用英文逗号分割
|
||||
*/
|
||||
private String dataRule;
|
||||
private String testItem;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String origin;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.njcn.gather.plan.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @date 2025-07-16
|
||||
*/
|
||||
@Data
|
||||
@TableName("ad_plan_standard_dev")
|
||||
public class AdPlanStandardDev implements Serializable {
|
||||
private static final long serialVersionUID = 153286652772158825L;
|
||||
/**
|
||||
* 检测计划id
|
||||
*/
|
||||
private String planId;
|
||||
|
||||
/**
|
||||
* 标准设备id
|
||||
*/
|
||||
private String standardDevId;
|
||||
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class AdPlanExcel {
|
||||
@NotNull(message = DetectionValidMessage.TIMECHECK_NOT_NULL)
|
||||
private Integer timeCheck;
|
||||
|
||||
@Excel(name = "关联报告模版*", width = 20, replace = {"否_0", "是_1"}, needMerge = true, orderNum = "7")
|
||||
@Excel(name = "关联报告模板*", width = 20, replace = {"否_0", "是_1"}, needMerge = true, orderNum = "7")
|
||||
@NotNull(message = DetectionValidMessage.ASSOCIATE_REPORT_NOT_NULL)
|
||||
private Integer associateReport;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.gather.plan.pojo.vo;
|
||||
|
||||
import com.njcn.gather.device.pojo.vo.PqDevVO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -118,4 +119,34 @@ public class AdPlanVO {
|
||||
* 检测进度
|
||||
*/
|
||||
private Float progress;
|
||||
|
||||
/**
|
||||
* 标准设备ID列表
|
||||
*/
|
||||
private List<String> standardDevIds;
|
||||
|
||||
/**
|
||||
* 标准设备名称
|
||||
*/
|
||||
private String standardDevNameStr;
|
||||
|
||||
/**
|
||||
* 测试项id列表
|
||||
*/
|
||||
private List<String> testItems;
|
||||
|
||||
/**
|
||||
* 测试项name列表
|
||||
*/
|
||||
private String testItemNameStr;
|
||||
|
||||
/**
|
||||
* 计划绑定的被检设备列表
|
||||
*/
|
||||
private List<PqDevVO> pqDevVOList;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String origin;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.njcn.gather.plan.pojo.vo;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @data 2025-07-16
|
||||
*/
|
||||
@Data
|
||||
public class ContrastPlanExcel {
|
||||
|
||||
private String id;
|
||||
|
||||
@Excel(name = "名称*", width = 30, orderNum = "1")
|
||||
private String name;
|
||||
|
||||
@Excel(name = "标准设备*", width = 50, orderNum = "2")
|
||||
private String standardDev;
|
||||
|
||||
@Excel(name = "数据源*", width = 50, orderNum = "3")
|
||||
private String datasourceId;
|
||||
|
||||
@Excel(name = "检测项*", width = 50, orderNum = "4")
|
||||
private String testItem;
|
||||
|
||||
@Excel(name = "误差体系*", width = 50, orderNum = "5")
|
||||
private String errorSysId;
|
||||
|
||||
@Excel(name = "数据处理原则*", width = 20, orderNum = "6")
|
||||
private String dataRule;
|
||||
|
||||
@Excel(name = "是否做守时检测*", width = 30, orderNum = "7")
|
||||
private Integer timeCheck;
|
||||
|
||||
@Excel(name = "关联报告模板*", width = 30, orderNum = "8", replace = {"否_0", "是_1"})
|
||||
private Integer associateReport;
|
||||
|
||||
@Excel(name = "报告模版(当关联报告模版为是时必填)", width = 40, orderNum = "9")
|
||||
private String reportTemplateId;
|
||||
}
|
||||
@@ -2,6 +2,8 @@ package com.njcn.gather.plan.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.gather.device.pojo.param.PqDevParam;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.plan.pojo.param.AdPlanParam;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.plan.pojo.vo.AdPlanExcel;
|
||||
@@ -24,7 +26,7 @@ public interface IAdPlanService extends IService<AdPlan> {
|
||||
* @param queryParam 分页查询参数
|
||||
* @return 分页查询结果
|
||||
*/
|
||||
Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam);
|
||||
List<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 新增检测计划
|
||||
@@ -46,9 +48,11 @@ public interface IAdPlanService extends IService<AdPlan> {
|
||||
* 删除检测计划
|
||||
*
|
||||
* @param ids 检测计划id列表
|
||||
* @param pattern 模式Id
|
||||
*
|
||||
* @return 删除成功则返回true,否则返回false
|
||||
*/
|
||||
boolean deleteAdPlan(List<String> ids);
|
||||
boolean deleteAdPlan(List<String> ids,String pattern);
|
||||
|
||||
/**
|
||||
* 根据模式查询检测计划
|
||||
@@ -125,11 +129,56 @@ public interface IAdPlanService extends IService<AdPlan> {
|
||||
*/
|
||||
boolean importPlan(MultipartFile file, String patternId, HttpServletResponse response);
|
||||
|
||||
|
||||
/**
|
||||
* 拆分计划
|
||||
* 根据父计划Id获取未被子计划绑定的标准设备
|
||||
*
|
||||
* @param param
|
||||
* @param fatherPlanId
|
||||
* @return
|
||||
*/
|
||||
boolean splitPlan(AdPlanParam.SplitParam param);
|
||||
List<PqStandardDev> getUnBoundStandardDev(String fatherPlanId);
|
||||
|
||||
/**
|
||||
* 根据计划Id获取已绑定标准设备
|
||||
*
|
||||
* @param planId
|
||||
* @return
|
||||
*/
|
||||
List<PqStandardDev> getBoundStandardDev(String planId);
|
||||
|
||||
/**
|
||||
* 修改子计划名称
|
||||
*
|
||||
* @param planId
|
||||
* @param name
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
boolean updateSubPlanName(String planId, String name);
|
||||
|
||||
/**
|
||||
* 子计划绑定/解绑被检设备
|
||||
*
|
||||
* @param planId
|
||||
* @param pqDevIds
|
||||
* @return
|
||||
*/
|
||||
boolean updateBindDev(String planId, List<String> pqDevIds);
|
||||
|
||||
/**
|
||||
* 子计划绑定/解绑标准设备
|
||||
*
|
||||
* @param planId
|
||||
* @param standardDevIds
|
||||
* @return
|
||||
*/
|
||||
boolean updateBindStandardDev(String planId, List<String> standardDevIds);
|
||||
|
||||
/**
|
||||
* 根据计划Id导出子计划数据
|
||||
*
|
||||
* @param planId
|
||||
* @param response
|
||||
*/
|
||||
void exportSubPlan(String planId, HttpServletResponse response);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.njcn.gather.plan.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @date 2025-07-16
|
||||
*/
|
||||
public interface IAdPlanStandardDevService extends IService<AdPlanStandardDev> {
|
||||
|
||||
|
||||
/**
|
||||
* 添加检测计划-标准设备关联关系
|
||||
*
|
||||
* @param planId
|
||||
* @param standardDevIds
|
||||
* @return
|
||||
*/
|
||||
boolean addAdPlanStandardDev(String planId, List<String> standardDevIds);
|
||||
|
||||
/**
|
||||
* 修改检测计划-标准设备关联关系
|
||||
*
|
||||
* @param planId
|
||||
* @param standardDevIds
|
||||
* @return
|
||||
*/
|
||||
boolean updateAdPlanStandardDev(String planId, List<String> standardDevIds);
|
||||
|
||||
/**
|
||||
* 删除检测计划-标准设备关联关系
|
||||
*
|
||||
* @param planIds
|
||||
* @return
|
||||
*/
|
||||
boolean deleteAdPlanStandardDev(List<String> planIds);
|
||||
|
||||
/**
|
||||
* 删除检测计划-标准设备关联关系
|
||||
*
|
||||
* @param planId
|
||||
* @param standardDevIds
|
||||
* @return
|
||||
*/
|
||||
boolean deleteAdPlanStandardDev(String planId, List<String> standardDevIds);
|
||||
|
||||
/**
|
||||
* 根据检测计划id获取标准设备名称字符串
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
String getStandardDevNameStrByPlanId(String id);
|
||||
|
||||
/**
|
||||
* 根据检测计划id获取关联关系
|
||||
*
|
||||
* @param planIds
|
||||
* @return
|
||||
*/
|
||||
List<AdPlanStandardDev> listByPlanId(List<String> planIds);
|
||||
}
|
||||
@@ -6,13 +6,13 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
@@ -22,7 +22,9 @@ import com.njcn.gather.device.pojo.enums.*;
|
||||
import com.njcn.gather.device.pojo.param.PqDevParam;
|
||||
import com.njcn.gather.device.pojo.po.PqDev;
|
||||
import com.njcn.gather.device.pojo.po.PqDevSub;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.device.pojo.vo.CNDevExcel;
|
||||
import com.njcn.gather.device.pojo.vo.ContrastDevExcel;
|
||||
import com.njcn.gather.device.pojo.vo.PqDevVO;
|
||||
import com.njcn.gather.device.pojo.vo.ProvinceDevExcel;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
@@ -30,15 +32,19 @@ import com.njcn.gather.device.service.IPqDevSubService;
|
||||
import com.njcn.gather.err.pojo.po.PqErrSys;
|
||||
import com.njcn.gather.err.service.IPqErrSysService;
|
||||
import com.njcn.gather.plan.mapper.AdPlanMapper;
|
||||
import com.njcn.gather.plan.mapper.AdPlanStandardDevMapper;
|
||||
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
|
||||
import com.njcn.gather.plan.pojo.enums.PlanReportStateEnum;
|
||||
import com.njcn.gather.plan.pojo.param.AdPlanParam;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
|
||||
import com.njcn.gather.plan.pojo.vo.AdPlanVO;
|
||||
import com.njcn.gather.plan.pojo.vo.CNPlanExcel;
|
||||
import com.njcn.gather.plan.pojo.vo.ContrastPlanExcel;
|
||||
import com.njcn.gather.plan.pojo.vo.ProvincePlanExcel;
|
||||
import com.njcn.gather.plan.service.IAdPlanService;
|
||||
import com.njcn.gather.plan.service.IAdPlanSourceService;
|
||||
import com.njcn.gather.plan.service.IAdPlanStandardDevService;
|
||||
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.report.pojo.po.PqReport;
|
||||
import com.njcn.gather.script.pojo.po.PqScript;
|
||||
@@ -61,7 +67,6 @@ import com.njcn.gather.system.dictionary.service.IDictTreeService;
|
||||
import com.njcn.gather.system.dictionary.service.IDictTypeService;
|
||||
import com.njcn.gather.type.pojo.po.DevType;
|
||||
import com.njcn.gather.type.service.IDevTypeService;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import com.njcn.web.utils.ExcelUtil;
|
||||
import com.njcn.web.utils.HttpServletUtil;
|
||||
import com.njcn.web.utils.PoiUtil;
|
||||
@@ -109,63 +114,107 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
private final AdHarmonicService adHarmonicService;
|
||||
private final PqDevMapper pqDevMapper;
|
||||
private final IPqDevSubService pqDevSubService;
|
||||
private final IAdPlanStandardDevService adPlanStandardDevService;
|
||||
private final AdPlanStandardDevMapper adPlanStandardDevMapper;
|
||||
private final IAdPlanStandardDevService adPlanContrastStandardDevService;
|
||||
|
||||
@Override
|
||||
public Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) {
|
||||
Page<AdPlan> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), this.getQueryWrapper(queryParam));
|
||||
List<AdPlan> adPlans = page1.getRecords();
|
||||
List<AdPlanVO> adPlanVOList = adPlans.stream().map(adPlan -> {
|
||||
public List<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) {
|
||||
// Page<AdPlan> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), );
|
||||
// List<AdPlan> adPlans = page1.getRecords();
|
||||
// List<AdPlanVO> adPlanVOList = adPlans.stream().map(adPlan -> {
|
||||
// AdPlanVO adPlanVO = new AdPlanVO();
|
||||
// BeanUtil.copyProperties(adPlan, adPlanVO);
|
||||
// this.setAdPlanVO(adPlanVO, adPlan);
|
||||
// return adPlanVO;
|
||||
// }).collect(Collectors.toList());
|
||||
//
|
||||
// Page<AdPlanVO> page2 = new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam));
|
||||
// page2.setTotal(page1.getTotal());
|
||||
// page2.setOrders(page1.orders());
|
||||
// page2.setPages(page1.getPages());
|
||||
// page2.setRecords(adPlanVOList);
|
||||
List<AdPlan> adPlanList = this.list(this.getQueryWrapper(queryParam));
|
||||
List<AdPlanVO> planVOList = adPlanList.stream().map(adPlan -> {
|
||||
AdPlanVO adPlanVO = new AdPlanVO();
|
||||
BeanUtil.copyProperties(adPlan, adPlanVO);
|
||||
adPlanVO.setCreateTime(adPlanVO.getCreateTime().replace("T", " "));
|
||||
adPlanVO.setDatasourceIds(Arrays.asList(adPlan.getDatasourceId().split(StrUtil.COMMA)));
|
||||
if (StrUtil.isNotBlank(adPlan.getReportTemplateId())) {
|
||||
PqReport report = this.baseMapper.getPqReportById(adPlan.getReportTemplateId());
|
||||
adPlanVO.setReportTemplateName(report.getName() + "_" + report.getVersion());
|
||||
}
|
||||
adPlanVO.setScriptName(pqScriptService.getPqScriptById(adPlanVO.getScriptId()).getName());
|
||||
adPlanVO.setErrorSysName(pqErrSysService.getPqErrSysById(adPlanVO.getErrorSysId()).getName());
|
||||
|
||||
List<PqSource> pqSourceList = adPlanSourceService.listPqSourceByPlanId(adPlanVO.getId());
|
||||
adPlanVO.setSourceIds(pqSourceList.stream().map(PqSource::getId).collect(Collectors.toList()));
|
||||
adPlanVO.setSourceName(pqSourceList.stream().map(PqSource::getName).collect(Collectors.toList()));
|
||||
|
||||
PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam();
|
||||
queryParam1.setPlanId(adPlanVO.getId());
|
||||
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1);
|
||||
if (CollUtil.isNotEmpty(pqDevVOList)) {
|
||||
long count = pqDevVOList.stream().filter(pqDev -> CheckStateEnum.CHECKED.getValue().equals(pqDev.getCheckState())).count();
|
||||
adPlanVO.setProgress((float) count / pqDevVOList.size());
|
||||
} else {
|
||||
adPlanVO.setProgress(0.0f);
|
||||
}
|
||||
|
||||
this.setAdPlanVO(adPlanVO, adPlan);
|
||||
return adPlanVO;
|
||||
}).collect(Collectors.toList());
|
||||
return planVOList;
|
||||
}
|
||||
|
||||
Page<AdPlanVO> page2 = new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam));
|
||||
page2.setTotal(page1.getTotal());
|
||||
page2.setOrders(page1.orders());
|
||||
page2.setPages(page1.getPages());
|
||||
page2.setRecords(adPlanVOList);
|
||||
return page2;
|
||||
private void setAdPlanVO(AdPlanVO adPlanVO, AdPlan adPlan) {
|
||||
adPlanVO.setCreateTime(adPlanVO.getCreateTime().replace("T", " "));
|
||||
adPlanVO.setDatasourceIds(Arrays.asList(adPlan.getDatasourceId().split(StrUtil.COMMA)));
|
||||
if (StrUtil.isNotBlank(adPlan.getReportTemplateId())) {
|
||||
PqReport report = this.baseMapper.getPqReportById(adPlan.getReportTemplateId());
|
||||
adPlanVO.setReportTemplateName(report.getName() + "_" + report.getVersion());
|
||||
}
|
||||
if (StrUtil.isNotBlank(adPlanVO.getScriptId())) {
|
||||
adPlanVO.setScriptName(pqScriptService.getPqScriptById(adPlanVO.getScriptId()).getName());
|
||||
}
|
||||
adPlanVO.setErrorSysName(pqErrSysService.getPqErrSysById(adPlanVO.getErrorSysId()).getName());
|
||||
|
||||
List<PqSource> pqSourceList = adPlanSourceService.listPqSourceByPlanId(adPlanVO.getId());
|
||||
adPlanVO.setSourceIds(pqSourceList.stream().map(PqSource::getId).collect(Collectors.toList()));
|
||||
adPlanVO.setSourceName(pqSourceList.stream().map(PqSource::getName).collect(Collectors.toList()));
|
||||
|
||||
PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam();
|
||||
queryParam1.setPlanIdList(Arrays.asList(adPlan.getId()));
|
||||
|
||||
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1);
|
||||
if (CollUtil.isNotEmpty(pqDevVOList)) {
|
||||
long count = pqDevVOList.stream().filter(pqDev -> CheckStateEnum.CHECKED.getValue().equals(pqDev.getCheckState())).count();
|
||||
adPlanVO.setProgress((float) count / pqDevVOList.size());
|
||||
} else {
|
||||
adPlanVO.setProgress(0.0f);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(adPlan.getTestItem())) {
|
||||
adPlanVO.setTestItems(Arrays.asList(adPlan.getTestItem().split(StrUtil.COMMA)));
|
||||
List<DictTree> dictTreeList = dictTreeService.listByIds(adPlanVO.getTestItems());
|
||||
adPlanVO.setTestItemNameStr(dictTreeList.stream().map(DictTree::getName).reduce((a, b) -> a + "," + b).orElse(""));
|
||||
}
|
||||
|
||||
List<String> planIdList = new ArrayList<>();
|
||||
planIdList.add(adPlan.getId());
|
||||
if (CommonEnum.FATHER_ID.getValue().equals(adPlan.getFatherPlanId())) {
|
||||
List<AdPlan> childrenPlan = this.lambdaQuery().eq(AdPlan::getFatherPlanId, adPlan.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
List<String> childrenPlanIds = childrenPlan.stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||
planIdList.addAll(childrenPlanIds);
|
||||
}
|
||||
List<PqStandardDev> pqStandardDevs = adPlanStandardDevMapper.listByPlanId(planIdList);
|
||||
adPlanVO.setStandardDevIds(pqStandardDevs.stream().map(PqStandardDev::getId).collect(Collectors.toList()));
|
||||
adPlanVO.setStandardDevNameStr(pqStandardDevs.stream().map(PqStandardDev::getName).reduce((a, b) -> a + "," + b).orElse(""));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean addAdPlan(AdPlanParam param) {
|
||||
this.checkRepeat(param, false);
|
||||
param.setName(param.getName().trim());
|
||||
this.checkRepeat(param, false, CommonEnum.FATHER_ID.getValue());
|
||||
AdPlan adPlan = new AdPlan();
|
||||
BeanUtil.copyProperties(param, adPlan);
|
||||
adPlan.setName(param.getName().trim());
|
||||
|
||||
String planId = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
adPlan.setId(planId);
|
||||
adPlan.setDatasourceId(String.join(StrUtil.COMMA, param.getDatasourceIds()));
|
||||
|
||||
adPlan.setState(DataStateEnum.ENABLE.getCode());
|
||||
|
||||
// 默认为顶级检测计划
|
||||
adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
|
||||
|
||||
|
||||
if (StrUtil.isBlank(param.getFatherPlanId())) {
|
||||
// 默认为顶级检测计划
|
||||
adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
|
||||
} else {
|
||||
AdPlan plan = this.getById(param.getFatherPlanId());
|
||||
adPlan.setFatherPlanId(param.getFatherPlanId());
|
||||
adPlan.setOrigin(plan.getName());
|
||||
}
|
||||
adPlan.setTestState(CheckStateEnum.UNCHECKED.getValue());
|
||||
adPlan.setReportState(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.getValue());
|
||||
adPlan.setResult(CheckResultEnum.UNCHECKED.getValue());
|
||||
@@ -179,9 +228,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
adPlan.setReportTemplateId(reportId);
|
||||
}
|
||||
}
|
||||
|
||||
// 新增检测计划、检测源关联
|
||||
adPlanSourceService.addAdPlanSource(planId, param.getSourceIds());
|
||||
// 绑定被检设备
|
||||
if (ObjectUtil.isNotEmpty(param.getDevIds())) {
|
||||
// 新增时,绑定设备
|
||||
pqDevService.bind(planId, param.getDevIds());
|
||||
@@ -190,10 +237,26 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
pqDevService.updatePqDevTimeCheckResult(param.getDevIds(), TimeCheckResultEnum.UNKNOWN);
|
||||
}
|
||||
|
||||
//新增相关计划
|
||||
//检测项
|
||||
if (CollUtil.isNotEmpty(param.getTestItems())) {
|
||||
adPlan.setTestItem(String.join(StrUtil.COMMA, param.getTestItems()));
|
||||
}
|
||||
this.save(adPlan);
|
||||
tableGenService.deleteTable(Arrays.asList(adPlan.getCode().toString()));
|
||||
tableGenService.genAdNonHarmonicTable(adPlan.getCode().toString());
|
||||
|
||||
DictData dictData = dictDataService.getDictDataById(param.getPattern());
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
// 关联标准设备
|
||||
if (CollUtil.isNotEmpty(param.getStandardDevIds())) {
|
||||
adPlanStandardDevService.deleteAdPlanStandardDev(param.getFatherPlanId(), param.getStandardDevIds());
|
||||
adPlanStandardDevService.addAdPlanStandardDev(planId, param.getStandardDevIds());
|
||||
}
|
||||
} else {
|
||||
// 关联检测源
|
||||
adPlanSourceService.addAdPlanSource(planId, param.getSourceIds());
|
||||
tableGenService.deleteTable(Arrays.asList(adPlan.getCode().toString()));
|
||||
tableGenService.genAdNonHarmonicTable(adPlan.getCode().toString());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -201,7 +264,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
@Transactional
|
||||
public boolean updateAdPlan(AdPlanParam.UpdateParam param) {
|
||||
param.setName(param.getName().trim());
|
||||
this.checkRepeat(param, true);
|
||||
this.checkRepeat(param, true, CommonEnum.FATHER_ID.getValue());
|
||||
AdPlan plan1 = this.getById(param.getId());
|
||||
AdPlan plan2 = new AdPlan();
|
||||
|
||||
@@ -210,11 +273,6 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
String reportTemplateName = param.getReportTemplateName();
|
||||
String[] split = reportTemplateName.split("_");
|
||||
String reportId = this.baseMapper.getReportIdByNameAndVersion(split[0], split[1]);
|
||||
// if (plan1.getTestState() != CheckStateEnum.UNCHECKED.getValue()) {
|
||||
// if (!reportId.equals(plan1.getReportTemplateId())) {
|
||||
// throw new BusinessException(DetectionResponseEnum.CANNOT_CHANGE_REPORT_WHEN_CHECKING);
|
||||
// }
|
||||
// }
|
||||
if (StrUtil.isNotBlank(reportId)) {
|
||||
plan2.setReportTemplateId(reportId);
|
||||
}
|
||||
@@ -230,30 +288,67 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
if (!plan1.getErrorSysId().equals(param.getErrorSysId())) {
|
||||
throw new BusinessException(DetectionResponseEnum.CANNOT_CHANGE_ERROR_SYS_WHEN_CHECKING);
|
||||
}
|
||||
// if (param.getAssociateReport() != null && param.getAssociateReport() != plan1.getAssociateReport()) {
|
||||
// throw new BusinessException(DetectionResponseEnum.CANNOT_CHANGE_REPORT_WHEN_CHECKING);
|
||||
// }
|
||||
}
|
||||
|
||||
BeanUtil.copyProperties(param, plan2);
|
||||
plan2.setDatasourceId(String.join(StrUtil.COMMA, param.getDatasourceIds()));
|
||||
// 修改检测计划、检测源关联
|
||||
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
||||
plan2.setTestState(pqDevService.bind(param.getId(), param.getDevIds()));
|
||||
if (CollUtil.isNotEmpty(param.getTestItems())) {
|
||||
plan2.setTestItem(String.join(StrUtil.COMMA, param.getTestItems()));
|
||||
}
|
||||
|
||||
DictData dictData = dictDataService.getDictDataById(param.getPattern());
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
List<AdPlan> childrenPlan = this.lambdaQuery().eq(AdPlan::getFatherPlanId, param.getId()).list();
|
||||
List<String> childrenPlanIds = childrenPlan.stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||
|
||||
// 修改与标准设备的关联关系
|
||||
List<AdPlanStandardDev> adPlanStandardDevList = adPlanStandardDevService.lambdaQuery().in(CollectionUtil.isNotEmpty(childrenPlanIds), AdPlanStandardDev::getPlanId, childrenPlanIds).list();
|
||||
if (CollUtil.isNotEmpty(adPlanStandardDevList)) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLEASE_UNASSIGN_STANDARD_DEV);
|
||||
}
|
||||
//List<String> standardDevIds = adPlanStandardDevList.stream().map(AdPlanStandardDev::getStandardDevId).collect(Collectors.toList());
|
||||
//param.getStandardDevIds().removeAll(standardDevIds);
|
||||
adPlanStandardDevService.updateAdPlanStandardDev(param.getId(), param.getStandardDevIds());
|
||||
|
||||
// 修改与被检设备的关联关系
|
||||
PqDevParam.QueryParam param1 = new PqDevParam.QueryParam();
|
||||
param1.setPlanIdList(childrenPlanIds);
|
||||
List<PqDevVO> pqDevVOList = pqDevService.listByPlanId(param1);
|
||||
if (CollUtil.isNotEmpty(pqDevVOList)) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLEASE_UNASSIGN_DEVICE);
|
||||
}
|
||||
// List<String> devIds = pqDevVOList.stream().map(PqDevVO::getId).collect(Collectors.toList());
|
||||
// param.getDevIds().removeAll(devIds);
|
||||
plan2.setTestState(pqDevService.bind(param.getId(), param.getDevIds()));
|
||||
} else {
|
||||
// 修改检测计划、检测源关联
|
||||
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
||||
}
|
||||
return this.updateById(plan2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean deleteAdPlan(List<String> ids) {
|
||||
public boolean deleteAdPlan(List<String> ids, String pattern) {
|
||||
DictData dictData = dictDataService.getDictDataById(pattern);
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
List<AdPlan> planList = this.lambdaQuery().in(AdPlan::getFatherPlanId, ids).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
if (CollUtil.isNotEmpty(planList)) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_HAS_CHILDREN);
|
||||
}
|
||||
|
||||
// 删除检测计划、标准设备关联
|
||||
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
|
||||
}
|
||||
|
||||
for (String id : ids) {
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanId(id);
|
||||
queryParam.setPlanIdList(Arrays.asList(id));
|
||||
if (ObjectUtils.isNotEmpty(pqDevService.listByPlanId(queryParam))) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_HAS_DEVICE_BIND);
|
||||
}
|
||||
}
|
||||
|
||||
// 删除检测计划、检测源关联
|
||||
adPlanSourceService.deleteAdPlanSourceByPlanIds(ids);
|
||||
|
||||
@@ -329,6 +424,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
PqReport report = this.baseMapper.getPqReportById(adPlan.getReportTemplateId());
|
||||
adPlan.setReportTemplateId(report.getName() + "_" + report.getVersion());
|
||||
}
|
||||
if (StrUtil.isNotBlank(adPlan.getTestItem())) {
|
||||
String[] split = adPlan.getTestItem().split(StrUtil.COMMA);
|
||||
List<DictTree> dictTreeList = dictTreeService.list(new QueryWrapper<DictTree>().in("id", split).eq("state", DataStateEnum.DELETED.getCode()));
|
||||
String testItemStr = dictTreeList.stream().map(dictTree -> dictTree.getName()).reduce((a, b) -> a + "," + b).orElse("");
|
||||
adPlan.setTestItem(testItemStr);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -419,7 +520,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
}
|
||||
}
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanId(planId);
|
||||
queryParam.setPlanIdList(Arrays.asList(planId));
|
||||
List<PqDevVO> pqDevVOList1 = pqDevMapper.selectByQueryParam(queryParam);
|
||||
List<PqDev> collect = pqDevVOList1.stream().filter(x -> !x.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue())).collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(collect)) {
|
||||
@@ -466,7 +567,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
List<PqDevVO> allDevList = new ArrayList<>();
|
||||
for (AdPlan plan : planList) {
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanId(plan.getId());
|
||||
queryParam.setPlanIdList(Arrays.asList(plan.getId()));
|
||||
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam);
|
||||
pqDevVOList = pqDevVOList.stream().filter(x -> !x.getCheckResult().equals(CheckResultEnum.UNCHECKED.getValue())).collect(Collectors.toList());
|
||||
allDevList.addAll(pqDevVOList);
|
||||
@@ -484,7 +585,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
} else {
|
||||
AdPlan plan = planList.get(0);
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanId(plan.getId());
|
||||
queryParam.setPlanIdList(Arrays.asList(plan.getId()));
|
||||
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam);
|
||||
pqDevVOList = pqDevVOList.stream().filter(x -> !x.getCheckResult().equals(CheckResultEnum.UNCHECKED.getValue())).collect(Collectors.toList());
|
||||
|
||||
@@ -497,22 +598,62 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
|
||||
@Override
|
||||
public void exportPlan(AdPlanParam.QueryParam queryParam) {
|
||||
String currrentScene = sysTestConfigService.getCurrrentScene();
|
||||
SceneEnum sceneEnum = SceneEnum.getSceneEnum(currrentScene);
|
||||
switch (sceneEnum) {
|
||||
case PROVINCE_PLATFORM:
|
||||
this.exportProvincePlan(queryParam);
|
||||
break;
|
||||
case LEAVE_FACTORY_TEST:
|
||||
this.exportCNPlan(queryParam);
|
||||
break;
|
||||
case SELF_TEST:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
DictData dictData = dictDataService.getDictDataById(queryParam.getPatternId());
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
this.exportContrastPlan(queryParam);
|
||||
} else {
|
||||
String currrentScene = sysTestConfigService.getCurrrentScene();
|
||||
SceneEnum sceneEnum = SceneEnum.getSceneEnum(currrentScene);
|
||||
switch (sceneEnum) {
|
||||
case PROVINCE_PLATFORM:
|
||||
this.exportProvincePlan(queryParam);
|
||||
break;
|
||||
case LEAVE_FACTORY_TEST:
|
||||
this.exportCNPlan(queryParam);
|
||||
break;
|
||||
case SELF_TEST:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void exportContrastPlan(AdPlanParam.QueryParam queryParam) {
|
||||
List<AdPlan> planList = this.list(this.getQueryWrapper(queryParam));
|
||||
this.visualize(planList);
|
||||
List<ContrastPlanExcel> planExcelList = BeanUtil.copyToList(planList, ContrastPlanExcel.class);
|
||||
|
||||
List<Map<String, Object>> sheetsList = new ArrayList<>();
|
||||
planExcelList.forEach(plan -> {
|
||||
Map<String, Object> sheet = new HashMap<>();
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setSheetName(plan.getName());
|
||||
sheet.put("title", exportParams);
|
||||
sheet.put("entity", ContrastDevExcel.class);
|
||||
|
||||
PqDevParam.QueryParam param = new PqDevParam.QueryParam();
|
||||
param.setPlanIdList(Arrays.asList(plan.getId()));
|
||||
List<PqDevVO> pqDevVOList = pqDevService.listByPlanId(param);
|
||||
List<ContrastDevExcel> exportContrastDevData = pqDevService.getExportContrastDevData(pqDevVOList);
|
||||
sheet.put("data", exportContrastDevData);
|
||||
sheetsList.add(sheet);
|
||||
|
||||
String standardDevNameStrByPlanId = adPlanContrastStandardDevService.getStandardDevNameStrByPlanId(plan.getId());
|
||||
plan.setStandardDev(standardDevNameStrByPlanId);
|
||||
});
|
||||
|
||||
Map<String, Object> sheet1 = new HashMap<>();
|
||||
ExportParams exportParams1 = new ExportParams();
|
||||
exportParams1.setSheetName("检测计划");
|
||||
sheet1.put("title", exportParams1);
|
||||
sheet1.put("entity", ContrastPlanExcel.class);
|
||||
sheet1.put("data", planExcelList);
|
||||
sheetsList.add(0, sheet1);
|
||||
|
||||
ExcelUtil.exportExcel("检测计划导出数据.xlsx", sheetsList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadTemplate(String patternId) {
|
||||
String currrentScene = sysTestConfigService.getCurrrentScene();
|
||||
@@ -549,8 +690,73 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean splitPlan(AdPlanParam.SplitParam param) {
|
||||
return false;
|
||||
public List<PqStandardDev> getUnBoundStandardDev(String fatherPlanId) {
|
||||
return adPlanStandardDevMapper.listByPlanId(Collections.singletonList(fatherPlanId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PqStandardDev> getBoundStandardDev(String planId) {
|
||||
return adPlanStandardDevMapper.listByPlanId(Collections.singletonList(planId));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean updateSubPlanName(String planId, String name) {
|
||||
AdPlan plan = new AdPlan();
|
||||
plan.setId(planId);
|
||||
plan.setName(name);
|
||||
|
||||
return this.updateById(plan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateBindDev(String planId, List<String> pqDevIds) {
|
||||
List<AdPlan> list = new ArrayList<>();
|
||||
AdPlan plan = this.getById(planId);
|
||||
plan.setTestState(pqDevService.bind(planId, pqDevIds));
|
||||
list.add(plan);
|
||||
|
||||
// 同时修改父计划的绑定
|
||||
AdPlan fatherPlan = this.getById(plan.getFatherPlanId());
|
||||
if (ObjectUtil.isNotNull(fatherPlan)) {
|
||||
fatherPlan.setTestState(pqDevService.bind(fatherPlan.getId(), pqDevIds));
|
||||
list.add(fatherPlan);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean updateBindStandardDev(String planId, List<String> standardDevIds) {
|
||||
// 处理已有的
|
||||
List<AdPlanStandardDev> adPlanStandardDevs = adPlanStandardDevService.listByPlanId(Collections.singletonList(planId));
|
||||
// 同时修改父计划的绑定
|
||||
AdPlan plan = this.getById(planId);
|
||||
|
||||
List<String> standardDevIds1 = adPlanStandardDevs.stream().map(AdPlanStandardDev::getStandardDevId).collect(Collectors.toList());
|
||||
adPlanStandardDevService.addAdPlanStandardDev(plan.getFatherPlanId(), standardDevIds1);
|
||||
adPlanStandardDevService.deleteAdPlanStandardDev(plan.getFatherPlanId(), standardDevIds);
|
||||
|
||||
adPlanStandardDevService.updateAdPlanStandardDev(planId, standardDevIds);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exportSubPlan(String planId, HttpServletResponse response) {
|
||||
// 子计划数据
|
||||
AdPlan subPlan = this.getById(planId);
|
||||
//子计划绑定的标准设备
|
||||
List<PqStandardDev> pqStandardDevs = adPlanStandardDevMapper.listByPlanId(Collections.singletonList(planId));
|
||||
// 子计划绑定的被检设备
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanIdList(Collections.singletonList(planId));
|
||||
|
||||
List<PqDev> pqDevList = pqDevService.list(new QueryWrapper<PqDev>().eq("Plan_Id", planId));
|
||||
List<PqDevSub> pqDevSubList = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(pqDevList)) {
|
||||
pqDevSubList.addAll(pqDevSubService.list(new QueryWrapper<PqDevSub>().in("dev_Id", pqDevList.stream().map(PqDev::getId).collect(Collectors.toList()))));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -567,7 +773,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
planExcelList.get(i).setSource(pqSources.stream().map(PqSource::getName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
|
||||
PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam();
|
||||
queryParam1.setPlanId(planList.get(i).getId());
|
||||
queryParam1.setPlanIdList(Arrays.asList(planList.get(i).getId()));
|
||||
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1);
|
||||
pqDevService.visualizeProvinceDev(pqDevVOList);
|
||||
List<ProvinceDevExcel> deviceExportData = BeanUtil.copyToList(pqDevVOList, ProvinceDevExcel.class);
|
||||
@@ -590,7 +796,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
planExcelList.get(i).setSource(pqSources.stream().map(PqSource::getName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
|
||||
PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam();
|
||||
queryParam1.setPlanId(planList.get(i).getId());
|
||||
queryParam1.setPlanIdList(Arrays.asList(planList.get(i).getId()));
|
||||
List<PqDevVO> pqDevs = pqDevMapper.selectByQueryParam(queryParam1);
|
||||
pqDevService.visualizeCNDev(pqDevs);
|
||||
List<CNDevExcel> deviceExportData = BeanUtil.copyToList(pqDevs, CNDevExcel.class);
|
||||
@@ -642,7 +848,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
AdPlanParam adPlanParam = new AdPlanParam();
|
||||
adPlanParam.setName(planExcel.getName());
|
||||
adPlanParam.setPattern(patternId);
|
||||
checkRepeat(adPlanParam, false);
|
||||
checkRepeat(adPlanParam, false, CommonEnum.FATHER_ID.getValue());
|
||||
|
||||
String planId = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
adPlans.get(i).setId(planId);
|
||||
@@ -722,7 +928,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
AdPlanParam adPlanParam = new AdPlanParam();
|
||||
adPlanParam.setName(planExcel.getName());
|
||||
adPlanParam.setPattern(patternId);
|
||||
checkRepeat(adPlanParam, false);
|
||||
checkRepeat(adPlanParam, false, CommonEnum.FATHER_ID.getValue());
|
||||
|
||||
String planId = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
adPlans.get(i).setId(planId);
|
||||
@@ -938,11 +1144,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
* @param param 计划参数
|
||||
* @param isExcludeSelf 是否排除自己
|
||||
*/
|
||||
private void checkRepeat(AdPlanParam param, boolean isExcludeSelf) {
|
||||
private void checkRepeat(AdPlanParam param, boolean isExcludeSelf, String fatherPlanId) {
|
||||
QueryWrapper<AdPlan> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("state", DataStateEnum.ENABLE.getCode())
|
||||
.eq("Name", param.getName())
|
||||
.eq("Pattern", param.getPattern());
|
||||
.eq("Pattern", param.getPattern())
|
||||
.eq("Father_Plan_Id", fatherPlanId);
|
||||
if (isExcludeSelf) {
|
||||
if (param instanceof AdPlanParam.UpdateParam) {
|
||||
queryWrapper.ne("id", ((AdPlanParam.UpdateParam) param).getId());
|
||||
@@ -950,7 +1157,11 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
}
|
||||
int count = this.count(queryWrapper);
|
||||
if (count > 0) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_REPEATED);
|
||||
if (!CommonEnum.FATHER_ID.getValue().equals(fatherPlanId)) {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_REPEATED_IN_SAME_LEVEL);
|
||||
} else {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_REPEATED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1109,12 +1320,26 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
List<PullDown> pullDowns = new ArrayList<>();
|
||||
|
||||
PullDown pullDown = null;
|
||||
List<Map<String, Object>> maps = pqSourceService.listAllPqSource(patternId);
|
||||
if (ObjectUtil.isNotEmpty(maps)) {
|
||||
DictData dictData = dictDataService.getDictDataById(patternId);
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
|
||||
} else {
|
||||
List<Map<String, Object>> maps = pqSourceService.listAllPqSource(patternId);
|
||||
if (ObjectUtil.isNotEmpty(maps)) {
|
||||
pullDown = new PullDown();
|
||||
pullDown.setFirstCol(1);
|
||||
pullDown.setLastCol(1);
|
||||
pullDown.setStrings(maps.stream().map(m -> (String) m.get("name")).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
|
||||
// 检测脚本
|
||||
List<Map<String, Object>> maps1 = pqScriptService.listAllPqScript(null);
|
||||
List<String> scriptNameList = maps1.stream().map(m -> (String) m.get("name")).collect(Collectors.toList());
|
||||
pullDown = new PullDown();
|
||||
pullDown.setFirstCol(1);
|
||||
pullDown.setLastCol(1);
|
||||
pullDown.setStrings(maps.stream().map(m -> (String) m.get("name")).collect(Collectors.toList()));
|
||||
pullDown.setFirstCol(3);
|
||||
pullDown.setLastCol(3);
|
||||
pullDown.setStrings(scriptNameList);
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
|
||||
@@ -1130,14 +1355,6 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
|
||||
// 检测脚本
|
||||
List<Map<String, Object>> maps1 = pqScriptService.listAllPqScript(null);
|
||||
List<String> scriptNameList = maps1.stream().map(m -> (String) m.get("name")).collect(Collectors.toList());
|
||||
pullDown = new PullDown();
|
||||
pullDown.setFirstCol(3);
|
||||
pullDown.setLastCol(3);
|
||||
pullDown.setStrings(scriptNameList);
|
||||
pullDowns.add(pullDown);
|
||||
// 误差体系
|
||||
List<Map<String, Object>> maps2 = pqErrSysService.listAllPqErrSys();
|
||||
List<String> errSysNameList = maps2.stream().map(m -> (String) m.get("name")).collect(Collectors.toList());
|
||||
@@ -1181,30 +1398,14 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
pullDown.setStrings(strings);
|
||||
pullDowns.add(pullDown);
|
||||
|
||||
// 检测状态
|
||||
// pullDown = new PullDown();
|
||||
// pullDown.setFirstCol(9);
|
||||
// pullDown.setLastCol(9);
|
||||
// pullDown.setStrings(Arrays.asList(CheckStateEnum.UNCHECKED.getMsg(), CheckStateEnum.CHECKING.getMsg(), CheckStateEnum.CHECKED.getMsg()));
|
||||
// pullDowns.add(pullDown);
|
||||
|
||||
// 报告生成状态
|
||||
// pullDown = new PullDown();
|
||||
// pullDown.setFirstCol(10);
|
||||
// pullDown.setLastCol(10);
|
||||
// pullDown.setStrings(Arrays.asList(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_PARTIALLY_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_ALL_GENERATED.getMsg()));
|
||||
// pullDowns.add(pullDown);
|
||||
|
||||
//检测结果
|
||||
// pullDown = new PullDown();
|
||||
// pullDown.setFirstCol(11);
|
||||
// pullDown.setLastCol(11);
|
||||
// pullDown.setStrings(Arrays.asList(CheckResultEnum.UNCHECKED.getMsg(), CheckResultEnum.ACCORD.getMsg(), CheckResultEnum.UNCHECKED.getMsg()));
|
||||
// pullDowns.add(pullDown);
|
||||
|
||||
switch (scene) {
|
||||
case PROVINCE_PLATFORM:
|
||||
List<PullDown> provinceDevPullDownList = pqDevService.getProvinceDevPullDownList(9);
|
||||
List<PullDown> provinceDevPullDownList = null;
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
provinceDevPullDownList = pqDevService.getContrastDevPullDownList(9);
|
||||
} else {
|
||||
provinceDevPullDownList = pqDevService.getProvinceDevPullDownList(9);
|
||||
}
|
||||
pullDowns.addAll(provinceDevPullDownList);
|
||||
break;
|
||||
case LEAVE_FACTORY_TEST:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.gather.plan.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.gather.plan.mapper.AdPlanSourceMapper;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanSource;
|
||||
@@ -44,9 +45,12 @@ public class AdPlanSourceServiceImpl extends ServiceImpl<AdPlanSourceMapper, AdP
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean deleteAdPlanSourceByPlanIds(List<String> planIds) {
|
||||
QueryWrapper<AdPlanSource> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("ad_plan_source.Plan_Id", planIds);
|
||||
return this.remove(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(planIds)){
|
||||
QueryWrapper<AdPlanSource> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("ad_plan_source.Plan_Id", planIds);
|
||||
return this.remove(queryWrapper);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.njcn.gather.plan.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.plan.mapper.AdPlanStandardDevMapper;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
|
||||
import com.njcn.gather.plan.service.IAdPlanStandardDevService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @date 2025-07-16
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AdPlanStandardDevServiceImpl extends ServiceImpl<AdPlanStandardDevMapper, AdPlanStandardDev> implements IAdPlanStandardDevService {
|
||||
|
||||
@Override
|
||||
public boolean addAdPlanStandardDev(String planId, List<String> standardDevIds) {
|
||||
List<AdPlanStandardDev> adPlanStandardDevList = new ArrayList<>();
|
||||
for (String standardDevId : standardDevIds) {
|
||||
AdPlanStandardDev adPlanStandardDev = new AdPlanStandardDev();
|
||||
adPlanStandardDev.setPlanId(planId);
|
||||
adPlanStandardDev.setStandardDevId(standardDevId);
|
||||
adPlanStandardDevList.add(adPlanStandardDev);
|
||||
}
|
||||
return this.saveBatch(adPlanStandardDevList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateAdPlanStandardDev(String planId, List<String> standardDevIds) {
|
||||
this.deleteAdPlanStandardDev(Collections.singletonList(planId));
|
||||
return this.addAdPlanStandardDev(planId, standardDevIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteAdPlanStandardDev(List<String> planIds) {
|
||||
if (CollectionUtil.isNotEmpty(planIds)) {
|
||||
QueryWrapper<AdPlanStandardDev> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("Plan_Id", planIds);
|
||||
return this.remove(queryWrapper);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteAdPlanStandardDev(String planId, List<String> standardDevIds) {
|
||||
if (CollectionUtil.isNotEmpty(standardDevIds)) {
|
||||
QueryWrapper<AdPlanStandardDev> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("Plan_Id", planId).in("Standard_Dev_Id", standardDevIds);
|
||||
return this.remove(queryWrapper);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStandardDevNameStrByPlanId(String id) {
|
||||
List<PqStandardDev> pqStandardDevs = this.baseMapper.listByPlanId(Collections.singletonList(id));
|
||||
return pqStandardDevs.stream().map(PqStandardDev::getName).reduce((a, b) -> a + "," + b).orElse("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdPlanStandardDev> listByPlanId(List<String> planIds) {
|
||||
return this.lambdaQuery().in(AdPlanStandardDev::getPlanId, planIds).list();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user