代码合并

This commit is contained in:
2023-01-03 09:00:20 +08:00
parent 7c4cef74e7
commit cdc6255d22
81 changed files with 5415 additions and 63 deletions

View File

@@ -0,0 +1,5 @@
FROM openjdk:8-jdk-alpine
ADD target/processboot.jar processboot.jar
ENTRYPOINT ["java","-jar","/processboot.jar"]
EXPOSE 10222
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone

View File

@@ -21,7 +21,7 @@
<dependencies>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>prepare-api</artifactId>
<artifactId>process-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -60,11 +60,48 @@
<artifactId>event-api</artifactId>
<version>${project.version}</version>
</dependency>
<!--调用minio服务器-->
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-minio</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>me.tongfei</groupId>
<artifactId>progressbar</artifactId>
<version>0.5.3</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.8.1</version>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
<exclusions>
<exclusion>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.jeffreyning</groupId>
<artifactId>mybatisplus-plus</artifactId>
<version>1.5.1-RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
<build>
@@ -91,38 +128,38 @@
</executions>
</plugin>
<!-- <plugin>-->
<!-- <groupId>com.spotify</groupId>-->
<!-- <artifactId>docker-maven-plugin</artifactId>-->
<!-- <version>1.0.0</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>build-image</id>-->
<!-- <phase>${docker.operate}</phase>-->
<!-- <goals>-->
<!-- <goal>build</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- <configuration>-->
<!-- &lt;!&ndash;<serverId>36dockerHarbor</serverId>&ndash;&gt;-->
<!-- <registryUrl>http://${docker.repostory}</registryUrl>-->
<!-- &lt;!&ndash; 镜像名称 &ndash;&gt;-->
<!-- <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>-->
<!-- <imageTags>-->
<!-- <imageTag>latest</imageTag>-->
<!-- </imageTags>-->
<!-- <dockerHost>${docker.url}</dockerHost>-->
<!-- <dockerDirectory>${basedir}/</dockerDirectory>-->
<!-- <resources>-->
<!-- <resource>-->
<!-- <targetPath>/ROOT</targetPath>-->
<!-- <directory>${project.build.directory}</directory>-->
<!-- <include>${project.build.finalName}.jar</include>-->
<!-- </resource>-->
<!-- </resources>-->
<!-- </configuration>-->
<!-- </plugin>-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>${docker.operate}</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--<serverId>36dockerHarbor</serverId>-->
<registryUrl>http://${docker.repostory}</registryUrl>
<!-- 镜像名称 -->
<imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<dockerHost>${docker.url}</dockerHost>
<dockerDirectory>${basedir}/</dockerDirectory>
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>

View File

