敏感及重要用户功能

This commit is contained in:
2024-06-03 16:47:39 +08:00
parent f181b9bbb2
commit e0298ed65f
34 changed files with 1663 additions and 48 deletions

View File

@@ -2,7 +2,6 @@ package com.njcn.advance.pojo.dto.govern.voltage;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import com.njcn.device.pq.pojo.constant.DeviceValidMessage;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -25,8 +24,6 @@ public class SgEventExcel implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 暂降起始时间
*/

View File

@@ -77,7 +77,6 @@ public class BpmCategoryServiceImpl extends ServiceImpl<BpmCategoryMapper, BpmCa
categoryVOQueryWrapper.like("bpm_category.code", bpmCategoryQueryParam.getCode());
}
categoryVOQueryWrapper.eq("bpm_category.state", DataStateEnum.ENABLE.getCode());
categoryVOQueryWrapper.orderByDesc("bpm_category.update_time");
categoryVOQueryWrapper.orderByAsc("bpm_category.sort");
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(bpmCategoryQueryParam), PageFactory.getPageSize(bpmCategoryQueryParam)), categoryVOQueryWrapper);

View File

@@ -113,7 +113,6 @@ public class BpmSignServiceImpl extends ServiceImpl<BpmSignMapper, BpmSign> impl
bpmSignVOQueryWrapper.like("bpm_sign.signKey", bpmSignQueryParam.getKey());
}
bpmSignVOQueryWrapper.eq("bpm_sign.state", DataStateEnum.ENABLE.getCode());
bpmSignVOQueryWrapper.orderByDesc("bpm_sign.update_time");
bpmSignVOQueryWrapper.orderByAsc("bpm_sign.sort");
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(bpmSignQueryParam), PageFactory.getPageSize(bpmSignQueryParam)), bpmSignVOQueryWrapper);

View File

