diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java b/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java index 864a938c1..8fbe08e18 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java @@ -40,6 +40,8 @@ public enum GWSendEnum { //调用总部下发工单的反馈单接口 WORK_ORDER_FEEDBACK("workOrderFeedBack", "/pms-ghq-powerquality-start/powerQuality/workOrder/receiveFeedbackInfo"), + + PARK_AND_STATION("parkAndStation", "/pms-ghq-powerquality-start/powerQuality/park/create"), ; diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsEnum.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsEnum.java new file mode 100644 index 000000000..ea9f75669 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/enums/PmsEnum.java @@ -0,0 +1,30 @@ +package com.njcn.device.pms.enums; + +import lombok.Getter; + +/** + * pqs + * + * @author cdf + * @date 2024/6/21 + */ +@Getter +public enum PmsEnum { + + + NO_UPLOAD("未上送","0"), + HAS_UPLOAD("以上送","1"), + WAIT_RETURN_UPLOAD("待重新上送","2"), + DELETE_UPLOAD("已删除","3"), + + ; + + + private final String name; + private final String code; + + PmsEnum(String name, String code) { + this.name = name; + this.code = code; + } +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/ParkDto.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/ParkDto.java new file mode 100644 index 000000000..6e6234b97 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/ParkDto.java @@ -0,0 +1,44 @@ +package com.njcn.device.pms.pojo.dto; + +import com.njcn.device.pms.pojo.po.PmsParkPO; +import lombok.Data; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2024/6/24 + */ +@Data +public class ParkDto { + + private List parkVoListt; + + + private List parkSubstationRelVoList; + + + @Data + public static class ParkSubstationRelVo{ + private String objId; + private String parkId; + private String substationId; + private String substationProvinceOrg; + private String substationProvinceOrgName; + private String substationCityOrg; + private String substationCityOrgName; + private String substationMaintOrg; + private String substationMaintOrgName; + private String substationName; + private String substationVoltageLevel; + private String substationRunStatus; + private String substationOperateDate; + private String createTime; + private String updateTime; + private String isDelete; + private String deleteTime; + } + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/PmsParkParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/PmsParkParam.java new file mode 100644 index 000000000..35c508d12 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/PmsParkParam.java @@ -0,0 +1,108 @@ +package com.njcn.device.pms.pojo.param; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import com.njcn.web.pojo.param.BaseParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + *

+ * 园区表 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@Getter +@Setter +public class PmsParkParam { + + private static final long serialVersionUID = 1L; + + + /** + * 省单位 + */ + private String provinceOrg; + + /** + * 省单位名称 + */ + private String provinceName; + + /** + * 市单位 + */ + private String cityOrg; + + /** + * 市单位名称 + */ + private String cityOrgName; + + /** + * 运维单位 + */ + private String maintOrg; + + /** + * 运维单位名称 + */ + private String maintOrgName; + + /** + * 园区名称 + */ + private String parkName; + + /** + * 园区性质 + */ + private String parkNature; + + /** + * 园区级别 + */ + private String parkLevel; + + /** + * 园区状态 + */ + private String parkStatus; + + + + /** + * 0.删除 1.正常 + */ + private LocalDateTime deleteTime; + + + @Data + @EqualsAndHashCode(callSuper = true) + public static class UpdatePmsParkParam extends PmsParkParam{ + + private String objId; + } + + + @Data + @EqualsAndHashCode(callSuper = true) + public static class PmsParkQuery extends BaseParam { + + private String objId; + + private String maintOrg; + + private String cityOrg; + + + } + + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java index 307e999bc..bc6ee833f 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java @@ -1,6 +1,7 @@ package com.njcn.device.pms.pojo.po; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.njcn.db.bo.BaseEntity; @@ -28,6 +29,7 @@ public class PmsMidLedger extends BaseEntity { /** * Id */ + @TableId private String id; /** diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkPO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkPO.java new file mode 100644 index 000000000..3a4acb5d4 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkPO.java @@ -0,0 +1,97 @@ +package com.njcn.device.pms.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.db.bo.BaseEntity; + +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 园区表 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@Getter +@Setter +@TableName("pms_park") +public class PmsParkPO extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * uuid + */ + @TableId(value = "obj_id",type = IdType.ASSIGN_UUID) + private String objId; + + /** + * 省单位 + */ + private String provinceOrg; + + /** + * 省单位名称 + */ + private String provinceName; + + /** + * 市单位 + */ + private String cityOrg; + + /** + * 市单位名称 + */ + private String cityOrgName; + + /** + * 运维单位 + */ + private String maintOrg; + + /** + * 运维单位名称 + */ + private String maintOrgName; + + /** + * 园区名称 + */ + private String parkName; + + /** + * 园区性质 + */ + private String parkNature; + + /** + * 园区级别 + */ + private String parkLevel; + + /** + * 园区状态 + */ + private String parkStatus; + + + private String isDelete; + + /** + * 0.删除 1.正常 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime deleteTime; + + private String uploadStatus; + + + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkStationAss.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkStationAss.java new file mode 100644 index 000000000..9713e2e7a --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsParkStationAss.java @@ -0,0 +1,40 @@ +package com.njcn.device.pms.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@Getter +@Setter +@TableName("pms_park_station_ass") +public class PmsParkStationAss { + + private static final long serialVersionUID = 1L; + + @TableId + private String objId; + + @NotBlank(message = "园区id不可为空") + private String parkId; + + /** + * 园区所有电站id关联pms_mid_ledger + */ + @NotBlank(message = "电站不可为空") + private String midStationId; + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsParkController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsParkController.java new file mode 100644 index 000000000..403ed1987 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsParkController.java @@ -0,0 +1,151 @@ +package com.njcn.device.pms.controller.ledgerManger; + + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pms.pojo.param.PmsParkParam; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.pojo.po.PmsParkPO; +import com.njcn.device.pms.pojo.po.PmsParkStationAss; +import com.njcn.device.pms.service.ledgerManger.IPmsParkService; +import com.njcn.device.pms.service.ledgerManger.IPmsParkStationAssService; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import com.njcn.web.controller.BaseController; + +import java.util.List; + +/** + *

+ * 园区表 前端控制器 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@RestController +@RequestMapping("/pmsPark") +@RequiredArgsConstructor +public class PmsParkController extends BaseController { + + private final IPmsParkService iPmsParkService; + + private final IPmsParkStationAssService iPmsParkStationAssService; + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/addPark") + @ApiOperation("新增园区") + public HttpResult addPark(@RequestBody PmsParkParam param) { + String methodDescribe = getMethodDescribe("addPark"); + Boolean result = iPmsParkService.addPark(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE) + @PostMapping("/updatePark") + @ApiOperation("修改园区台账") + public HttpResult updatePark(@RequestBody PmsParkParam.UpdatePmsParkParam param) { + String methodDescribe = getMethodDescribe("updatePark"); + Boolean result = iPmsParkService.updatePark(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE) + @PostMapping("/delPark") + @ApiOperation("修改园区台账") + public HttpResult delPark(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("delPark"); + Boolean result = iPmsParkService.removeByIds(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pageList") + @ApiOperation("分页查询园区台账") + public HttpResult> pageList(@RequestBody PmsParkParam.PmsParkQuery param) { + String methodDescribe = getMethodDescribe("pageList"); + Page result = iPmsParkService.pageList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/uploadParkGw") + @ApiOperation("上送园区到国网") + public HttpResult uploadParkGw(@RequestBody List objIds) { + String methodDescribe = getMethodDescribe("uploadParkGw"); + Boolean result = iPmsParkService.uploadParkGw(objIds); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pageStationList") + @ApiOperation("分页查询园区下面的电站") + public HttpResult> pageStationList(@RequestBody PmsParkParam.PmsParkQuery param) { + String methodDescribe = getMethodDescribe("pageStationList"); + Page result = iPmsParkService.pageStationList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/stationList") + @ApiOperation("根据运行单位获取下面的电站") + public HttpResult> stationList(@RequestBody PmsParkParam.PmsParkQuery param) { + String methodDescribe = getMethodDescribe("stationList"); + List result = iPmsParkService.stationList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/addParkStationAss") + @ApiOperation("新增园区电站") + public HttpResult addParkStationAss(@RequestBody PmsParkStationAss param) { + String methodDescribe = getMethodDescribe("addParkStationAss"); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PmsParkStationAss::getParkId,param.getParkId()).eq(PmsParkStationAss::getMidStationId,param.getMidStationId()); + long count = iPmsParkStationAssService.count(lambdaQueryWrapper); + if(count>0){ + throw new BusinessException(CommonResponseEnum.FAIL,"园区已经存在该电站"); + } + PmsParkStationAss pmsParkStationAss = new PmsParkStationAss(); + BeanUtil.copyProperties(param,pmsParkStationAss); + Boolean result = iPmsParkStationAssService.save(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE) + @PostMapping("/delParkStationAss") + @ApiOperation("删除园区电站") + public HttpResult delParkStationAss(@RequestBody @Validated PmsParkStationAss param) { + String methodDescribe = getMethodDescribe("delParkStationAss"); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PmsParkStationAss::getParkId,param.getParkId()).eq(PmsParkStationAss::getMidStationId,param.getMidStationId()); + Boolean result = iPmsParkStationAssService.remove(lambdaQueryWrapper); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + +} + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkMapper.java new file mode 100644 index 000000000..1c1bc430e --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkMapper.java @@ -0,0 +1,23 @@ +package com.njcn.device.pms.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pms.pojo.dto.ParkDto; +import com.njcn.device.pms.pojo.po.PmsParkPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 园区表 Mapper 接口 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +public interface PmsParkMapper extends BaseMapper { + + + List getParkStationAss(@Param("parkIds")List parkIds); + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkStationAssMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkStationAssMapper.java new file mode 100644 index 000000000..727d5565b --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsParkStationAssMapper.java @@ -0,0 +1,17 @@ +package com.njcn.device.pms.mapper.majornetwork; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pms.pojo.po.PmsParkStationAss; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +public interface PmsParkStationAssMapper extends BaseMapper { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsParkMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsParkMapper.xml new file mode 100644 index 000000000..1aa924be8 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsParkMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkService.java new file mode 100644 index 000000000..802b41004 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkService.java @@ -0,0 +1,51 @@ +package com.njcn.device.pms.service.ledgerManger; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.pms.pojo.param.PmsParkParam; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.pojo.po.PmsParkPO; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + *

+ * 园区表 服务类 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +public interface IPmsParkService extends IService { + + + Boolean addPark(PmsParkParam param); + + + + Boolean updatePark(PmsParkParam.UpdatePmsParkParam updatePmsParkParam); + + + + Page pageList(PmsParkParam.PmsParkQuery parkQuery); + + + + Boolean uploadParkGw(@RequestBody List objIds); + + + + Page pageStationList(PmsParkParam.PmsParkQuery param); + + List stationList(PmsParkParam.PmsParkQuery param); + + + + + + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkStationAssService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkStationAssService.java new file mode 100644 index 000000000..cb7f2f59b --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsParkStationAssService.java @@ -0,0 +1,17 @@ +package com.njcn.device.pms.service.ledgerManger; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.pms.pojo.po.PmsParkStationAss; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +public interface IPmsParkStationAssService extends IService { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkServiceImpl.java new file mode 100644 index 000000000..32bc2bb7f --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkServiceImpl.java @@ -0,0 +1,180 @@ +package com.njcn.device.pms.service.ledgerManger.impl; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +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.common.pojo.response.HttpResult; +import com.njcn.device.pms.enums.PmsEnum; +import com.njcn.device.pms.mapper.majornetwork.PmsMidLedgerMapper; +import com.njcn.device.pms.mapper.majornetwork.PmsParkMapper; +import com.njcn.device.pms.pojo.dto.ParkDto; +import com.njcn.device.pms.pojo.param.PmsParkParam; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.pojo.po.PmsParkPO; +import com.njcn.device.pms.pojo.po.PmsParkStationAss; +import com.njcn.device.pms.service.ledgerManger.IPmsParkService; +import com.njcn.device.pms.service.ledgerManger.IPmsParkStationAssService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import com.njcn.web.enums.GWSendEnum; +import com.njcn.web.factory.PageFactory; +import com.njcn.web.pojo.param.SendParam; +import com.njcn.web.utils.GwSendUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + *

+ * 园区表 服务实现类 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@Service +@RequiredArgsConstructor +public class PmsParkServiceImpl extends ServiceImpl implements IPmsParkService { + + private final DeptFeignClient deptFeignClient; + + private final IPmsParkStationAssService iPmsParkStationAssService; + + private final PmsMidLedgerMapper pmsMidLedgerMapper; + + + + + @Override + public Boolean addPark(PmsParkParam param) { + PmsParkPO pmsParkPO = new PmsParkPO(); + BeanUtil.copyProperties(param, pmsParkPO); + pmsParkPO.setIsDelete(DataStateEnum.ENABLE.getCode().toString()); + pmsParkPO.setUploadStatus(PmsEnum.NO_UPLOAD.getCode()); + List dept = deptFeignClient.allDeptList().getData(); + getOrgCode(dept,pmsParkPO); + return this.save(pmsParkPO); + } + + @Override + public Boolean updatePark(PmsParkParam.UpdatePmsParkParam updatePmsParkParam) { + PmsParkPO result = this.getById(updatePmsParkParam.getObjId()); + PmsParkPO pmsParkPO = new PmsParkPO(); + BeanUtil.copyProperties(updatePmsParkParam, pmsParkPO); + if(result.getUploadStatus().equals(PmsEnum.HAS_UPLOAD.getCode())){ + pmsParkPO.setUploadStatus(PmsEnum.WAIT_RETURN_UPLOAD.getCode()); + } + List dept = deptFeignClient.allDeptList().getData(); + getOrgCode(dept,pmsParkPO); + return this.updateById(pmsParkPO); + } + + @Override + public Page pageList(PmsParkParam.PmsParkQuery parkQuery) { + List deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(parkQuery.getMaintOrg()).getData(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PmsParkPO::getMaintOrg, deptCodes); + return this.page(new Page<>(PageFactory.getPageNum(parkQuery), PageFactory.getPageSize(parkQuery)), lambdaQueryWrapper); + } + + @Override + public Boolean uploadParkGw(List objIds) { + List pmsParkPOList; + if(CollUtil.isEmpty(objIds)){ + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PmsParkPO::getUploadStatus, Stream.of(PmsEnum.NO_UPLOAD.getCode(),PmsEnum.WAIT_RETURN_UPLOAD.getCode()).collect(Collectors.toList())); + pmsParkPOList = this.list(lambdaQueryWrapper); + }else { + pmsParkPOList = this.listByIds(objIds); + } + List ids = pmsParkPOList.stream().map(PmsParkPO::getObjId).collect(Collectors.toList()); + List stationList = this.baseMapper.getParkStationAss(ids); + + List dtoList = new ArrayList<>(); + ParkDto parkDto = new ParkDto(); + parkDto.setParkVoListt(pmsParkPOList); + if(CollUtil.isNotEmpty(stationList)){ + parkDto.setParkSubstationRelVoList(stationList); + } + dtoList.add(parkDto); + + SendParam sendParam = new SendParam(); + sendParam.setStats(dtoList); + Map map = GwSendUtil.send(sendParam, GWSendEnum.PARK_AND_STATION); + GwSendUtil.returnInfoMsg(objIds,map); + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(PmsParkPO::getUploadStatus,PmsEnum.HAS_UPLOAD).eq(PmsParkPO::getObjId,objIds); + this.update(updateWrapper); + return true; + } + + @Override + public Page pageStationList(PmsParkParam.PmsParkQuery param) { + Page result = new Page<>(param.getPageNum(),param.getPageSize()); + List pmsParkStationAssList = iPmsParkStationAssService.list(new LambdaQueryWrapper().eq(PmsParkStationAss::getParkId,param.getObjId())); + List ids = pmsParkStationAssList.stream().map(PmsParkStationAss::getMidStationId).collect(Collectors.toList()); + if(CollUtil.isEmpty(ids)){ + return result; + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PmsMidLedger::getId,ids); + result = pmsMidLedgerMapper.selectPage(new Page<>(PageFactory.getPageNum(param),PageFactory.getPageSize(param)),lambdaQueryWrapper); + return result; + } + + @Override + public List stationList(PmsParkParam.PmsParkQuery param) { + List ids = deptFeignClient.getDepSonSelfCodetByCode(param.getCityOrg()).getData(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(PmsMidLedger::getName,PmsMidLedger::getOperationName,PmsMidLedger::getId).in(PmsMidLedger::getOperationId,ids).eq(PmsMidLedger::getLevel,0); + List pmsMidLedgerList = pmsMidLedgerMapper.selectList(lambdaQueryWrapper); + return pmsMidLedgerList; + } + + + private void getOrgCode(List dept,PmsParkPO pmsParkPO){ + PvTerminalTreeVO pvTerminalTreeVO = dept.stream().filter(it->it.getCode().equals(pmsParkPO.getMaintOrg())).findFirst().orElse(null); + if(Objects.nonNull(pvTerminalTreeVO)){ + if(pvTerminalTreeVO.getLevel() == 1 || pvTerminalTreeVO.getLevel() == 2){ + throw new BusinessException("请选择省级以下单位"); + }else if(pvTerminalTreeVO.getLevel() == 3){ + PvTerminalTreeVO province = dept.stream().filter(it->it.getId().equals(pvTerminalTreeVO.getPid())).findFirst().orElse(null); + pmsParkPO.setCityOrg(pvTerminalTreeVO.getCode()); + pmsParkPO.setCityOrgName(pvTerminalTreeVO.getName()); + + if(Objects.nonNull(province)){ + pmsParkPO.setProvinceOrg(province.getCode()); + pmsParkPO.setProvinceName(province.getName()); + } + } else if(pvTerminalTreeVO.getLevel() == 4){ + PvTerminalTreeVO city = dept.stream().filter(it->it.getId().equals(pvTerminalTreeVO.getPid())).findFirst().orElse(null); + if(Objects.nonNull(city)){ + pmsParkPO.setCityOrg(city.getCode()); + pmsParkPO.setCityOrgName(city.getName()); + + PvTerminalTreeVO province = dept.stream().filter(it->it.getId().equals(city.getPid())).findFirst().orElse(null); + if(Objects.nonNull(province)){ + pmsParkPO.setProvinceOrg(province.getCode()); + pmsParkPO.setProvinceName(province.getName()); + } + } + + } + } + + } +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkStationAssServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkStationAssServiceImpl.java new file mode 100644 index 000000000..5b2f2d30a --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsParkStationAssServiceImpl.java @@ -0,0 +1,23 @@ +package com.njcn.device.pms.service.ledgerManger.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.pms.mapper.majornetwork.PmsParkStationAssMapper; +import com.njcn.device.pms.pojo.po.PmsParkStationAss; +import com.njcn.device.pms.service.ledgerManger.IPmsParkStationAssService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2024-06-19 + */ +@Service +public class PmsParkStationAssServiceImpl extends ServiceImpl implements IPmsParkStationAssService { + + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java index 8ef16698f..6041e0c29 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java @@ -3,6 +3,7 @@ package com.njcn.harmonic.pojo.param.upload; import com.baomidou.mybatisplus.annotation.TableName; import com.njcn.web.pojo.param.BaseParam; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; @@ -174,8 +175,16 @@ public class RUploadWorkOrderParam { @Data + @EqualsAndHashCode(callSuper = true) public static class RUploadWorkOrderQuery extends BaseParam { + private String orderStatus; + + /** + * 运维单位ID + */ + private String maintainerId; + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java index 48646e924..18c8b30a2 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDate; import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; import lombok.Setter; @@ -97,26 +99,31 @@ public class RUploadWorkOrderPO { /** * 事件时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate eventTime; /** * 下发时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime distributeTime; /** * 闭环时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate closedLoopTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime ctime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime mtime; /** * 0.删除 1.正常 */ - private Boolean isDeleted; + private Integer isDeleted; /** * 3-省,4-市 @@ -136,6 +143,7 @@ public class RUploadWorkOrderPO { /** * 反馈时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate feedbackTime; /** @@ -146,6 +154,7 @@ public class RUploadWorkOrderPO { /** * 接收时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime receiveTime; /** @@ -161,6 +170,7 @@ public class RUploadWorkOrderPO { /** * 上报时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate uploadTime; /** @@ -171,6 +181,7 @@ public class RUploadWorkOrderPO { /** * 要求整改时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate planRectificationTime; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadWorkOrderServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadWorkOrderServiceImpl.java index 66480e28e..4624a18ce 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadWorkOrderServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadWorkOrderServiceImpl.java @@ -4,6 +4,7 @@ package com.njcn.harmonic.service.upload.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +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; @@ -16,6 +17,7 @@ import com.njcn.harmonic.pojo.param.upload.RUploadWorkOrderParam; import com.njcn.harmonic.pojo.po.upload.RUploadWorkOrderPO; import com.njcn.harmonic.service.upload.IRUploadWorkOrderService; import com.njcn.system.enums.DicDataEnum; +import com.njcn.user.api.DeptFeignClient; import com.njcn.web.enums.GWSendEnum; import com.njcn.web.factory.PageFactory; import com.njcn.web.pojo.param.SendParam; @@ -44,6 +46,8 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class RUploadWorkOrderServiceImpl extends ServiceImpl implements IRUploadWorkOrderService { + private final DeptFeignClient deptFeignClient; + @Override public Boolean insertWorkorderDistributeSupervise(RUploadWorkOrderParam param) { RUploadWorkOrderPO rUploadWorkOrderPO = new RUploadWorkOrderPO(); @@ -80,6 +84,10 @@ public class RUploadWorkOrderServiceImpl extends ServiceImpl pageList(RUploadWorkOrderParam.RUploadWorkOrderQuery query) { + + List deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(query.getMaintainerId()).getData(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.between(RUploadWorkOrderPO::getDistributeTime, DateUtil.beginOfDay(DateUtil.parse(query.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN)),DateUtil.endOfDay(DateUtil.parse(query.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN))); + lambdaQueryWrapper.between(RUploadWorkOrderPO::getDistributeTime, DateUtil.beginOfDay(DateUtil.parse(query.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN)),DateUtil.endOfDay(DateUtil.parse(query.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN))) + .eq(StrUtil.isNotBlank(query.getOrderStatus()),RUploadWorkOrderPO::getOrderStatus,query.getOrderStatus()) + .in(RUploadWorkOrderPO::getMaintainerId,deptIds) + + ; return this.page(new Page<>(PageFactory.getPageNum(query),PageFactory.getPageSize(query)),lambdaQueryWrapper); }