@@ -1,5 +1,6 @@
package com.njcn.process;
import com.github.jeffreyning.mybatisplus.conf.EnableMPP;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
@@ -16,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@MapperScan("com.njcn.**.mapper")
@EnableFeignClients(basePackages = "com.njcn")
@SpringBootApplication(scanBasePackages = "com.njcn")
@EnableMPP
public class ProcessApplication {
public static void main(String[] args) {

View File

@@ -0,0 +1,215 @@
package com.njcn.process.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.service.IssuesService;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 电能质量问题
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 9:18
*/
@Slf4j
@Api(tags = "电能质量问题")
@RestController
@RequestMapping("/electricityQuality")
@RequiredArgsConstructor
public class ElectricityQualityIssuesController extends BaseController {
private final IssuesService issuesService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addExcessiveIssues")
@ApiOperation("填报在线监测超标问题")
@ApiImplicitParam(name = "excessiveParam", value = "参数", required = true)
public HttpResult<String> addExcessiveIssues(@RequestBody @Validated ExcessiveParam excessiveParam){
String methodDescribe = getMethodDescribe("addExcessiveIssues");
issuesService.addExcessiveIssues(excessiveParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addGeneralSurveyIssues")
@ApiOperation("填报普测超标问题")
@ApiImplicitParam(name = "generalSurveyParam", value = "参数", required = true)
public HttpResult<String> addGeneralSurveyIssues(@RequestBody @Validated GeneralSurveyParam generalSurveyParam){
String methodDescribe = getMethodDescribe("addGeneralSurveyIssues");
issuesService.addGeneralSurveyIssues(generalSurveyParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addComplaintIssues")
@ApiOperation("填报用户投诉问题")
@ApiImplicitParam(name = "complaintParam", value = "参数", required = true)
public HttpResult<String> addComplaintIssues(@RequestBody @Validated ComplaintParam complaintParam){
String methodDescribe = getMethodDescribe("addComplaintIssues");
issuesService.addComplaintIssues(complaintParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addAbnormalIssues")
@ApiOperation("填报运维监控异常问题")
@ApiImplicitParam(name = "abnormalParam", value = "参数", required = true)
public HttpResult<String> addAbnormalIssues(@RequestBody @Validated AbnormalParam abnormalParam){
String methodDescribe = getMethodDescribe("addAbnormalIssues");
issuesService.addAbnormalIssues(abnormalParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getIssues")
@ApiOperation("查询问题列表")
@ApiImplicitParam(name = "queryIssuesParam", value = "参数", required = true)
public HttpResult<IPage<IssuesVO>> getIssues(@RequestBody @Validated QueryIssuesParam queryIssuesParam){
String methodDescribe = getMethodDescribe("getIssues");
Page<IssuesVO> out = issuesService.getIssues(queryIssuesParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getExcessiveDetail")
@ApiOperation("查询在线监测超标问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<ExcessiveDetailVO> getExcessiveDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getExcessiveDetail");
ExcessiveDetailVO out = issuesService.getExcessiveDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGeneralSurveyDetail")
@ApiOperation("查询普测超标问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<GeneralSurveyVO> getGeneralSurveyDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getGeneralSurveyDetail");
GeneralSurveyVO out = issuesService.getGeneralSurveyDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getComplaintDetail")
@ApiOperation("查询用户投诉问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<ComplaintVO> getComplaintDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getComplaintDetail");
ComplaintVO out = issuesService.getComplaintDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getAbnormalDetail")
@ApiOperation("查询运维异常问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<AbnormalVO> getAbnormalDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getAbnormalDetail");
AbnormalVO out = issuesService.getAbnormalDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/reasonAnalysis")
@ApiOperation("原因分析")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> reasonAnalysis(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("reasonAnalysis");
issuesService.reasonAnalysis(processParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/correctiveAction")
@ApiOperation("计划整改措施")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> correctiveAction(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("correctiveAction");
issuesService.process(processParam, DicDataEnum.PLAN_MEASURES.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/takeAction")
@ApiOperation("实际采取措施")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> takeAction(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("takeAction");
issuesService.process(processParam, DicDataEnum.ACTUAL_MEASURES.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/effectAnalysis")
@ApiOperation("成效分析")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> effectAnalysis(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("effectAnalysis");
issuesService.process(processParam, DicDataEnum.INSIGHTS.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/archive")
@ApiOperation("问题归档")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<String> archive(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("archive");
issuesService.archive(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
@PostMapping("/uploadFile")
@ApiOperation("上传文件")
@ApiImplicitParam(name = "file", value = "填报进度文件", required = true)
public HttpResult<MinIoUploadResDTO> uploadFile(@RequestParam("file") MultipartFile issuesFile){
String methodDescribe = getMethodDescribe("uploadFile");
MinIoUploadResDTO out = issuesService.uploadFile(issuesFile);
out.setMinFileName(issuesFile.getOriginalFilename());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DOWNLOAD)
@PostMapping("/downloadFile")
@ApiOperation("下载文件")
@ApiImplicitParams({
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true),
@ApiImplicitParam(name = "reportProcess", value = "填报进度", required = true)
})
public HttpResult<String> downloadFile(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo,@RequestParam("reportProcess") String reportProcess){
String methodDescribe = getMethodDescribe("downloadFile");
String out = issuesService.downloadFile(powerQualityProblemNo, reportProcess);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
@PostMapping("/deleteIssues")
@ApiOperation("删除问题")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<String> deleteIssues(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("deleteIssues");
issuesService.deleteIssues(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,220 @@
package com.njcn.process.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
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.poi.util.PoiUtil;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import com.njcn.process.service.LoadTypeUserManageService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
@Slf4j
@RestController
@RequestMapping("/loadTypeUserManage")
@Api(tags = "干扰源用户管理")
@AllArgsConstructor
public class LoadTypeUserManageController extends BaseController {
private final LoadTypeUserManageService loadTypeUserManageService;
/**
* 查询所有干扰源用户
* @author qijian
* @date 2022/11/11
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLoadTypeUserList")
@ApiOperation("查询所有干扰源用户(未建档干扰源用户管理)")
@ApiImplicitParam(name = "loadTypeUserSearchParam", value = "干扰源用户入参", required = true)
public HttpResult<Page<RLoadTypeUserManageVO>> getLoadTypeUserList(@RequestBody @Validated LoadTypeUserSearchParam loadTypeUserSearchParam){
String methodDescribe = getMethodDescribe("getLoadTypeUserList");
Page<RLoadTypeUserManageVO> list = loadTypeUserManageService.getLoadTypeUserList(loadTypeUserSearchParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 根据id查询干扰源用户
* @author qijian
* @date 2022/11/14
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getLoadTypeUserById")
@ApiOperation("根据id查询干扰源用户通用")
@ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<RLoadTypeUserManageVO> getLoadTypeUserById(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("getLoadTypeUserById");
RLoadTypeUserManageVO rLoadTypeUserManageVO = loadTypeUserManageService.getLoadTypeUserById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rLoadTypeUserManageVO, methodDescribe);
}
/**
* 新增干扰源用户
* @author qijian
* @date 2022/11/14
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
@PostMapping("/addLoadTypeUser")
@ApiOperation("新增干扰源用户(未建档干扰源用户管理)")
@ApiImplicitParam(name = "loadTypeUserParam", value = "实体参数", required = true)
public HttpResult<Boolean> addLoadTypeUser(@RequestBody @Validated LoadTypeUserParam loadTypeUserParam){
String methodDescribe = getMethodDescribe("addLoadTypeUser");
boolean res = loadTypeUserManageService.addLoadTypeUser(loadTypeUserParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 上传干扰源用户入网报告
* @author qijian
* @date 2022/11/14
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.UPDATE)
@PostMapping("/uploadLoadTypeUserI")
@ApiOperation("上传干扰源用户入网报告(未建档干扰源用户管理)")
// @ApiImplicitParam(name = "loadTypeUserIUploadParam", value = "实体参数", required = true)
public HttpResult<Boolean> uploadLoadTypeUserI(@Validated LoadTypeUserIUploadParam loadTypeUserIUploadParam){
String methodDescribe = getMethodDescribe("uploadLoadTypeUserI");
boolean res = loadTypeUserManageService.uploadLoadTypeUserI(loadTypeUserIUploadParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 关联营销用户
* @author qijian
* @date 2022/11/16
*
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.UPDATE)
@PostMapping("/linkUser")
@ApiOperation("关联营销用户(未建档干扰源用户管理)")
@ApiImplicitParam(name = "loadTypeUserAssociateParam", value = "实体参数", required = true)
public HttpResult<Boolean> linkUser(@RequestBody @Validated LoadTypeUserAssociateParam loadTypeUserAssociateParam){
String methodDescribe = getMethodDescribe("linkUser");
boolean res = loadTypeUserManageService.linkUser(loadTypeUserAssociateParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 导出未建档干扰源用户管理信息
* @author qijian
* @date 2022/12/06
*/
@ResponseBody
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.DOWNLOAD)
@ApiOperation("导出未建档干扰源用户管理信息")
@PostMapping(value = "exportLoadTypeUserList")
@ApiImplicitParam(name = "list", value = "导出勾选主键参数", required = true)
public HttpResult<String> exportLoadTypeUserList(HttpServletResponse response, @RequestBody List<String> list) {
String methodDescribe = getMethodDescribe("exportLoadTypeUserList");
String fileName = "未建档干扰源用户管理信息.xls";
List<LoadTypeUserExcel> excelList = null;
try {
excelList = loadTypeUserManageService.exportLoadTypeUserList(list);
} catch (Exception e) {
e.printStackTrace();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
ExportParams exportExcel = new ExportParams("未建档干扰源用户管理信息", "未建档干扰源用户");
Workbook workbook = ExcelExportUtil.exportExcel(exportExcel, LoadTypeUserExcel.class, excelList);
PoiUtil.exportFileByWorkbook(workbook, fileName, response);
return null;
}
/**
* 查询所有干扰源用户(与营销系统关联)
* @author qijian
* @date 2022/11/17
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLoadTypeRelationList")
@ApiOperation("查询所有干扰源用户(干扰源用户常态化管理)")
@ApiImplicitParam(name = "loadTypeUserSearchParam", value = "干扰源用户入参", required = true)
public HttpResult<Page<RLoadTypeUserManageVO>> getLoadTypeRelationList(@RequestBody @Validated LoadTypeUserSearchParam loadTypeUserSearchParam){
String methodDescribe = getMethodDescribe("getLoadTypeRelationList");
Page<RLoadTypeUserManageVO> list = loadTypeUserManageService.getLoadTypeRelationList(loadTypeUserSearchParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 上传干扰源用户实测报告
* @author qijian
* @date 2022/11/14
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.UPDATE)
@PostMapping("/uploadLoadTypeUserA")
@ApiOperation("上传干扰源用户实测报告(干扰源用户常态化管理)")
// @ApiImplicitParam(name = "loadTypeUserAUploadParam", value = "实体参数", required = true)
public HttpResult<Boolean> uploadLoadTypeUserA(@Validated LoadTypeUserAUploadParam loadTypeUserAUploadParam){
String methodDescribe = getMethodDescribe("uploadLoadTypeUserA");
boolean res = loadTypeUserManageService.uploadLoadTypeUserA(loadTypeUserAUploadParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 导出干扰源用户常态化管理信息
* @author qijian
* @date 2022/12/07
*/
@ResponseBody
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.DOWNLOAD)
@ApiOperation("导出干扰源用户常态化管理信息")
@PostMapping(value = "exportLoadTypeRelationList")
@ApiImplicitParam(name = "list", value = "导出勾选主键参数", required = true)
public HttpResult<String> exportLoadTypeRelationList(HttpServletResponse response, @RequestBody List<String> list) {
String methodDescribe = getMethodDescribe("exportLoadTypeRelationList");
String fileName = "导出干扰源用户常态化管理信息.xls";
List<LoadTypeRelationExcel> excelList = null;
try {
excelList = loadTypeUserManageService.exportLoadTypeRelationList(list);
} catch (Exception e) {
e.printStackTrace();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
ExportParams exportExcel = new ExportParams("干扰源用户常态化管理信息", "干扰源用户常态化管理");
Workbook workbook = ExcelExportUtil.exportExcel(exportExcel, LoadTypeRelationExcel.class, excelList);
PoiUtil.exportFileByWorkbook(workbook, fileName, response);
return null;
}
}

View File

@@ -0,0 +1,197 @@
package com.njcn.process.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.minio.bo.MinIoUploadResDTO;
import com.njcn.poi.util.PoiUtil;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import com.njcn.process.service.RGeneralSurveyPlanDetailService;
import com.njcn.process.service.RGeneralSurveyPlanPOService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 14:50【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/rGeneralSurveyPlan")
@Api(tags = "普测计划管理")
@AllArgsConstructor
public class RGeneralSurveyPlanController extends BaseController {
private final RGeneralSurveyPlanPOService rGeneralSurveyPlanPOService;
private @Autowired
RGeneralSurveyPlanDetailService rGeneralSurveyPlanDetailService;
/**
* @Description: 新增/修改普测计划
* @Param: [rGeneralSurveyPlanAddParm]
* @return: com.njcn.common.pojo.response.HttpResult<java.lang.Boolean>
* @Author: clam
* @Date: 2022/11/22
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addPlan")
@ApiOperation("新增/修改普测计划")
@ApiImplicitParam(name = "rGeneralSurveyPlanAddParm", value = "新增普测计划参数", required = true)
public HttpResult<Boolean> addPlan(@RequestBody RGeneralSurveyPlanAddParm rGeneralSurveyPlanAddParm){
String methodDescribe = getMethodDescribe("addPlan");
Boolean addFlag = rGeneralSurveyPlanPOService.addPlan(rGeneralSurveyPlanAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, addFlag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPlan")
@ApiOperation("查询普测计划-新建页面")
@ApiImplicitParam(name = "rGeneralSurveyPlanQueryParm", value = "普测计划查询参数", required = true)
public HttpResult<IPage<RGeneralSurveyPlanVO>> queryPlan(@Validated @RequestBody RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm){
String methodDescribe = getMethodDescribe("queryPlan");
IPage<RGeneralSurveyPlanVO> rGeneralSurveyPlanVOS = rGeneralSurveyPlanPOService.query (rGeneralSurveyPlanQueryParm, Stream.of ("0","1","2","3").collect (Collectors.toList ()));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rGeneralSurveyPlanVOS, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPlanAudit")
@ApiOperation("查询普测计划-审核页面")
@ApiImplicitParam(name = "rGeneralSurveyPlanQueryParm", value = "普测计划查询参数", required = true)
public HttpResult<IPage<RGeneralSurveyPlanVO>> queryPlanAudit(@Validated @RequestBody RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm){
String methodDescribe = getMethodDescribe("queryPlanAudit");
IPage<RGeneralSurveyPlanVO> rGeneralSurveyPlanVOS = rGeneralSurveyPlanPOService.query (rGeneralSurveyPlanQueryParm, Stream.of ("1").collect (Collectors.toList ()));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rGeneralSurveyPlanVOS, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPlanResult")
@ApiOperation("查询普测计划-结果页面")
@ApiImplicitParam(name = "rGeneralSurveyPlanQueryParm", value = "普测计划查询参数", required = true)
public HttpResult<IPage<RGeneralSurveyPlanVO>> queryPlanResult(@Validated @RequestBody RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm){
String methodDescribe = getMethodDescribe("queryPlanResult");
IPage<RGeneralSurveyPlanVO> rGeneralSurveyPlanVOS = rGeneralSurveyPlanPOService.query (rGeneralSurveyPlanQueryParm, Stream.of ("3","4").collect (Collectors.toList ()));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rGeneralSurveyPlanVOS, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPlandetail")
@ApiOperation("根据planNO查询普测计划详情")
@ApiImplicitParam(name = "rGeneralSurveyPlandetailQueryParm", value = "普测计划详情查询参数", required = true)
public HttpResult<IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO>> queryPlandetail(@Validated @RequestBody RGeneralSurveyPlandetailQueryParm rGeneralSurveyPlandetailQueryParm){
String methodDescribe = getMethodDescribe("queryPlandetail");
IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> rGeneralSurveyPlanDetailVOIPage = rGeneralSurveyPlanDetailService.queryPlandetail (rGeneralSurveyPlandetailQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rGeneralSurveyPlanDetailVOIPage, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.UPLOAD)
@PostMapping("/surveyResultUpload")
@ApiOperation("上传普测结果报告")
// @ApiImplicitParam(name = "surveyResultUploadParam", value = "实体参数", required = true)
public HttpResult<Boolean> surveyResultUpload( @Validated SurveyResultUploadParam surveyResultUploadParam){
String methodDescribe = getMethodDescribe("surveyResultUpload");
boolean res = rGeneralSurveyPlanPOService.surveyResultUpload(surveyResultUploadParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.DOWNLOAD)
@PostMapping("/surveyResultDownload")
@ApiOperation("下载普测结果报告")
@ApiImplicitParam(name = "planNo", value = "计划号", required = true)
public HttpResult<List<MinIoUploadResDTO>> surveyResultDownload(@RequestParam("planNo") String planNo ){
String methodDescribe = getMethodDescribe("surveyResultDownload");
List<MinIoUploadResDTO> downloadUrls = rGeneralSurveyPlanPOService.surveyResultDownload(planNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, downloadUrls, methodDescribe);
}
@ResponseBody
@ApiOperation("导出普测计划信息")
@PostMapping(value = "exportSurveyPlan")
@ApiImplicitParam(name = "planIdList", value = "普测计划详情查询参数", required = true)
public HttpResult<String> exportSurveyPlan(HttpServletResponse response,@RequestBody List<String> planIdList) {
String methodDescribe = getMethodDescribe("exportSurveyPlan");
String fileName = "普测计划信息.xls";
List<SurveyPlanExcel> baseExcelList = null;
try {
baseExcelList = rGeneralSurveyPlanPOService.exportSurveyPlan(planIdList);
} catch (Exception e) {
e.printStackTrace();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
ExportParams exportExcel = new ExportParams("普测计划信息", "普测计划信息");
Workbook workbook = ExcelExportUtil.exportExcel(exportExcel, SurveyPlanExcel.class, baseExcelList);
PoiUtil.exportFileByWorkbook(workbook, fileName, response);
return null;
}
@ResponseBody
@ApiOperation("普测计划信息问题件新增查询")
@PostMapping(value = "querySurveyPlanOnQuestion")
@ApiImplicitParam(name = "questionQueryParm", value = "普测计划信息问题件查询参数", required = true)
public HttpResult<List<RGeneralSurveyPlanDetailOnQuestionVO>> querySurveyPlanOnQuestion(@Validated @RequestBody SurveyPlanQuestionQueryParm questionQueryParm) {
String methodDescribe = getMethodDescribe("querySurveyPlanOnQuestion");
List<RGeneralSurveyPlanDetailOnQuestionVO> list= rGeneralSurveyPlanPOService.querySurveyPlanOnQuestion(questionQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@ResponseBody
@ApiOperation("普测计划名称查询")
@PostMapping(value = "querySurveyPlanName")
@ApiImplicitParam(name = "questionQueryParm", value = "普测计划名称查询参数", required = true)
public HttpResult<List<RGeneralSurveyPlanPO>> querySurveyPlanName(@Validated @RequestBody SurveyPlanQuestionQueryParm questionQueryParm) {
String methodDescribe = getMethodDescribe("querySurveyPlanName");
List<RGeneralSurveyPlanPO> list= rGeneralSurveyPlanPOService.querySurveyPlanName(questionQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -0,0 +1,36 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.LoadTypeUserSearchParam;
import com.njcn.process.pojo.po.RLoadTypeUserManage;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import org.apache.ibatis.annotations.Param;
/**
* 干扰源用户管理Mapper
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:24
*/
public interface LoadTypeUserManageMapper extends BaseMapper<RLoadTypeUserManage> {
/**
* 干扰源用户分页查询
* @param page 分页参数
* @param loadTypeUserSearchParam 入参
* @return 结果
*/
Page<RLoadTypeUserManageVO> getLoadTypeUserPage(IPage<RLoadTypeUserManageVO> page, @Param("loadTypeUserSearchParam") LoadTypeUserSearchParam loadTypeUserSearchParam);
/**
* 干扰源用户分页查询
* @param page 分页参数
* @param loadTypeUserSearchParam 入参
* @return 结果
*/
Page<RLoadTypeUserManageVO> getLoadTypeRelationPage(IPage<RLoadTypeUserManageVO> page, @Param("loadTypeUserSearchParam") LoadTypeUserSearchParam loadTypeUserSearchParam);
}

View File

@@ -0,0 +1,41 @@
package com.njcn.process.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanDetailMapper extends MppBaseMapper<RGeneralSurveyPlanDetail> {
@Select ({"<script>",
"SELECT\n" +
"\ta.plan_name as planName,\n" +
"\tb.voltage_level as voltageLevel,\n" +
"\tb.sub_id as subId,\n" +
"\tb.sub_name as subName,\n" +
"\tb.busbar_id as busbarId,\n" +
"\tb.busbar_name as busbarName, b.measurement_point_id as measurementPointId\n" +
"FROM\n" +
"\tr_general_survey_plan a\n" +
"INNER JOIN r_general_survey_plan_detail b ON a.plan_no = b.plan_no\n" +
"WHERE\n" +
"\ta.org_no = #{questionQueryParm.orgNo} " +
"<when test='questionQueryParm.planName!=null and questionQueryParm.planName!=\"\"'>",
"and a.plan_name = #{questionQueryParm.planName}\n" +
"</when>",
"AND DATE_FORMAT(a.upload_time, '%Y%m') = DATE_FORMAT(#{questionQueryParm.planStartTime}, '%Y%m')",
"</script>"})
List<RGeneralSurveyPlanDetailOnQuestionVO> querySurveyPlanOnQuestion(@Param("questionQueryParm") SurveyPlanQuestionQueryParm questionQueryParm);
}

View File

@@ -0,0 +1,17 @@
package com.njcn.process.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanPOMapper extends MppBaseMapper<RGeneralSurveyPlanPO> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpElectricQualityProblemFlowDetails;
/**
* <p>
* 电能质量问题流程详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpElectricQualityProblemFlowDetailsMapper extends BaseMapper<RMpElectricQualityProblemFlowDetails> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpGeneralSurveyOverproofProblem;
/**
* <p>
* 普测超标问题详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpGeneralSurveyOverproofProblemMapper extends BaseMapper<RMpGeneralSurveyOverproofProblem> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpOnlineMonitorOverproofProblem;
/**
* <p>
* 在线监测超标问题详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpOnlineMonitorOverproofProblemMapper extends BaseMapper<RMpOnlineMonitorOverproofProblem> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpOperationMonitorAbnormal;
/**
* <p>
* 运维监控异常详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpOperationMonitorAbnormalMapper extends BaseMapper<RMpOperationMonitorAbnormal> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpUserComplaint;
/**
* <p>
* 用户投诉详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpUserComplaintMapper extends BaseMapper<RMpUserComplaint> {
}

View File

@@ -0,0 +1,24 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.QueryIssuesParam;
import com.njcn.process.pojo.po.RStatElectricQualityProblemFlow;
import com.njcn.process.pojo.vo.IssuesVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 电能质量问题流程表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RStatElectricQualityProblemFlowMapper extends BaseMapper<RStatElectricQualityProblemFlow> {
List<IssuesVO> getIssues(@Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd);
}

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.LoadTypeUserManageMapper">
<select id="getLoadTypeUserPage" resultType="RLoadTypeUserManageVO">
SELECT
*
FROM
r_load_type_user_manage r
where 1=1
<if test="loadTypeUserSearchParam.orgNo != null and loadTypeUserSearchParam.orgNo != ''">
and r.org_no = #{loadTypeUserSearchParam.orgNo}
</if>
<if test="loadTypeUserSearchParam.loadType != null and loadTypeUserSearchParam.loadType != ''">
and r.load_type = #{loadTypeUserSearchParam.loadType}
</if>
<if test="loadTypeUserSearchParam.userName != null and loadTypeUserSearchParam.userName != ''">
and r.user_name like CONCAT('%', #{loadTypeUserSearchParam.userName}, '%')
</if>
<if test="loadTypeUserSearchParam.aIsFileUpload != null and loadTypeUserSearchParam.aIsFileUpload != ''">
and r.i_is_file_upload = #{loadTypeUserSearchParam.iIsFileUpload}
</if>
</select>
<select id="getLoadTypeRelationPage" resultType="RLoadTypeUserManageVO">
SELECT
*
FROM
r_load_type_user_manage r
where 1=1
AND ISNULL( relation_user_id )= 0
AND LENGTH(
trim( relation_user_id ))> 0
<if test="loadTypeUserSearchParam.orgNo != null and loadTypeUserSearchParam.orgNo != ''">
and r.org_no = #{loadTypeUserSearchParam.orgNo}
</if>
<if test="loadTypeUserSearchParam.loadType != null and loadTypeUserSearchParam.loadType != ''">
and r.load_type = #{loadTypeUserSearchParam.loadType}
</if>
<if test="loadTypeUserSearchParam.userName != null and loadTypeUserSearchParam.userName != ''">
and r.user_name like CONCAT('%', #{loadTypeUserSearchParam.userName}, '%')
</if>
<if test="loadTypeUserSearchParam.relationUserName != null and loadTypeUserSearchParam.relationUserName != ''">
and r.relation_user_name like CONCAT('%', #{loadTypeUserSearchParam.relationUserName}, '%')
</if>
<if test="loadTypeUserSearchParam.aIsFileUpload != null and loadTypeUserSearchParam.aIsFileUpload != ''">
and r.a_is_file_upload = #{loadTypeUserSearchParam.aIsFileUpload}
</if>
</select>
</mapper>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RGeneralSurveyPlanDetailMapper">
<resultMap id="BaseResultMap" type="com.njcn.process.pojo.po.RGeneralSurveyPlanDetail">
<!--@mbg.generated-->
<!--@Table r_general_survey_plan_detail-->
<id column="plan_no" jdbcType="VARCHAR" property="planNo" />
<result column="general_survey_start_time" jdbcType="DATE" property="generalSurveyStartTime" />
<result column="general_survey_end_time" jdbcType="DATE" property="generalSurveyEndTime" />
<result column="general_survey_time" jdbcType="DATE" property="generalSurveyTime" />
<result column="general_survey_leader" jdbcType="VARCHAR" property="generalSurveyLeader" />
<result column="sub_id" jdbcType="VARCHAR" property="subId" />
<result column="sub_name" jdbcType="VARCHAR" property="subName" />
<result column="voltage_level" jdbcType="VARCHAR" property="voltageLevel" />
<result column="busbar_id" jdbcType="VARCHAR" property="busbarId" />
<result column="busbar_name" jdbcType="VARCHAR" property="busbarName" />
<result column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<result column="is_problem" jdbcType="TINYINT" property="isProblem" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
plan_no, general_survey_start_time, general_survey_end_time, general_survey_time,
general_survey_leader, sub_id, sub_name, voltage_level, busbar_id, busbar_name, measurement_point_id,
is_problem
</sql>
</mapper>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RGeneralSurveyPlanPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.process.pojo.po.RGeneralSurveyPlanPO">
<!--@mbg.generated-->
<!--@Table r_general_survey_plan-->
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
<id column="plan_no" jdbcType="VARCHAR" property="planNo" />
<result column="plan_name" jdbcType="VARCHAR" property="planName" />
<result column="plan_create_time" jdbcType="DATE" property="planCreateTime" />
<result column="plan_start_time" jdbcType="DATE" property="planStartTime" />
<result column="plan_end_time" jdbcType="DATE" property="planEndTime" />
<result column="plan_complate_time" jdbcType="DATE" property="planComplateTime" />
<result column="leader" jdbcType="VARCHAR" property="leader" />
<result column="status" jdbcType="TINYINT" property="status" />
<result column="description" jdbcType="VARCHAR" property="description" />
<result column="is_file_upload" jdbcType="TINYINT" property="isFileUpload" />
<result column="file_count" jdbcType="INTEGER" property="fileCount" />
<result column="file_path" jdbcType="VARCHAR" property="filePath" />
<result column="upload_time" jdbcType="DATE" property="uploadTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
org_no, plan_no, plan_name, plan_create_time, plan_start_time, plan_end_time, plan_complate_time,
leader, `status`, description, is_file_upload, file_count, file_path, upload_time
</sql>
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpElectricQualityProblemFlowDetailsMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpGeneralSurveyOverproofProblemMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpOnlineMonitorOverproofProblemMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpOperationMonitorAbnormalMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpUserComplaintMapper">
</mapper>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RStatElectricQualityProblemFlowMapper">
<select id="getIssues" resultType="com.njcn.process.pojo.vo.IssuesVO">
SELECT
*
FROM
r_stat_electric_quality_problem_flow
WHERE
data_date between #{dateBegin} AND #{dateEnd}
<if test="param.orgNo !=null and param.orgNo !=''">
AND org_no = #{param.orgNo}
</if>
<if test="param.problemSources !=null and param.problemSources !=''">
AND problem_sources = #{param.problemSources}
</if>
<if test="param.reportProcess !=null and param.reportProcess !=''">
AND report_process = #{param.reportProcess}
</if>
<if test="param.reportProcessStatus !=null and param.reportProcessStatus !=''">
AND report_process_status = #{param.reportProcessStatus}
</if>
<if test="param.problemName !=null and param.problemName !=''">
AND problem_name like CONCAT(CONCAT('%', #{param.problemName}), '%')
</if>
</select>
</mapper>

View File

@@ -0,0 +1,91 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 电能质量问题接口类
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 10:59
*/
public interface IssuesService {
/**
* 填报在线监测超标问题
*/
void addExcessiveIssues(ExcessiveParam excessiveParam);
/**
* 填报普测超标问题
*/
void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam);
/**
* 填报用户投诉问题
*/
void addComplaintIssues(ComplaintParam complaintParam);
/**
* 填报运维监控异常问题
*/
void addAbnormalIssues(AbnormalParam abnormalParam);
/**
* 查询问题列表
*/
Page<IssuesVO> getIssues(QueryIssuesParam queryIssuesParam);
/**
* 查询在线监测超标问题详情
*/
ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo);
/**
* 查询普测超标问题详情
*/
GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo);
/**
* 查询用户投诉问题详情
*/
ComplaintVO getComplaintDetail(String powerQualityProblemNo);
/**
* 查询运维异常问题详情
*/
AbnormalVO getAbnormalDetail(String powerQualityProblemNo);
/**
* 原因分析
*/
void reasonAnalysis(ProcessParam processParam);
/**
* 计划整改措施、实际采取措施、成效分析
*/
void process(ProcessParam processParam, String code);
/**
* 问题归档
*/
void archive(String powerQualityProblemNo);
/**
* 上传文件
*/
MinIoUploadResDTO uploadFile(MultipartFile issuesFile);
/**
* 下载文件
*/
String downloadFile(String powerQualityProblemNo, String reportProcess);
/**
* 删除问题
*/
void deleteIssues(String powerQualityProblemNo);
}

View File

@@ -0,0 +1,82 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import java.util.List;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
public interface LoadTypeUserManageService {
/**
* 干扰源用户分页查询
* @param loadTypeUserSearchParam
* @return
*/
Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam);
/**
* 根据id查询干扰源用户
* @param id
* @return
*/
RLoadTypeUserManageVO getLoadTypeUserById(String id);
/**
* 新增干扰源用户
* @param loadTypeUserParam
* @return
*/
boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam);
/**
* 上传干扰源用户入网报告
* @param loadTypeUserIUploadParam
* @return
*/
boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam);
/**
* 关联营销用户
* @param loadTypeUserAssociateParam
* @return
*/
boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam);
/**
* 查询所有干扰源用户(与营销系统关联)
* @param loadTypeUserSearchParam
* @return
*/
Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam);
/**
* 上传干扰源用户实测报告
* @param loadTypeUserAUploadParam
* @return
*/
boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam);
/**
* 导出未建档干扰源用户管理信息
* @param list
* @return
*/
List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list);
/**
* 导出干扰源用户常态化管理信息
* @param list
* @return
*/
List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list);
}

View File

@@ -0,0 +1,29 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.process.pojo.param.RGeneralSurveyPlandetailQueryParm;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanDetailService extends IMppService<RGeneralSurveyPlanDetail> {
/**
* @Description: 根据planNO查询普测计划详情
* @Param: [rGeneralSurveyPlandetailQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO>
* @Author: clam
* @Date: 2022/11/15
*/
IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> queryPlandetail(RGeneralSurveyPlandetailQueryParm rGeneralSurveyPlandetailQueryParm);
}

View File

@@ -0,0 +1,84 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.RGeneralSurveyPlanAddParm;
import com.njcn.process.pojo.param.RGeneralSurveyPlanQueryParm;
import com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm;
import com.njcn.process.pojo.param.SurveyResultUploadParam;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanPOService extends IMppService<RGeneralSurveyPlanPO>{
/**
* @Description: addPlan
* @Param: [rGeneralSurveyPlanAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2022/11/14
*/
Boolean addPlan(RGeneralSurveyPlanAddParm rGeneralSurveyPlanAddParm);
/**
* @Description: query
* @Param: [rGeneralSurveyPlanQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO>
* @Author: clam
* @Date: 2022/11/15
*/
IPage<RGeneralSurveyPlanVO> query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm,List<String> statusList);
/**
* @Description: surveyResultUpload
* @Param: [surveyResultUploadParam]
* @return: boolean
* @Author: clam
* @Date: 2022/11/18
*/
boolean surveyResultUpload(SurveyResultUploadParam surveyResultUploadParam);
/**
* @Description: surveyResultDownload
* @Param: [planNo]
* @return: java.util.List<java.lang.String>
* @Author: clam
* @Date: 2022/11/18
*/
List<MinIoUploadResDTO> surveyResultDownload(String planNo);
/**
* @Description: exportSurveyPlan
* @Param: []
* @return: java.util.List<com.njcn.process.pojo.vo.SurveyPlanExcel>
* @Author: clam
* @Date: 2022/11/21
*/
List<SurveyPlanExcel> exportSurveyPlan(List<String> planIdList);
/**
* @Description: querySurveyPlanOnQuestion
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO>
* @Author: clam
* @Date: 2022/11/30
*/
List<RGeneralSurveyPlanDetailOnQuestionVO> querySurveyPlanOnQuestion(SurveyPlanQuestionQueryParm questionQueryParm);
/**
* @Description: 更具questionQueryParm查计划名称
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm>
* @Author: clam
* @Date: 2022/12/1
*/
List<RGeneralSurveyPlanPO> querySurveyPlanName(SurveyPlanQuestionQueryParm questionQueryParm);
}

View File

@@ -0,0 +1,532 @@
package com.njcn.process.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.nacos.shaded.com.google.common.collect.Lists;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.*;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.service.IssuesService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 电能质量问题实现类
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 11:03
*/
@Slf4j
@Service
@AllArgsConstructor
public class IssuesServiceImpl implements IssuesService {
private final DeptFeignClient deptFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final RStatElectricQualityProblemFlowMapper issuesMapper;
private final RMpOnlineMonitorOverproofProblemMapper excessiveMapper;
private final RMpGeneralSurveyOverproofProblemMapper generalSurveyMapper;
private final RMpUserComplaintMapper complaintMapper;
private final RMpOperationMonitorAbnormalMapper abnormalMapper;
private final RMpElectricQualityProblemFlowDetailsMapper flowDetailsMapper;
@Resource
private MinIoUtils minIoUtils;
@Resource
private MinIoProperties minIoProperties;
/**
* 新增电能质量问题流程表信息
*/
private LocalDateTime addIssues(IssuesParam issuesParam,String powerQualityProblemNo){
RStatElectricQualityProblemFlow issues = new RStatElectricQualityProblemFlow();
LocalDateTime local = LocalDateTimeUtil.now();
BeanUtil.copyProperties(issuesParam,issues);
issues.setPowerQualityProblemNo(powerQualityProblemNo);
issues.setDataDate(local);
issues.setStartTime(null);
issues.setUpdateTime(null);
issues.setReportProcess(DicDataEnum.NOT_REPORTED.getCode());
issues.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
issuesMapper.insert(issues);
return local;
}
/**
* 生成问题编号
*/
private String getPowerQualityProblemNo(IssuesParam issuesParam){
StringBuilder powerQualityProblemNo = new StringBuilder();
powerQualityProblemNo.append(PinyinUtil.getFirstLetter(issuesParam.getOrgName(),"").toUpperCase()).append("-");
if (DicDataEnum.ONLINE.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("ZXJC");
}else if (DicDataEnum.GENERAL.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("PCCB");
}else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("YHTS");
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("YWYC");
}
String nowDate = DateUtil.format(new Date(), "yyyyMMdd");
String processDate = DateUtil.format(new Date(), "yyyy-MM-dd");
powerQualityProblemNo.append(nowDate);
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
LocalDateTime local = LocalDateTimeUtil.parse(processDate + "T00:00:00");
LocalDateTime localEnd = LocalDateTimeUtil.parse(processDate + "T23:59:59");
issuesQuery.ge(RStatElectricQualityProblemFlow::getDataDate, local).le(RStatElectricQualityProblemFlow::getDataDate,localEnd);
Integer count = issuesMapper.selectCount(issuesQuery);
powerQualityProblemNo.append(StrUtil.padPre(String.valueOf(count + 1),5, '0'));
return powerQualityProblemNo.toString();
}
/**
* 填报在线监测超标问题
*/
@Override
public void addExcessiveIssues(ExcessiveParam excessiveParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(excessiveParam,issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem();
BeanUtil.copyProperties(excessiveParam,excessive);
excessive.setPowerQualityProblemNo(powerQualityProblemNo);
excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive);
}
/**
* 填报普测超标问题
*/
@Override
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(generalSurveyParam,issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem();
BeanUtil.copyProperties(generalSurveyParam,generalSurvey);
generalSurvey.setOverLimitTarget(ArrayUtil.toString(generalSurveyParam.getSteadyState())+ArrayUtil.toString(generalSurveyParam.getTransientIndicators()));
generalSurvey.setPowerQualityProblemNo(powerQualityProblemNo);
generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey);
}
/**
* 填报用户投诉问题
*/
@Override
public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(complaintParam,issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpUserComplaint complaint = new RMpUserComplaint();
BeanUtil.copyProperties(complaintParam,complaint);
complaint.setAbnormalTarget(ArrayUtil.toString(complaintParam.getSteadyState())+ArrayUtil.toString(complaintParam.getTransientIndicators()));
complaint.setPowerQualityProblemNo(powerQualityProblemNo);
complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint);
}
/**
* 填报运维监控异常问题
*/
@Override
public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(abnormalParam,issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal();
BeanUtil.copyProperties(abnormalParam,abnormal);
abnormal.setAbnormalTarget(ArrayUtil.toString(abnormalParam.getSteadyState())+ArrayUtil.toString(abnormalParam.getTransientIndicators()));
abnormal.setPowerQualityProblemNo(powerQualityProblemNo);
abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal);
}
/**
* 查询问题列表
*/
@Override
public Page<IssuesVO> getIssues(QueryIssuesParam param) {
Page<IssuesVO> page = new Page<>(param.getPageNum(), param.getPageSize());
Date dateOut = DateUtil.parse(param.getDataDate());
Date dateBegin = new Date();
Date dateEnd = new Date();
if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(param.getDataType())){
dateBegin = DateUtil.beginOfYear(dateOut);
dateEnd = DateUtil.endOfYear(dateOut);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(param.getDataType())){
dateBegin = DateUtil.beginOfQuarter(dateOut);
dateEnd = DateUtil.endOfQuarter(dateOut);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(param.getDataType())){
dateBegin = DateUtil.beginOfMonth(dateOut);
dateEnd = DateUtil.endOfMonth(dateOut);
}
List<IssuesVO> out = issuesMapper.getIssues(param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
if (!CollectionUtils.isEmpty(out)) {
out.forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
/*问题来源*/
List<DictData> problemSourcesDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PROBLEM_SOURCES.getCode()).getData();
problemSourcesDictData.forEach(dict -> out.stream().filter(data -> dict.getCode().equals(data.getProblemSources())).forEach(data -> data.setProblemSources(dict.getName())));
page.setTotal(out.size());
int pages = (int)Math.ceil(out.size()*1.0/param.getPageSize());
page.setPages(pages);
List<List<IssuesVO>> partition = Lists.partition(out, param.getPageSize());
List<IssuesVO> issuesVOS = partition.get(param.getPageNum() - 1);
page.setRecords(issuesVOS);
}
return page;
}
/**
* 问题基本信息查询
*/
private RStatElectricQualityProblemFlow issuesSelectOne(String powerQualityProblemNo){
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
return issuesMapper.selectOne(issuesQuery);
}
/**
* 填报流程详情查询
*/
private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo){
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> flowQuery = new LambdaQueryWrapper<>();
flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
return flowDetailsMapper.selectOne(flowQuery);
}
/**
* 处理填报信息
*/
private FlowDetailVO processFlowDetail(RMpElectricQualityProblemFlowDetails details){
FlowDetailVO process = new FlowDetailVO();
BeanUtil.copyProperties(details,process);
if (!StrUtil.isEmpty(details.getReportProcessContentYyfx())){
process.setReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentYyfx(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentYyfx());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentYyfx())){
process.setUserReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentYyfx(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentYyfx());
}
if (!StrUtil.isEmpty(details.getReportProcessContentJhzg())){
process.setReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentJhzg(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentJhzg());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentJhzg())){
process.setUserReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentJhzg(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentJhzg());
}
if (!StrUtil.isEmpty(details.getReportProcessContentSjcq())){
process.setReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentSjcq(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentSjcq());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentSjcq())){
process.setUserReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentSjcq(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentSjcq());
}
return process;
}
/**
* 查询在线监测超标问题详情
*/
@Override
public ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo) {
ExcessiveDetailVO detail = new ExcessiveDetailVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpOnlineMonitorOverproofProblem> excessiveQuery = new LambdaQueryWrapper<>();
excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery);
BeanUtil.copyProperties(excessiveOut,detail);
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
return detail;
}
/**
* 查询用户投诉问题详情
*/
@Override
public GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo) {
GeneralSurveyVO detail = new GeneralSurveyVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpGeneralSurveyOverproofProblem> generalSurveyQuery = new LambdaQueryWrapper<>();
generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery);
BeanUtil.copyProperties(generalSurveyOut,detail);
detail.setSteadyIndicator(steadyIndicator(generalSurveyOut.getOverLimitTarget()));
detail.setTransientIndicators(transientIndicators(generalSurveyOut.getOverLimitTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
return detail;
}
/**
* 查询用户投诉问题详情
*/
@Override
public ComplaintVO getComplaintDetail(String powerQualityProblemNo) {
ComplaintVO detail = new ComplaintVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpUserComplaint> complaintQuery = new LambdaQueryWrapper<>();
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
BeanUtil.copyProperties(complaintOut,detail);
detail.setSteadyIndicator(steadyIndicator(complaintOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(complaintOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
if (!StrUtil.isEmpty(complaintOut.getPowerGridAffectDev())){
detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getPowerGridAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
if (!StrUtil.isEmpty(complaintOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getUserAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
return detail;
}
/**
* 查询运维异常问题详情
*/
@Override
public AbnormalVO getAbnormalDetail(String powerQualityProblemNo) {
AbnormalVO detail = new AbnormalVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpOperationMonitorAbnormal> abnormalQuery = new LambdaQueryWrapper<>();
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
BeanUtil.copyProperties(abnormalOut,detail);
detail.setSteadyIndicator(steadyIndicator(abnormalOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(abnormalOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
if (!StrUtil.isEmpty(abnormalOut.getPowerGridAffectDev())){
detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getPowerGridAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
if (!StrUtil.isEmpty(abnormalOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getUserAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
return detail;
}
/**
* 稳态指标处理
*/
private String[] steadyIndicator(String target){
String[] process = StrUtil.removePrefix(target.split("]\\[")[0],"\\[").split(",");
StrUtil.trim(process);
return process;
}
/**
* 暂态指标处理
*/
private String[] transientIndicators(String target){
String[] process = StrUtil.removeSuffix(target.split("]\\[")[1],"]").split(",");
StrUtil.trim(process);
return process;
}
/**
* 原因分析
*/
@Override
public void reasonAnalysis(ProcessParam processParam) {
LocalDateTime local = LocalDateTimeUtil.now();
RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails();
BeanUtil.copyProperties(processParam,details);
details.setDataDateYyfx(local);
details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx()));
details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx()));
flowDetailsMapper.insert(details);
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
issuesMapper.update(issuesOut,issuesQuery);
if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpUserComplaint> complaintQuery = new LambdaQueryWrapper<>();
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
complaintOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
complaintOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
complaintMapper.update(complaintOut,complaintQuery);
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOperationMonitorAbnormal> abnormalQuery = new LambdaQueryWrapper<>();
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
abnormalOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
abnormalOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
abnormalMapper.update(abnormalOut,abnormalQuery);
}
}
/**
* 计划整改措施、实际采取措施、成效分析
*/
@Override
public void process(ProcessParam processParam, String code) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
if (DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> query = new LambdaQueryWrapper<>();
query.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(query);
LocalDateTime local = LocalDateTimeUtil.now();
if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
details.setDataDateJhzg(local);
details.setReportProcessContentJhzg(ArrayUtil.toString(processParam.getReportProcessContentJhzg()));
details.setUserReportProcessContentJhzg(ArrayUtil.toString(processParam.getUserReportProcessContentJhzg()));
details.setFileNameJhzg(processParam.getFileNameJhzg());
details.setFilePathJhzg(processParam.getFilePathJhzg());
}else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){
details.setDataDateSjcq(local);
details.setReportProcessContentSjcq(ArrayUtil.toString(processParam.getReportProcessContentSjcq()));
details.setUserReportProcessContentSjcq(ArrayUtil.toString(processParam.getUserReportProcessContentSjcq()));
details.setFileNameSjcq(processParam.getFileNameSjcq());
details.setFilePathSjcq(processParam.getFilePathSjcq());
}else if (DicDataEnum.INSIGHTS.getCode().equals(code)){
details.setDataDateZlxg(local);
details.setDescriptionZlxg(processParam.getDescriptionZlxg());
details.setFileNameZlxg(processParam.getFileNameZlxg());
details.setFilePathZlxg(processParam.getFilePathZlxg());
}
flowDetailsMapper.update(details, query);
issuesOut.setReportProcess(code);
issuesOut.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
issuesMapper.update(issuesOut,issuesQuery);
}else {
throw new BusinessException(ProcessResponseEnum.PROCESS_ERROR);
}
}
/**
* 问题归档
*/
@Override
public void archive(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
if (DicDataEnum.INSIGHTS.getCode().equals(issuesOut.getReportProcess())
&& DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
issuesOut.setReportProcess(DicDataEnum.ARCHIVED.getCode());
issuesMapper.update(issuesOut,query);
}else {
throw new BusinessException(ProcessResponseEnum.ARCHIVE_ERROR);
}
}
/**
* 上传文件
*/
@Override
public MinIoUploadResDTO uploadFile(MultipartFile issuesFile) {
try {
return minIoUtils.upload(issuesFile, minIoProperties.getBucket(), "electricityQuality/");
} catch (Exception e) {
throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
/**
* 下载文件
*/
@Override
public String downloadFile(String powerQualityProblemNo,String reportProcess) {
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(issuesQuery);
String filePath = null;
if (DicDataEnum.CAUSE_ANALYSIS.getName().equals(reportProcess)){
filePath = details.getFilePathYyfx();
}else if (DicDataEnum.PLAN_MEASURES.getName().equals(reportProcess)){
filePath = details.getFilePathJhzg();
}else if (DicDataEnum.ACTUAL_MEASURES.getName().equals(reportProcess)){
filePath = details.getFilePathSjcq();
}else if (DicDataEnum.INSIGHTS.getName().equals(reportProcess)){
filePath = details.getFilePathZlxg();
}
return filePath;
}
/**
* 删除问题
*/
@Override
public void deleteIssues(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
if (DicDataEnum.ONLINE.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOnlineMonitorOverproofProblem> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
excessiveMapper.delete(issuesQuery);
}else if (DicDataEnum.GENERAL.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpGeneralSurveyOverproofProblem> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
generalSurveyMapper.delete(issuesQuery);
}else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpUserComplaint> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
complaintMapper.delete(issuesQuery);
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOperationMonitorAbnormal> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
abnormalMapper.delete(issuesQuery);
}
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
flowDetailsMapper.delete(issuesQuery);
issuesMapper.delete(query);
}
}

View File

@@ -0,0 +1,345 @@
package com.njcn.process.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils;
import com.njcn.process.constant.Param;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.LoadTypeUserManageMapper;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RLoadTypeUserManage;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import com.njcn.process.service.LoadTypeUserManageService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService {
private final LoadTypeUserManageMapper loadTypeUserManageMapper;
private final DicDataFeignClient dicDataFeignClient;
private final DistributionMonitorClient distributionMonitorClient;
private final DeptFeignClient deptFeignClient;
@Resource
private MinIoUtils minIoUtils;
@Resource
private MinIoProperties minIoProperties;
/**
* 干扰源用户分页查询
* @param loadTypeUserSearchParam
* @return
*/
@Override
public Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam){
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam);
//部门处理根据部门code取名称
List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords();
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
List<RLoadTypeUserManageVO> resultList = list.stream().map(item -> {
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(item, rLoadTypeUserManageVO);
rLoadTypeUserManageVO.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位名称
return rLoadTypeUserManageVO;
}).collect(Collectors.toList());
//返回新的数据组
return loadTypeUserPage.setRecords(resultList);
}
/**
* 根据id查询干扰源用户
* @param id
* @return
*/
@Override
public RLoadTypeUserManageVO getLoadTypeUserById(String id) {
RLoadTypeUserManage rLoadTypeUserManage = loadTypeUserManageMapper.selectById(id);
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(rLoadTypeUserManage, rLoadTypeUserManageVO);
//文件
if (rLoadTypeUserManageVO.getIFilePath() != null){
String iFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getIFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(iFile);
}
if (rLoadTypeUserManageVO.getAFilePath() != null){
String aFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getAFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(aFile);
}
return rLoadTypeUserManageVO;
}
/**
* 新增干扰源用户
* @param loadTypeUserParam
* @return
*/
@Override
public boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam) {
//参数转换
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserParam, rLoadTypeUserManage);
//塞入建档时间
Date date = DateUtil.parse(loadTypeUserParam.getRecordTime(), "yyyy-MM-dd HH:mm:ss");
rLoadTypeUserManage.setRecordTime(date);
loadTypeUserManageMapper.insert(rLoadTypeUserManage);
return true;
}
/**
* 上传干扰源用户入网报告
* @param loadTypeUserIUploadParam
* @return
*/
@Override
public boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserIUploadParam, rLoadTypeUserManage);
//文件上传到Minio服务器存入文件名
if(loadTypeUserIUploadParam.getFile() != null){
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserIUploadParam.getFile());
rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName());
rLoadTypeUserManage.setIUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserIUploadParam.getStatus())){
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setIStatus(dictData.getId());
rLoadTypeUserManage.setIIsFileUpload(1);
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 关联营销用户
* @param
* @return
*/
@Override
public boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
//填入数据修改
BeanUtils.copyProperties(loadTypeUserAssociateParam, rLoadTypeUserManage);
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 查询所有干扰源用户(与营销系统关联)
* @param loadTypeUserSearchParam
* @return
*/
@Override
public Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page,loadTypeUserSearchParam);
//部门处理根据部门code取名称
List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords();
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
List<RLoadTypeUserManageVO> resultList = list.stream().map(item -> {
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(item, rLoadTypeUserManageVO);
rLoadTypeUserManageVO.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位名称
return rLoadTypeUserManageVO;
}).collect(Collectors.toList());
//返回新的数据组
return loadTypeUserPage.setRecords(resultList);
}
/**
* 上传文件到Minio
*
* @param file 文件
* @return 成功标记
*/
private MinIoUploadResDTO fileToMinio(MultipartFile file) {
try {
//把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "loadTypeUser/");
return upload;
} catch (Exception e) {
throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
/**
* 上传干扰源用户入网报告
* @param loadTypeUserAUploadParam
* @return
*/
@Override
public boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserAUploadParam, rLoadTypeUserManage);
//文件上传到Minio服务器存入文件名
if(loadTypeUserAUploadParam.getFile() != null){
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserAUploadParam.getFile());
rLoadTypeUserManage.setAFilePath(minIoUploadResDTO.getMinFileName());
rLoadTypeUserManage.setAUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserAUploadParam.getStatus())){
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setAStatus(dictData.getId());
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 导出未建档干扰源用户管理信息
* @param list
* @return
*/
@Override
public List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list) {
//数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
//2、取干扰源类型
List<DictData> loadTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INTERFERENCE_SOURCE.getCode()).getData();
Map<String, DictData> loadTypeMap = loadTypeList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
//3、取入网报告状态
List<DictData> iStatusList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.ON_NETWORK_STATUS.getCode()).getData();
Map<String, DictData> iStatusMap = iStatusList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
List<LoadTypeUserExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeUserExcel loadTypeUserExcel = new LoadTypeUserExcel();
if (item.getUserName() != null){
loadTypeUserExcel.setUserName(item.getUserName());
}
if (item.getRecordTime() != null){
loadTypeUserExcel.setRecordTime(item.getRecordTime());
}
if (item.getAIsFileUpload() != null){
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
}
if (item.getOrgNo() != null){
loadTypeUserExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位
}
if (item.getLoadType() != null){
loadTypeUserExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); //入网报告状态
}
if (item.getIStatus() != null){
loadTypeUserExcel.setIStatusName(iStatusMap.get(item.getIStatus()).getName()); //入网报告状态
}
if (item.getAIsFileUpload() != null){
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
}
return loadTypeUserExcel;
}).collect(Collectors.toList());
return resultList;
}
/**
* 导出干扰源用户常态化管理信息
* @param list
* @return
*/
@Override
public List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list) {
//数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
//2、取干扰源类型
List<DictData> loadTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INTERFERENCE_SOURCE.getCode()).getData();
Map<String, DictData> loadTypeMap = loadTypeList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
//3、取实测报告状态
List<DictData> aStatusList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.ON_NETWORK_STATUS.getCode()).getData();
Map<String, DictData> aStatusMap = aStatusList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
List<LoadTypeRelationExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeRelationExcel loadTypeRelationExcel = new LoadTypeRelationExcel();
if (item.getOrgNo() != null){
loadTypeRelationExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName());
}
if (item.getLoadType() != null){
loadTypeRelationExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName());
}
if (item.getUserName() != null){
loadTypeRelationExcel.setUserName(item.getUserName());
}
if (item.getRelationUserName() != null){
loadTypeRelationExcel.setRelationUserName(item.getRelationUserName());
}
if (item.getAStatus() != null){
loadTypeRelationExcel.setAStatusName(aStatusMap.get(item.getIStatus()).getName());
}
return loadTypeRelationExcel;
}).collect(Collectors.toList());
return resultList;
}
}