@@ -30,8 +30,9 @@ public class GenerateCode {
public static void main(String[] args) {
List<Module> modules = Stream.of(
new Module("hongawen", "com.njcn.supervision", "leaflet", Stream.of(
"supervision_warning_leaflet"
new Module("hongawen", "com.njcn.supervision", "survey", Stream.of(
"supervision_survey_plan",
"supervision_survey_test"
).collect(Collectors.toList()), "supervision_")
).collect(Collectors.toList());
generateJavaFile(modules);

View File

@@ -74,6 +74,24 @@ public class ExcelUtil {
}
}
/**
* 处理好的表格直接下载
*
* @param fileName 文件名
*/
public static void exportExcelByWorkbook(String fileName, Workbook workbook) {
HttpServletResponse response = HttpServletUtil.getResponse();
try (ServletOutputStream outputStream = response.getOutputStream()) {
fileName = URLEncoder.encode(fileName, CharsetUtil.UTF_8);
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentType("application/octet-stream;charset=UTF-8");
workbook.write(outputStream);
} catch (IOException e) {
log.error(">>> 导出数据异常:{}", e.getMessage());
}
}
/**
* 指定名称、数据下载报表(带指定标题将*显示比必填信息)
*
@@ -203,7 +221,6 @@ public class ExcelUtil {
* @param strings 下拉内容
*/
public static void selectList(Workbook workbook, int firstCol, int lastCol, String[] strings) {
Sheet sheet = workbook.getSheetAt(0);
// 生成下拉列表
// 只对(xx)单元格有效
@@ -218,5 +235,4 @@ public class ExcelUtil {
sheet.addValidationData(validation);
}
}

View File

@@ -76,10 +76,17 @@ public class PubUtil {
}
public static String getDicById(String name, List<DictData> dictData) {
List<DictData> dictDataList = dictData.stream().filter(x -> x.getName().indexOf(name) != -1).collect(Collectors.toList());
//先匹配有没有完全吻合的
List<DictData> compareDictDataList = dictData.stream().filter(x -> x.getName().equalsIgnoreCase(name)).collect(Collectors.toList());
if(CollUtil.isNotEmpty(compareDictDataList)){
return compareDictDataList.get(0).getId();
}
//如果没有匹配到,则判断是否有包含的
List<DictData> dictDataList = dictData.stream().filter(x -> x.getName().contains(name)).collect(Collectors.toList());
if (CollUtil.isNotEmpty(dictDataList)) {
return dictDataList.get(0).getId();
}
//实在没有匹配到则返回空
return "";
}

View File

@@ -19,7 +19,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
plan_no, general_survey_start_time, general_survey_end_time, general_survey_time,
plan_no, general_survey_start_time, general_survey_end_time, general_survey_time,
general_survey_leader, sub_id, sub_name, voltage_level, busbar_id, busbar_name, measurement_point_id,
is_problem
</sql>

View File

@@ -21,7 +21,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
org_no, plan_no, plan_name, plan_create_time, plan_start_time, plan_end_time, plan_complate_time,
org_no, plan_no, plan_name, plan_create_time, plan_start_time, plan_end_time, plan_complate_time,
leader, `status`, description, is_file_upload, file_count, file_path, upload_time
</sql>
</mapper>

View File

@@ -16,6 +16,7 @@ public enum SupervisionResponseEnum {
* A00550 ~ A00649
*/
SUPERVISION_COMMON_ERROR("A00550","监督管理模块异常"),
IMPORT_SENSITIVE_USER_ERROR("A00550","导入敏感及重要用户失败"),
NO_POWER("A00550","不能操作非自己创建的任务!")
;

View File

@@ -0,0 +1,106 @@
package com.njcn.supervision.pojo.dto;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@Data
public class SensitiveUserExcel implements Serializable {
/**
* 所属地市
*/
@Excel(name = "供电单位", width = 30)
private String city;
/**
* 用户名称
*/
@Excel(name = "*用户名称", width = 30)
@NotBlank(message = "用户名称不能为空")
private String projectName;
// /**
// * 工程预期投产日期
// */
// @Excel(name="工程预期投产日期(yyyy-MM-dd)",format = "yyyy-MM-dd",width = 45)
// private String expectedProductionDate;
/**
* 用户状态
*/
@Excel(name = "用户状态", width = 20, replace = {"可研_0", "建设_1", "运行_2", "退运_3"})
private Integer userStatus;
/**
* 变电站
*/
@Excel(name = "变电站", width = 30)
private String substation;
/**
* 电压等级
*/
@Excel(name = "电压等级(kV)", width = 20)
private String voltageLevel;
/**
* 行业
*/
@Excel(name = "行业", width = 30)
private String industry;
/**
* 运维单位
*/
@Excel(name = "运维单位", width = 30)
private String maintenanceUnit;
/**
* 供电电源
*/
@Excel(name = "供电电源", width = 40)
private String powerSupply;
/**
* 接入电压等级
*/
@Excel(name = "接入电压等级(kV)", width = 20)
private String supplyVoltageLevel;
/**
* 负荷级别
*/
@Excel(name = "负荷级别", width = 20)
private String loadLevel;
/**
* 供电电源情况(单电源、双电源、多电源)
*/
@Excel(name = "供电电源情况", width = 20)
private String powerSupplyInfo;
// /**
// * 是否覆盖
// */
// @Excel(name = "是否覆盖", width = 20, replace = {"否_0", "是_1"})
// private Integer overlay = 0;
@Data
@EqualsAndHashCode(callSuper = true)
public static class SensitiveUserExcelMsg extends SensitiveUserExcel implements Serializable {
@Excel(name = "错误信息描述")
private String msg;
}
}

View File

@@ -0,0 +1,100 @@
package com.njcn.supervision.pojo.param.survey;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDate;
@Data
public class SurveyPlanParam implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 负责单位ID
*/
@ApiModelProperty(value = "负责单位ID")
private String deptId;
/**
* 普测计划名称
*/
@ApiModelProperty(value = "普测计划名称")
private String planName;
/**
* 计划开始时间
*/
@ApiModelProperty(value = "计划开始时间")
private LocalDate planStartTime;
/**
* 计划结束时间
*/
@ApiModelProperty(value = "计划结束时间")
private LocalDate planEndTime;
/**
* 0 关联系统内变电站1 用户手动输入变电站
*/
@ApiModelProperty(value = "0 关联系统内变电站1 用户手动输入变电站")
private Integer customSubstationFlag;
/**
* 变电站台账ID或者用户手动输入的变电站名称
*/
@ApiModelProperty(value = "变电站台账ID或者用户手动输入的变电站名称")
private String substation;
/**
* 计划状态(1:审批中2审批通过3审批不通过4已取消)
*/
@ApiModelProperty(value = "计划状态")
private Integer status;
/**
* 流程实例id
*/
@ApiModelProperty(value = "流程实例id")
private String processInstanceId;
/**
* 历史流程实例id列表
*/
@ApiModelProperty(value = "历史流程实例id列表")
private String historyInstanceId;
@Data
@EqualsAndHashCode(callSuper = true)
public static class SurveyPlanUpdateParam extends SurveyPlanParam {
@ApiModelProperty("id")
@NotBlank(message = "索引不能为空")
private String Id;
}
/**
* 分页查询实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class SurveyPlanQueryParam extends BaseParam {
/**
* 普测负责单位
*/
String deptIndex;
}
}

View File

@@ -0,0 +1,108 @@
package com.njcn.supervision.pojo.param.survey;
import com.njcn.db.bo.BaseEntity;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
* 普测测试的管理表
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Data
public class SurveyTestParam extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 普测计划表id
*/
@ApiModelProperty(value = "普测计划表id")
private String planId;
/**
* 负责单位id
*/
@ApiModelProperty(value = "负责单位id")
private String deptId;
/**
* 计划完成时间
*/
@ApiModelProperty(value = "计划完成时间")
private LocalDate completeTime;
/**
* 测试负责人
*/
@ApiModelProperty(value = "测试负责人")
private String completeBy;
/**
* 测试报告
*/
@ApiModelProperty(value = "测试报告")
private String testReport;
/**
* 是否有问题 0 没有问题 1 有问题
*/
@ApiModelProperty(value = "是否有问题")
private Integer problemFlag;
/**
* 问题描述
*/
@ApiModelProperty(value = "问题描述")
private String problemDetail;
/**
* 测试审批状态(1:审批中2审批通过3审批不通过4已取消)
*/
@ApiModelProperty(value = "测试审批状态")
private Integer status;
/**
* 流程实例id
*/
@ApiModelProperty(value = "流程实例id")
private String processInstanceId;
/**
* 历史流程id列表
*/
@ApiModelProperty(value = "历史流程id列表")
private String historyInstanceId;
@Data
@EqualsAndHashCode(callSuper = true)
public static class SurveyTestUpdateParam extends SurveyTestParam {
@ApiModelProperty("id")
@NotBlank(message = "索引不能为空")
private String Id;
}
/**
* 分页查询实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class SurveyTestQueryParam extends BaseParam {
}
}

View File

@@ -0,0 +1,83 @@
package com.njcn.supervision.pojo.po.survey;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 普测计划流程表
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Data
@TableName("supervision_survey_plan")
public class SurveyPlan extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 普测计划编号
*/
private String id;
/**
* 负责单位ID
*/
private String deptId;
/**
* 普测计划名称
*/
private String planName;
/**
* 计划开始时间
*/
private LocalDate planStartTime;
/**
* 计划结束时间
*/
private LocalDate planEndTime;
/**
* 0 关联系统内变电站1 用户手动输入变电站
*/
private Integer customSubstationFlag;
/**
* 变电站台账ID或者用户手动输入的变电站名称
*/
private String substation;
/**
* 计划状态(1:审批中2审批通过3审批不通过4已取消)
*/
private Integer status;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 历史流程实例id列表
*/
private String historyInstanceId;
/**
* 状态0-删除 1-正常
*/
private Integer state;
}

View File

@@ -0,0 +1,87 @@
package com.njcn.supervision.pojo.po.survey;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 普测测试的管理表
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Data
@TableName("supervision_survey_test")
public class SurveyTest extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 普测测试管理表id
*/
private String id;
/**
* 普测计划表id
*/
private String planId;
/**
* 负责单位id
*/
private String deptId;
/**
* 计划完成时间
*/
private LocalDate completeTime;
/**
* 测试负责人
*/
private String completeBy;
/**
* 测试报告
*/
private String testReport;
/**
* 是否有问题 0 没有问题 1 有问题
*/
private Integer problemFlag;
/**
* 问题描述
*/
private String problemDetail;
/**
* 测试审批状态(1:审批中2审批通过3审批不通过4已取消)
*/
private Integer status;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 历史流程id列表
*/
private String historyInstanceId;
/**
* 状态0-删除 1-正常
*/
private Integer state;
}

View File

@@ -135,4 +135,5 @@ public class UserReportPO extends BaseEntity {
private Integer state;
}

View File

@@ -148,5 +148,36 @@ public class UserReportSensitivePO extends BaseEntity {
@TableField(value = "`state`")
private Integer state;
/**
* 供电电源
*/
@TableField(value = "power_supply")
private String powerSupply;
/**
* 接入电压等级
*/
@TableField(value = "supply_voltage_level")
private String supplyVoltageLevel;
/**
* 负荷级别
*/
@TableField(value = "load_level")
private String loadLevel;
/**
* 供电电源情况(单电源、双电源、多电源)
*/
@TableField(value = "power_supply_info")
private String powerSupplyInfo;
/**
* 运维单位
*/
@TableField(value = "maintenance_unit")
private String maintenanceUnit;
}

View File

