1.全过程管理试运行管理

This commit is contained in:
2024-11-04 18:53:21 +08:00
parent 2c8c94746e
commit 568f14da96
7 changed files with 553 additions and 1 deletions

View File

@@ -54,7 +54,8 @@ public enum GWSendEnum {
TEMP_USER_CREATE("tempUserCreate","/powerQuality/process/tempUserCreate"), TEMP_USER_CREATE("tempUserCreate","/powerQuality/process/tempUserCreate"),
TEMP_PROCESS_TRACK_CREATE("tempProcessTrackCreate","/powerQuality/process/processFollowCreate"), TEMP_PROCESS_TRACK_CREATE("tempProcessTrackCreate","/powerQuality/process/processFollowCreate"),
MONTH_REPORT_CREATE("monthReportCreate","/powerQuality/process/monthReportCreate"), 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")
; ;

View File

@@ -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;
/**
* <p>
*
* </p>
*
* @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;
}
}

View File

@@ -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;
/**
* <p>
*
* </p>
*
* @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;
}

View File

@@ -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;
/**
* <p>
* 电能质量全过程试运行扩展数据
* </p>
*
* @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<Object> 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<Object> 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<Object> del(@RequestBody List<String> 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<Page<PmsTemProcessTestRun>> pageList(@RequestBody PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param) {
String methodDescribe = getMethodDescribe("pageList");
Page<PmsTemProcessTestRun> result = iPmsTemProcessTestRunService.pageList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getById")
@ApiOperation("根据id获取详情")
public HttpResult<PmsTemProcessTestRun> 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<Boolean> upGw(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("upGw");
iPmsTemProcessTestRunService.upGw(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
}

View File

@@ -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;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-11-04
*/
public interface PmsTemProcessTestRunMapper extends BaseMapper<PmsTemProcessTestRun> {
}

View File

@@ -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;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2024-11-04
*/
public interface IPmsTemProcessTestRunService extends IService<PmsTemProcessTestRun> {
Boolean create(PmsTemProcessTestRunParam param);
Boolean update(PmsTemProcessTestRunParam.UpdatePmsTemProcessTestRunParamParam param);
Boolean del(List<String> ids);
Page<PmsTemProcessTestRun> pageList(PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param);
PmsTemProcessTestRun queryById(String id);
Boolean upGw(List<String> ids);
}

View File

@@ -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;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-11-04
*/
@Service
@RequiredArgsConstructor
public class PmsTemProcessTestRunServiceImpl extends ServiceImpl<PmsTemProcessTestRunMapper, PmsTemProcessTestRun> 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<String> ids) {
return this.removeByIds(ids);
}
@Override
public Page<PmsTemProcessTestRun> pageList(PmsTemProcessTestRunParam.QueryPmsTemProcessTestRunParam param) {
List<String> deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(param.getMaintOrg()).getData();
List<PmsTemUserPO> pmsTemProcessTestRunList = pmsTemUserMapper.selectList(new LambdaQueryWrapper<PmsTemUserPO>().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<String> objIds = pmsTemProcessTestRunList.stream().map(PmsTemUserPO::getObjId).distinct().collect(Collectors.toList());
Map<String,PmsTemUserPO> map = pmsTemProcessTestRunList.stream().collect(Collectors.toMap(PmsTemUserPO::getObjId, Function.identity()));
LambdaQueryWrapper<PmsTemProcessTestRun> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PmsTemProcessTestRun::getTempUserDossierId,objIds);
Page<PmsTemProcessTestRun> 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<String> ids) {
LambdaQueryWrapper<PmsTemProcessTestRun> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PmsTemProcessTestRun::getObjId,ids);
List<PmsTemProcessTestRun> pmsTemProcessApprovalList = this.list(lambdaQueryWrapper);
if(CollUtil.isEmpty(pmsTemProcessApprovalList)){
throw new BusinessException("查询试运行为空");
}
List<List<PmsTemProcessTestRun>> list = CollUtil.split(pmsTemProcessApprovalList,100);
for(int i=0;i<list.size();i++){
SendParam sendParam = new SendParam();
if(i==0){
sendParam.setIsAppend("0");
}else if(i==list.size()-1){
sendParam.setIsAppend("2");
}else {
sendParam.setIsAppend("1");
}
sendParam.setStats(list.get(i));
Map<String, String> sendRes = GwSendUtil.newSend(sendParam, GWSendEnum.PROCESS_TEST_RUN_CREATE);
List<String> 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<PmsTemProcessTestRun> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.set(PmsTemProcessTestRun::getUploadStatus,1).in(PmsTemProcessTestRun::getObjId,ids);
this.update(lambdaUpdateWrapper);
}
}
return true;
}
}