View File

@@ -0,0 +1,51 @@
package com.njcn.process.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.process.mapper.RGeneralSurveyPlanDetailMapper;
import com.njcn.process.pojo.param.RGeneralSurveyPlandetailQueryParm;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import com.njcn.process.service.RGeneralSurveyPlanDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RGeneralSurveyPlanDetailServiceImpl extends MppServiceImpl<RGeneralSurveyPlanDetailMapper, RGeneralSurveyPlanDetail> implements RGeneralSurveyPlanDetailService{
private @Autowired
RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
/**
* @param rGeneralSurveyPlandetailQueryParm
* @Description: 根据planNO查询普测计划详情
* @Param: [rGeneralSurveyPlandetailQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO>
* @Author: clam
* @Date: 2022/11/15
*/
@Override
public IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> queryPlandetail(RGeneralSurveyPlandetailQueryParm rGeneralSurveyPlandetailQueryParm) {
IPage<RGeneralSurveyPlanDetail> page = new Page<> (rGeneralSurveyPlandetailQueryParm.getCurrentPage(), rGeneralSurveyPlandetailQueryParm.getPageSize());
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.eq (RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlandetailQueryParm.getPlanNo ());
IPage<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetailIPage = rGeneralSurveyPlanDetailMapper.selectPage (page, lambdaQueryWrapper);
return rGeneralSurveyPlanDetailIPage.convert (temp-> BeanUtil.copyProperties (temp, RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO.class));
}
}