@@ -0,0 +1,88 @@
package com.njcn.supervision.pojo.vo.survey;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
* 普测计划流程表
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Data
public class SurveyPlanVO extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 普测计划编号
*/
private String id;
/**
* 负责单位ID
*/
private String deptId;
/**
* 负责单位名称
*/
private String deptName;
/**
* 普测计划名称
*/
private String planName;
/**
* 计划开始时间
*/
private LocalDate planStartTime;
/**
* 计划结束时间
*/
private LocalDate planEndTime;
/**
* 0 关联系统内变电站1 用户手动输入变电站
*/
private Integer customSubstationFlag;
/**
* 变电站台账ID或者用户手动输入的变电站名称
*/
private String substation;
/**
* 变电站名称
*/
private String substationName;
/**
* 计划状态(1:审批中2审批通过3审批不通过4已取消)
*/
private Integer status;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 历史流程实例id列表
*/
private String historyInstanceId;
/**
* 状态0-删除 1-正常
*/
private Integer state;
}

View File

@@ -0,0 +1,83 @@
package com.njcn.supervision.pojo.vo.survey;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
* 普测测试的管理表
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Data
public class SurveyTestVO extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 普测测试管理表id
*/
private String id;
/**
* 普测计划表id
*/
private String planId;
/**
* 负责单位id
*/
private String deptId;
/**
* 计划完成时间
*/
private LocalDate completeTime;
/**
* 测试负责人
*/
private String completeBy;
/**
* 测试报告
*/
private String testReport;
/**
* 是否有问题 0 没有问题 1 有问题
*/
private Integer problemFlag;
/**
* 问题描述
*/
private String problemDetail;
/**
* 测试审批状态(1:审批中2审批通过3审批不通过4已取消)
*/
private Integer status;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 历史流程id列表
*/
private String historyInstanceId;
/**
* 状态0-删除 1-正常
*/
private Integer state;
}

View File

