diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java index 9290c12a0..5b8effe2b 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java @@ -82,6 +82,16 @@ public class LineDevGetDTO { */ private Integer isUpToGrid; + /** + * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于典型负荷) + */ + private Integer isUploadHead; + + /** + * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于主网监测点) + */ + private Integer monitorUploadStatus; + /** * oracle监测点id */ diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java index 9b3b3e388..d67e6973f 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java @@ -26,5 +26,7 @@ public class DeptGetLineParam { @ApiModelProperty(name = "systemType",value = "0.只返回主网的监测点信息; 1.只返回配网的监测点信息; null、2.返回主网配网两种监测点信息") private Integer systemType; + @ApiModelProperty(name = "monitorStateAll",value = "true.只返回在线监测点信息 false.返回全部监测点信息") + private Boolean monitorStateRunning=true; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsDeviceResponseEnum.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsDeviceResponseEnum.java index cd12e4a40..1f54d7e63 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsDeviceResponseEnum.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsDeviceResponseEnum.java @@ -59,6 +59,9 @@ public enum PmsDeviceResponseEnum { NO_ID_STATION("A00357","变电站编号为空"), NO_ID_ORG("A00357","部门编号为空"), + NE_ENERGY_ID("A003560","场站编号重复"), + MONITOR_NE_ENERGY_FIND("A00361","主网监测点存在绑定该场站信息关系,请先解除绑定关系"), + ; diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/NewEnergyQueryParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/NewEnergyQueryParam.java new file mode 100644 index 000000000..a865cd7a1 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/NewEnergyQueryParam.java @@ -0,0 +1,80 @@ +package com.njcn.device.pms.pojo.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.validation.constraints.NotBlank; + +/** + * pqs + * + * @author cdf + * @date 2023/2/20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class NewEnergyQueryParam extends BaseParam { + + @ApiModelProperty(value = "单位id") + private String orgId; + + @Data + public static class Info { + + private static final long serialVersionUID = 1L; + /** + * id + */ + @TableId("Id") + private String id; + + /** + * 名称 + */ + @NotBlank(message = "对象类型不能为空") + @TableField("Obj_Name") + private String objName; + /** + * 组织机构名称 + */ + @TableField("Org_Name") + private String orgName; + + /** + * 组织机构ID(外键) + */ + @TableField("Org_Id") + private String orgId; + /** + * 电压等级 + */ + @TableField("voltage_Level") + private String voltageLevel; + + /** + * 电压等级 + */ + @TableField("Powerr_Name") + private String powerrName; + + /** + * 检测点对象类型(字典) + */ + @TableField("Obj_Type") + private String objType; + + /** + * 电压等级 + */ + @TableField("station_status") + private String stationStatus; + + } + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsNewEnergy.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsNewEnergy.java new file mode 100644 index 000000000..a50c83c48 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsNewEnergy.java @@ -0,0 +1,82 @@ +package com.njcn.device.pms.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author wr + * @since 2024-03-26 + */ +@Getter +@Setter +@TableName("pms_new_energy") +public class PmsNewEnergy extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId("Id") + private String id; + + /** + * 名称 + */ + @TableField("Obj_Name") + private String objName; + /** + * 组织机构名称 + */ + @TableField("Org_Name") + private String orgName; + + /** + * 组织机构ID(外键) + */ + @TableField("Org_Id") + private String orgId; + /** + * 电压等级 + */ + @TableField("voltage_Level") + private String voltageLevel; + + /** + * 电压等级 + */ + @TableField("Powerr_Name") + private String powerrName; + + /** + * 检测点对象类型(字典) + */ + @TableField("Obj_Type") + private String objType; + + /** + * 电压等级 + */ + @TableField("station_status") + private String stationStatus; + + /** + * 状态:0-删除 1-正常 + */ + @TableField("State") + private Integer state; + + + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/MonitorEnergy.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/MonitorEnergy.java new file mode 100644 index 000000000..b1bbd0270 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/MonitorEnergy.java @@ -0,0 +1,59 @@ +package com.njcn.device.pms.pojo.vo.gw; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author wr + * @description + * @date 2024/3/22 11:05 + */ +@Data +public class MonitorEnergy { + + @ApiModelProperty(value = "部门名称") + private String orgName; + + @ApiModelProperty(value = "监测点信息") + List
info; + + + @Data + public static class Details { + + @ApiModelProperty(value = "对象类型") + private String objType; + + @ApiModelProperty(value = "接入线路电压等级为110kV及以上变电站数量(座)") + private String num; + + @ApiModelProperty(value = "接入线路电压等级为110kV及以上变电站数量(座)") + List voltageInfo; + } + + @Data + public static class VoltageInfo { + + @ApiModelProperty(value = "已监测数量") + private Integer monitorNum; + + @ApiModelProperty(value = "新能源场站总数") + private Integer totalNum; + + @ApiModelProperty(value = "监测率") + private Float monitorRate; + + @ApiModelProperty(value = "装置数量(台)") + private Integer deviceNum; + + @ApiModelProperty(value = "覆盖变电站数量(座)") + private Integer substationsNum; + + @ApiModelProperty(value = "电站覆盖率(%)") + private Float substationsRate; + + } + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/MonitorStatisticsController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/MonitorStatisticsController.java new file mode 100644 index 000000000..3c23a4c10 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/MonitorStatisticsController.java @@ -0,0 +1,38 @@ +package com.njcn.device.pms.controller.gwPush; + +import com.njcn.common.pojo.annotation.OperateInfo; +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.device.pms.service.gwPush.MonitorStatisticsService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +@RestController +@RequestMapping("/monitorStatistics") +@Api(tags = "台账类国网上送监测点统计") +@RequiredArgsConstructor +public class MonitorStatisticsController extends BaseController { + + private final MonitorStatisticsService monitorStatisticsService; + + @PostMapping("/objType") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("国网上送接口") + public HttpResult< List>> objType(String deptId){ + String methodDescribe = getMethodDescribe("objType"); + List> gwMonitorStatistics = monitorStatisticsService.getGwMonitorStatistics(deptId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gwMonitorStatistics, methodDescribe); + } + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsNewEnergyController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsNewEnergyController.java new file mode 100644 index 000000000..53d4639b0 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsNewEnergyController.java @@ -0,0 +1,116 @@ +package com.njcn.device.pms.controller.ledgerManger; + + +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.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.device.pms.pojo.param.NewEnergyQueryParam; +import com.njcn.device.pms.pojo.po.PmsNewEnergy; +import com.njcn.device.pms.service.gwPush.IPmsNewEnergyService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import com.njcn.web.controller.BaseController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author wr + * @since 2024-03-26 + */ +@RestController +@RequestMapping("/pmsNewEnergy") +@RequiredArgsConstructor +public class PmsNewEnergyController extends BaseController { + + private final IPmsNewEnergyService newEnergyService; + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("getNewEnergyList") + @ApiOperation("分页场站台账所有信息") + @ApiImplicitParam(name = "baseParam",value = "查询监测终端台账信息",required = true) + public HttpResult> getNewEnergyList(@RequestBody @Validated NewEnergyQueryParam baseParam){ + String methodDescribe = getMethodDescribe("getNewEnergyList"); + Page res = newEnergyService.getNewEnergyList(baseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,res,methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("getNewEnergySelectList") + @ApiOperation("查询场站台账所有信息") + public HttpResult> getNewEnergySelectList(String orgId){ + String methodDescribe = getMethodDescribe("getNewEnergySelectList"); + List res = newEnergyService.getNewEnergySelectList(orgId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,res,methodDescribe); + } + + + /** + * 新增监测终端台账信息 + * @author hany + * @date 2022/10/26 + */ + @PostMapping("/addNewEnergy") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType= OperateType.ADD) + @ApiOperation("新增监测终端台账信息") + @ApiImplicitParam(name = "param", value = "新增实体", required = true) + public HttpResult add(@RequestBody @Validated NewEnergyQueryParam.Info param){ + String methodDescribe = getMethodDescribe("add"); + boolean result = newEnergyService.add(param); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + /** + * 修改监测终端台账信息 + * @author hany + * @date 2022/10/27 + */ + @PostMapping("/updateNewEnergy") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.UPDATE) + @ApiOperation("修改监测终端台账信息") + @ApiImplicitParam(name = "updateParam", value = "更新实体", required = true) + public HttpResult update(@RequestBody @Validated NewEnergyQueryParam.Info updateParam){ + String methodDescribe = getMethodDescribe("update"); + boolean result = newEnergyService.update(updateParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + /** + * 删除监测终端台账信息 + * @param ids id + * @author hany + * @date 2022/10/27 + */ + @PostMapping("/deleteNewEnergy") + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) + @ApiOperation("删除监测终端台账信息") + @ApiImplicitParam(name = "ids", value = "ID索引", required = true) + public HttpResult delete(@RequestBody List ids){ + String methodDescribe = getMethodDescribe("delete"); + boolean result = newEnergyService.delete(ids); + if(result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } +} + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsNewEnergyMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsNewEnergyMapper.java new file mode 100644 index 000000000..5251fc7ed --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsNewEnergyMapper.java @@ -0,0 +1,16 @@ +package com.njcn.device.pms.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pms.pojo.po.PmsNewEnergy; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2024-03-26 + */ +public interface PmsNewEnergyMapper extends BaseMapper { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/SpecialAnalysisMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/SpecialAnalysisMapper.java index 30e9aea57..9e1840d43 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/SpecialAnalysisMapper.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/SpecialAnalysisMapper.java @@ -22,7 +22,8 @@ public interface SpecialAnalysisMapper { * @return */ List selectList(@Param("deptIdList") List deptIdList, - @Param("monitorTags") String monitorTags); + @Param("monitorTags") String monitorTags, + @Param("status") String status); /** * 同比环比数据(风电场,光伏电站,冶炼负荷) diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml index bfa8eb1c2..b444fded8 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml @@ -63,7 +63,7 @@ 1 as Status, now() as Create_Time, now() as Update_Time, - Line_Id as Statistical_Interval, + Line_Id as Line_Id, 15 as Statistical_Interval, Power_Station_Id as Power_Station_Id from diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsNewEnergyMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsNewEnergyMapper.xml new file mode 100644 index 000000000..021f62a18 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsNewEnergyMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/SpecialAnalysisMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/SpecialAnalysisMapper.xml index 0915c68e7..018945a32 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/SpecialAnalysisMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/SpecialAnalysisMapper.xml @@ -22,6 +22,7 @@ pm.`Status` = 1 AND ps.`Status` = 1 + AND pm.`Monitor_State` = #{status} AND pm.Org_Id IN diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/IPmsNewEnergyService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/IPmsNewEnergyService.java new file mode 100644 index 000000000..a61a558ec --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/IPmsNewEnergyService.java @@ -0,0 +1,51 @@ +package com.njcn.device.pms.service.gwPush; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.pms.pojo.param.NewEnergyQueryParam; +import com.njcn.device.pms.pojo.param.PmsBaseParam; +import com.njcn.device.pms.pojo.po.PmsNewEnergy; +import com.njcn.web.pojo.param.BaseParam; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2024-03-26 + */ +public interface IPmsNewEnergyService extends IService { + /** + * 分页查询所有 + * @return Page + */ + Page getNewEnergyList(NewEnergyQueryParam baseParam); + + /** + * 查询所有 + * @param + * @return + */ + List getNewEnergySelectList(String orgId); + + + /** + * 新增 + */ + boolean add(NewEnergyQueryParam.Info param); + + /** + * 修改 + * @param + */ + boolean update(NewEnergyQueryParam.Info updateParam); + + /** + * 删除 + * @param ids ids + */ + boolean delete(List ids); +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorStatisticsService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorStatisticsService.java new file mode 100644 index 000000000..dbe72f835 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorStatisticsService.java @@ -0,0 +1,18 @@ +package com.njcn.device.pms.service.gwPush; + +import com.njcn.device.pms.pojo.vo.gw.MonitorEnergy; + +import java.util.List; + +/** + * 国网台账类上送 + */ +public interface MonitorStatisticsService { + + /** + * @Description: 国网上送统计类型数量统计 + * @Author: wr + * @Date: 2024/3/22 9:49 + */ + List> getGwMonitorStatistics(String deptId); +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorStatisticsServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorStatisticsServiceImpl.java new file mode 100644 index 000000000..c07310c46 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorStatisticsServiceImpl.java @@ -0,0 +1,143 @@ +package com.njcn.device.pms.service.gwPush.impl; + +import cn.hutool.core.collection.CollUtil; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import com.njcn.device.pms.service.gwPush.MonitorStatisticsService; +import com.njcn.device.pms.service.ledgerManger.CommTerminalService; +import com.njcn.system.api.DictTreeFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.enums.DicTreeEnum; +import com.njcn.system.pojo.po.SysDicTreePO; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2023/12/11 + */ +@Service +@RequiredArgsConstructor +public class MonitorStatisticsServiceImpl implements MonitorStatisticsService { + + private final CommTerminalService commTerminalService; + private final DictTreeFeignClient dictTreeFeignClient; + + @Override + public List> getGwMonitorStatistics(String deptId) { + List> info = new ArrayList<>(); + //查询所有一级树字典 + List sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + + //监测点大类 + List broadCategory = sysDicTreePOList.stream() + .filter(item -> Objects.equals(item.getPid(), "0")) + .filter(item -> !Objects.equals(item.getCode(), DicDataTypeEnum.DEVICE_UNIT.getCode())) + .collect(Collectors.toList()); + broadCategory.sort(Comparator.comparing(SysDicTreePO::getSort)); + + List list = new ArrayList<>(); + list.add(""); + List collect = broadCategory.stream().map(SysDicTreePO::getName).collect(Collectors.toList()); + list.addAll(collect); + list.add("合计"); + //获取主网监测统计 + Map> metWorkMap = mapDicIds(broadCategory, sysDicTreePOList); + + //筛选典型源荷统计 + List sourceLoad = sysDicTreePOList.stream().filter(item -> + Objects.equals(DicTreeEnum.Power_Station.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Ele_Railways.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Wind_Farms.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Imp_Users.getCode(), item.getCode()) + ).collect(Collectors.toList()); + sourceLoad.sort(Comparator.comparing(SysDicTreePO::getSort)); + //获取典型源荷监测统计 + Map> sourceLoadMap = mapDicIds(sourceLoad, sysDicTreePOList); + list.addAll(sourceLoad.stream().map(SysDicTreePO::getName).collect(Collectors.toList())); + list.add("其他"); + list.add("合计"); + info.add(list); + //筛选出国网统计信息 + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + deptGetLineParam.setDeptId(deptId); + deptGetLineParam.setMonitorStateRunning(false); + List deptGetChildrenMoreDTOS = commTerminalService.deptGetLine(deptGetLineParam); + //部门信息循环 + List line; + for (DeptGetChildrenMoreDTO deptMonitor : deptGetChildrenMoreDTOS) { + line = new ArrayList<>(); + line.add(deptMonitor.getUnitName()); + List lineBaseList = deptMonitor.getLineBaseList(); + if(CollUtil.isEmpty(lineBaseList)){ + continue; + } + List upToGridList = lineBaseList.stream().filter(item -> Objects.equals(item.getIsUpToGrid(), DataStateEnum.ENABLE.getCode())) + .collect(Collectors.toList()); + addmetWorkList(metWorkMap, upToGridList, line); + addSourceLoadList(sourceLoadMap, upToGridList, line); + info.add(line); + } + return info; + } + + private List addmetWorkList(Map> mapSourceLoad, List upToGridList, List line) { + long total = 0; + for (String s : mapSourceLoad.keySet()) { + List value = mapSourceLoad.get(s); + long monitorCount = upToGridList.stream().filter(item -> value.contains(item.getObjType()) && + Objects.equals(item.getMonitorUploadStatus(), DataStateEnum.ENABLE.getCode()) + ).map(LineDevGetDTO::getPointId).count(); + total += monitorCount; + line.add(String.valueOf(monitorCount)); + } + line.add(String.valueOf(total)); + return line; + } + private List addSourceLoadList(Map> mapSourceLoad, List upToGridList, List line) { + long total = 0; + for (String s : mapSourceLoad.keySet()) { + List value = mapSourceLoad.get(s); + long monitorCount = upToGridList.stream().filter(item -> value.contains(item.getObjType()) && + Objects.equals(item.getIsUploadHead(), DataStateEnum.ENABLE.getCode()) + ).map(LineDevGetDTO::getPointId).count(); + total += monitorCount; + line.add(String.valueOf(monitorCount)); + } + List sourceLoad = mapSourceLoad.values().stream().flatMap(list -> list.stream()).distinct().collect(Collectors.toList()); + long count = upToGridList.stream().filter(item -> !sourceLoad.contains(item.getObjType()) && + Objects.equals(item.getIsUploadHead(), DataStateEnum.ENABLE.getCode()) + ).map(LineDevGetDTO::getPointId).count(); + line.add(String.valueOf(count)); + total += count; + line.add(String.valueOf(total)); + return line; + } + /** + * + * @param objType 监测点对象类型大类 + * @param objTypeAll 监测点所有对象类型 + * @return + */ + private Map> mapDicIds(List objType, List objTypeAll) { + Map> mapKey = new LinkedHashMap<>(); + for(SysDicTreePO load : objType){ + List ids = objTypeAll.stream().filter(item -> item.getPid().equals(load.getId()) || + item.getId().equals(load.getId()) + ).map(SysDicTreePO::getId).collect(Collectors.toList());; + mapKey.put(load.getCode(), ids); + } + return mapKey; + } + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/PmsNewEnergyServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/PmsNewEnergyServiceImpl.java new file mode 100644 index 000000000..50c4a8262 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/PmsNewEnergyServiceImpl.java @@ -0,0 +1,141 @@ +package com.njcn.device.pms.service.gwPush.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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; +import com.njcn.device.pms.enums.PmsDeviceResponseEnum; +import com.njcn.device.pms.mapper.majornetwork.PmsNewEnergyMapper; +import com.njcn.device.pms.pojo.param.NewEnergyQueryParam; +import com.njcn.device.pms.pojo.po.*; +import com.njcn.device.pms.service.gwPush.IPmsNewEnergyService; +import com.njcn.device.pms.service.majornetwork.IMonitorService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.web.factory.PageFactory; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2024-03-26 + */ +@Service +@RequiredArgsConstructor +public class PmsNewEnergyServiceImpl extends ServiceImpl implements IPmsNewEnergyService { + + private final DeptFeignClient deptFeignClient; + private final IMonitorService monitorService; + @Override + public Page getNewEnergyList(NewEnergyQueryParam baseParam) { + List orgIds = new ArrayList<>(); + if(StrUtil.isNotBlank(baseParam.getOrgId())){ + orgIds.addAll(deptFeignClient.getDepSonSelfCodetByDeptId(baseParam.getOrgId()).getData()); + } + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PmsNewEnergy::getState,DataStateEnum.ENABLE.getCode()) + .in(CollUtil.isNotEmpty(orgIds),PmsNewEnergy::getOrgId,orgIds); + if(StrUtil.isNotBlank(baseParam.getSearchValue())) { + lambdaQueryWrapper.and(i -> i.like(PmsNewEnergy::getObjName, baseParam.getSearchValue()) + .or() + .like(PmsNewEnergy::getOrgName, baseParam.getSearchValue()) + .or() + .like(PmsNewEnergy::getPowerrName, baseParam.getSearchValue())); + } + lambdaQueryWrapper.orderByDesc(PmsNewEnergy::getCreateTime); + //初始化分页数据 + return this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); + } + + @Override + public List getNewEnergySelectList(String orgId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PmsNewEnergy::getState,DataStateEnum.ENABLE.getCode()); + if(StrUtil.isNotBlank(orgId)){ + List deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(orgId).getData(); + lambdaQueryWrapper.in(PmsNewEnergy::getOrgId,deptCodes); + } + return this.list(lambdaQueryWrapper); + } + + + + @Override + public boolean add(NewEnergyQueryParam.Info param) { + List list = this.list(new LambdaQueryWrapper() + .eq(PmsNewEnergy::getState,DataStateEnum.ENABLE.getCode()) + .eq(PmsNewEnergy::getId, param.getId()) + .or(wrapper -> + wrapper.eq(PmsNewEnergy::getObjName, param.getOrgName()) + ) + ); + if (CollectionUtil.isNotEmpty(list)) { + List collect = list.stream().map(PmsNewEnergy::getObjName).collect(Collectors.toList()); + if(collect.contains(param.getObjName())){ + throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + } + throw new BusinessException(PmsDeviceResponseEnum.NE_ENERGY_ID); + } + PmsNewEnergy pmsNewEnergy = new PmsNewEnergy(); + BeanUtils.copyProperties(param, pmsNewEnergy); + return this.save(pmsNewEnergy); + } + + /** + * 修改监测终端台账 + * @author hany + * @date 2022/10/27 + */ + @Override + public boolean update(NewEnergyQueryParam.Info param) { + List list = this.list(new LambdaQueryWrapper() + .eq(PmsNewEnergy::getState,DataStateEnum.ENABLE.getCode()) + .ne(PmsNewEnergy::getId, param.getId()) + .and(wrapper -> + wrapper.eq(PmsNewEnergy::getObjName, param.getObjName()) + ) + ); + if (CollectionUtil.isNotEmpty(list)) { + List collect = list.stream().map(PmsNewEnergy::getObjName).collect(Collectors.toList()); + if(collect.contains(param.getObjName())){ + throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + } + } + PmsNewEnergy pmsNewEnergy = BeanUtil.copyProperties(param, PmsNewEnergy.class); + return this.updateById(pmsNewEnergy); + } + + /** + * 删除 + * @param ids + */ + @Override + public boolean delete(List ids) { + //删除前需要判断依赖终端的监测点是否存在 + LambdaQueryWrapper monitorLambdaQueryWrapper = new LambdaQueryWrapper<>(); + monitorLambdaQueryWrapper.in(Monitor::getTractionId,ids).eq(Monitor::getStatus,DataStateEnum.ENABLE.getCode()); + int mCount = monitorService.count(monitorLambdaQueryWrapper); + if(mCount>0){ + throw new BusinessException(PmsDeviceResponseEnum.MONITOR_NE_ENERGY_FIND); + } + return this.update(new LambdaUpdateWrapper() + .set(PmsNewEnergy::getState, DataStateEnum.DELETED.getCode()) + .in(PmsNewEnergy::getId, ids)); + } + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java index 3108f941d..72f1ea5b6 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java @@ -129,7 +129,9 @@ public class CommTerminalServiceImpl implements CommTerminalService { Map> map = new HashMap<>(); if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) { - List monitorList = monitorMapper.selectList(new LambdaQueryWrapper().eq(Monitor::getStatus, 1).eq(Monitor::getMonitorState, dictData.getId())); + List monitorList = monitorMapper.selectList(new LambdaQueryWrapper() + .eq(Monitor::getStatus, 1) + .eq(deptGetLineParam.getMonitorStateRunning(),Monitor::getMonitorState, dictData.getId())); map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId)); } //TODO 配网数据量巨大,暂时注释 @@ -168,6 +170,8 @@ public class CommTerminalServiceImpl implements CommTerminalService { //预处理模块需要的id修改value为id lineDevGetDTO.setVoltageLevel(it.getVoltageLevel()); lineDevGetDTO.setIsUpToGrid(it.getIsUpToGrid()); + lineDevGetDTO.setIsUploadHead(it.getIsUploadHead()); + lineDevGetDTO.setMonitorUploadStatus(it.getMonitorUploadStatus()); lineList.add(lineDevGetDTO); }); } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java index 9d3008439..14e15e147 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java @@ -83,8 +83,11 @@ public class PowerDistributionareaServiceImpl extends ServiceImpl getList(BaseParam baseParam) { + List deptInfo = deptFeignClient.getAllDept().getData(); + List deptIds = deptInfo.stream().map(Dept::getCode).collect(Collectors.toList()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(PowerDistributionarea::getStatus,DataStateEnum.ENABLE.getCode()) + .in(CollUtil.isNotEmpty(deptIds),PowerDistributionarea::getOrgId,deptIds) .and(StrUtil.isNotBlank(baseParam.getSearchValue()), i->i.like(PowerDistributionarea::getName,baseParam.getSearchValue()) .or() diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/SpecialAnalysisServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/SpecialAnalysisServiceImpl.java index 5d015831e..21cfd2abd 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/SpecialAnalysisServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/SpecialAnalysisServiceImpl.java @@ -43,7 +43,7 @@ public class SpecialAnalysisServiceImpl implements SpecialAnalysisService { List voltageLevelList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); //将电压信息转成map,key:id value:name Map voltageLevelMap = voltageLevelList.stream().collect(Collectors.toMap(DictData::getId, DictData::getName)); - + DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData(); //专项分析-只是统计当前所在部门及下部门直接挂钩的监测点 List deptList = deptFeignClient.getSpecialDeptList().getData(); List deptIds = deptList.stream().map(Dept::getCode).collect(Collectors.toList()); @@ -64,7 +64,7 @@ public class SpecialAnalysisServiceImpl implements SpecialAnalysisService { break; } //1.获取原始数据(参数1,部门id。参数2,监测点标签字典id集合) - List infoList = specialAnalysisMapper.selectList(deptIds, data.getId()); + List infoList = specialAnalysisMapper.selectList(deptIds, data.getId(),dictData.getId()); //获取部门区域 if (CollectionUtil.isNotEmpty(infoList)) { diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/RmpEventDetailController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/RmpEventDetailController.java index a7462e778..1b9c1b2eb 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/RmpEventDetailController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/RmpEventDetailController.java @@ -51,9 +51,9 @@ public class RmpEventDetailController extends BaseController { @OperateInfo(info = LogEnum.SYSTEM_COMMON) @ApiOperation("获取暂态事件明细") @ApiImplicitParam(name = "param", value = "条件参数", required = true) - public HttpResult> getRmpEventDetail(@RequestBody UniversalFrontEndParam param) { + public HttpResult> getRmpEventDetail(@RequestBody UniversalFrontEndParam param) { String methodDescribe = getMethodDescribe("getRmpEventDetail"); - List list = rmpEventDetailService.getRmpEventDetail(param); + Page list = rmpEventDetailService.getRmpEventDetail(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java index 03a8769d8..fef9d961e 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java @@ -3,6 +3,8 @@ package com.njcn.event.service.majornetwork.Impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -23,10 +25,7 @@ import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper; import com.njcn.event.pojo.param.UniversalFrontEndParam; import com.njcn.event.pojo.po.RmpEventDetailPO; -import com.njcn.event.pojo.vo.AdvanceEventDetailVO; -import com.njcn.event.pojo.vo.AreaLineVO; -import com.njcn.event.pojo.vo.RmpEventDetailVO; -import com.njcn.event.pojo.vo.TransientVO; +import com.njcn.event.pojo.vo.*; import com.njcn.event.service.majornetwork.RmpEventDetailService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataTypeEnum; @@ -81,7 +80,7 @@ public class RmpEventDetailServiceImpl extends ServiceImpl getRmpEventDetail(UniversalFrontEndParam param) { + public Page getRmpEventDetail(UniversalFrontEndParam param) { // 获取当前用户的部门的子部门信息 PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam(); pmsDeviceInfoParam.setDeptIndex(param.getId()); @@ -89,7 +88,7 @@ public class RmpEventDetailServiceImpl extends ServiceImpl data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData(); if (CollectionUtil.isEmpty(data)) { - return Collections.emptyList(); + return new Page<>(); } // 查询事件类型字典表 @@ -101,7 +100,7 @@ public class RmpEventDetailServiceImpl extends ServiceImpl monitorIds = data.stream().flatMap(pmsGeneralDeviceDTO -> pmsGeneralDeviceDTO.getMonitorIdList().stream()).collect(Collectors.toList()); if (CollUtil.isEmpty(monitorIds)) { - return Collections.emptyList(); + return new Page<>(); } // 查询监测点信息 PmsMonitorParam pmsMonitorParam = new PmsMonitorParam(); @@ -111,14 +110,21 @@ public class RmpEventDetailServiceImpl extends ServiceImpl monitorInfo = monitorClient.getMonitorInfoListByCond(pmsMonitorParam).getData(); if (CollectionUtil.isEmpty(monitorInfo)) { - return Collections.emptyList(); + return new Page<>(); } // 取出所有监测点 List monitorList = monitorInfo.stream().map(PmsMonitorDTO::getId).collect(Collectors.toList()); // 获取暂态事件明细 - List detailsOfTransientEvents = rmpEventDetailMapper.getDetailsOfTransientEvents(monitorList, param.getEventType(), param.getStartTime(), param.getEndTime()); - if (CollectionUtil.isEmpty(detailsOfTransientEvents)) { - return Collections.emptyList(); + Page rmpEventDetailPOPage = rmpEventDetailMapper.selectPage(new Page<>(param.getPageNum(), param.getPageSize()), new LambdaQueryWrapper() + .in(CollUtil.isNotEmpty(monitorList), RmpEventDetailPO::getMeasurementPointId, monitorList) + .ge(StrUtil.isNotBlank(param.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + .orderByDesc(RmpEventDetailPO::getStartTime) + ); + + + if (CollectionUtil.isEmpty(rmpEventDetailPOPage.getRecords())) { + return new Page<>(); } // 蒋监测点信息转换成map集合 @@ -127,7 +133,7 @@ public class RmpEventDetailServiceImpl extends ServiceImpl eventStatisDataMap = eventStatisData.stream().collect(Collectors.toMap(DictData::getId, DictData::getName)); // 属性赋值 - return detailsOfTransientEvents.stream().map(po -> { + List collect = rmpEventDetailPOPage.getRecords().stream().map(po -> { RmpEventDetailVO vo = new RmpEventDetailVO(); BeanUtils.copyProperties(po, vo); for (PmsMonitorDTO dto : monitorInfo) { @@ -141,6 +147,9 @@ public class RmpEventDetailServiceImpl extends ServiceImpl page = BeanUtil.copyProperties(rmpEventDetailPOPage, Page.class); + page.setRecords(collect); + return page; } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java index fe16422c5..43ddad8ba 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java @@ -28,7 +28,7 @@ public interface RmpEventDetailService extends IService { * @param param 条件参数 * @return 暂态事件明细 */ - List getRmpEventDetail(UniversalFrontEndParam param); + Page getRmpEventDetail(UniversalFrontEndParam param); /** * 获取暂态指标类型列表 diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java index 8e8aed88e..2d17fbd36 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java @@ -1,11 +1,13 @@ package com.njcn.prepare.harmonic.controller.dim; import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.njcn.common.pojo.annotation.OperateInfo; 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.common.utils.LogUtil; @@ -32,10 +34,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; +import java.util.*; /** * pqs @@ -212,4 +211,58 @@ public class IRDimBusGlobalDController extends BaseController { } + + /** + * 新增重算月数据 + * @author cdf + * @date 2024/3/22 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/reCalMonthUploadAlgorithm") + @ApiOperation("重新计算四个算法") + @ApiImplicitParam(name = "statisticDate", value = "重新计算的月份", required = true) + public HttpResult reCalUploadAlgorithmAllMonth(@DateTimeStrValid(format = "yyyy-MM") @RequestParam("statisticDate") String statisticDate,@RequestParam("type") String type) { + String methodDescribe = getMethodDescribe("reCalUploadAlgorithmAllMonth"); + Set set = new HashSet<>(); + + String startDate = DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(statisticDate,DatePattern.NORM_MONTH_PATTERN)),DatePattern.NORM_DATE_PATTERN); + String endDate = DateUtil.format(new Date(),DatePattern.NORM_DATE_PATTERN); + + BaseParam baseParam = new BaseParam(); + baseParam.setFullChain(false); + baseParam.setRepair(true); + baseParam.setBeginTime(startDate); + baseParam.setEndTime(endDate); + + if(StrUtil.isBlank(type)){ + throw new BusinessException("请选择需要重新计算的类型"); + }else if("0".equals(type)){ + //基准 + set.add("r_upload_evaluation_data_d"); + baseParam.setTagNames(set); + liteFlowFeignClient.uploadOrgExecutor(baseParam); + }else if("1".equals(type)){ + //主配网 + set.add("r_upload_point_statistical_data_d"); + baseParam.setTagNames(set); + liteFlowFeignClient.uploadOrgExecutor(baseParam); + }else if("2".equals(type)){ + //电站 + baseParam.setFullChain(false); + baseParam.setRepair(false); + baseParam.setDataDate(endDate); + set.add("r_upload_substation_statistical_data_m"); + baseParam.setTagNames(set); + liteFlowFeignClient.substationExecutor(baseParam); + }else if("3".equals(type)){ + //典型 + set.add("pq_typical_source_create_d"); + baseParam.setDataDate(statisticDate); + baseParam.setTagNames(set); + liteFlowFeignClient.uploadOrgExecutor(baseParam); + } + + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/RLoadTypeUserManageVO.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/RLoadTypeUserManageVO.java index bdbf6b784..ca5c9f043 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/RLoadTypeUserManageVO.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/RLoadTypeUserManageVO.java @@ -80,6 +80,11 @@ public class RLoadTypeUserManageVO implements Serializable { */ @ApiModelProperty("入网报告路径") private String iFilePath; + /** + * 入网报告名称 + */ + @ApiModelProperty("入网报告名称") + private String iFilePathName; /** * 入网报告上传时间 */ @@ -120,6 +125,11 @@ public class RLoadTypeUserManageVO implements Serializable { */ @ApiModelProperty("实测报告路径") private String aFilePath; + /** + * 实测报告名称 + */ + @ApiModelProperty("实测报告名称") + private String aFilePathName; /** * 实测报告上传时间 */ diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java index 9f160e08b..ca81524ab 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java @@ -125,7 +125,7 @@ public class PmsTerminalDetectionController extends BaseController { @ApiOperation("检测报告下载") @GetMapping(value = "/reportDownload") - public InputStreamResource reportDownload( TerminalParam.DownloadParam param) throws IOException { + public InputStreamResource reportDownload( TerminalParam.DownloadParam param){ InputStreamResource minIoUploadResDTO = pmsTerminalDetectionService.reportDownload(param); return minIoUploadResDTO; } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java index 102692c14..55b8416e8 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java @@ -26,7 +26,6 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; -import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -98,33 +97,23 @@ public class RGeneralSurveyPlanController extends BaseController { @PostMapping("/addPlanConfig") @ApiOperation("增加普测计划参数") @ApiImplicitParam(name = "rSurveyPlanConfigVOList", value = "", required = true) - public HttpResult addPlanConfig(@Validated @RequestBody List rSurveyPlanConfigVOList) { - String methodDescribe = getMethodDescribe("querySubStatation"); - double sum = rSurveyPlanConfigVOList.stream().mapToDouble(RSurveyPlanConfigVO::getProportion).sum(); + public HttpResult addPlanConfig(@Validated @RequestBody List rSurveyPlanConfigVOList) { + String methodDescribe = getMethodDescribe("addPlanConfig"); + double sum = rSurveyPlanConfigVOList.stream().mapToDouble(RSurveyPlanConfigPO::getProportion).sum(); if (sum > 1) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.MATH_ERROR, false, methodDescribe); } - List collect = rSurveyPlanConfigVOList.stream().map(temp -> { - RSurveyPlanConfigPO rs = new RSurveyPlanConfigPO(); - BeanUtils.copyProperties(temp, rs); - return rs; - }).collect(Collectors.toList()); - boolean b = rSurveyPlanConfigService.saveOrUpdateBatchByMultiId(collect, 500); + boolean b = rSurveyPlanConfigService.saveOrUpdateBatchByMultiId(rSurveyPlanConfigVOList, 500); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/queryPlanConfig") @ApiOperation("查询普测计划参数") - public HttpResult> queryPlanConfig() { + public HttpResult> queryPlanConfig() { String methodDescribe = getMethodDescribe("queryPlanConfig"); - List list = rSurveyPlanConfigService.list(); - List collect = list.stream().map(temp -> { - RSurveyPlanConfigVO rs = new RSurveyPlanConfigVO(); - BeanUtils.copyProperties(temp, rs); - return rs; - }).collect(Collectors.toList()); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, collect, methodDescribe); + List list = rSurveyPlanConfigService.getOrgIds(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java index badaf99cc..3ba209bb7 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java @@ -28,7 +28,8 @@ public interface LoadTypeUserManageMapper extends BaseMapper getLoadTypeUserPage(IPage page, @Param("param") LoadTypeUserSearchParam loadTypeUserSearchParam, - @Param("ids") List ids + @Param("ids") List ids, + @Param("aStatus") String aStatus ); /** @@ -38,6 +39,8 @@ public interface LoadTypeUserManageMapper extends BaseMapper getLoadTypeRelationPage(IPage page, - @Param("param") LoadTypeUserSearchParam loadTypeUserSearchParam + @Param("param") LoadTypeUserSearchParam loadTypeUserSearchParam, + @Param("ids") List ids, + @Param("aStatus") String aStatus ); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml index 32c715396..1d0c208e4 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml @@ -15,7 +15,7 @@
- and r.i_check_person is null and r.i_check_person !="" + AND ( r.i_check_person IS not NULL or r.i_check_person != "") and r.load_type = #{param.loadType} @@ -26,6 +26,9 @@ and r.i_is_file_upload = #{param.fileUploadflag} + + and r.a_status != #{aStatus} +
order by record_time desc @@ -39,8 +42,14 @@ AND ISNULL( relation_user_id )= 0 AND LENGTH( trim( relation_user_id ))> 0 - - and r.org_no = #{param.orgNo} + + AND r.org_no IN + + #{item} + + + + AND ( r.i_check_person IS not NULL or r.i_check_person != "") and r.load_type = #{param.loadType} @@ -53,6 +62,9 @@ and r.a_is_file_upload = #{param.aIsFileUpload} + + + and r.a_status != #{aStatus} order by record_time desc diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java index ea6936166..52fef3e31 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java @@ -92,7 +92,7 @@ public interface PmsTerminalDetectionService extends IService implements RSurveyPlanConfigService{ + private final DeptFeignClient deptFeignClient; + @Override + public List getOrgIds() { + List data = deptFeignClient.getAllDept().getData(); + List orgIds = data.stream().map(Dept::getCode).collect(Collectors.toList()); + return this.list(new LambdaQueryWrapper().in(CollUtil.isNotEmpty(orgIds),RSurveyPlanConfigPO::getOrgId,orgIds )); + } } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java index d231ca979..5f37b1e8e 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java @@ -29,6 +29,7 @@ import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.vo.PvTerminalTreeVO; import com.njcn.web.utils.RequestUtil; import com.njcn.web.utils.WebUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.jdbc.Null; @@ -72,13 +73,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService Page page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize()); List ids=deptFeignClient.getDepSonIdtByDeptId (loadTypeUserSearchParam.getOrgNo()).getData ( ); Integer checkType = loadTypeUserSearchParam.getCheckType(); + String aStatus = null; //0表示不是审核信息 1标识审核信息 - List data = deptFeignClient.getDepSonIdtByDeptId (loadTypeUserSearchParam.getOrgNo()).getData ( ); if(checkType==1){ - ids=data.stream().filter(x->!x.contains(loadTypeUserSearchParam.getOrgNo())).collect(Collectors.toList()); + ids=ids.stream().filter(x->!x.contains(loadTypeUserSearchParam.getOrgNo())).collect(Collectors.toList()); + aStatus = dicDataFeignClient.getDicDataByCode(DicDataEnum.FINISH.getCode()).getData().getId(); } //干扰源用户信息录入 - Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam,ids); + Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam,ids,aStatus); List dept = deptFeignClient.allDeptList().getData(); Map pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO)); //部门处理:根据部门code取名称 @@ -202,8 +204,15 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService @Override public Page getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) { Page page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize()); - Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page, loadTypeUserSearchParam); - + List ids=deptFeignClient.getDepSonIdtByDeptId (loadTypeUserSearchParam.getOrgNo()).getData ( ); + Integer checkType = loadTypeUserSearchParam.getCheckType(); + String aStatus = null; + //0表示不是审核信息 1标识审核信息 + if(checkType==1){ + ids=ids.stream().filter(x->!x.contains(loadTypeUserSearchParam.getOrgNo())).collect(Collectors.toList()); + aStatus = dicDataFeignClient.getDicDataByCode(DicDataEnum.FINISH.getCode()).getData().getId(); + } + Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page, loadTypeUserSearchParam,ids,aStatus); //部门处理:根据部门code取名称 List list = loadTypeUserPage.getRecords(); List dept = deptFeignClient.allDeptList().getData(); diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java index 3a9fe67d6..494555aba 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java @@ -306,7 +306,7 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl rSurveyCyclePOQueryWrapper = new QueryWrapper(); rSurveyCyclePOQueryWrapper.le("start_year", rGeneralSurveyPlanPO.getPlanEndTime()); rSurveyCyclePOQueryWrapper.ge("end_year", rGeneralSurveyPlanPO.getPlanEndTime()); @@ -213,6 +200,7 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))). @@ -427,7 +415,7 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl list = commTerminalGeneralClient.tagOrIdGetSub(null).getData(); + List list = commTerminalGeneralClient.tagOrIdGetSub(new SubstationParam()).getData(); /**查出当前周期id**/ @@ -499,7 +487,6 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl initDetpStataionTree(String orgdid) { /*查询所有电站并过滤已经参加当期普测电站*/ -// List list = statationStatClient.getPowerInfo(new PmsStatationStatInfoParam()).getData(); /**查出当前周期id**/ QueryWrapper rSurveyCyclePOQueryWrapper = new QueryWrapper(); @@ -571,17 +558,12 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl result = new ArrayList<>(deptSubstationVOList); - for (DeptSubstationVO pv : deptSubstationVOList) { for (DeptSubstationVO pv2 : deptSubstationVOList) { /*如果本级id与数据的父id相同,就说明是子父级关系*/ - if (pv.getId().equals(pv2.getPid())) { pv.getChildren().add(pv2); result.remove(pv2); @@ -590,7 +572,6 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl { + List getOrgIds(); + } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java index 731a88d9a..d0e9f9968 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java @@ -637,42 +637,26 @@ public class ThsSuperviseServiceImpl extends ServiceImpl threeLevel = thsStrategyList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合 //获取排他策略集合 - assBindList(threeLevel, thsStrategyBindDTOList); + if(CollectionUtil.isNotEmpty(threeLevel)){ + threeLevel.forEach(i->assBindList(i, thsStrategyBindDTOList)); + } Map deleteMap = thsStrategyBindDTOList.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity())); - List oneLevel = thsStrategyList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合 - Map> deptMap = oneLevel.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId)); for (Map.Entry> entry : deptMap.entrySet()) { String depId = entry.getKey(); Dept dept = deptFeignClient.getDeptById(depId).getData(); List thsOverRunLogList = new ArrayList<>(); - ThsSupervise thsSupervise = null; List deptStrategyList = entry.getValue(); if (CollectionUtil.isNotEmpty(deptStrategyList)) { - //遍历当前部门下面的所有策略 for (ThsStrategyVo oneStrategyVo : deptStrategyList) { List useBindDTOList = new ArrayList<>(); - List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表 - List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表 - List oneMonitorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表 - - List tagIds = oneInterferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList()); - List targetIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList()); - List monitorIds = oneMonitorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList()); - for (String tagId : tagIds) { - ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(tagId).targetIds(targetIds).operation(oneStrategyVo.getOperation()).type(0).build(); - useBindDTOList.add(strategyBindDTO); - } - for (String monitorId : monitorIds) { - ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(monitorId).targetIds(targetIds).operation(oneStrategyVo.getOperation()).type(1).build(); - useBindDTOList.add(strategyBindDTO); - } + assBindList(oneStrategyVo,useBindDTOList); //根据排他策略过滤12级策略 Iterator iterator = useBindDTOList.iterator(); while (iterator.hasNext()) { @@ -694,7 +678,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl useMonitorIds = monitorObj.stream().map(ThsStrategyBindDTO::getKeyId).collect(Collectors.toList()); Map monitorMap = monitorObj.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity())); - MonitorGetParam monitorGetParam = new MonitorGetParam(); monitorGetParam.setTagList(useTagIds); monitorGetParam.setMonitorIds(useMonitorIds); @@ -704,11 +687,9 @@ public class ThsSuperviseServiceImpl extends ServiceImpl monitorInfoDTOMap = commMonitorInfoDTOList.stream().collect(Collectors.toMap(CommMonitorInfoDTO::getId, Function.identity())); List temIds = commMonitorInfoDTOList.stream().map(CommMonitorInfoDTO::getId).distinct().collect(Collectors.toList()); - List rStatLimitRateDPOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(RStatLimitQueryParam.builder().ids(temIds).date(yesterday).build()).getData(); //TODO 数据中心和pms这边稳态指标没用一个需要考虑兼容问题 - //判断指标是否在策略中 if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) { for (RStatLimitRateDPO rStatLimitRateDPO : rStatLimitRateDPOList) { @@ -728,7 +709,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl limitBoolMap = verifyLimit(rStatLimitRateDPO, dictDataList, descriptionList, count); - boolean shouldContinue; if (oneStrategyVo.getOperation().equals(OperationEnum.AND.getCode())) { //与 @@ -772,10 +752,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl levelList, List thsStrategyBindDTOList) { - if (CollectionUtil.isNotEmpty(levelList)) { - for (ThsStrategyVo thsStrategyVo : levelList) { + private void assBindList(ThsStrategyVo thsStrategyVo, List thsStrategyBindDTOList) { + List tagIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表 List targetIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表 List monitorIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表 @@ -852,8 +829,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl implements ThsWarnStrategyService { private final ThsWarnStrategyAssServiceImpl thsWarnStrategyAssService; + + private final ThsWarnStrategyMapper thsWarnStrategyMapper; private final MonitorClient monitorClient; private final DeptFeignClient deptFeignClient; private final ThsDeptAlarmService thsDeptAlarmService; @@ -107,6 +110,8 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl assList = new ArrayList<>(); ThsWarnStrategy thsWarnStrategy = new ThsWarnStrategy(); @@ -141,6 +146,38 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(ThsWarnStrategy::getId).eq(ThsWarnStrategy::getDeptId,param.getDeptId()) + .eq(ThsWarnStrategy::getType,param.getStrategyType()).eq(ThsWarnStrategy::getGrade,param.getGrade()); + + if (StrUtil.isNotBlank(param.getId())) { + lambdaQueryWrapper.ne(ThsWarnStrategy::getId,param.getId()); + } + + List thsWarnStrategyList = thsWarnStrategyMapper.selectList(lambdaQueryWrapper); + List strategyIds = thsWarnStrategyList.stream().map(ThsWarnStrategy::getId).collect(Collectors.toList()); + if(CollectionUtil.isEmpty(strategyIds)){ + return true; + } + + //判断标签和监测点是否已经存在 + List thsWarnStrategyAssList = thsWarnStrategyAssService.lambdaQuery().select(ThsWarnStrategyAss::getAssId).in(ThsWarnStrategyAss::getWarnId,strategyIds).list(); + long tagCount = thsWarnStrategyAssList.stream().filter(item->param.getMonitorTag().contains(item.getAssId())).count(); + if(tagCount>0){ + throw new BusinessException("所选干扰源已经存在策略!"); + } + long monitorCount = thsWarnStrategyAssList.stream().filter(item->param.getMonitorIds().contains(item.getAssId())).count(); + if(monitorCount>0){ + throw new BusinessException("所选监测点已经存在策略!"); + } + return true; + } + @Override public StrategyParam.StrategyUpdateParam getUpdateStrategy(String id) { return this.baseMapper.selectUpdateStrategy(id); diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/DictTypeServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/DictTypeServiceImpl.java index b2df2b04f..c4514cab2 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/DictTypeServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/DictTypeServiceImpl.java @@ -25,6 +25,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -107,7 +108,7 @@ public class DictTypeServiceImpl extends ServiceImpl i simpleDTO.setSort(dictDataCache.getSort()); simpleDTO.setValue(dictDataCache.getValue()); return simpleDTO; - }).collect(Collectors.toList()); + }).sorted(Comparator.comparing(SimpleDTO::getSort)).collect(Collectors.toList()); simpleTreeDTO.setChildren(simpleDTOs); return simpleTreeDTO; diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java index d024bf45a..0f112978d 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java @@ -81,7 +81,7 @@ public interface DeptFeignClient { HttpResult getDeptByCode(@RequestParam("deptCode") String deptCode); /** - * 根据部门id获取所有子部门ids + * 根据部门id获取所有子部门ids包含自身 */ @GetMapping("/getDepSonIdtByDeptId") HttpResult> getDepSonIdtByDeptId(@RequestParam("deptId") String deptId); diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java index 4898b8e37..8d45dd283 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java @@ -5,8 +5,10 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.user.api.fallback.UserFeignClientFallbackFactory; import com.njcn.user.pojo.dto.UserDTO; import com.njcn.user.pojo.po.User; +import com.njcn.user.pojo.vo.UserVO; import io.swagger.annotations.ApiImplicitParam; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -67,12 +69,21 @@ public interface UserFeignClient { HttpResult> appuserByIdList(@RequestBody List ids); /** - * 根据部门ids查询用户信息 + * 根据部门ids查询接收短信通知的用户信息 * @param deptId * @return */ @PostMapping("/getUserByDeptIds") HttpResult> getUserByDeptIds(@RequestBody List deptId); + + /** + * 根据部门ids查询用户信息 + * @param deptId + * @return + */ + @PostMapping("/getUserInfoByDeptIds") + HttpResult> getUserInfoByDeptIds(@RequestBody List deptId); + /** * 根据角色Code集合查询用户信息 * @param roleCode @@ -80,4 +91,8 @@ public interface UserFeignClient { */ @GetMapping("/getUserListByRoleCode") HttpResult> getUserListByRoleCode(@RequestParam("roleCode") String roleCode); + + @GetMapping("/getUserById") + HttpResult getUserById(@RequestParam("id") String id); + } diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java index 8d8a68c27..0373dcd42 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java @@ -6,6 +6,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.user.api.UserFeignClient; import com.njcn.user.pojo.dto.UserDTO; import com.njcn.user.pojo.po.User; +import com.njcn.user.pojo.vo.UserVO; import com.njcn.user.utils.UserEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -75,6 +76,12 @@ public class UserFeignClientFallbackFactory implements FallbackFactory> getUserByDeptIds(List deptId) { + log.error("{}异常,降级处理,异常为:{}","根据部门ids查询接收短信通知的用户信息",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getUserInfoByDeptIds(List deptId) { log.error("{}异常,降级处理,异常为:{}","根据部门ids查询用户信息",cause.toString()); throw new BusinessException(finalExceptionEnum); } @@ -84,6 +91,14 @@ public class UserFeignClientFallbackFactory implements FallbackFactory getUserById(String id) { + log.error("{}异常,降级处理,异常为:{}","根据用户id获取用户详情",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; } } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java index 9312e9d06..a7dd14ac1 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java @@ -326,7 +326,7 @@ public class DeptController extends BaseController { /** - * 根据部门id获取所有子部门ids + * 根据部门id获取所有子部门ids包含自身 * @author cdf * @date 2022/7/26 */ diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java index 707b7b485..44bf99bd4 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java @@ -9,6 +9,7 @@ import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.constant.SecurityConstants; +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; @@ -472,7 +473,7 @@ public class UserController extends BaseController { */ @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/getUserByDeptIds") - @ApiOperation("根据部门ids查询用户信息") + @ApiOperation("根据部门ids查询接收短信通知的用户信息") @ApiImplicitParam(name = "deptId", value = "用户部门id", required = true) public HttpResult> getUserByDeptIds(@RequestBody List deptId) { String methodDescribe = getMethodDescribe("getUserByDeptIds"); @@ -484,6 +485,19 @@ public class UserController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, users, methodDescribe); } + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/getUserInfoByDeptIds") + @ApiOperation("根据部门ids查询用户信息") + @ApiImplicitParam(name = "deptId", value = "用户部门id", required = true) + public HttpResult> getUserInfoByDeptIds(@RequestBody List deptId) { + String methodDescribe = getMethodDescribe("getUserInfoByDeptIds"); + List users = userService.list(new LambdaQueryWrapper() + .in(User::getDeptId,deptId) + .eq(User::getState, DataStateEnum.ENABLE.getCode()) + ); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, users, methodDescribe); + } + /** * 获取同级部门用户,以及下级部门所有用户 * @author cdf @@ -498,5 +512,21 @@ public class UserController extends BaseController { List users = userService.getUserListByRoleCode(roleCode); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, users, methodDescribe); } + + + /** + * 根据角色类型获取用户 角色类型 type0:超级管理员;1:管理员;2:普通用户' 3:'审核角色', + * @author cdf + * @date 2024/3/29 + */ + @OperateInfo(info = LogEnum.SYSTEM_SERIOUS) + @GetMapping("/getUserByRoleType") + @ApiOperation("根据角色类型获取用户") + @ApiImplicitParam(name = "roleCode", value = "角色类型", required = true) + public HttpResult> getUserByRoleType(@RequestParam("roleType") Integer roleType) { + String methodDescribe = getMethodDescribe("getUserByRoleType"); + List users = userService.getUserByRoleType(roleType); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, users, methodDescribe); + } } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserRoleMapper.java b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserRoleMapper.java index b9b07f274..279d7bcb5 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserRoleMapper.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserRoleMapper.java @@ -41,4 +41,6 @@ public interface UserRoleMapper extends BaseMapper { */ List selectUserRoleCode(@Param("roleCode")String roleCode); + List getUserByRoleType(@Param("roleType")Integer roleType); + } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserRoleMapper.xml b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserRoleMapper.xml index 23ace3b2c..78dff072f 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserRoleMapper.xml +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserRoleMapper.xml @@ -28,4 +28,16 @@ WHERE role.`Code` = #{roleCode} + + diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java index 3c4210cdf..88ebfa974 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java @@ -188,4 +188,6 @@ public interface IUserService extends IService { List getUserListByRoleCode(String roleCode); + List getUserByRoleType(Integer roleType); + } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java index d73eee6bf..dc45debda 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java @@ -388,7 +388,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID /** - * 根据部门id获取部门详情 + * 根据部门id获取所有子部门ids包含自身 */ @Override public List getDepSonIdtByDeptId(String id) { diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java index b1971fe00..0b6cec36b 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java @@ -523,6 +523,11 @@ public class UserServiceImpl extends ServiceImpl implements IU return userRoleMapper.selectUserRoleCode(roleCode); } + @Override + public List getUserByRoleType(Integer roleType) { + return userRoleMapper.getUserByRoleType(roleType); + } + /** * 根据登录名查询用户 *