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 5e3a4bde0..e4aa967c7 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 @@ -54,7 +54,8 @@ public enum GWSendEnum { TEMP_USER_CREATE("tempUserCreate","/powerQuality/process/tempUserCreate"), TEMP_PROCESS_TRACK_CREATE("tempProcessTrackCreate","/powerQuality/process/processFollowCreate"), MONTH_REPORT_CREATE("monthReportCreate","/powerQuality/process/monthReportCreate"), - PROCESS_APPROVAL_CREATE("processApprovalCreate","powerQuality/process/processApprovalCreate") + PROCESS_APPROVAL_CREATE("processApprovalCreate","powerQuality/process/processApprovalCreate"), + PROCESS_TEST_RUN_CREATE("processTestRunCreate","powerQuality/process/processTestRunCreate") ; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/PmsTemProcessTestRunParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/PmsTemProcessTestRunParam.java new file mode 100644 index 000000000..6bc86fa0f --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/PmsTemProcessTestRunParam.java @@ -0,0 +1,112 @@ +package com.njcn.harmonic.pojo.param.upload; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTestRun; +import com.njcn.harmonic.utils.TimestampAsLongSerializer; +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; + +import java.sql.Timestamp; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2024-11-04 + */ +@Data +public class PmsTemProcessTestRunParam { + + private static final long serialVersionUID = 1L; + + private String objId; + + /** + * 关联临时用户 + */ + private String tempUserDossierId; + + /** + * 测试结论 + */ + private String testResult; + + /** + * 越限详情多个指标需要用英文逗号拼接 + */ + private String ovIndexs; + + private String issueOrg; + + /** + * 出具单位名称 + */ + private String issueOrgName; + + /** + * 操作人名称 + */ + private String operateUserName; + + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate monitorDate; + + /** + * 整改状态 + */ + private String rectificationStatus; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime rectificationTime; + + private String rectificationUserId; + + private String rectificationUserName; + + /** + * 整改措施 + */ + private String rectificationMeasure; + + + + + + + @Data + @EqualsAndHashCode(callSuper = true) + public static class UpdatePmsTemProcessTestRunParamParam extends PmsTemProcessTestRunParam { + + private String objId; + } + + @Data + @EqualsAndHashCode(callSuper = true) + public static class QueryPmsTemProcessTestRunParam extends BaseParam { + + private String objId; + + private String tempUserDossierId; + + /** + * 运维单位 + */ + private String maintOrg; + } + + + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessTestRun.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessTestRun.java new file mode 100644 index 000000000..ff85a9e64 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessTestRun.java @@ -0,0 +1,118 @@ +package com.njcn.harmonic.pojo.po.upload; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.FieldFill; +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; +import java.io.Serializable; +import java.sql.Timestamp; +import java.time.LocalDate; +import java.time.LocalDateTime; + +import com.njcn.harmonic.utils.TimestampAsLongSerializer; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2024-11-04 + */ +@Getter +@Setter +@TableName("pms_tem_process_test_run") +public class PmsTemProcessTestRun { + + private static final long serialVersionUID = 1L; + + @TableId + private String objId; + + /** + * 关联临时用户 + */ + private String tempUserDossierId; + + @TableField(exist = false) + private String tempUserDossierName; + + @TableField(exist = false) + private String maintOrg; + + @TableField(exist = false) + private String maintOrgName; + + /** + * 测试结论 + */ + private String testResult; + + /** + * 越限详情多个指标需要用英文逗号拼接 + */ + private String ovIndexs; + + private String issueOrg; + + /** + * 出具单位名称 + */ + private String issueOrgName; + + /** + * 操作人名称 + */ + private String operateUserName; + + + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate monitorDate; + + /** + * 整改状态 + */ + private String rectificationStatus; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JSONField(serializeUsing = TimestampAsLongSerializer.class) + private Timestamp rectificationTime; + + private String rectificationUserId; + + private String rectificationUserName; + + /** + * 整改措施 + */ + private String rectificationMeasure; + + + private Integer uploadStatus; + + /** + * 创建时间 + */ + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JSONField(serializeUsing = TimestampAsLongSerializer.class) + private Timestamp createTime; + + /** + * 更新时间 + */ + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JSONField(serializeUsing = TimestampAsLongSerializer.class) + private Timestamp updateTime; + + + + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PmsTemProcessTestRunController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PmsTemProcessTestRunController.java new file mode 100644 index 000000000..d66d9b57c --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PmsTemProcessTestRunController.java @@ -0,0 +1,111 @@ +package com.njcn.harmonic.controller.upload; + + +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.harmonic.mapper.upload.PmsTemUserMapper; +import com.njcn.harmonic.pojo.param.upload.PmsTemProcessApprovalParam; +import com.njcn.harmonic.pojo.param.upload.PmsTemProcessTestRunParam; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessApproval; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTestRun; +import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO; +import com.njcn.harmonic.service.upload.IPmsTemProcessTestRunService; +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; +import java.util.Objects; + +/** + *

+ * 电能质量全过程试运行扩展数据 + *

+ * + * @author cdf + * @since 2024-11-04 + */ +@RestController +@RequestMapping("/process/pmsTemProcessTestRun") +@RequiredArgsConstructor +public class PmsTemProcessTestRunController extends BaseController { + + private final IPmsTemProcessTestRunService iPmsTemProcessTestRunService; + + private final PmsTemUserMapper pmsTemUserMapper; + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/create") + @ApiOperation("新增电能质量全过程试运行扩展数据") + public HttpResult create(@RequestBody @Validated PmsTemProcessTestRunParam param) { + String methodDescribe = getMethodDescribe("create"); + Boolean result = iPmsTemProcessTestRunService.create(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/update") + @ApiOperation("新增电能质量全过程试运行扩展数据") + public HttpResult update(@RequestBody @Validated PmsTemProcessTestRunParam.UpdatePmsTemProcessTestRunParamParam param) { + String methodDescribe = getMethodDescribe("update"); + Boolean result = iPmsTemProcessTestRunService.update(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE) + @PostMapping("/del") + @ApiOperation("删除电能质量全过程试运行扩展数据") + public HttpResult del(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("del"); + Boolean result = iPmsTemProcessTestRunService.del(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pageList") + @ApiOperation("分页查询电能质量全过程试运行扩展数据") + public HttpResult> pageList(@RequestBody PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param) { + String methodDescribe = getMethodDescribe("pageList"); + Page result = iPmsTemProcessTestRunService.pageList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getById") + @ApiOperation("根据id获取详情") + public HttpResult getById(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getById"); + PmsTemProcessTestRun result = iPmsTemProcessTestRunService.queryById(id); + if(Objects.nonNull(result.getTempUserDossierId())){ + PmsTemUserPO temUserPO = pmsTemUserMapper.selectById(result.getTempUserDossierId()); + result.setMaintOrg(temUserPO.getMaintOrg()); + result.setMaintOrgName(temUserPO.getMaintOrgName()); + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/upGw") + @ApiOperation("上送国网") + public HttpResult upGw(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("upGw"); + iPmsTemProcessTestRunService.upGw(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/PmsTemProcessTestRunMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/PmsTemProcessTestRunMapper.java new file mode 100644 index 000000000..6a6eefe2a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/PmsTemProcessTestRunMapper.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.mapper.upload; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTestRun; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2024-11-04 + */ +public interface PmsTemProcessTestRunMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IPmsTemProcessTestRunService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IPmsTemProcessTestRunService.java new file mode 100644 index 000000000..2c860084c --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IPmsTemProcessTestRunService.java @@ -0,0 +1,55 @@ +package com.njcn.harmonic.service.upload; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +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.harmonic.pojo.param.upload.PmsTemProcessApprovalParam; +import com.njcn.harmonic.pojo.param.upload.PmsTemProcessTestRunParam; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessApproval; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTestRun; +import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO; +import io.swagger.annotations.ApiOperation; +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.RequestParam; + +import java.util.List; +import java.util.Objects; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2024-11-04 + */ +public interface IPmsTemProcessTestRunService extends IService { + + + + Boolean create(PmsTemProcessTestRunParam param); + + + Boolean update(PmsTemProcessTestRunParam.UpdatePmsTemProcessTestRunParamParam param); + + + Boolean del(List ids); + + + Page pageList(PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param); + + + PmsTemProcessTestRun queryById(String id); + + Boolean upGw(List ids); + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessTestRunServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessTestRunServiceImpl.java new file mode 100644 index 000000000..ac96f2288 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessTestRunServiceImpl.java @@ -0,0 +1,138 @@ +package com.njcn.harmonic.service.upload.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.harmonic.mapper.upload.PmsTemProcessTestRunMapper; +import com.njcn.harmonic.mapper.upload.PmsTemUserMapper; +import com.njcn.harmonic.pojo.param.upload.PmsTemProcessApprovalParam; +import com.njcn.harmonic.pojo.param.upload.PmsTemProcessTestRunParam; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessApproval; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTestRun; +import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO; +import com.njcn.harmonic.service.upload.IPmsTemProcessTestRunService; +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; +import com.njcn.web.utils.GwSendUtil; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2024-11-04 + */ +@Service +@RequiredArgsConstructor +public class PmsTemProcessTestRunServiceImpl extends ServiceImpl implements IPmsTemProcessTestRunService { + + private final DeptFeignClient deptFeignClient; + + private final PmsTemUserMapper pmsTemUserMapper; + + @Override + public Boolean create(PmsTemProcessTestRunParam param) { + PmsTemProcessTestRun pmsTemProcessTestRun = new PmsTemProcessTestRun(); + BeanUtil.copyProperties(param,pmsTemProcessTestRun); + pmsTemProcessTestRun.setUploadStatus(DataStateEnum.DELETED.getCode()); + pmsTemProcessTestRun.setCreateTime(new Timestamp(new Date().getTime())); + pmsTemProcessTestRun.setUpdateTime(new Timestamp(new Date().getTime())); + this.save(pmsTemProcessTestRun); + return true; + } + + @Override + public Boolean update(PmsTemProcessTestRunParam.UpdatePmsTemProcessTestRunParamParam param) { + PmsTemProcessTestRun pmsTemProcessTestRun = new PmsTemProcessTestRun(); + BeanUtil.copyProperties(param,pmsTemProcessTestRun); + pmsTemProcessTestRun.setUpdateTime(new Timestamp(new Date().getTime())); + this.updateById(pmsTemProcessTestRun); + return true; + } + + @Override + public Boolean del(List ids) { + return this.removeByIds(ids); + } + + @Override + public Page pageList(PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param) { + List deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(param.getMaintOrg()).getData(); + List pmsTemProcessTestRunList = pmsTemUserMapper.selectList(new LambdaQueryWrapper().select(PmsTemUserPO::getObjId,PmsTemUserPO::getConsName).in(PmsTemUserPO::getMaintOrg,deptCodes)).stream().collect(Collectors.toList()); + if(CollUtil.isEmpty(pmsTemProcessTestRunList)){ + return new Page<>(param.getPageNum(),param.getPageSize()); + } + List objIds = pmsTemProcessTestRunList.stream().map(PmsTemUserPO::getObjId).distinct().collect(Collectors.toList()); + Map map = pmsTemProcessTestRunList.stream().collect(Collectors.toMap(PmsTemUserPO::getObjId, Function.identity())); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PmsTemProcessTestRun::getTempUserDossierId,objIds); + + Page page = this.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), lambdaQueryWrapper); + + if(CollUtil.isNotEmpty(page.getRecords())){ + page.getRecords().forEach(item->item.setTempUserDossierName(map.get(item.getTempUserDossierId()).getConsName())); + } + + return page; + } + + @Override + public PmsTemProcessTestRun queryById(String id) { + PmsTemProcessTestRun pmsTemProcessTestRun = this.getById(id); + + + return pmsTemProcessTestRun; + } + + @Override + public Boolean upGw(List ids) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PmsTemProcessTestRun::getObjId,ids); + List pmsTemProcessApprovalList = this.list(lambdaQueryWrapper); + if(CollUtil.isEmpty(pmsTemProcessApprovalList)){ + throw new BusinessException("查询试运行为空"); + } + + List> list = CollUtil.split(pmsTemProcessApprovalList,100); + for(int i=0;i sendRes = GwSendUtil.newSend(sendParam, GWSendEnum.PROCESS_TEST_RUN_CREATE); + List TemProcessTrackPOIds = list.get(i).stream().map(PmsTemProcessTestRun::getObjId).collect(Collectors.toList()); + int count = GwSendUtil.returnInfoMsg(TemProcessTrackPOIds,sendRes); + System.out.println("上送成功,上送成功返回"+count+"条"); + if(count == list.get(i).size()){ + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(PmsTemProcessTestRun::getUploadStatus,1).in(PmsTemProcessTestRun::getObjId,ids); + this.update(lambdaUpdateWrapper); + } + } + return true; + } +}