检测计划相关功能代码
This commit is contained in:
@@ -47,6 +47,7 @@ public class PreDetectionController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 程控源-源通讯校验
|
||||
*
|
||||
|
||||
@@ -10,9 +10,11 @@ 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.vo.PqDevVO;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.type.pojo.po.DevType;
|
||||
import com.njcn.gather.type.service.IDevTypeService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
@@ -138,14 +140,17 @@ public class PqDevController extends BaseController {
|
||||
@ApiImplicitParam(name = "file", value = "被检设备数据文件", required = true),
|
||||
@ApiImplicitParam(name = "patternId", value = "模式id", required = true)
|
||||
})
|
||||
public HttpResult<Boolean> importDev(@RequestParam("file") MultipartFile file, @RequestParam("patternId") String patternId, HttpServletResponse response) {
|
||||
public HttpResult<Boolean> importDev(@RequestParam("file") MultipartFile file, @RequestParam("patternId") String patternId, @RequestParam("planId") String planId, HttpServletResponse response) {
|
||||
String methodDescribe = getMethodDescribe("importDev");
|
||||
LogUtil.njcnDebug(log, "{},上传文件为:{}", methodDescribe, file.getOriginalFilename());
|
||||
boolean fileType = FileUtil.judgeFileIsExcel(file.getOriginalFilename());
|
||||
if (!fileType) {
|
||||
throw new BusinessException(CommonResponseEnum.FILE_XLSX_ERROR);
|
||||
}
|
||||
Boolean result = pqDevService.importDev(file, patternId, null, response);
|
||||
if("null".equals(planId)){
|
||||
planId = null;
|
||||
}
|
||||
Boolean result = pqDevService.importDev(file, patternId, planId, response);
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
@@ -164,21 +169,12 @@ public class PqDevController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@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);
|
||||
List<PqDevVO> pqDevVOList = pqDevService.listByPlanId(param);
|
||||
|
||||
pqDevVOList.forEach(pqDevVO -> {
|
||||
DevType devType = devTypeService.getById(pqDevVO.getDevType());
|
||||
if (ObjectUtil.isNotNull(devType)) {
|
||||
pqDevVO.setDevChns(devType.getDevChns());
|
||||
}
|
||||
});
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqDevVOList, methodDescribe);
|
||||
@OperateInfo
|
||||
@GetMapping("/getSelectOptions")
|
||||
@ApiOperation("根据历史记录信息来获取下拉框内容")
|
||||
public HttpResult<Map<String, List<String>>> getSelectOptions(@RequestParam("pattern") String pattern) {
|
||||
String methodDescribe = getMethodDescribe("getSelectOptions");
|
||||
Map<String, List<String>> result = pqDevService.listSelectOptions(pattern);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ 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;
|
||||
@@ -138,5 +139,27 @@ public class PqStandardDevController extends BaseController {
|
||||
pqStandardDevService.importData(file, response);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo
|
||||
@GetMapping("/getAll")
|
||||
@ApiOperation("获取所有标准设备")
|
||||
public HttpResult<List<PqStandardDev>> getAll() {
|
||||
String methodDescribe = getMethodDescribe("getAll");
|
||||
LogUtil.njcnDebug(log, "{},查询所有数据", methodDescribe);
|
||||
List<PqStandardDev> result = pqStandardDevService.lambdaQuery().eq(PqStandardDev::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/listByPlanId")
|
||||
@ApiOperation("查询出指定计划已关联的标准设备")
|
||||
@ApiImplicitParam(name = "planId", value = "计划id", required = true)
|
||||
public HttpResult<List<PqStandardDev>> listByPlanId(@RequestParam("planId") String planId) {
|
||||
String methodDescribe = getMethodDescribe("listByPlanId");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, planId);
|
||||
List<PqStandardDev> pqDevVOList = pqStandardDevService.listByPlanId(planId);
|
||||
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqDevVOList, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -85,8 +85,11 @@
|
||||
left JOIN pq_dev_sub dev_sub ON dev.Id = dev_sub.Dev_Id
|
||||
<where>
|
||||
dev.state = 1
|
||||
<if test="planId!= null and planId!= ''">
|
||||
AND dev.Plan_Id = #{planId}
|
||||
<if test="planIdList!= null and planIdList.size!=0">
|
||||
AND dev.Plan_Id in
|
||||
<foreach collection="planIdList" open="(" close=")" item="item" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="name!= null and name!= ''">
|
||||
AND dev.Name LIKE CONCAT('%',#{name},'%')
|
||||
|
||||
@@ -166,7 +166,7 @@ public class PqDevParam {
|
||||
private String manufacturer;
|
||||
|
||||
@ApiModelProperty("检测计划ID")
|
||||
private String planId;
|
||||
private List<String> planIdList;
|
||||
|
||||
@ApiModelProperty("检测状态列表")
|
||||
private List<
|
||||
@@ -191,6 +191,12 @@ public class PqDevParam {
|
||||
|
||||
@ApiModelProperty("所属电站名称")
|
||||
private String subName;
|
||||
|
||||
@ApiModelProperty("地市")
|
||||
private String region;
|
||||
|
||||
@ApiModelProperty("是否分配")
|
||||
private Integer assign;
|
||||
}
|
||||
|
||||
@Data
|
||||
@@ -213,6 +219,6 @@ public class PqDevParam {
|
||||
|
||||
@ApiModelProperty("被检设备ID列表")
|
||||
@NotNull(message = DetectionValidMessage.PQ_DEV_IDS_NOT_NULL)
|
||||
private List<String> pqDevIds;
|
||||
private List<String> devIds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import com.njcn.gather.monitor.pojo.vo.PqMonitorExcel;
|
||||
import com.njcn.gather.pojo.constant.DetectionValidMessage;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Range;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
@@ -23,86 +22,79 @@ import java.util.List;
|
||||
@Data
|
||||
public class ContrastDevExcel implements Serializable {
|
||||
|
||||
@Excel(name = "所属地市*", width = 30, orderNum = "1")
|
||||
private String id;
|
||||
|
||||
@Excel(name = "所属地市*", width = 30, needMerge = true, orderNum = "1")
|
||||
private String cityName;
|
||||
|
||||
@Excel(name = "所属供电公司*", width = 30, orderNum = "2")
|
||||
@Excel(name = "所属供电公司*", width = 30, needMerge = true, orderNum = "2")
|
||||
private String gdName;
|
||||
|
||||
@Excel(name = "所属电站*", width = 30, orderNum = "3")
|
||||
@Excel(name = "所属电站*", width = 30, needMerge = true, orderNum = "3")
|
||||
private String subName;
|
||||
|
||||
@Excel(name = "设备名称*", width = 20, orderNum = "4")
|
||||
@Excel(name = "设备名称*", width = 20, needMerge = true, orderNum = "4")
|
||||
@NotBlank(message = DetectionValidMessage.NAME_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.DEV_NAME_REGEX, message = DetectionValidMessage.NAME_FORMAT_ERROR)
|
||||
private String name;
|
||||
|
||||
@Excel(name = "设备类型*", width = 20, orderNum = "6")
|
||||
@Excel(name = "设备序列号*", width = 20, needMerge = true, orderNum = "5")
|
||||
@NotBlank(message = DetectionValidMessage.FACTORYNO_NOT_BLANK)
|
||||
private String createId;
|
||||
|
||||
@Excel(name = "设备类型*", width = 20, needMerge = true, orderNum = "6")
|
||||
@NotBlank(message = DetectionValidMessage.DEV_TYPE_NOT_BLANK)
|
||||
private String devType;
|
||||
|
||||
@Excel(name = "设备厂家*", width = 20, orderNum = "7")
|
||||
@Excel(name = "设备厂家*", width = 20, needMerge = true, orderNum = "7")
|
||||
@NotBlank(message = DetectionValidMessage.MANUFACTURER_NOT_BLANK)
|
||||
private String manufacturer;
|
||||
|
||||
@Excel(name = "通讯协议*", width = 15, orderNum = "11")
|
||||
@Excel(name = "被检通道", width = 20, needMerge = true, orderNum = "8")
|
||||
private String inspectChannel;
|
||||
|
||||
@Excel(name = "固件版本", width = 15, needMerge = true, orderNum = "9")
|
||||
private String hardwareVersion;
|
||||
|
||||
@Excel(name = "软件版本", width = 15, needMerge = true, orderNum = "10")
|
||||
private String softwareVersion;
|
||||
|
||||
@Excel(name = "通讯协议*", width = 15, needMerge = true, orderNum = "11")
|
||||
@NotBlank(message = DetectionValidMessage.PROTOCOL_NOT_BLANK)
|
||||
private String protocol;
|
||||
|
||||
@Excel(name = "是否加密*", width = 20, replace = {"否_0", "是_1"}, orderNum = "12")
|
||||
@Excel(name = "是否加密*", width = 20, needMerge = true, replace = {"否_0", "是_1"}, orderNum = "12")
|
||||
@NotNull(message = DetectionValidMessage.ENCRYPTION_NOT_NULL)
|
||||
private Integer encryptionFlag;
|
||||
|
||||
@Excel(name = "识别码(当加密时必填)", width = 30, orderNum = "13")
|
||||
@Excel(name = "识别码(当加密时必填)", width = 30, needMerge = true, orderNum = "13")
|
||||
private String series;
|
||||
|
||||
@Excel(name = "秘钥(当加密时必填)", width = 30, orderNum = "14")
|
||||
@Excel(name = "秘钥(当加密时必填)", width = 30, needMerge = true, orderNum = "14")
|
||||
private String devKey;
|
||||
|
||||
@Excel(name = "IP地址*", width = 20, orderNum = "15")
|
||||
@Excel(name = "IP地址*", width = 20, needMerge = true, orderNum = "15")
|
||||
@NotBlank(message = DetectionValidMessage.IP_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.IP_REGEX, message = DetectionValidMessage.IP_FORMAT_ERROR)
|
||||
private String ip;
|
||||
|
||||
@Excel(name = "端口号*", width = 15, orderNum = "16")
|
||||
@Excel(name = "端口号*", width = 15, needMerge = true, orderNum = "16")
|
||||
@NotNull(message = DetectionValidMessage.PORT_NOT_NULL)
|
||||
@Range(min = 1, max = 65535, message = DetectionValidMessage.PORT_RANGE_ERROR)
|
||||
private Integer port;
|
||||
|
||||
@Excel(name = "投运日期(yyyy-MM-dd)*", width = 30, orderNum = "17", format = "yyyy-MM-dd")
|
||||
@Excel(name = "投运日期(yyyy-MM-dd)*", width = 30, needMerge = true, orderNum = "17", format = "yyyy-MM-dd")
|
||||
@NotNull(message = DetectionValidMessage.CREATE_DATE_NOT_NULL)
|
||||
private LocalDate createDate;
|
||||
|
||||
@Excel(name = "定检日期(yyyy-MM-dd)*", width = 30, orderNum = "18", format = "yyyy-MM-dd")
|
||||
@Excel(name = "定检日期(yyyy-MM-dd)*", width = 30, needMerge = true, orderNum = "18", format = "yyyy-MM-dd")
|
||||
@NotNull(message = DetectionValidMessage.INSPECT_DATE_NOT_NULL)
|
||||
private LocalDate inspectDate;
|
||||
|
||||
@Excel(name = "谐波系统设备id*", width = 30, orderNum = "19")
|
||||
@Excel(name = "谐波系统设备id*", width = 30, needMerge = true, orderNum = "19")
|
||||
@NotBlank(message = DetectionValidMessage.HARM_SYS_ID_NOT_BLANK)
|
||||
private String harmSysId;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public static class ImportExcel extends ContrastDevExcel {
|
||||
|
||||
@ExcelCollection(name = "监测点信息", orderNum = "22")
|
||||
private List<PqMonitorExcel> pqMonitorExcelList;
|
||||
}
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public static class ExportExcel extends ContrastDevExcel {
|
||||
@Excel(name = "设备序列号*", width = 20, orderNum = "5")
|
||||
@NotBlank(message = DetectionValidMessage.FACTORYNO_NOT_BLANK)
|
||||
private String createId;
|
||||
|
||||
@Excel(name = "被检通道", width = 20, orderNum = "8")
|
||||
private String inspectChannel;
|
||||
|
||||
@Excel(name = "固件版本", width = 15, orderNum = "9")
|
||||
private String hardwareVersion;
|
||||
|
||||
@Excel(name = "软件版本", width = 15, orderNum = "10")
|
||||
private String softwareVersion;
|
||||
}
|
||||
@ExcelCollection(name = "监测点信息", orderNum = "22")
|
||||
private List<PqMonitorExcel> pqMonitorExcelList;
|
||||
}
|
||||
|
||||
@@ -101,4 +101,14 @@ public class PqDevVO extends PqDev {
|
||||
* 相对湿度
|
||||
*/
|
||||
private Float humidity;
|
||||
|
||||
/**
|
||||
* 绑定的计划名称
|
||||
*/
|
||||
private String boundPlanName;
|
||||
|
||||
/**
|
||||
* 是否已经分配。0-未分配、1-已分配、2-所有
|
||||
*/
|
||||
private Integer assign;
|
||||
}
|
||||
|
||||
@@ -254,14 +254,29 @@ public interface IPqDevService extends IService<PqDev> {
|
||||
* @param contrastDevExcelList
|
||||
* @param patternId
|
||||
*/
|
||||
boolean importContrastDev(List<ContrastDevExcel.ImportExcel> contrastDevExcelList, String patternId);
|
||||
boolean importContrastDev(List<ContrastDevExcel> contrastDevExcelList, String patternId, String planId);
|
||||
|
||||
/**
|
||||
* 获取比对式设备导出、导出文件模板的下拉列表
|
||||
*
|
||||
* @param startCol
|
||||
* @param isExport 是否是导出模板
|
||||
* @return
|
||||
*/
|
||||
List<PullDown> getContrastDevPullDownList(int startCol, boolean isExport);
|
||||
List<PullDown> getContrastDevPullDownList(int startCol);
|
||||
|
||||
/**
|
||||
* 根据历史记录来获取下拉框内容
|
||||
*
|
||||
* @param pattern
|
||||
* @return
|
||||
*/
|
||||
Map<String, List<String>> listSelectOptions(String pattern);
|
||||
|
||||
/**
|
||||
* 获取比对式设备导出数据
|
||||
*
|
||||
* @param pqDevVOList 设备id列表
|
||||
* @return
|
||||
*/
|
||||
List<ContrastDevExcel> getExportContrastDevData(List<PqDevVO> pqDevVOList);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.gather.device.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.param.PqStandardDevParam;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
@@ -75,4 +76,12 @@ public interface IPqStandardDevService extends IService<PqStandardDev> {
|
||||
* @return
|
||||
*/
|
||||
void importData(MultipartFile file, HttpServletResponse response);
|
||||
|
||||
/**
|
||||
* 查询出指定计划以关联的标准设备列表
|
||||
*
|
||||
* @param planId
|
||||
* @return
|
||||
*/
|
||||
List<PqStandardDev> listByPlanId(String planId);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -30,9 +31,9 @@ import com.njcn.gather.device.pojo.vo.*;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
import com.njcn.gather.device.service.IPqDevSubService;
|
||||
import com.njcn.gather.monitor.pojo.po.PqMonitor;
|
||||
import com.njcn.gather.monitor.pojo.vo.PqMonitorExcel;
|
||||
import com.njcn.gather.monitor.service.IPqMonitorService;
|
||||
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.storage.mapper.TableGenMapper;
|
||||
import com.njcn.gather.storage.service.DetectionDataDealService;
|
||||
import com.njcn.gather.system.cfg.pojo.enums.SceneEnum;
|
||||
import com.njcn.gather.system.cfg.pojo.po.SysTestConfig;
|
||||
@@ -78,7 +79,6 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
private final IDictTypeService dictTypeService;
|
||||
private final ISysUserService userService;
|
||||
private final IPqDevSubService pqDevSubService;
|
||||
private final TableGenMapper tableGenMapper;
|
||||
|
||||
@Override
|
||||
public Page<PqDevVO> listPqDevs(PqDevParam.QueryParam queryParam) {
|
||||
@@ -97,6 +97,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
page2.getRecords().forEach(p -> {
|
||||
DevType devType = devTypeService.getById(p.getDevType());
|
||||
if (ObjectUtil.isNotNull(devType)) {
|
||||
p.setDevType(devType.getName());
|
||||
p.setDevChns(devType.getDevChns());
|
||||
p.setDevVolt(devType.getDevVolt());
|
||||
p.setDevCurr(devType.getDevCurr());
|
||||
@@ -274,7 +275,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
|
||||
@Override
|
||||
public List<PqDevVO> listByPlanId(PqDevParam.QueryParam param) {
|
||||
if (StrUtil.isBlank(param.getPlanId())) {
|
||||
if (CollUtil.isEmpty(param.getPlanIdList())) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<PqDevVO> pqDevList = this.baseMapper.selectByQueryParam(param);
|
||||
@@ -381,7 +382,15 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
.eq(StrUtil.isNotBlank(queryParam.getCityName()), "pq_dev.City_Name", queryParam.getCityName())
|
||||
.eq(StrUtil.isNotBlank(queryParam.getGdName()), "pq_dev.Gd_Name", queryParam.getGdName())
|
||||
.eq(StrUtil.isNotBlank(queryParam.getSubName()), "pq_dev.Sub_Name", queryParam.getSubName())
|
||||
.in(CollectionUtil.isNotEmpty(queryParam.getPlanIdList()), "pq_dev.Plan_Id", queryParam.getPlanIdList())
|
||||
.isNotNull(DataStateEnum.ENABLE.getCode().equals(queryParam.getAssign()), "pq_dev.Plan_Id")
|
||||
.isNull(DataStateEnum.DELETED.getCode().equals(queryParam.getAssign()), "pq_dev.Plan_Id")
|
||||
.between(ObjectUtil.isAllNotEmpty(queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()), "pq_dev.Create_Date", queryParam.getSearchBeginTime(), queryParam.getSearchEndTime());
|
||||
if (StrUtil.isNotBlank(queryParam.getRegion())) {
|
||||
queryWrapper.and(w -> w.like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.City_Name", queryParam.getRegion())
|
||||
.or().like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.Gd_Name", queryParam.getRegion())
|
||||
.or().like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.Sub_Name", queryParam.getRegion()));
|
||||
}
|
||||
//排序
|
||||
if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) {
|
||||
queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy()));
|
||||
@@ -460,7 +469,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
pqDevSubService.update(wrapper);
|
||||
|
||||
PqDevParam.QueryParam param = new PqDevParam.QueryParam();
|
||||
param.setPlanId(pqDevVo.getPlanId());
|
||||
param.setPlanIdList(Arrays.asList(pqDevVo.getPlanId()));
|
||||
List<PqDevVO> pqDevVOList = this.baseMapper.selectByQueryParam(param);
|
||||
if (CollUtil.isNotEmpty(pqDevVOList)) {
|
||||
Set<Integer> set = pqDevVOList.stream().map(PqDevVO::getCheckResult).collect(Collectors.toSet());
|
||||
@@ -505,7 +514,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
public long countUnReportDev(String planId) {
|
||||
// 查询该计划下所有设备的检测状态,是否有未生成的
|
||||
PqDevParam.QueryParam param = new PqDevParam.QueryParam();
|
||||
param.setPlanId(planId);
|
||||
param.setPlanIdList(Arrays.asList(planId));
|
||||
List<PqDevVO> devVOList = this.baseMapper.selectByQueryParam(param);
|
||||
long count = devVOList.stream().filter(obj -> !DevReportStateEnum.GENERATED.getValue().equals(obj.getReportState())).count();
|
||||
return count;
|
||||
@@ -544,7 +553,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
public void downloadTemplate(String patternId) {
|
||||
DictData dictData = dictDataService.getDictDataById(patternId);
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
ExcelUtil.exportExcelPullDown(new ExportParams(), "被检设备模板.xlsx", 2, this.getContrastDevPullDownList(0, false), ContrastDevExcel.ImportExcel.class, new ArrayList<>());
|
||||
ExcelUtil.exportExcelPullDown(new ExportParams(), "被检设备模板.xlsx", 2, this.getContrastDevPullDownList(0), ContrastDevExcel.class, new ArrayList<>());
|
||||
} else {
|
||||
String currrentScene = sysTestConfigService.getCurrrentScene();
|
||||
SceneEnum sceneEnum = SceneEnum.getSceneEnum(currrentScene);
|
||||
@@ -946,12 +955,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
pqDevVOList.addAll(this.baseMapper.listByDevIds(idList));
|
||||
}
|
||||
|
||||
List<ContrastDevExcel.ExportExcel> contrastDevExcels = null;
|
||||
if (ObjectUtil.isNotEmpty(pqDevVOList)) {
|
||||
this.visualizeProvinceDev(pqDevVOList);
|
||||
contrastDevExcels = BeanUtil.copyToList(pqDevVOList, ContrastDevExcel.ExportExcel.class);
|
||||
}
|
||||
ExcelUtil.exportExcelPullDown(new ExportParams(), "被检设备导出数据.xlsx", 1, this.getContrastDevPullDownList(0, true), ContrastDevExcel.ExportExcel.class, ObjectUtil.isEmpty(contrastDevExcels) ? new ArrayList<>() : contrastDevExcels);
|
||||
List<ContrastDevExcel> contrastDevExcelList = this.getExportContrastDevData(pqDevVOList);
|
||||
|
||||
ExcelUtil.exportExcelPullDown(new ExportParams(), "被检设备导出数据.xlsx", 2, this.getContrastDevPullDownList(0), ContrastDevExcel.class, ObjectUtil.isEmpty(contrastDevExcelList) ? new ArrayList<>() : contrastDevExcelList);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1112,9 +1118,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
params.setNeedVerify(true);
|
||||
params.setHeadRows(2);
|
||||
|
||||
List<ContrastDevExcel.ImportExcel> contrastDevExcelList = null;
|
||||
List<ContrastDevExcel> contrastDevExcelList = null;
|
||||
try {
|
||||
ExcelImportResult<ContrastDevExcel.ImportExcel> excelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), ContrastDevExcel.ImportExcel.class, params);
|
||||
ExcelImportResult<ContrastDevExcel> excelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), ContrastDevExcel.class, params);
|
||||
if (excelImportResult.isVerifyFail()) {
|
||||
// 此处前端要做特殊处理,具体可以参考技术监督的数据导入
|
||||
Workbook failWorkbook = excelImportResult.getFailWorkbook();
|
||||
@@ -1125,12 +1131,12 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(DetectionResponseEnum.IMPORT_DATA_FAIL);
|
||||
}
|
||||
return this.importContrastDev(contrastDevExcelList, patternId);
|
||||
return this.importContrastDev(contrastDevExcelList, patternId, planId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean importContrastDev(List<ContrastDevExcel.ImportExcel> contrastDevExcelList, String patternId) {
|
||||
public boolean importContrastDev(List<ContrastDevExcel> contrastDevExcelList, String patternId, String planId) {
|
||||
if (CollUtil.isNotEmpty(contrastDevExcelList)) {
|
||||
List<PqMonitor> monitorList = new ArrayList<>();
|
||||
List<PqDev> oldDevList = contrastDevExcelList.stream().map(devExcel -> {
|
||||
@@ -1199,6 +1205,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
&& (dev.getName().equals(pqDev.getName()) || dev.getCreateId().equals(pqDev.getCreateId())))
|
||||
.count();
|
||||
if (count == 0) {
|
||||
pqDev.setPlanId(planId);
|
||||
newDevList.add(pqDev);
|
||||
}
|
||||
});
|
||||
@@ -1211,7 +1218,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
PqDev newDev = newDevList.stream().filter(dev -> dev.getHarmSysId().equals(oldDev.getHarmSysId())).findFirst().orElse(null);
|
||||
if (ObjectUtil.isNotNull(newDev)) {
|
||||
newDevList.remove(newDev);
|
||||
monitorList.removeIf(monitor -> monitor.getDevId().equals(newDev.getId()));
|
||||
monitorList.stream()
|
||||
.filter(monitor -> monitor.getDevId().equals(newDev.getId()))
|
||||
.forEach(monitor -> monitor.setDevId(oldDev.getId()));
|
||||
BeanUtil.copyProperties(newDev, oldDev, "id");
|
||||
}
|
||||
});
|
||||
@@ -1231,21 +1240,13 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
}
|
||||
pqDevSubService.saveBatch(pqDevSubList);
|
||||
|
||||
|
||||
List<String> devIdList = oldDevList1.stream().map(PqDev::getId).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(devIdList)) {
|
||||
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<PqMonitor>()
|
||||
.in("pq_monitor.Dev_Id", devIdList);
|
||||
pqMonitorService.remove(wrapper);
|
||||
}
|
||||
monitorList.forEach(monitor -> {
|
||||
DictData dictData = dictDataService.getDictDataByName(monitor.getConnection());
|
||||
if (ObjectUtil.isNotNull(dictData)) {
|
||||
monitor.setConnection(dictData.getId());
|
||||
} else {
|
||||
throw new BusinessException(DetectionResponseEnum.CONNECTION_NOT_EXIST);
|
||||
}
|
||||
});
|
||||
pqMonitorService.reverseVisualizeMonitor(monitorList);
|
||||
pqMonitorService.saveBatch(monitorList);
|
||||
return true;
|
||||
}
|
||||
@@ -1253,7 +1254,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PullDown> getContrastDevPullDownList(int startCol, boolean isExport) {
|
||||
public List<PullDown> getContrastDevPullDownList(int startCol) {
|
||||
List<PullDown> pullDowns = new ArrayList<>();
|
||||
List<DictData> dictDataList = null;
|
||||
PullDown pullDown = null;
|
||||
@@ -1261,13 +1262,10 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
// 设备类型
|
||||
List<DevType> devTypeList = devTypeService.listAll();
|
||||
pullDown = new PullDown();
|
||||
if (isExport) {
|
||||
pullDown.setFirstCol(startCol + 5);
|
||||
pullDown.setLastCol(startCol + 5);
|
||||
} else {
|
||||
pullDown.setFirstCol(startCol + 4);
|
||||
pullDown.setLastCol(startCol + 4);
|
||||
}
|
||||
|
||||
pullDown.setFirstCol(startCol + 5);
|
||||
pullDown.setLastCol(startCol + 5);
|
||||
|
||||
pullDown.setStrings(devTypeList.stream().map(DevType::getName).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
|
||||
@@ -1277,13 +1275,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
|
||||
|
||||
pullDown = new PullDown();
|
||||
if (isExport) {
|
||||
pullDown.setFirstCol(startCol + 6);
|
||||
pullDown.setLastCol(startCol + 6);
|
||||
} else {
|
||||
pullDown.setFirstCol(startCol + 5);
|
||||
pullDown.setLastCol(startCol + 5);
|
||||
}
|
||||
pullDown.setFirstCol(startCol + 6);
|
||||
pullDown.setLastCol(startCol + 6);
|
||||
|
||||
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
@@ -1294,13 +1288,8 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
|
||||
|
||||
pullDown = new PullDown();
|
||||
if (isExport) {
|
||||
pullDown.setFirstCol(startCol + 10);
|
||||
pullDown.setLastCol(startCol + 10);
|
||||
} else {
|
||||
pullDown.setFirstCol(startCol + 6);
|
||||
pullDown.setLastCol(startCol + 6);
|
||||
}
|
||||
pullDown.setFirstCol(startCol + 10);
|
||||
pullDown.setLastCol(startCol + 10);
|
||||
|
||||
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
@@ -1308,29 +1297,23 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
|
||||
// 是否加密
|
||||
pullDown = new PullDown();
|
||||
if (isExport) {
|
||||
pullDown.setFirstCol(startCol + 11);
|
||||
pullDown.setLastCol(startCol + 11);
|
||||
} else {
|
||||
pullDown.setFirstCol(startCol + 7);
|
||||
pullDown.setLastCol(startCol + 7);
|
||||
}
|
||||
pullDown.setFirstCol(startCol + 11);
|
||||
pullDown.setLastCol(startCol + 11);
|
||||
|
||||
pullDown.setStrings(Arrays.asList("是", "否"));
|
||||
pullDowns.add(pullDown);
|
||||
|
||||
// 接线方式
|
||||
if (!isExport) {
|
||||
|
||||
dictType = dictTypeService.getByCode("Dev_Connect");
|
||||
if (ObjectUtil.isNotNull(dictType)) {
|
||||
dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
|
||||
dictType = dictTypeService.getByCode("Dev_Connect");
|
||||
if (ObjectUtil.isNotNull(dictType)) {
|
||||
dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
|
||||
pullDown = new PullDown();
|
||||
pullDown.setFirstCol(startCol + 25);
|
||||
pullDown.setLastCol(startCol + 25);
|
||||
|
||||
pullDown = new PullDown();
|
||||
pullDown.setFirstCol(startCol + 21);
|
||||
pullDown.setLastCol(startCol + 21);
|
||||
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
|
||||
pullDowns.add(pullDown);
|
||||
}
|
||||
|
||||
return pullDowns;
|
||||
@@ -1389,4 +1372,47 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
||||
pqDev.setState(DataStateEnum.ENABLE.getCode());
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContrastDevExcel> getExportContrastDevData(List<PqDevVO> pqDevVOList) {
|
||||
List<ContrastDevExcel> contrastDevExcels = new ArrayList<>();
|
||||
if (ObjectUtil.isNotEmpty(pqDevVOList)) {
|
||||
this.visualizeProvinceDev(pqDevVOList);
|
||||
contrastDevExcels.addAll(BeanUtil.copyToList(pqDevVOList, ContrastDevExcel.class));
|
||||
contrastDevExcels.forEach(contrastDevExcel -> {
|
||||
List<PqMonitor> monitorList = pqMonitorService.listPqMonitorByDevId(contrastDevExcel.getId());
|
||||
pqMonitorService.visualizeMonitor(monitorList);
|
||||
List<PqMonitorExcel> pqMonitorExcelList = BeanUtil.copyToList(monitorList, PqMonitorExcel.class);
|
||||
contrastDevExcel.setPqMonitorExcelList(pqMonitorExcelList);
|
||||
});
|
||||
}
|
||||
return contrastDevExcels;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, List<String>> listSelectOptions(String pattern) {
|
||||
List<PqDev> pqDevList = this.lambdaQuery().eq(PqDev::getPattern, pattern)
|
||||
.eq(PqDev::getState, DataStateEnum.ENABLE.getCode())
|
||||
.list();
|
||||
String[] devKeyArray = new String[]{"cityName", "gdName", "subName", "hardwareVersion", "softwareVersion"};
|
||||
Map<String, List<String>> result = new HashMap<>();
|
||||
for (String key : devKeyArray) {
|
||||
List<String> value = pqDevList.stream().map(dev -> {
|
||||
String fieldValue = (String) ReflectUtil.getFieldValue(dev, key);
|
||||
return fieldValue;
|
||||
}).distinct().filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||
result.put(key, value);
|
||||
}
|
||||
|
||||
List<PqMonitor> pqMonitorList = pqMonitorService.list();
|
||||
String[] monitorKeyArray = new String[]{"busbar", "pt", "ct"};
|
||||
for (String key : monitorKeyArray) {
|
||||
List<String> value = pqMonitorList.stream().map(monitor -> {
|
||||
String fieldValue = (String) ReflectUtil.getFieldValue(monitor, key);
|
||||
return fieldValue;
|
||||
}).distinct().filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||
result.put(key, value);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.njcn.gather.device.pojo.param.PqStandardDevParam;
|
||||
import com.njcn.gather.device.pojo.po.PqStandardDev;
|
||||
import com.njcn.gather.device.pojo.vo.PqStandardDevExcel;
|
||||
import com.njcn.gather.device.service.IPqStandardDevService;
|
||||
import com.njcn.gather.plan.mapper.AdPlanStandardDevMapper;
|
||||
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.system.dictionary.pojo.po.DictData;
|
||||
import com.njcn.gather.system.dictionary.pojo.po.DictType;
|
||||
@@ -55,6 +56,7 @@ public class PqStandardDevServiceImpl extends ServiceImpl<PqStandardDevMapper, P
|
||||
private final IDevTypeService devTypeService;
|
||||
private final IDictDataService dictDataService;
|
||||
private final IDictTypeService dictTypeService;
|
||||
private final AdPlanStandardDevMapper adPlanStandardDevMapper;
|
||||
|
||||
@Override
|
||||
public Page<PqStandardDev> listPqStandardDevs(PqStandardDevParam.QueryParam queryParam) {
|
||||
@@ -148,6 +150,11 @@ public class PqStandardDevServiceImpl extends ServiceImpl<PqStandardDevMapper, P
|
||||
this.importData(contrastDevExcelList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PqStandardDev> listByPlanId(String planId) {
|
||||
return adPlanStandardDevMapper.listByPlanId(Collections.singletonList(planId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
*
|
||||
|
||||
@@ -45,16 +45,4 @@ public class PqMonitorExcel {
|
||||
@Excel(name = "统计间隔*", width = 10, orderNum = "8")
|
||||
@NotNull(message = DetectionValidMessage.STAT_INTERVAL_NOT_NULL)
|
||||
private Integer statInterval;
|
||||
|
||||
// @Data
|
||||
// @EqualsAndHashCode(callSuper = true)
|
||||
// public static class ImportData extends PqMonitorExcel {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Data
|
||||
// @EqualsAndHashCode(callSuper = true)
|
||||
// public static class ExportData extends PqMonitorExcel {
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -49,5 +49,17 @@ public interface IPqMonitorService extends IService<PqMonitor> {
|
||||
*/
|
||||
boolean deletePqMonitorByDevId(String devId);
|
||||
|
||||
/**
|
||||
* 可视化监测点
|
||||
*
|
||||
* @param monitorList
|
||||
*/
|
||||
void visualizeMonitor(List<PqMonitor> monitorList);
|
||||
|
||||
/**
|
||||
* 逆向可视化监测点
|
||||
*
|
||||
* @param monitorList
|
||||
*/
|
||||
void reverseVisualizeMonitor(List<PqMonitor> monitorList);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package com.njcn.gather.monitor.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.gather.monitor.mapper.PqMonitorMapper;
|
||||
import com.njcn.gather.monitor.pojo.param.PqMonitorParam;
|
||||
import com.njcn.gather.monitor.pojo.po.PqMonitor;
|
||||
import com.njcn.gather.monitor.service.IPqMonitorService;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.system.dictionary.pojo.po.DictData;
|
||||
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -25,6 +28,7 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor> implements IPqMonitorService {
|
||||
|
||||
private final IDictDataService dictDataService;
|
||||
|
||||
@Override
|
||||
public List<PqMonitor> listPqMonitorByDevId(String devId) {
|
||||
@@ -57,25 +61,27 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
||||
return this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否重复
|
||||
*
|
||||
* @param pqMonitorParam
|
||||
* @param isExcludeSelf
|
||||
*/
|
||||
// private void checkRepeat(PqMonitorParam pqMonitorParam, boolean isExcludeSelf) {
|
||||
// QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
|
||||
// wrapper.eq("pq_monitor.Dev_Id", pqMonitorParam.getDevId())
|
||||
// .eq("pq_monitor.Busbar", pqMonitorParam.getName())
|
||||
// .eq("pq_monitor.Name", pqMonitorParam.getName());
|
||||
// if (isExcludeSelf) {
|
||||
// if (pqMonitorParam instanceof PqMonitorParam.UpdateParam) {
|
||||
// wrapper.ne("pq_monitor.Id", ((PqMonitorParam.UpdateParam) pqMonitorParam).getId());
|
||||
// }
|
||||
// }
|
||||
// int count = this.count(wrapper);
|
||||
// if (count > 0) {
|
||||
// throw new BusinessException(DetectionResponseEnum.MONITOR_REPEAT);
|
||||
// }
|
||||
// }
|
||||
@Override
|
||||
public void visualizeMonitor(List<PqMonitor> monitorList) {
|
||||
monitorList.forEach(monitor -> {
|
||||
DictData dictData = dictDataService.getDictDataById(monitor.getConnection());
|
||||
if (ObjectUtil.isNotNull(dictData)) {
|
||||
monitor.setConnection(dictData.getName());
|
||||
} else {
|
||||
throw new BusinessException(DetectionResponseEnum.CONNECTION_NOT_EXIST);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reverseVisualizeMonitor(List<PqMonitor> monitorList) {
|
||||
monitorList.forEach(monitor -> {
|
||||
DictData dictData = dictDataService.getDictDataByName(monitor.getConnection());
|
||||
if (ObjectUtil.isNotNull(dictData)) {
|
||||
monitor.setConnection(dictData.getId());
|
||||
} else {
|
||||
throw new BusinessException(DetectionResponseEnum.CONNECTION_NOT_EXIST);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -195,4 +195,5 @@ public interface DetectionValidMessage {
|
||||
String CREATE_DATE_NOT_NULL = "投运日期不能为空";
|
||||
String INSPECT_DATE_NOT_NULL = "定检日期不能为空";
|
||||
String HARM_SYS_ID_NOT_BLANK = "谐波系统设备id不能为空";
|
||||
String FATHER_PLAN_ID_FORMAT_ERROR = "父计划ID格式错误";
|
||||
}
|
||||
|
||||
@@ -68,7 +68,11 @@ public enum DetectionResponseEnum {
|
||||
IMPORT_FLAG_NOT_UPDATE("A02091", "从谐波系统导入的设备不支持修改"),
|
||||
CONNECTION_NOT_EXIST("A02092", "该连接不存在,请先在\"接线方式\"字典中添加"),
|
||||
MONITOR_NUM_OUT_OF_RANGE("A02093", "检测点线路号超出范围,请检查线路号"),
|
||||
MONITOR_NUM_REPEAT("A02094", "改被检设备下存在相同线路号的监测点");
|
||||
MONITOR_NUM_REPEAT("A02094", "改被检设备下存在相同线路号的监测点"),
|
||||
PLAN_HAS_CHILDREN("A02095", "该计划下存在子计划,请先删除子计划"),
|
||||
PLAN_REPEATED_IN_SAME_LEVEL("A02096", "该父计划下存在同名的子计划"),
|
||||
PLEASE_UNASSIGN_STANDARD_DEV("A02097","存在已分配给子计划的标准设备,请先解除分配" ),
|
||||
PLEASE_UNASSIGN_DEVICE("A02098", "存在已分配给计划的被检设备,请先解除分配");
|
||||
|
||||
private final String code;
|
||||
|
||||
|
||||
@@ -1376,7 +1376,7 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
|
||||
// 判断计划下所有设备是否都已归档,如果是则将计划改为已完成
|
||||
// 查询该计划下所有设备的检测状态,是否有不为归档的
|
||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||
queryParam.setPlanId(tempPqDevVO.getPlanId());
|
||||
queryParam.setPlanIdList(Arrays.asList(tempPqDevVO.getPlanId()));
|
||||
List<PqDevVO> pqDevVOList1 = pqDevMapper.selectByQueryParam(queryParam);
|
||||
|
||||
long count = pqDevVOList1.stream().filter(obj -> !CheckStateEnum.DOCUMENTED.getValue().equals(obj.getCheckState())).count();
|
||||
|
||||
@@ -4,6 +4,7 @@ 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.response.HttpResult;
|
||||
@@ -112,5 +113,15 @@ public class SysUserController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@GetMapping("/getAll")
|
||||
@ApiOperation("获取所有用户")
|
||||
public HttpResult<List<SysUser>> getAll() {
|
||||
String methodDescribe = getMethodDescribe("getAll");
|
||||
LogUtil.njcnDebug(log, "{},查询所有用户", methodDescribe);
|
||||
List<SysUser> result = sysUserService.lambdaQuery().eq(SysUser::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user