View File

@@ -0,0 +1,345 @@
package com.njcn.process.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.RGeneralSurveyPlanDetailMapper;
import com.njcn.process.mapper.RGeneralSurveyPlanPOMapper;
import com.njcn.process.pojo.param.RGeneralSurveyPlanAddParm;
import com.njcn.process.pojo.param.RGeneralSurveyPlanQueryParm;
import com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm;
import com.njcn.process.pojo.param.SurveyResultUploadParam;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import com.njcn.process.service.RGeneralSurveyPlanDetailService;
import com.njcn.process.service.RGeneralSurveyPlanPOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl<RGeneralSurveyPlanPOMapper, RGeneralSurveyPlanPO> implements RGeneralSurveyPlanPOService{
private @Autowired
RGeneralSurveyPlanDetailService rGeneralSurveyPlanDetailService;
private @Autowired
RGeneralSurveyPlanPOMapper rGeneralSurveyPlanPOMapper;
private @Autowired
RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
@Resource
private MinIoUtils minIoUtils;
private @Autowired
DeptFeignClient deptFeignClient;
@Resource
private MinIoProperties minIoProperties;
/**
* @param rGeneralSurveyPlanAddParm
* @Description: addPlan
* @Param: [rGeneralSurveyPlanAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2022/11/14
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addPlan(RGeneralSurveyPlanAddParm rGeneralSurveyPlanAddParm) {
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO ();
BeanUtils.copyProperties (rGeneralSurveyPlanAddParm,rGeneralSurveyPlanPO);
/*todo 后期与工作流绑定*/
rGeneralSurveyPlanPO.setStatus (0);
boolean b = this.saveOrUpdateByMultiId (rGeneralSurveyPlanPO);
List<RGeneralSurveyPlanAddParm.RGeneralSurveyPlanDetailAddParm> rGeneralSurveyPlanDetailAddParm = rGeneralSurveyPlanAddParm.getRGeneralSurveyPlanDetailAddParm ( );
QueryWrapper<RGeneralSurveyPlanDetail> queryWrapper = new QueryWrapper ();
queryWrapper.lambda ().eq (RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlanAddParm.getPlanNo ());
rGeneralSurveyPlanDetailService.remove (queryWrapper);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetailList = new ArrayList<> ();
rGeneralSurveyPlanDetailAddParm.forEach (temp->{
RGeneralSurveyPlanDetail rGeneralSurveyPlanDetail = new RGeneralSurveyPlanDetail();
BeanUtils.copyProperties (temp, rGeneralSurveyPlanDetail);
/*目前时间与计划开始时间,结束时间一致*/
rGeneralSurveyPlanDetail.setGeneralSurveyStartTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
rGeneralSurveyPlanDetail.setGeneralSurveyTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
rGeneralSurveyPlanDetail.setGeneralSurveyEndTime (rGeneralSurveyPlanAddParm.getPlanEndTime ());
rGeneralSurveyPlanDetail.setPlanNo (rGeneralSurveyPlanAddParm.getPlanNo ());
rGeneralSurveyPlanDetail.setGeneralSurveyLeader(rGeneralSurveyPlanAddParm.getLeader ());
rGeneralSurveyPlanDetailList.add (rGeneralSurveyPlanDetail);
});
boolean b1 = rGeneralSurveyPlanDetailService.saveOrUpdateBatchByMultiId (rGeneralSurveyPlanDetailList, 5);
return b&&b1;
}
/**
* @param rGeneralSurveyPlanQueryParm
* @Description: query
* @Param: [rGeneralSurveyPlanQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO>
* @Author: clam
* @Date: 2022/11/15
*/
@Override
public IPage<RGeneralSurveyPlanVO> query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm,List<String> statusList ) {
IPage<RGeneralSurveyPlanPO> page = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
IPage<RGeneralSurveyPlanVO> returnpage = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
LambdaQueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new LambdaQueryWrapper<> ();
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getOrgNo ())) {
List<String> data = deptFeignClient.getDepSonIdtByDeptId (rGeneralSurveyPlanQueryParm.getOrgNo ()).getData ( );
queryWrapper.in (RGeneralSurveyPlanPO::getOrgNo, data);
}
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm. getStatus ())) {
queryWrapper.eq (RGeneralSurveyPlanPO::getStatus, rGeneralSurveyPlanQueryParm.getStatus ());
}
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getIsFileUpload ())) {
queryWrapper.eq (RGeneralSurveyPlanPO::getIsFileUpload, rGeneralSurveyPlanQueryParm.getIsFileUpload ());
}
if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanStartTime ())) {
queryWrapper.ge (RGeneralSurveyPlanPO::getPlanStartTime, rGeneralSurveyPlanQueryParm.getPlanStartTime ());
}
if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanEndTime ())) {
queryWrapper.le (RGeneralSurveyPlanPO::getPlanEndTime, rGeneralSurveyPlanQueryParm.getPlanEndTime ());
}
queryWrapper.in (RGeneralSurveyPlanPO::getStatus, statusList);
queryWrapper.orderByAsc (RGeneralSurveyPlanPO::getStatus).orderByDesc (RGeneralSurveyPlanPO::getPlanCreateTime);
List<RGeneralSurveyPlanPO> rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectPage (page,queryWrapper).getRecords ();
if(CollectionUtils.isEmpty (rGeneralSurveyPlanPOS)){
return returnpage;
}
//部门处理根据部门code取名称
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, String> pvTerminalTreeVOMap = dept.stream().
collect(Collectors.
toMap(PvTerminalTreeVO::getId,
PvTerminalTreeVO::getName));
List<String> collect = rGeneralSurveyPlanPOS.stream ( ).map (RGeneralSurveyPlanPO::getPlanNo).collect (Collectors.toList ( ));
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, collect);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
List<RGeneralSurveyPlanVO> rGeneralSurveyPlanVOList = new ArrayList<> ();
rGeneralSurveyPlanPOS.forEach (temp ->{
RGeneralSurveyPlanVO rGeneralSurveyPlanVO = new RGeneralSurveyPlanVO();
BeanUtils.copyProperties (temp, rGeneralSurveyPlanVO);
long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
long Subcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
rGeneralSurveyPlanVO.setBusCount (Busbarcount);
rGeneralSurveyPlanVO.setSubCount (Subcount);
List<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> collect1 = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (surveyPlanDetail -> {
RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO rGeneralSurveyPlanDetailVO = new RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO ( );
BeanUtils.copyProperties (surveyPlanDetail, rGeneralSurveyPlanDetailVO);
return rGeneralSurveyPlanDetailVO;
}).collect (Collectors.toList ( ));
rGeneralSurveyPlanVO.setOrgName(pvTerminalTreeVOMap.get(temp.getOrgNo())); //单位名称
rGeneralSurveyPlanVO.setRGeneralSurveyPlanDetailVOList (collect1);
rGeneralSurveyPlanVOList.add (rGeneralSurveyPlanVO);
});
returnpage.setRecords (rGeneralSurveyPlanVOList);
return returnpage;
}
/**
* @param surveyResultUploadParam
* @Description: surveyResultUpload
* @Param: [surveyResultUploadParam]
* @return: boolean
* @Author: clam
* @Date: 2022/11/18
*/
@Override
public boolean surveyResultUpload(SurveyResultUploadParam surveyResultUploadParam) {
boolean result = true;
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
rGeneralSurveyPlanPO.setPlanNo (surveyResultUploadParam.getPlanId ());
rGeneralSurveyPlanPO = this.selectByMultiId (rGeneralSurveyPlanPO);
String filePath =rGeneralSurveyPlanPO.getFilePath ();
Integer fileCount = rGeneralSurveyPlanPO.getFileCount ( );
fileCount = Optional.ofNullable (fileCount).orElse (0);
for (int i = 0; i < surveyResultUploadParam.getFile ( ).length; i++) {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(surveyResultUploadParam.getFile ( )[i]);
filePath=filePath+minIoUploadResDTO.getMinFileName ()+";";
fileCount++;
}
rGeneralSurveyPlanPO.setStatus (4);
rGeneralSurveyPlanPO.setFileCount (fileCount);
rGeneralSurveyPlanPO.setFilePath (filePath);
rGeneralSurveyPlanPO.setIsFileUpload (1);
rGeneralSurveyPlanPO.setUploadTime (new Date ());
this.saveOrUpdateByMultiId (rGeneralSurveyPlanPO);
return result;
}
/**
* @param planNo
* @Description: surveyResultDownload
* @Param: [surveyResultUploadParam]
* @return: java.util.List<java.lang.String>
* @Author: clam
* @Date: 2022/11/18
*/
@Override
public List<MinIoUploadResDTO> surveyResultDownload(String planNo) {
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
rGeneralSurveyPlanPO.setPlanNo (planNo);
rGeneralSurveyPlanPO = this.selectByMultiId (rGeneralSurveyPlanPO);
String filePath = rGeneralSurveyPlanPO.getFilePath ( );
if(StringUtils.isEmpty (filePath)){
throw new BusinessException(ProcessResponseEnum.DOWNLOAD_FILE_ERROR);
}
String[] split = filePath.substring (0, filePath.length ( ) - 1).split (";");
List<MinIoUploadResDTO> collect = Stream.of (split).map (temp -> {
MinIoUploadResDTO dto = new MinIoUploadResDTO("",minIoUtils.getObjectUrl (minIoProperties.getBucket ( ), temp, 7 * 24 * 60 * 60));
return dto ;
}).collect (Collectors.toList ( ));
return collect;
}
/**
* @Description: exportSurveyPlan
* @Param: []
* @return: java.util.List<com.njcn.process.pojo.vo.SurveyPlanExcel>
* @Author: clam
* @Date: 2022/11/21
*/
@Override
public List<SurveyPlanExcel> exportSurveyPlan(List<String> planIdList) {
List<SurveyPlanExcel> surveyPlanExcels = new ArrayList<> ();
LambdaQueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in (RGeneralSurveyPlanPO::getPlanNo,planIdList);
List<RGeneralSurveyPlanPO> rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectList (queryWrapper);
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, planIdList);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
//部门处理根据部门code取名称
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, String> pvTerminalTreeVOMap = dept.stream().
collect(Collectors.
toMap(PvTerminalTreeVO::getId,
PvTerminalTreeVO::getName));
rGeneralSurveyPlanPOS.forEach (temp->{
SurveyPlanExcel surveyPlanExcel = new SurveyPlanExcel();
BeanUtils.copyProperties (temp, surveyPlanExcel);
long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
long Subcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
surveyPlanExcel.setBusCount (Busbarcount);
surveyPlanExcel.setSubCount (Subcount);
surveyPlanExcel.setOrgNo (pvTerminalTreeVOMap.get (surveyPlanExcel.getOrgNo ()));
surveyPlanExcels.add (surveyPlanExcel);
});
return surveyPlanExcels;
}
/**
* @param questionQueryParm
* @Description: querySurveyPlanOnQuestion
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO>
* @Author: clam
* @Date: 2022/11/30
*/
@Override
public List<RGeneralSurveyPlanDetailOnQuestionVO> querySurveyPlanOnQuestion(SurveyPlanQuestionQueryParm questionQueryParm) {
List<RGeneralSurveyPlanDetailOnQuestionVO> rGeneralSurveyPlanDetailOnQuestionVOS = new ArrayList<> ();
rGeneralSurveyPlanDetailOnQuestionVOS =rGeneralSurveyPlanDetailMapper.querySurveyPlanOnQuestion(questionQueryParm);
return rGeneralSurveyPlanDetailOnQuestionVOS;
}
/**
* @param questionQueryParm
* @Description: 更具questionQueryParm查计划名称
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm>
* @Author: clam
* @Date: 2022/12/1
*/
@Override
public List<RGeneralSurveyPlanPO> querySurveyPlanName(SurveyPlanQuestionQueryParm questionQueryParm) {
List<String> data = deptFeignClient.getDepSonIdtByDeptId (questionQueryParm.getOrgNo ()).getData ( );
QueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.select ("plan_name").
in ("org_no", data).
eq ("DATE_FORMAT(upload_time, '%Y-%m')", new SimpleDateFormat ("yyyy-MM").
format (questionQueryParm.getPlanStartTime ()));
List<RGeneralSurveyPlanPO> list = this.list (queryWrapper);
return list;
}
/**
* 上传文件到Minio
*
* @param file 文件
* @return 成功标记
*/
private MinIoUploadResDTO fileToMinio(MultipartFile file) {
try {
//把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "surveyresult/");
return upload;
} catch (Exception e) {
throw new BusinessException (ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
}

View File

@@ -30,7 +30,7 @@ spring:
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
- data-Id: process-config.yaml
refresh: true
main:
allow-bean-definition-overriding: true