@@ -61,7 +61,7 @@ public class QuitRunningDeviceController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/update")
@ApiOperation("更新设备退运")
@ApiOperation("重新发起设备退运")
@ApiImplicitParam(name = "quitRunningDeviceUpdateParam", value = "实体参数", required = true)
public HttpResult<String> updateQuitRunningDevice(@RequestBody @Validated QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) {
String methodDescribe = getMethodDescribe("quitRunningDeviceUpdateParam");

View File

@@ -0,0 +1,96 @@
package com.njcn.supervision.controller.survey;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.supervision.pojo.param.survey.SurveyPlanParam;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO;
import com.njcn.supervision.service.survey.ISurveyPlanService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.njcn.web.controller.BaseController;
/**
* <p>
* 普测计划流程表 前端控制器
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@RestController
@RequestMapping("/surveyPlan")
@Slf4j
@Api(tags = "普测计划流程管理")
@AllArgsConstructor
public class SurveyPlanController extends BaseController {
private final ISurveyPlanService surveyPlanService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/surveyPlanPage")
@ApiOperation("分页查询当前用户能看到的普测计划")
@ApiImplicitParam(name = "surveyPlanQueryParam", value = "参数", required = true)
public HttpResult<Page<SurveyPlanVO>> surveyPlanPage(@RequestBody @Validated SurveyPlanParam.SurveyPlanQueryParam surveyPlanQueryParam) {
String methodDescribe = getMethodDescribe("surveyPlanPage");
Page<SurveyPlanVO> out = surveyPlanService.surveyPlanPage(surveyPlanQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增普测计划")
@ApiImplicitParam(name = "surveyPlanParam", value = "实体参数", required = true)
public HttpResult<String> addSurveyPlan(@RequestBody @Validated SurveyPlanParam surveyPlanParam) {
String methodDescribe = getMethodDescribe("addSurveyPlan");
String planId = surveyPlanService.addSurveyPlan(surveyPlanParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, planId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/update")
@ApiOperation("重新发起普测计划")
@ApiImplicitParam(name = "surveyPlanUpdateParam", value = "实体参数", required = true)
public HttpResult<String> updateSurveyPlan(@RequestBody @Validated SurveyPlanParam.SurveyPlanUpdateParam surveyPlanUpdateParam) {
String methodDescribe = getMethodDescribe("updateSurveyPlan");
String runningDeviceId = surveyPlanService.updateSurveyPlan(surveyPlanUpdateParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消普测计划")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelSurveyPlan(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelSurveyPlan");
String runningDeviceId = surveyPlanService.cancelSurveyPlan(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@GetMapping("/updateSurveyPlanStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更新普测计划流程状态")
public HttpResult<Object> updateSurveyPlanStatus(String businessKey, Integer status) {
String methodDescribe = getMethodDescribe("updateSurveyPlanStatus");
surveyPlanService.updateSurveyPlanStatus(businessKey, status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,95 @@
package com.njcn.supervision.controller.survey;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.supervision.pojo.param.survey.SurveyTestParam;
import com.njcn.supervision.pojo.vo.survey.SurveyTestVO;
import com.njcn.supervision.service.survey.ISurveyTestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.njcn.web.controller.BaseController;
/**
* <p>
* 普测测试的管理表 前端控制器
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@RestController
@RequestMapping("/surveyTest")
@Slf4j
@Api(tags = "普测计划流程管理")
@AllArgsConstructor
public class SurveyTestController extends BaseController {
private final ISurveyTestService surveyTestService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/surveyTestPage")
@ApiOperation("分页查询当前用户能看到的普测测试")
@ApiImplicitParam(name = "surveyTestQueryParam", value = "参数", required = true)
public HttpResult<Page<SurveyTestVO>> surveyTestPage(@RequestBody @Validated SurveyTestParam.SurveyTestQueryParam surveyTestQueryParam) {
String methodDescribe = getMethodDescribe("surveyTestPage");
Page<SurveyTestVO> out = surveyTestService.surveyTestPage(surveyTestQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增普测测试")
@ApiImplicitParam(name = "surveyTestParam", value = "实体参数", required = true)
public HttpResult<String> addSurveyTest(@RequestBody @Validated SurveyTestParam surveyTestParam) {
String methodDescribe = getMethodDescribe("addSurveyTest");
String planId = surveyTestService.addSurveyTest(surveyTestParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, planId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/update")
@ApiOperation("重新发起普测测试")
@ApiImplicitParam(name = "surveyTestUpdateParam", value = "实体参数", required = true)
public HttpResult<String> updateSurveyTest(@RequestBody @Validated SurveyTestParam.SurveyTestUpdateParam surveyTestUpdateParam) {
String methodDescribe = getMethodDescribe("updateSurveyTest");
String runningDeviceId = surveyTestService.updateSurveyTest(surveyTestUpdateParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消普测测试")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelSurveyTest(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelSurveyTest");
String runningDeviceId = surveyTestService.cancelSurveyTest(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@GetMapping("/updateSurveyTestStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更新普测测试流程状态")
public HttpResult<Object> updateSurveyTestStatus(String businessKey, Integer status) {
String methodDescribe = getMethodDescribe("updateSurveyTestStatus");
surveyTestService.updateSurveyTestStatus(businessKey, status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -1,13 +1,20 @@
package com.njcn.supervision.controller.user;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
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.HttpResultUtil;
import com.njcn.poi.util.PoiUtil;
import com.njcn.supervision.enums.SupervisionResponseEnum;
import com.njcn.supervision.pojo.dto.SensitiveUserExcel;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import com.njcn.supervision.service.user.UserReportPOService;
@@ -20,8 +27,11 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Objects;
/**
* 干扰源用户管理
@@ -39,21 +49,21 @@ public class UserReportManageController extends BaseController {
private final UserReportPOService userReportPOService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增干扰源用户")
@ApiImplicitParam(name = "userReportParam", value = "实体参数", required = true)
public HttpResult<String> addUserReport(@RequestBody @Validated UserReportParam userReportParam){
public HttpResult<String> addUserReport(@RequestBody @Validated UserReportParam userReportParam) {
String methodDescribe = getMethodDescribe("addUserReport");
String userReportId = userReportPOService.addUserReport(userReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReportId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/auditUserReport")
@ApiOperation("修改干扰源用户")
@ApiImplicitParam(name = "userReportUpdate", value = "实体参数", required = true)
public HttpResult<Boolean> auditUserReport(@RequestBody @Validated UserReportParam.UserReportUpdate userReportUpdate){
public HttpResult<Boolean> auditUserReport(@RequestBody @Validated UserReportParam.UserReportUpdate userReportUpdate) {
String methodDescribe = getMethodDescribe("auditUserReport");
boolean res = userReportPOService.auditUserReport(userReportUpdate);
@@ -65,7 +75,7 @@ public class UserReportManageController extends BaseController {
@PostMapping("/getUserReport")
@ApiOperation("分页查询当前用户能看到的用户建档数据")
@ApiImplicitParam(name = "userReportQueryParam", value = "参数", required = true)
public HttpResult<Page<UserReportVO>> getUserReport(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam){
public HttpResult<Page<UserReportVO>> getUserReport(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam) {
String methodDescribe = getMethodDescribe("getUserReport");
Page<UserReportVO> out = userReportPOService.getUserReport(userReportQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
@@ -74,7 +84,7 @@ public class UserReportManageController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/removeUserReport")
@ApiOperation("删除干扰源用户记录")
public HttpResult<Boolean> removeUserReport(@RequestParam("ids") List<String> ids){
public HttpResult<Boolean> removeUserReport(@RequestParam("ids") List<String> ids) {
String methodDescribe = getMethodDescribe("removeUserReport");
Boolean flag = userReportPOService.removeUserReport(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
@@ -90,29 +100,28 @@ public class UserReportManageController extends BaseController {
}
@GetMapping("/updateUserReportStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更新用户数据流程状态")
public HttpResult<Object> updateUserReportStatus(String businessKey,Integer status) {
public HttpResult<Object> updateUserReportStatus(String businessKey, Integer status) {
String methodDescribe = getMethodDescribe("updateUserReportStatus");
userReportPOService.updateUserReportStatus(businessKey,status);
userReportPOService.updateUserReportStatus(businessKey, status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@GetMapping("/updateUserStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更新干扰源用户状态")
public HttpResult<Object> updateUserStatus(String lineId,Integer userStatus) {
public HttpResult<Object> updateUserStatus(String lineId, Integer userStatus) {
String methodDescribe = getMethodDescribe("updateUserStatus");
userReportPOService.updateUserStatus(lineId,userStatus);
userReportPOService.updateUserStatus(lineId, userStatus);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getUserReportList")
@ApiOperation("查询干扰源下拉列表")
public HttpResult<List<UserReportVO>> getUserReportList(){
public HttpResult<List<UserReportVO>> getUserReportList() {
String methodDescribe = getMethodDescribe("getUserReportList");
List<UserReportVO> out = userReportPOService.getUserReportList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
@@ -122,12 +131,22 @@ public class UserReportManageController extends BaseController {
@PostMapping("/getInterferenceUserPage")
@ApiOperation("分页查询干扰源用户台账")
@ApiImplicitParam(name = "userReportQueryParam", value = "参数", required = true)
public HttpResult<Page<UserReportVO>> getInterferenceUserPage(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam){
public HttpResult<Page<UserReportVO>> getInterferenceUserPage(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam) {
String methodDescribe = getMethodDescribe("getInterferenceUserPage");
Page<UserReportVO> out = userReportPOService.getInterferenceUserPage(userReportQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getSensitiveUserPage")
@ApiOperation("分页查询敏感及重要用户台账")
@ApiImplicitParam(name = "userReportQueryParam", value = "参数", required = true)
public HttpResult<Page<UserReportVO>> getSensitiveUserPage(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam) {
String methodDescribe = getMethodDescribe("getSensitiveUserPage");
Page<UserReportVO> out = userReportPOService.getSensitiveUserPage(userReportQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消")
@@ -139,4 +158,25 @@ public class UserReportManageController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/downloadSensitiveUserTemplate")
@ApiOperation("下载敏感及重要用户模板")
public void downloadSensitiveUserTemplate() {
userReportPOService.downloadSensitiveUserTemplate();
}
@PostMapping(value = "/importSensitiveUserData")
@ApiOperation("批量导入敏感及重要用户")
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<String> importSensitiveUserData(@RequestParam("file") MultipartFile file, HttpServletResponse response) {
String methodDescribe = getMethodDescribe("importSensitiveUserData");
//批量录入暂降数据
if (Objects.isNull(userReportPOService.importSensitiveUserData(file, response))) {
return null;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,21 @@
package com.njcn.supervision.mapper.survey;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.supervision.pojo.po.survey.SurveyPlan;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 普测计划流程表 Mapper 接口
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
public interface SurveyPlanMapper extends BaseMapper<SurveyPlan> {
Page<SurveyPlanVO> surveyPlanPage(Page<Object> objectPage, @Param("ew") QueryWrapper<SurveyPlanVO> surveyPlanVOQueryWrapper);
}

View File

@@ -0,0 +1,21 @@
package com.njcn.supervision.mapper.survey;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.survey.SurveyTestVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 普测测试的管理表 Mapper 接口
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
public interface SurveyTestMapper extends BaseMapper<SurveyTest> {
Page<SurveyTestVO> surveyTestPage(Page<Object> objectPage, @Param("ew")QueryWrapper<SurveyTestVO> surveyTestVOQueryWrapper);
}

View File

@@ -15,7 +15,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
plan_no, sub_id, sub_name, voltage_level, capacity, measurement_point_id, is_problem,
plan_no, sub_id, sub_name, voltage_level, capacity, measurement_point_id, is_problem,
is_survey
</sql>
</mapper>

View File

@@ -0,0 +1,11 @@
<?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.supervision.mapper.survey.SurveyPlanMapper">
<select id="surveyPlanPage" resultType="SurveyPlanVO">
SELECT supervision_survey_plan.*
FROM supervision_survey_plan supervision_survey_plan
WHERE ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,11 @@
<?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.supervision.mapper.survey.SurveyTestMapper">
<select id="surveyTestPage" resultType="SurveyTestVO">
SELECT supervision_survey_test.*
FROM supervision_survey_test supervision_survey_test
WHERE ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,29 @@
package com.njcn.supervision.service.survey;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.param.survey.SurveyPlanParam;
import com.njcn.supervision.pojo.po.survey.SurveyPlan;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO;
/**
* <p>
* 普测计划流程表 服务类
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
public interface ISurveyPlanService extends IService<SurveyPlan> {
Page<SurveyPlanVO> surveyPlanPage(SurveyPlanParam.SurveyPlanQueryParam surveyPlanQueryParam);
String addSurveyPlan(SurveyPlanParam surveyPlanParam);
String updateSurveyPlan(SurveyPlanParam.SurveyPlanUpdateParam surveyPlanUpdateParam);
String cancelSurveyPlan(BpmProcessInstanceCancelParam cancelReqVO);
void updateSurveyPlanStatus(String businessKey, Integer status);
}

View File

@@ -0,0 +1,29 @@
package com.njcn.supervision.service.survey;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.param.survey.SurveyTestParam;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.survey.SurveyTestVO;
/**
* <p>
* 普测测试的管理表 服务类
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
public interface ISurveyTestService extends IService<SurveyTest> {
Page<SurveyTestVO> surveyTestPage(SurveyTestParam.SurveyTestQueryParam surveyTestQueryParam);
String addSurveyTest(SurveyTestParam surveyTestParam);
String updateSurveyTest(SurveyTestParam.SurveyTestUpdateParam surveyTestUpdateParam);
String cancelSurveyTest(BpmProcessInstanceCancelParam cancelReqVO);
void updateSurveyTestStatus(String businessKey, Integer status);
}

View File

@@ -0,0 +1,186 @@
package com.njcn.supervision.service.survey.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;
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.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.supervision.mapper.survey.SurveyPlanMapper;
import com.njcn.supervision.pojo.param.survey.SurveyPlanParam;
import com.njcn.supervision.pojo.po.survey.SurveyPlan;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO;
import com.njcn.supervision.service.survey.ISurveyPlanService;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* <p>
* 普测计划流程表 服务实现类
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Service
@RequiredArgsConstructor
public class SurveyPlanServiceImpl extends ServiceImpl<SurveyPlanMapper, SurveyPlan> implements ISurveyPlanService {
private final UserFeignClient userFeignClient;
private final BpmProcessFeignClient bpmProcessFeignClient;
private final DeptFeignClient deptFeignClient;
private final LineFeignClient lineFeignClient;
/**
* 预告警单的反馈单对应的流程定义 KEY
*/
public static final String PROCESS_KEY = "survey_plan";
@Override
public Page<SurveyPlanVO> surveyPlanPage(SurveyPlanParam.SurveyPlanQueryParam surveyPlanQueryParam) {
QueryWrapper<SurveyPlanVO> surveyPlanVOQueryWrapper = new QueryWrapper<>();
if (Objects.nonNull(surveyPlanQueryParam)) {
//添加上时间范围
surveyPlanVOQueryWrapper.between("supervision_survey_plan.Create_Time",
DateUtil.beginOfDay(DateUtil.parse(surveyPlanQueryParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(surveyPlanQueryParam.getSearchEndTime())));
//根据工程名称模糊搜索
if (StrUtil.isNotBlank(surveyPlanQueryParam.getSearchValue())) {
surveyPlanVOQueryWrapper.like("supervision_survey_plan.plan_name", surveyPlanQueryParam.getSearchValue());
}
//筛选普测负责单位
if (StrUtil.isNotBlank(surveyPlanQueryParam.getDeptIndex())) {
List<String> deptIds = deptFeignClient.getDepSonIdtByDeptId(surveyPlanQueryParam.getDeptIndex()).getData();
surveyPlanVOQueryWrapper.in("supervision_survey_plan.dept_id", deptIds);
}
}
//获取当前用户部门所有同事的id查看该部门下所有的数据
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
surveyPlanVOQueryWrapper.in("supervision_survey_plan.Create_By", colleaguesIds)
.eq("supervision_survey_plan.state", DataStateEnum.ENABLE.getCode())
.orderByDesc("supervision_survey_plan.Update_Time");
Page<SurveyPlanVO> surveyPlanVOPage = this.baseMapper.surveyPlanPage(new Page<>(PageFactory.getPageNum(surveyPlanQueryParam), PageFactory.getPageSize(surveyPlanQueryParam)), surveyPlanVOQueryWrapper);
List<SurveyPlanVO> records = surveyPlanVOPage.getRecords();
if (CollectionUtil.isNotEmpty(records)) {
for (SurveyPlanVO record : records) {
//回显部门名称
record.setDeptName(deptFeignClient.getDeptById(record.getDeptId()).getData().getName());
//回显变电站名称
if (record.getCustomSubstationFlag() == 0) {
//关联台账内的变电站名称
// record.setSubstationName(lineFeignClient.getSubstationInfo(record.getSubstation()).getData().getName());
String substation = record.getSubstation();
String[] subIds = substation.split(StrPool.COMMA);
String subName = "";
for (String subId : subIds) {
String name = lineFeignClient.getSubstationInfo(subId).getData().getName();
subName = subName.concat(StrPool.COMMA).concat(name);
}
subName = subName.substring(1);
record.setSubstation(subName);
} else {
record.setSubstationName(record.getSubstation());
}
}
}
return surveyPlanVOPage;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String addSurveyPlan(SurveyPlanParam surveyPlanParam) {
//排除重复计划的策略暂时未知待后期有人提出了再去做todo...
SurveyPlan surveyPlan = new SurveyPlan();
BeanUtils.copyProperties(surveyPlanParam, surveyPlan);
surveyPlan.setState(DataStateEnum.ENABLE.getCode());
surveyPlan.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(surveyPlan);
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(surveyPlan.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(new HashMap<>());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(surveyPlan.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
surveyPlan.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(surveyPlan);
return surveyPlan.getId();
}
@Override
public String updateSurveyPlan(SurveyPlanParam.SurveyPlanUpdateParam surveyPlanUpdateParam) {
SurveyPlan surveyPlan = this.baseMapper.selectById(surveyPlanUpdateParam.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(), surveyPlan.getCreateBy());
surveyPlanUpdateParam.setStatus(surveyPlan.getStatus());
surveyPlanUpdateParam.setProcessInstanceId(surveyPlan.getProcessInstanceId());
surveyPlanUpdateParam.setHistoryInstanceId(surveyPlan.getHistoryInstanceId());
BeanUtils.copyProperties(surveyPlanUpdateParam, surveyPlan);
surveyPlan.setState(DataStateEnum.ENABLE.getCode());
surveyPlan.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(surveyPlan.getProcessInstanceId(), surveyPlan.getHistoryInstanceId());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(surveyPlan.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(new HashMap<>());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(surveyPlan.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
surveyPlan.setProcessInstanceId(processInstanceId);
//保存历史流程id列表
surveyPlan.setHistoryInstanceId(historyInstanceIds);
this.baseMapper.updateById(surveyPlan);
return surveyPlan.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public String cancelSurveyPlan(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
SurveyPlan surveyPlan = this.baseMapper.selectById(cancelReqVO.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(), surveyPlan.getCreateBy());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
surveyPlan.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(surveyPlan);
return surveyPlan.getId();
}
@Override
public void updateSurveyPlanStatus(String businessKey, Integer status) {
SurveyPlan surveyPlan = this.baseMapper.selectById(businessKey);
surveyPlan.setStatus(status);
this.updateById(surveyPlan);
}
}

View File

@@ -0,0 +1,151 @@
package com.njcn.supervision.service.survey.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
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.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.supervision.mapper.survey.SurveyTestMapper;
import com.njcn.supervision.pojo.param.survey.SurveyTestParam;
import com.njcn.supervision.pojo.po.survey.SurveyPlan;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO;
import com.njcn.supervision.pojo.vo.survey.SurveyTestVO;
import com.njcn.supervision.service.survey.ISurveyTestService;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.user.api.UserFeignClient;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* <p>
* 普测测试的管理表 服务实现类
* </p>
*
* @author hongawen
* @since 2024-05-30
*/
@Service
@RequiredArgsConstructor
public class SurveyTestServiceImpl extends ServiceImpl<SurveyTestMapper, SurveyTest> implements ISurveyTestService {
private final UserFeignClient userFeignClient;
private final BpmProcessFeignClient bpmProcessFeignClient;
/**
* 预告警单的反馈单对应的流程定义 KEY
*/
public static final String PROCESS_KEY = "survey_test";
@Override
public Page<SurveyTestVO> surveyTestPage(SurveyTestParam.SurveyTestQueryParam surveyTestQueryParam) {
QueryWrapper<SurveyTestVO> surveyTestVOQueryWrapper = new QueryWrapper<>();
if (Objects.nonNull(surveyTestQueryParam)) {
//添加上时间范围
surveyTestVOQueryWrapper.between("supervision_survey_test.Create_Time",
DateUtil.beginOfDay(DateUtil.parse(surveyTestQueryParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(surveyTestQueryParam.getSearchEndTime())));
//根据工程名称模糊搜索
if (StrUtil.isNotBlank(surveyTestQueryParam.getSearchValue())) {
surveyTestVOQueryWrapper.like("supervision_survey_test.plan_name", surveyTestQueryParam.getSearchValue());
}
}
//获取当前用户部门所有同事的id查看该部门下所有的数据
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
surveyTestVOQueryWrapper.in("supervision_survey_test.Create_By", colleaguesIds)
.eq("supervision_survey_test.state", DataStateEnum.ENABLE.getCode())
.orderByDesc("supervision_survey_test.Update_Time");
return this.baseMapper.surveyTestPage(new Page<>(PageFactory.getPageNum(surveyTestQueryParam), PageFactory.getPageSize(surveyTestQueryParam)), surveyTestVOQueryWrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public String addSurveyTest(SurveyTestParam surveyTestParam) {
SurveyTest surveyTest = new SurveyTest();
BeanUtils.copyProperties(surveyTestParam, surveyTest);
surveyTest.setState(DataStateEnum.ENABLE.getCode());
surveyTest.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(surveyTest);
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(surveyTest.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(new HashMap<>());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(surveyTest.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
surveyTest.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(surveyTest);
return surveyTest.getId();
}
@Override
public String updateSurveyTest(SurveyTestParam.SurveyTestUpdateParam surveyTestUpdateParam) {
SurveyTest surveyTest = this.baseMapper.selectById(surveyTestUpdateParam.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(),surveyTest.getCreateBy());
surveyTestUpdateParam.setStatus(surveyTest.getStatus());
surveyTestUpdateParam.setProcessInstanceId(surveyTest.getProcessInstanceId());
surveyTestUpdateParam.setHistoryInstanceId(surveyTest.getHistoryInstanceId());
BeanUtils.copyProperties(surveyTestUpdateParam, surveyTest);
surveyTest.setState(DataStateEnum.ENABLE.getCode());
surveyTest.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(surveyTest.getProcessInstanceId(), surveyTest.getHistoryInstanceId());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(surveyTest.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(new HashMap<>());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(surveyTest.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
surveyTest.setProcessInstanceId(processInstanceId);
//保存历史流程id列表
surveyTest.setHistoryInstanceId(historyInstanceIds);
this.baseMapper.updateById(surveyTest);
return surveyTest.getId();
}
@Override
public String cancelSurveyTest(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
SurveyTest surveyTest = this.baseMapper.selectById(cancelReqVO.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(),surveyTest.getCreateBy());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
surveyTest.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(surveyTest);
return surveyTest.getId();
}
@Override
public void updateSurveyTestStatus(String businessKey, Integer status) {
SurveyTest surveyTest = this.baseMapper.selectById(businessKey);
surveyTest.setStatus(status);
this.updateById(surveyTest);
}
}

View File

@@ -3,10 +3,13 @@ package com.njcn.supervision.service.user;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.dto.SensitiveUserExcel;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.UserReportPO;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -39,4 +42,13 @@ public interface UserReportPOService extends IService<UserReportPO> {
String cancelUserReport(BpmProcessInstanceCancelParam cancelReqVO);
void updateUserStatus(String lineId, Integer userStatus);
/**
* 分页查询敏感及重要用户台账
*/
Page<UserReportVO> getSensitiveUserPage(UserReportParam.UserReportQueryParam userReportQueryParam);
void downloadSensitiveUserTemplate();
String importSensitiveUserData(MultipartFile file, HttpServletResponse response);
}

View File

@@ -1,5 +1,9 @@
package com.njcn.supervision.service.user.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
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.CollectionUtil;
import cn.hutool.core.util.StrUtil;
@@ -13,13 +17,22 @@ import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.utils.PubUtil;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.excel.PullDown;
import com.njcn.poi.util.PoiUtil;
import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.enums.SupervisionResponseEnum;
import com.njcn.supervision.enums.SupervisionUserStatusEnum;
import com.njcn.supervision.enums.UserNatureEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper;
import com.njcn.supervision.mapper.user.UserReportPOMapper;
import com.njcn.supervision.pojo.dto.SensitiveUserExcel;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.po.user.UserReportPO;
@@ -32,8 +45,12 @@ import com.njcn.supervision.service.user.UserReportProjectPOService;
import com.njcn.supervision.service.user.UserReportSensitivePOService;
import com.njcn.supervision.service.user.UserReportSubstationPOService;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.enums.UserStatusEnum;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
@@ -44,9 +61,13 @@ import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Description:
@@ -72,7 +93,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
private final DeptFeignClient deptFeignClient;
private final SupervisionTempLineReportMapper supervisionTempLineReportMapper;
private final LineFeignClient lineFeignClient;
private final DicDataFeignClient dicDataFeignClient;
@Override
@@ -122,7 +143,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(),bpmProcessInstanceCreateReqDTO).getData();
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
userReportPO.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(userReportPO);
@@ -147,7 +168,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
UserReportProjectPO userReportProjectPO = userReportProjectPOService.getById(id);
BeanUtils.copyProperties(userReportUpdate.getUserReportProjectPO(), userReportProjectPO, getNullPropertyNames(userReportUpdate.getUserReportProjectPO()));
userReportProjectPOService.updateById(userReportProjectPO);
} else if ( CollectionUtil.newArrayList(
} else if (CollectionUtil.newArrayList(
UserNatureEnum.BUILD_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.EXTEND_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.BUILD_NEW_ENERGY_POWER_STATION.getCode(),
@@ -182,8 +203,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
//查询所有区域下的数据
userReportVOQueryWrapper.in("supervision_user_report.city", userReportQueryParam.getCity());
}
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()),"supervision_user_report.project_name", userReportQueryParam.getProjectName());
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName());
//添加上时间范围
// userReportVOQueryWrapper.between("supervision_user_report.Create_Time",
// DateUtil.beginOfDay(DateUtil.parse(userReportQueryParam.getSearchBeginTime())),
@@ -207,7 +227,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
UserReportVO userReportVO = new UserReportVO();
UserReportPO userReportPO = this.baseMapper.selectById(id);
//复制基础信息
BeanUtil.copyProperties(userReportPO,userReportVO);
BeanUtil.copyProperties(userReportPO, userReportVO);
//处理特殊字段,用户名、部门名
UserVO userVO = userFeignClient.getUserById(userReportPO.getReporter()).getData();
userReportVO.setReporter(userVO.getName());
@@ -234,7 +254,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
UserNatureEnum.EXTEND_NEW_ENERGY_POWER_STATION.getCode()
).contains(userReportPO.getUserType())) {
//非线性负荷用户 & 新能源发电站用户
UserReportSubstationPO byId= userReportSubstationPOService.getById(id);
UserReportSubstationPO byId = userReportSubstationPOService.getById(id);
userReportSubstationPOService.saveOrUpdate(byId);
userReportVO.setUserReportSubstationPO(byId);
} else if (UserNatureEnum.SENSITIVE_USER.getCode().equals(userReportPO.getUserType())) {
@@ -276,23 +296,21 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override
public Page<UserReportVO> getInterferenceUserPage(UserReportParam.UserReportQueryParam userReportQueryParam) {
QueryWrapper<UserReportVO> userReportVOQueryWrapper = new QueryWrapper<>();
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
//此处不查询敏感及重要用户
userReportVOQueryWrapper.in("supervision_user_report.create_by", colleaguesIds)
.eq("supervision_user_report.state", DataStateEnum.ENABLE.getCode())
.eq("supervision_user_report.status",FlowStatusEnum.APPROVE.getCode())
;
//TODO
.ne("supervision_user_report.user_type", UserNatureEnum.SENSITIVE_USER.getCode())
.eq("supervision_user_report.status", FlowStatusEnum.APPROVE.getCode());
if (Objects.nonNull(userReportQueryParam)) {
if (StrUtil.isNotBlank(userReportQueryParam.getCity())) {
//查询所有区域下的数据
userReportVOQueryWrapper.in("supervision_user_report.city", userReportQueryParam.getCity());
}
if(Objects.nonNull(userReportQueryParam.getDataType())){
userReportVOQueryWrapper.eq("data_type",userReportQueryParam.getDataType());
if (Objects.nonNull(userReportQueryParam.getDataType())) {
userReportVOQueryWrapper.eq("data_type", userReportQueryParam.getDataType());
}
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()),"supervision_user_report.project_name", userReportQueryParam.getProjectName());
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName());
}
userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time");
@@ -304,7 +322,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
//准备取消该流程,需要远程调用接口
UserReportPO userReportPO = this.baseMapper.selectById(cancelReqVO.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(),userReportPO.getCreateBy());
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(), userReportPO.getCreateBy());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
@@ -320,8 +338,8 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
String userId = supervisionTempLineReport.getUserId();
UserReportPO userReportPO = this.baseMapper.selectById(userId);
//如果目前的干扰源用户状态>userStatus则不修改如果将干扰源用户状态改为3退运则必须其下的监测点都退运才能修改
if(userReportPO.getUserStatus()<userStatus){
if (userStatus==3){
if (userReportPO.getUserStatus() < userStatus) {
if (userStatus == 3) {
List<SupervisionTempLineReport> supervisionTempLineReports = supervisionTempLineReportMapper.selectList(new QueryWrapper<SupervisionTempLineReport>().lambda().eq(SupervisionTempLineReport::getUserId, userId));
List<String> lineIds = supervisionTempLineReports.stream().map(SupervisionTempLineReport::getId).collect(Collectors.toList());
List<LineDetail> data = lineFeignClient.getLineDetail(lineIds).getData();
@@ -329,10 +347,10 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
.map(LineDetail::getRunFlag)
.filter(temp -> !Objects.equals(temp, 2))
.collect(Collectors.toList());
if(CollectionUtil.isEmpty(data)){
if (CollectionUtil.isEmpty(data)) {
userReportPO.setUserStatus(userStatus);
}
}else {
} else {
userReportPO.setUserStatus(userStatus);
}
@@ -340,6 +358,192 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
this.updateById(userReportPO);
}
@Override
public Page<UserReportVO> getSensitiveUserPage(UserReportParam.UserReportQueryParam userReportQueryParam) {
QueryWrapper<UserReportVO> userReportVOQueryWrapper = new QueryWrapper<>();
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
//此处仅查询敏感及重要用户
userReportVOQueryWrapper.in("supervision_user_report.create_by", colleaguesIds)
.eq("supervision_user_report.state", DataStateEnum.ENABLE.getCode())
.eq("supervision_user_report.user_type", UserNatureEnum.SENSITIVE_USER.getCode())
.eq("supervision_user_report.status", FlowStatusEnum.APPROVE.getCode());
if (Objects.nonNull(userReportQueryParam)) {
if (StrUtil.isNotBlank(userReportQueryParam.getCity())) {
//查询所有区域下的数据
userReportVOQueryWrapper.in("supervision_user_report.city", userReportQueryParam.getCity());
}
if (Objects.nonNull(userReportQueryParam.getDataType())) {
userReportVOQueryWrapper.eq("data_type", userReportQueryParam.getDataType());
}
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName());
}
userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time");
Page<UserReportVO> userReportVOPage = this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper);
List<UserReportVO> records = userReportVOPage.getRecords();
if (CollectionUtil.isNotEmpty(records)) {
//将详细信息也查出
for (UserReportVO record : records) {
UserReportSensitivePO userReportSensitivePO = userReportSensitivePOService.getById(record.getId());
record.setUserReportSensitivePO(userReportSensitivePO);
}
}
return userReportVOPage;
}
@Override
public void downloadSensitiveUserTemplate() {
ExportParams exportParams = new ExportParams("敏感及重要用户模板(带*字段均是必填,请严格按照模板标准填入数据)", "重要用户");
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData();
List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData();
List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData();
List<PullDown> pullDowns = new ArrayList<>();
PullDown pullDown;
pullDown = new PullDown();
pullDown.setFirstCol(2);
pullDown.setLastCol(2);
pullDown.setStrings(Stream.of("可研", "建设", "运行", "退运").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(4);
pullDown.setLastCol(4);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(5);
pullDown.setLastCol(5);
pullDown.setStrings(industryType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(8);
pullDown.setLastCol(8);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(9);
pullDown.setLastCol(9);
pullDown.setStrings(loadLevel.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(10);
pullDown.setLastCol(10);
pullDown.setStrings(supplyCondition.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
ExcelUtil.exportExcelPullDown(exportParams, "敏感及重要用户模板.xlsx", pullDowns, SensitiveUserExcel.class, new ArrayList<>());
}
@Override
@Transactional(rollbackFor = Exception.class)
public String importSensitiveUserData(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams();
params.setHeadRows(1);//表头
params.setTitleRows(1);//标题
params.setNeedVerify(true);
params.setStartSheetIndex(0);
params.setSheetNum(1);
List<SensitiveUserExcel> sensitiveUserExcels;
try {
ExcelImportResult<SensitiveUserExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveUserExcel.class, params);
//如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
return null;
} else {
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList();
}
} catch (Exception e) {
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_USER_ERROR);
}
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData();
List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData();
List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData();
//执行批量导入敏感及重要用户,入库过程中会进行数据校验
List<SensitiveUserExcel.SensitiveUserExcelMsg> sensitiveUserExcelMsgs = new ArrayList<>();
if (CollectionUtil.isNotEmpty(sensitiveUserExcels)) {
for (SensitiveUserExcel sensitiveUserExcel : sensitiveUserExcels) {
//先判断当前用户是否已经存在
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper.eq(UserReportPO::getProjectName, sensitiveUserExcel.getProjectName())
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
int count = this.count(userReportPOLambdaQueryWrapper);
if (count > 0) {
// if(sensitiveUserExcel.getOverlay() == 1){
//
// }else{
//该用户已经录入
SensitiveUserExcel.SensitiveUserExcelMsg sensitiveUserExcelMsg = new SensitiveUserExcel.SensitiveUserExcelMsg();
BeanUtils.copyProperties(sensitiveUserExcel, sensitiveUserExcelMsg);
sensitiveUserExcelMsg.setMsg("该用户已录入,请联系管理员!");
sensitiveUserExcelMsgs.add(sensitiveUserExcelMsg);
// }
continue;
}
//处理通用信息
UserReportPO userReportPO = new UserReportPO();
userReportPO.setReporter(RequestUtil.getUserIndex());
userReportPO.setReportDate(LocalDate.now());
userReportPO.setOrgId(RequestUtil.getDeptIndex());
userReportPO.setCity(sensitiveUserExcel.getCity());
userReportPO.setUserType(UserNatureEnum.SENSITIVE_USER.getCode());
if(Objects.nonNull(sensitiveUserExcel.getUserStatus())){
userReportPO.setUserStatus(sensitiveUserExcel.getUserStatus());
}else{
userReportPO.setUserStatus(SupervisionUserStatusEnum.PRODUCT.getCode());
}
userReportPO.setSubstation(sensitiveUserExcel.getSubstation());
//电压等级需要特殊处理下
if (StrUtil.isNotBlank(sensitiveUserExcel.getVoltageLevel())) {
userReportPO.setVoltageLevel(PubUtil.getDicById(sensitiveUserExcel.getVoltageLevel(), devVoltage));
}
userReportPO.setProjectName(sensitiveUserExcel.getProjectName());
userReportPO.setDataType(1);
userReportPO.setStatus(2);
userReportPO.setState(DataStateEnum.ENABLE.getCode());
this.baseMapper.insert(userReportPO);
//处理敏感用户的信息
UserReportSensitivePO userReportSensitivePO = new UserReportSensitivePO();
userReportSensitivePO.setId(userReportPO.getId());
if (StrUtil.isNotBlank(sensitiveUserExcel.getIndustry())) {
userReportSensitivePO.setIndustry(PubUtil.getDicById(sensitiveUserExcel.getIndustry(), industryType));
}
userReportSensitivePO.setMaintenanceUnit(sensitiveUserExcel.getMaintenanceUnit());
userReportSensitivePO.setPowerSupply(sensitiveUserExcel.getPowerSupply());
if (StrUtil.isNotBlank(sensitiveUserExcel.getSupplyVoltageLevel())) {
userReportSensitivePO.setSupplyVoltageLevel(PubUtil.getDicById(sensitiveUserExcel.getSupplyVoltageLevel(), devVoltage));
}
if (StrUtil.isNotBlank(sensitiveUserExcel.getLoadLevel())) {
userReportSensitivePO.setLoadLevel(PubUtil.getDicById(sensitiveUserExcel.getLoadLevel(), loadLevel));
}
if (StrUtil.isNotBlank(sensitiveUserExcel.getPowerSupplyInfo())) {
userReportSensitivePO.setPowerSupplyInfo(PubUtil.getDicById(sensitiveUserExcel.getPowerSupplyInfo(), supplyCondition));
}
userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode());
userReportSensitivePOService.save(userReportSensitivePO);
}
}
//判断有没有错误信息
if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) {
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs);
return null;
}
return CommonResponseEnum.SUCCESS.getCode();
}
/**
* 获取所有字段为null的属性名
@@ -373,7 +577,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper
.eq(UserReportPO::getProjectName, userReportParam.getProjectName())
.in(UserReportPO::getStatus,CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(),BpmProcessInstanceStatusEnum.APPROVE.getStatus()))
.in(UserReportPO::getStatus, CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(), BpmProcessInstanceStatusEnum.APPROVE.getStatus()))
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
//更新的时候,需排除当前记录
if (isExcludeSelf) {

View File

@@ -133,6 +133,8 @@ public enum DicDataTypeEnum {
CARRY_CAPCITYUSER_MODE("用户模式","carry_capcity_user_mode"),
LOCAL_MUNICIPALITY("所属地市","local_municipality"),
INDUSTRY_TYPE_JB("行业类型-冀北","industry_type_jb"),
LOAD_LEVEL("负荷级别","load_level"),
SUPPLY_CONDITION("供电电源情况","supply_condition"),
;