Browse Source

Revert "Revert "运行分析接口""

This reverts commit 38a3cea57ed2bb8604d2eff910e5c48e7a17c769.
宁檬 1 year ago
parent
commit
a5d9acaddb

+ 0 - 194
web/backmanagerconfig/backmanagerconfig.iml

@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4">
-  <component name="ExternalSystem" externalSystem="Maven" />
-  <component name="FacetManager">
-    <facet type="Spring" name="Spring">
-      <configuration />
-    </facet>
-    <facet type="web" name="Web">
-      <configuration>
-        <webroots />
-        <sourceRoots>
-          <root url="file://$MODULE_DIR$/src/main/java" />
-          <root url="file://$MODULE_DIR$/src/main/resources" />
-        </sourceRoots>
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.29" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.29" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.29" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.29" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.18.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.11" level="project" />
-    <orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.29" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.13.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" />
-    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
-    <orderEntry type="module" module-name="common" />
-    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.10" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.29" level="project" />
-    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.45" level="project" />
-    <orderEntry type="library" name="Maven: com.oracle:ojdbc6:11.2.0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
-    <orderEntry type="library" name="Maven: cglib:cglib:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.9.13" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.11.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.1.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-nacos-discovery:2.1.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.1.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.1.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.1.1" level="project" />
-    <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.findbugs:jsr305:3.0.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.10" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.12" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
-    <orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
-    <orderEntry type="library" name="Maven: org.postgresql:postgresql:42.2.5" level="project" />
-    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.1.1" level="project" />
-  </component>
-</module>

+ 203 - 180
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/bmk/BenchmarkingController.java

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("//benchmarking")
-@Api(value = "对标管理",tags =  "对标管理")
+@Api(value = "对标管理", tags = "对标管理")
 public class BenchmarkingController {
 
     @Resource
@@ -35,7 +35,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/companys")
     @ApiOperation(value = "公司列表", notes = "公司列表")
-    public R companys ()  {
+    public R companys() {
         List<ProBasicOrganizeTree> resultList = benchmarkingService.companys();
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -43,10 +43,11 @@ public class BenchmarkingController {
             return R.error(ResultMsg.error());
         }
     }
+
     @GetMapping(value = "/companysByRg")
     @ApiOperation(value = "根据区域查询公司列表", notes = "根据区域查询公司列表")
-    public R companysByRg(@RequestParam(value = "regionid", required = true) String regionid)  {
-        List<ProBasicOrganizeTree> resultList = benchmarkingService.companys().stream().filter(i->i.getParentCode().equals(regionid)).collect(Collectors.toList());
+    public R companysByRg(@RequestParam(value = "regionid", required = true) String regionid) {
+        List<ProBasicOrganizeTree> resultList = benchmarkingService.companys().stream().filter(i -> i.getParentCode().equals(regionid)).collect(Collectors.toList());
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -59,7 +60,7 @@ public class BenchmarkingController {
     public R wpByCplist(@RequestParam(value = "companyids", required = true) String companyids,
                         @RequestParam(value = "type", required = false) String type) {
 
-        List<ProBasicOrganizeTree> resultList = benchmarkingService.wpByCplist(companyids,type);
+        List<ProBasicOrganizeTree> resultList = benchmarkingService.wpByCplist(companyids, type);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -70,9 +71,9 @@ public class BenchmarkingController {
     @GetMapping(value = "/alllist")
     @ApiOperation(value = "场站之后列表", notes = "场站之后列表")
     public R alllist(@RequestParam(value = "ids", required = true) String ids,
-                        @RequestParam(value = "type", required = false) String type) {
+                     @RequestParam(value = "type", required = false) String type) {
 
-        List<ProBasicOrganizeTree> resultList = benchmarkingService.allList(ids,type);
+        List<ProBasicOrganizeTree> resultList = benchmarkingService.allList(ids, type);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -94,7 +95,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/pjByWplist")
     @ApiOperation(value = "项目列表", notes = "项目列表")
-    public R pjByWplist(@RequestParam(value = "wpids", required = true) String wpids)  {
+    public R pjByWplist(@RequestParam(value = "wpids", required = true) String wpids) {
 
         List<ProBasicOrganizeTree> resultList = benchmarkingService.pjByWplist(wpids);
         if (StringUtils.isNotNull(resultList)) {
@@ -106,7 +107,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/lnByPjlist")
     @ApiOperation(value = "线路列表", notes = "线路列表")
-    public R lnByPjlist(@RequestParam(value = "pjids", required = true) String pjids)  {
+    public R lnByPjlist(@RequestParam(value = "pjids", required = true) String pjids) {
 
         List<ProBasicOrganizeTree> resultList = benchmarkingService.lnByPjlist(pjids);
         if (StringUtils.isNotNull(resultList)) {
@@ -118,7 +119,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/wtByLnlist")
     @ApiOperation(value = "风机列表", notes = "风机列表")
-    public R wtByLnlist(@RequestParam(value = "lnids", required = true) String lnids)  {
+    public R wtByLnlist(@RequestParam(value = "lnids", required = true) String lnids) {
 
         List<ProBasicOrganizeTree> resultList = benchmarkingService.wtByLnlist(lnids);
         if (StringUtils.isNotNull(resultList)) {
@@ -130,7 +131,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/wtByWplist")
     @ApiOperation(value = "风机列表", notes = "风机列表")
-    public R wtByWplist(@RequestParam(value = "wpids", required = true) String wpids)  {
+    public R wtByWplist(@RequestParam(value = "wpids", required = true) String wpids) {
 
         List<ProBasicOrganizeEquipment> resultList = benchmarkingService.wtByWplist(wpids);
         if (StringUtils.isNotNull(resultList)) {
@@ -143,9 +144,9 @@ public class BenchmarkingController {
     @GetMapping(value = "/treeByWpid")
     @ApiOperation(value = "场站树形", notes = "场站树形")
     public R treeByWpid(@RequestParam(value = "wpId", required = true) String wpId,
-                        @RequestParam(value = "treeType", required = true) String treeType)  {
+                        @RequestParam(value = "treeType", required = true) String treeType) {
 
-        ProBasicOrganizeTree resultList = benchmarkingService.treeByWpid(wpId,treeType);
+        ProBasicOrganizeTree resultList = benchmarkingService.treeByWpid(wpId, treeType);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -163,9 +164,9 @@ public class BenchmarkingController {
                          @RequestParam(value = "wpids", required = true) String wpids,
                          @RequestParam(value = "projectids", required = true) String projectids,
                          @RequestParam(value = "lineids", required = true) String lineids,
-                         @RequestParam(value = "target",required = false) String target,
-                         @RequestParam(value = "sort",required = false) String sort){
-        List<FjjxbVo> resultList = benchmarkingService.performance(companyid,getype,sttype,beginDate,endDate,wpids,projectids,lineids,target,sort);
+                         @RequestParam(value = "target", required = false) String target,
+                         @RequestParam(value = "sort", required = false) String sort) {
+        List<FjjxbVo> resultList = benchmarkingService.performance(companyid, getype, sttype, beginDate, endDate, wpids, projectids, lineids, target, sort);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -183,9 +184,9 @@ public class BenchmarkingController {
                            @RequestParam(value = "wpids", required = true) String wpids,
                            @RequestParam(value = "projectids", required = true) String projectids,
                            @RequestParam(value = "lineids", required = true) String lineids,
-                           @RequestParam(value = "target",required = true) String target,
-                           @RequestParam(value = "sort",required = true) String sort){
-        List<FjjxbmxVo> resultList = benchmarkingService.performanceMX(companyid,getype,sttype,beginDate,endDate,wpids,projectids,lineids,target,sort);
+                           @RequestParam(value = "target", required = true) String target,
+                           @RequestParam(value = "sort", required = true) String sort) {
+        List<FjjxbmxVo> resultList = benchmarkingService.performanceMX(companyid, getype, sttype, beginDate, endDate, wpids, projectids, lineids, target, sort);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -197,17 +198,17 @@ public class BenchmarkingController {
     @GetMapping("/wxssl")
     @ResponseBody
     @ApiOperation(value = "五项损失率", notes = "五项损失率")
-    public R wxssl(@RequestParam(value = "companys",required = true) String companys,
-                   @RequestParam(value = "type",required = true) String type,
-                    @RequestParam(value = "wpids",required = true) String wpids,
-                   @RequestParam(value = "projectids",required = true) String projectids,
-                   @RequestParam(value = "lineids",required = true) String lineids,
-                   @RequestParam(value = "beginDate",required = true) String beginDate,
-                   @RequestParam(value = "endDate",required = true) String endDate,
-                   @RequestParam(value = "target",required = true) String target,
-                   @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.wxssl(companys,type,wpids,projectids,lineids,beginDate,endDate,target,sort);
+    public R wxssl(@RequestParam(value = "companys", required = true) String companys,
+                   @RequestParam(value = "type", required = true) String type,
+                   @RequestParam(value = "wpids", required = true) String wpids,
+                   @RequestParam(value = "projectids", required = true) String projectids,
+                   @RequestParam(value = "lineids", required = true) String lineids,
+                   @RequestParam(value = "beginDate", required = true) String beginDate,
+                   @RequestParam(value = "endDate", required = true) String endDate,
+                   @RequestParam(value = "target", required = true) String target,
+                   @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.wxssl(companys, type, wpids, projectids, lineids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -219,14 +220,14 @@ public class BenchmarkingController {
     @GetMapping("/gsdb")
     @ResponseBody
     @ApiOperation(value = "公司对标", notes = "公司对标")
-    public R gsdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = false) String target,
-                  @RequestParam(value = "sort",required = false) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.gsdb(companys,type,beginDate,endDate,target,sort);
+    public R gsdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = false) String target,
+                  @RequestParam(value = "sort", required = false) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.gsdb(companys, type, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -238,15 +239,15 @@ public class BenchmarkingController {
     @GetMapping("/cndb")
     @ResponseBody
     @ApiOperation(value = "场内对标", notes = "场内对标")
-    public R cndb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpid",required = true) String wpid,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = true) String target,
-                  @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.cndb(companys,type,wpid,beginDate,endDate,target,sort);
+    public R cndb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpid", required = true) String wpid,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = true) String target,
+                  @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.cndb(companys, type, wpid, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -259,92 +260,92 @@ public class BenchmarkingController {
     @GetMapping("/cndbthb")
     @ResponseBody
     @ApiOperation(value = "场内对标同环比", notes = "场内对标同环比")
-    public R cndbthb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpid",required = true) String wpid
+    public R cndbthb(@RequestParam(value = "companys", required = true) String companys,
+                     @RequestParam(value = "type", required = true) String type,
+                     @RequestParam(value = "wpid", required = true) String wpid
     ) throws Exception {
         List<WxsslVo> resultList = new ArrayList<>();
         //获取当前时间
         String endDate = DateUtils.toDate1(new Date());
         Date date = DateUtils.parseDate(endDate);
-        String  beginDate = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(date));
-        List<WxsslVo> dateList = benchmarkingService.cndbthb(companys,type,wpid,beginDate,endDate);
-        if(dateList != null && dateList.size()>0){
+        String beginDate = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(date));
+        List<WxsslVo> dateList = benchmarkingService.cndbthb(companys, type, wpid, beginDate, endDate);
+        if (dateList != null && dateList.size() > 0) {
             dateList.get(0).setName("当月");
-            resultList.add((dateList != null && dateList.size()>0)?dateList.get(0): null);
+            resultList.add((dateList != null && dateList.size() > 0) ? dateList.get(0) : null);
         }
 
 
-        String yestmonthLastday =  DateUtils.toDate1(DateUtils.getYestmonthLastday(date));
-        String  yestmonthbeginday = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(DateUtils.parseDate(yestmonthLastday)));
-        List<WxsslVo> hbList = benchmarkingService.cndbthb(companys,type,wpid,yestmonthbeginday,yestmonthLastday);
-        if(hbList != null && hbList.size()>0){
+        String yestmonthLastday = DateUtils.toDate1(DateUtils.getYestmonthLastday(date));
+        String yestmonthbeginday = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(DateUtils.parseDate(yestmonthLastday)));
+        List<WxsslVo> hbList = benchmarkingService.cndbthb(companys, type, wpid, yestmonthbeginday, yestmonthLastday);
+        if (hbList != null && hbList.size() > 0) {
             hbList.get(0).setName("环比");
-            resultList.add((hbList != null && hbList.size()>0)?hbList.get(0): null);
+            resultList.add((hbList != null && hbList.size() > 0) ? hbList.get(0) : null);
         }
 
 
-        Date  subOneYear = DateUtils.subOneYear(date);
+        Date subOneYear = DateUtils.subOneYear(date);
         String tbbeginDate = DateUtils.toDate1(DateUtils.getMonthFirstZero(DateUtils.toDate1(subOneYear)));
         String tbendDate = DateUtils.toDate1(DateUtils.getMonthLast(subOneYear));
-        List<WxsslVo> tbList = benchmarkingService.cndbthb(companys,type,wpid,tbbeginDate,tbendDate);
-        if(tbList != null && tbList.size()>0){
+        List<WxsslVo> tbList = benchmarkingService.cndbthb(companys, type, wpid, tbbeginDate, tbendDate);
+        if (tbList != null && tbList.size() > 0) {
             tbList.get(0).setName("同比");
-            resultList.add((tbList != null && tbList.size()>0)?tbList.get(0):  null);
+            resultList.add((tbList != null && tbList.size() > 0) ? tbList.get(0) : null);
         }
 
 
-        SortUtils.sort(resultList,"llfdl",SortUtils.DESC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setZhpm(i+1);
+        SortUtils.sort(resultList, "llfdl", SortUtils.DESC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setZhpm(i + 1);
         }
-        SortUtils.sort(resultList,"fdl",SortUtils.DESC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setFdlpm(i+1);
+        SortUtils.sort(resultList, "fdl", SortUtils.DESC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setFdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"fnlyl",SortUtils.DESC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setFnlylpm(i+1);
+        SortUtils.sort(resultList, "fnlyl", SortUtils.DESC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setFnlylpm(i + 1);
         }
-        SortUtils.sort(resultList,"gzssdl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setGzssdlpm(i+1);
+        SortUtils.sort(resultList, "gzssdl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setGzssdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"gzssl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setGzsslpm(i+1);
+        SortUtils.sort(resultList, "gzssl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setGzsslpm(i + 1);
         }
-        SortUtils.sort(resultList,"jxssdl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setJxssdlpm(i+1);
+        SortUtils.sort(resultList, "jxssdl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setJxssdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"jxssl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setJxsslpm(i+1);
+        SortUtils.sort(resultList, "jxssl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setJxsslpm(i + 1);
         }
-        SortUtils.sort(resultList,"xdssdl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setXdssdlpm(i+1);
+        SortUtils.sort(resultList, "xdssdl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setXdssdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"qfl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setQflpm(i+1);
+        SortUtils.sort(resultList, "qfl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setQflpm(i + 1);
         }
-        SortUtils.sort(resultList,"xnssdl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setXnssdlpm(i+1);
+        SortUtils.sort(resultList, "xnssdl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setXnssdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"xnssl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setXnsslpm(i+1);
+        SortUtils.sort(resultList, "xnssl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setXnsslpm(i + 1);
         }
-        SortUtils.sort(resultList,"slssdl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setSlssdlpm(i+1);
+        SortUtils.sort(resultList, "slssdl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setSlssdlpm(i + 1);
         }
-        SortUtils.sort(resultList,"slssl",SortUtils.ASC);
-        for (int i=0;i<resultList.size();i++){
-            resultList.get(i).setSlsslpm(i+1);
+        SortUtils.sort(resultList, "slssl", SortUtils.ASC);
+        for (int i = 0; i < resultList.size(); i++) {
+            resultList.get(i).setSlsslpm(i + 1);
         }
 
         if (StringUtils.isNotNull(resultList)) {
@@ -358,15 +359,15 @@ public class BenchmarkingController {
     @GetMapping("/cjdb")
     @ResponseBody
     @ApiOperation(value = "场际对标", notes = "场际对标")
-    public R cjdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = true) String target,
-                  @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.cjdb(companys,type,wpids,beginDate,endDate,target,sort);
+    public R cjdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = true) String target,
+                  @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.cjdb(companys, type, wpids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -379,16 +380,16 @@ public class BenchmarkingController {
     @GetMapping("/xmdb")
     @ResponseBody
     @ApiOperation(value = "项目对标", notes = "项目对标")
-    public R xmdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "projectids",required = true) String projectids,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = true) String target,
-                  @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.xmdb(companys,type,wpids,projectids,beginDate,endDate,target,sort);
+    public R xmdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "projectids", required = true) String projectids,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = true) String target,
+                  @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.xmdb(companys, type, wpids, projectids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -401,17 +402,17 @@ public class BenchmarkingController {
     @GetMapping("/xldb")
     @ResponseBody
     @ApiOperation(value = "线路对标", notes = "线路对标")
-    public R xldb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "projectids",required = true) String projectids,
-                  @RequestParam(value = "lineids",required = true) String lineids,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = true) String target,
-                  @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.xldb(companys,type,wpids,projectids,lineids,beginDate,endDate,target,sort);
+    public R xldb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "projectids", required = true) String projectids,
+                  @RequestParam(value = "lineids", required = true) String lineids,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = true) String target,
+                  @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.xldb(companys, type, wpids, projectids, lineids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -423,18 +424,18 @@ public class BenchmarkingController {
     @GetMapping("/zqdb")
     @ResponseBody
     @ApiOperation(value = "阵区对标", notes = "阵区对标")
-    public R zqdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "projectids",required = true) String projectids,
-                  @RequestParam(value = "lineids",required = true) String lineids,
-                  @RequestParam(value = "squareids",required = true) String squareids,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = false) String target,
-                  @RequestParam(value = "sort",required = false) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.zqdb(companys,type,wpids,projectids,lineids,squareids,beginDate,endDate,target,sort);
+    public R zqdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "projectids", required = true) String projectids,
+                  @RequestParam(value = "lineids", required = true) String lineids,
+                  @RequestParam(value = "squareids", required = true) String squareids,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = false) String target,
+                  @RequestParam(value = "sort", required = false) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.zqdb(companys, type, wpids, projectids, lineids, squareids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -447,19 +448,19 @@ public class BenchmarkingController {
     @GetMapping("/sbdb")
     @ResponseBody
     @ApiOperation(value = "设备对标", notes = "设备对标")
-    public R sbdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "projectids",required = true) String projectids,
-                  @RequestParam(value = "lineids",required = true) String lineids,
-                  @RequestParam(value = "squareids",required = true) String squareids,
-                  @RequestParam(value = "windturbineids",required = false) String windturbineids,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = false) String target,
-                  @RequestParam(value = "sort",required = false) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.sbdb(companys,type,wpids,projectids,lineids,squareids,windturbineids,beginDate,endDate,target,sort);
+    public R sbdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "projectids", required = true) String projectids,
+                  @RequestParam(value = "lineids", required = true) String lineids,
+                  @RequestParam(value = "squareids", required = true) String squareids,
+                  @RequestParam(value = "windturbineids", required = false) String windturbineids,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = false) String target,
+                  @RequestParam(value = "sort", required = false) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.sbdb(companys, type, wpids, projectids, lineids, squareids, windturbineids, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -469,9 +470,31 @@ public class BenchmarkingController {
     }
 
 
+    @GetMapping("/operational/analysis")
+    @ResponseBody
+    @ApiOperation(value = "运行分析", notes = "运行分析")
+    public R operationalAnalysis(@RequestParam(value = "companys", required = true) String companys,
+                                 @RequestParam(value = "type", required = true) String type,
+                                 @RequestParam(value = "wpids", required = true) String wpids,
+                                 @RequestParam(value = "modelids", required = true) String modelids,
+                                 @RequestParam(value = "beginDate", required = true) String beginDate,
+                                 @RequestParam(value = "endDate", required = true) String endDate,
+                                 @RequestParam(value = "target", required = false) String target,
+                                 @RequestParam(value = "sort", required = false) String sort
+    ) {
+        try {
+            List<OperationalAnalysis> resultList = benchmarkingService.operationalAnalysis(companys, type, wpids, modelids, beginDate, endDate, target, sort);
+            if (StringUtils.isNotNull(resultList)) return R.data(ResultMsg.ok(resultList));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.error(ResultMsg.error());
+    }
+
 
     /**
      * 对标页面详情
+     *
      * @param beginDate
      * @param endDate
      * @return
@@ -479,13 +502,13 @@ public class BenchmarkingController {
     @GetMapping("/details")
     @ResponseBody
     @ApiOperation(value = "对标详情", notes = "对标详情")
-    public R details(@RequestParam(value = "id",required = true)String id,
-                     @RequestParam(value = "beginDate",required = true)String beginDate,
-                     @RequestParam(value = "endDate",required = true)String endDate,
-                     @RequestParam(value = "target",required = true) String target,
-                     @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList =  benchmarkingService.details(id,beginDate,endDate,target,sort);
+    public R details(@RequestParam(value = "id", required = true) String id,
+                     @RequestParam(value = "beginDate", required = true) String beginDate,
+                     @RequestParam(value = "endDate", required = true) String endDate,
+                     @RequestParam(value = "target", required = true) String target,
+                     @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.details(id, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -496,7 +519,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/companyslist")
     @ApiOperation(value = "公司列表新", notes = "公司列表新")
-    public R companyslist (@RequestParam(value = "type", required = true) String type)  {
+    public R companyslist(@RequestParam(value = "type", required = true) String type) {
         List<ProBasicOrganizeTree> resultList = benchmarkingService.companyslist(type);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -508,9 +531,9 @@ public class BenchmarkingController {
     @GetMapping(value = "/wpBylist")
     @ApiOperation(value = "场站列表新", notes = "场站列表新")
     public R wpBylist(@RequestParam(value = "companyids", required = true) String companyids,
-                        @RequestParam(value = "type", required = false) String type) {
+                      @RequestParam(value = "type", required = false) String type) {
 
-        List<ProBasicOrganizeTree> resultList = benchmarkingService.wpBylist(companyids,type);
+        List<ProBasicOrganizeTree> resultList = benchmarkingService.wpBylist(companyids, type);
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
@@ -520,7 +543,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/wtByWplistxin")
     @ApiOperation(value = "风机列表", notes = "风机列表")
-    public R wtByWplistxin(@RequestParam(value = "wpids", required = true) String wpids)  {
+    public R wtByWplistxin(@RequestParam(value = "wpids", required = true) String wpids) {
 
         List<ProBasicOrganizeEquipment> resultList = benchmarkingService.wtByWplistxin(wpids);
         if (StringUtils.isNotNull(resultList)) {
@@ -532,7 +555,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/modellist")
     @ApiOperation(value = "型号列表", notes = "型号列表")
-    public R modellist(@RequestParam(value = "wpids", required = true) String wpids)  {
+    public R modellist(@RequestParam(value = "wpids", required = true) String wpids) {
 
         List<ProBasicOrganizeTree> resultList = benchmarkingService.modellist(wpids);
         if (StringUtils.isNotNull(resultList)) {
@@ -545,16 +568,16 @@ public class BenchmarkingController {
     @GetMapping("/ppdb")
     @ResponseBody
     @ApiOperation(value = "场际对标", notes = "场际对标")
-    public R ppdb(@RequestParam(value = "companys",required = true) String companys,
-                  @RequestParam(value = "type",required = true) String type,
-                  @RequestParam(value = "wpids",required = true) String wpids,
-                  @RequestParam(value = "model",required = true) String model,
-                  @RequestParam(value = "beginDate",required = true) String beginDate,
-                  @RequestParam(value = "endDate",required = true) String endDate,
-                  @RequestParam(value = "target",required = true) String target,
-                  @RequestParam(value = "sort",required = true) String sort
-    ){
-        List<WxsslVo> resultList = benchmarkingService.ppdb(companys,type,wpids,model,beginDate,endDate,target,sort);
+    public R ppdb(@RequestParam(value = "companys", required = true) String companys,
+                  @RequestParam(value = "type", required = true) String type,
+                  @RequestParam(value = "wpids", required = true) String wpids,
+                  @RequestParam(value = "model", required = true) String model,
+                  @RequestParam(value = "beginDate", required = true) String beginDate,
+                  @RequestParam(value = "endDate", required = true) String endDate,
+                  @RequestParam(value = "target", required = true) String target,
+                  @RequestParam(value = "sort", required = true) String sort
+    ) {
+        List<WxsslVo> resultList = benchmarkingService.ppdb(companys, type, wpids, model, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -565,7 +588,7 @@ public class BenchmarkingController {
 
     @GetMapping(value = "/squarelist")
     @ApiOperation(value = "阵区列表", notes = "阵区列表")
-    public R squarelist(@RequestParam(value = "wpids", required = true) String wpids)  {
+    public R squarelist(@RequestParam(value = "wpids", required = true) String wpids) {
 
         List<ProBasicOrganizeEquipment> resultList = benchmarkingService.squarelist(wpids);
         if (StringUtils.isNotNull(resultList)) {

+ 81 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/OperationalAnalysis.java

@@ -0,0 +1,81 @@
+package com.gyee.runeconomy.dto.response;
+
+public class OperationalAnalysis {
+    /**
+     * 场站
+     */
+    private String wpsId;
+
+    /**
+     * 型号
+     */
+    private String modelId;
+
+    /**
+     * 转换率
+     */
+    private Double conversionRate;
+
+    /**
+     * 利用小时
+     */
+    private Double utilizationHour;
+
+    /**
+     * 光能利用率
+     */
+    private Double illuminationUtilizationRate;
+
+    /**
+     * 故障率
+     */
+    private Double failureRate;
+
+    public Double getConversionRate() {
+        return conversionRate;
+    }
+
+    public void setConversionRate(Double conversionRate) {
+        this.conversionRate = conversionRate;
+    }
+
+    public Double getUtilizationHour() {
+        return utilizationHour;
+    }
+
+    public void setUtilizationHour(Double utilizationHour) {
+        this.utilizationHour = utilizationHour;
+    }
+
+    public Double getIlluminationUtilizationRate() {
+        return illuminationUtilizationRate;
+    }
+
+    public void setIlluminationUtilizationRate(Double illuminationUtilizationRate) {
+        this.illuminationUtilizationRate = illuminationUtilizationRate;
+    }
+
+    public Double getFailureRate() {
+        return failureRate;
+    }
+
+    public void setFailureRate(Double failureRate) {
+        this.failureRate = failureRate;
+    }
+
+    public String getWpsId() {
+        return wpsId;
+    }
+
+    public void setWpsId(String wpsId) {
+        this.wpsId = wpsId;
+    }
+
+    public String getModelId() {
+        return modelId;
+    }
+
+    public void setModelId(String modelId) {
+        this.modelId = modelId;
+    }
+}

+ 131 - 49
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/service/bmk/BenchmarkingService.java

@@ -4,8 +4,11 @@ package com.gyee.runeconomy.service.bmk;
 @date   2022/11/23-11:06
 */
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.common.model.PointData;
 import com.gyee.common.model.StringUtils;
 import com.gyee.common.util.BigDecimalUtils;
 import com.gyee.common.util.DateUtils;
@@ -14,11 +17,14 @@ import com.gyee.common.util.SortUtils;
 import com.gyee.common.vo.benchmark.FjjxbVo;
 import com.gyee.common.vo.benchmark.FjjxbmxVo;
 import com.gyee.common.vo.benchmark.WxsslVo;
+import com.gyee.runeconomy.dto.response.OperationalAnalysis;
 import com.gyee.runeconomy.init.CacheContext;
-import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
-import com.gyee.runeconomy.model.auto.ProEconEquipmentInfoDay1;
+import com.gyee.runeconomy.model.auto.*;
 import com.gyee.runeconomy.model.fitting.ProBasicOrganizeEquipment;
 import com.gyee.runeconomy.service.auto.IProEconEquipmentInfoDay1Service;
+import com.gyee.runeconomy.service.auto.IProEconPowerstationInfoDay1Service;
+import com.gyee.runeconomy.service.auto.IProEconPowerstationInfoDay7Service;
+import com.gyee.runeconomy.util.realtimesource.IEdosUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -47,6 +53,15 @@ public class BenchmarkingService {
     private IProEconEquipmentInfoDay1Service proEconEquipmentInfoDay1Service;
     private List<ProBasicOrganizeTree> organizeTrees;
 
+    @Resource
+    private IProEconPowerstationInfoDay7Service iProEconPowerstationInfoDay7Service;
+
+    @Resource
+    private IProEconPowerstationInfoDay1Service iProEconPowerstationInfoDay1Service;
+
+    @Resource
+    private IEdosUtil edosUtil;
+
     public List<ProBasicOrganizeTree> companys() {
         List<ProBasicOrganizeTree> cpls = CacheContext.cpls;
         Map<String, ProBasicOrganizeTree> rgmap = CacheContext.rgmap;
@@ -574,7 +589,7 @@ public class BenchmarkingService {
                 if (CacheContext.wpmap.containsKey(i.getWindpowerstationId())) {
                     vo.setName(CacheContext.wpmap.get(i.getWindpowerstationId().trim()).getAname());
                 }
-                if(station.containsKey(i.getWindpowerstationId())){
+                if (station.containsKey(i.getWindpowerstationId())) {
                     vo.setOrdernum(station.get(i.getWindpowerstationId()).doubleValue());
                 }
             }
@@ -1303,7 +1318,7 @@ public class BenchmarkingService {
             qw.like("windturbine_id", "_IN_");
         }
         qw.groupBy("windpowerstation_id");
-        List<WxsslVo> wxsslVoList = getxinWxsslSortVos(qw, resultList, TYPE_WIND, companys,wpids, model);
+        List<WxsslVo> wxsslVoList = getxinWxsslSortVos(qw, resultList, TYPE_WIND, companys, wpids, model);
         if (StringUtils.isNotEmpty(target) && StringUtils.isNotEmpty(sort)) {
             if (sort.equals("1")) {
                 SortUtils.sort(resultList, target, SortUtils.ASC);
@@ -1317,72 +1332,72 @@ public class BenchmarkingService {
     }
 
 
-    private List<WxsslVo> getxinWxsslSortVos(QueryWrapper<ProEconEquipmentInfoDay1> qw, List<WxsslVo> resultList, String type, String companys,String wpids, String model) {
+    private List<WxsslVo> getxinWxsslSortVos(QueryWrapper<ProEconEquipmentInfoDay1> qw, List<WxsslVo> resultList, String type, String companys, String wpids, String model) {
 
         List<ProEconEquipmentInfoDay1> peeidls = new ArrayList<>();
         List<String> splitMd = null;
         if (!model.isEmpty()) {
-             splitMd = Arrays.asList(model.split(","));
-        }else if (model.isEmpty()){
+            splitMd = Arrays.asList(model.split(","));
+        } else if (model.isEmpty()) {
             List<String> models = null;
             if (!wpids.isEmpty()) {
                 models = CacheContext.organizeEquipmentList.stream().filter(
                         oe -> wpids.contains(oe.getWindpowerstationId())).map(ot -> ot.getModelId()).collect(Collectors.toList());
                 splitMd = models.stream().distinct().collect(Collectors.toList());
-            }else if (wpids.isEmpty() && companys.endsWith("ZGS")){
+            } else if (wpids.isEmpty() && companys.endsWith("ZGS")) {
                 models = CacheContext.organizeEquipmentList.stream().filter(
                         oe -> companys.contains(oe.getCompanyId())).map(ot -> ot.getModelId()).collect(Collectors.toList());
                 splitMd = models.stream().distinct().collect(Collectors.toList());
-            }else if (wpids.isEmpty()&&companys.endsWith("RGN")){
+            } else if (wpids.isEmpty() && companys.endsWith("RGN")) {
                 models = CacheContext.organizeEquipmentList.stream().filter(
                         oe -> companys.contains(oe.getRegionId())).map(ot -> ot.getModelId()).collect(Collectors.toList());
                 splitMd = models.stream().distinct().collect(Collectors.toList());
             }
         }
 //        if (!model.isEmpty()) {
-            for (String s1 : splitMd) {
-
-                List<String> wtls = null;
-                if (!wpids.isEmpty()) {
-                    wtls = CacheContext.organizeEquipmentList.stream().filter(
-                            oe -> wpids.contains(oe.getWindpowerstationId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
-                }else if (wpids.isEmpty() && companys.endsWith("ZGS")){
-                    wtls = CacheContext.organizeEquipmentList.stream().filter(
-                            oe -> companys.contains(oe.getCompanyId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
-                }else if (wpids.isEmpty()&&companys.endsWith("RGN")){
-                    wtls = CacheContext.organizeEquipmentList.stream().filter(
-                            oe -> companys.contains(oe.getRegionId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
-                }
+        for (String s1 : splitMd) {
 
-                if (wtls.size() == 0) continue;
-                QueryWrapper<ProEconEquipmentInfoDay1> wiqw = qw.clone().in("windturbine_id", wtls);
-                List<ProEconEquipmentInfoDay1> listls = proEconEquipmentInfoDay1Service.list(wiqw);
-
-                ProEconEquipmentInfoDay1 infoDay1 = new ProEconEquipmentInfoDay1();
-
-                for (ProEconEquipmentInfoDay1 listl : listls) {
-
-                    infoDay1.setRfdl((infoDay1.getRfdl() != null ? infoDay1.getRfdl() : 0) + (listl.getRfdl() != null ? listl.getRfdl() : 0));
-                    infoDay1.setRllfdl((infoDay1.getRllfdl() != null ? infoDay1.getRllfdl() : 0) + (listl.getRllfdl() != null ? listl.getRllfdl() : 0));
-                    infoDay1.setRpjfs((infoDay1.getRpjfs() != null ? infoDay1.getRpjfs() : 0) + (listl.getRpjfs() != null ? listl.getRpjfs() : 0));
-                    infoDay1.setRjxssdl((infoDay1.getRjxssdl() != null ? infoDay1.getRjxssdl() : 0) + (listl.getRjxssdl() != null ? listl.getRjxssdl() : 0));
-                    infoDay1.setRcnsljxssdl((infoDay1.getRcnsljxssdl() != null ? infoDay1.getRcnsljxssdl() : 0) + (listl.getRcnsljxssdl() != null ? listl.getRcnsljxssdl() : 0));
-                    infoDay1.setRgzssdl((infoDay1.getRgzssdl() != null ? infoDay1.getRgzssdl() : 0) + (listl.getRgzssdl() != null ? listl.getRgzssdl() : 0));
-                    infoDay1.setRcnslgzssdl((infoDay1.getRcnslgzssdl() != null ? infoDay1.getRcnslgzssdl() : 0) + (listl.getRcnslgzssdl() != null ? listl.getRcnslgzssdl() : 0));
-                    infoDay1.setRxdtjssdl((infoDay1.getRxdtjssdl() != null ? infoDay1.getRxdtjssdl() : 0) + (listl.getRxdtjssdl() != null ? listl.getRxdtjssdl() : 0));
-                    infoDay1.setRxdjclssdl((infoDay1.getRxdjclssdl() != null ? infoDay1.getRxdjclssdl() : 0) + (listl.getRxdjclssdl() != null ? listl.getRxdjclssdl() : 0));
-                    infoDay1.setRdjssdl((infoDay1.getRdjssdl() != null ? infoDay1.getRdjssdl() : 0) + (listl.getRdjssdl() != null ? listl.getRdjssdl() : 0));
-                    infoDay1.setRqxjclssdl((infoDay1.getRqxjclssdl() != null ? infoDay1.getRqxjclssdl() : 0) + (listl.getRqxjclssdl() != null ? listl.getRqxjclssdl() : 0));
-                    infoDay1.setRsdtjssdl((infoDay1.getRsdtjssdl() != null ? infoDay1.getRsdtjssdl() : 0) + (listl.getRsdtjssdl() != null ? listl.getRsdtjssdl() : 0));
-                    infoDay1.setRxnssdl((infoDay1.getRxnssdl() != null ? infoDay1.getRxnssdl() : 0) + (listl.getRxnssdl() != null ? listl.getRxnssdl() : 0));
-                    infoDay1.setRcwsldwssdl((infoDay1.getRcwsldwssdl() != null ? infoDay1.getRcwsldwssdl() : 0) + (listl.getRcwsldwssdl() != null ? listl.getRcwsldwssdl() : 0));
-                    infoDay1.setRcwsltqssdl((infoDay1.getRcwsltqssdl() != null ? infoDay1.getRcwsltqssdl() : 0) + (listl.getRcwsltqssdl() != null ? listl.getRcwsltqssdl() : 0));
-                    infoDay1.setWindpowerstationId(listl.getWindpowerstationId());
-                    infoDay1.setWindturbineId(s1);
-                }
+            List<String> wtls = null;
+            if (!wpids.isEmpty()) {
+                wtls = CacheContext.organizeEquipmentList.stream().filter(
+                        oe -> wpids.contains(oe.getWindpowerstationId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
+            } else if (wpids.isEmpty() && companys.endsWith("ZGS")) {
+                wtls = CacheContext.organizeEquipmentList.stream().filter(
+                        oe -> companys.contains(oe.getCompanyId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
+            } else if (wpids.isEmpty() && companys.endsWith("RGN")) {
+                wtls = CacheContext.organizeEquipmentList.stream().filter(
+                        oe -> companys.contains(oe.getRegionId())).map(ot -> ot.getWindturbineId()).collect(Collectors.toList());
+            }
 
-                peeidls.add(infoDay1);
+            if (wtls.size() == 0) continue;
+            QueryWrapper<ProEconEquipmentInfoDay1> wiqw = qw.clone().in("windturbine_id", wtls);
+            List<ProEconEquipmentInfoDay1> listls = proEconEquipmentInfoDay1Service.list(wiqw);
+
+            ProEconEquipmentInfoDay1 infoDay1 = new ProEconEquipmentInfoDay1();
+
+            for (ProEconEquipmentInfoDay1 listl : listls) {
+
+                infoDay1.setRfdl((infoDay1.getRfdl() != null ? infoDay1.getRfdl() : 0) + (listl.getRfdl() != null ? listl.getRfdl() : 0));
+                infoDay1.setRllfdl((infoDay1.getRllfdl() != null ? infoDay1.getRllfdl() : 0) + (listl.getRllfdl() != null ? listl.getRllfdl() : 0));
+                infoDay1.setRpjfs((infoDay1.getRpjfs() != null ? infoDay1.getRpjfs() : 0) + (listl.getRpjfs() != null ? listl.getRpjfs() : 0));
+                infoDay1.setRjxssdl((infoDay1.getRjxssdl() != null ? infoDay1.getRjxssdl() : 0) + (listl.getRjxssdl() != null ? listl.getRjxssdl() : 0));
+                infoDay1.setRcnsljxssdl((infoDay1.getRcnsljxssdl() != null ? infoDay1.getRcnsljxssdl() : 0) + (listl.getRcnsljxssdl() != null ? listl.getRcnsljxssdl() : 0));
+                infoDay1.setRgzssdl((infoDay1.getRgzssdl() != null ? infoDay1.getRgzssdl() : 0) + (listl.getRgzssdl() != null ? listl.getRgzssdl() : 0));
+                infoDay1.setRcnslgzssdl((infoDay1.getRcnslgzssdl() != null ? infoDay1.getRcnslgzssdl() : 0) + (listl.getRcnslgzssdl() != null ? listl.getRcnslgzssdl() : 0));
+                infoDay1.setRxdtjssdl((infoDay1.getRxdtjssdl() != null ? infoDay1.getRxdtjssdl() : 0) + (listl.getRxdtjssdl() != null ? listl.getRxdtjssdl() : 0));
+                infoDay1.setRxdjclssdl((infoDay1.getRxdjclssdl() != null ? infoDay1.getRxdjclssdl() : 0) + (listl.getRxdjclssdl() != null ? listl.getRxdjclssdl() : 0));
+                infoDay1.setRdjssdl((infoDay1.getRdjssdl() != null ? infoDay1.getRdjssdl() : 0) + (listl.getRdjssdl() != null ? listl.getRdjssdl() : 0));
+                infoDay1.setRqxjclssdl((infoDay1.getRqxjclssdl() != null ? infoDay1.getRqxjclssdl() : 0) + (listl.getRqxjclssdl() != null ? listl.getRqxjclssdl() : 0));
+                infoDay1.setRsdtjssdl((infoDay1.getRsdtjssdl() != null ? infoDay1.getRsdtjssdl() : 0) + (listl.getRsdtjssdl() != null ? listl.getRsdtjssdl() : 0));
+                infoDay1.setRxnssdl((infoDay1.getRxnssdl() != null ? infoDay1.getRxnssdl() : 0) + (listl.getRxnssdl() != null ? listl.getRxnssdl() : 0));
+                infoDay1.setRcwsldwssdl((infoDay1.getRcwsldwssdl() != null ? infoDay1.getRcwsldwssdl() : 0) + (listl.getRcwsldwssdl() != null ? listl.getRcwsldwssdl() : 0));
+                infoDay1.setRcwsltqssdl((infoDay1.getRcwsltqssdl() != null ? infoDay1.getRcwsltqssdl() : 0) + (listl.getRcwsltqssdl() != null ? listl.getRcwsltqssdl() : 0));
+                infoDay1.setWindpowerstationId(listl.getWindpowerstationId());
+                infoDay1.setWindturbineId(s1);
             }
+
+            peeidls.add(infoDay1);
+        }
 //        }
 //        else if (model.isEmpty()) {
 //            List<String> wtls = null;
@@ -1542,4 +1557,71 @@ public class BenchmarkingService {
         return resultList;
     }
 
+
+    /**
+     * 运行分析
+     */
+    public List<OperationalAnalysis> operationalAnalysis(String companys, String type, String wpids, String modelids, String beginDate, String endDate, String target, String sort) throws Exception {
+        Date date1 = DateUtil.parse(beginDate);
+        Date date2 = DateUtil.parse(endDate);
+
+        List<OperationalAnalysis> resultList = new ArrayList<>();
+        QueryWrapper<ProEconPowerstationInfoDay7> qw = new QueryWrapper<>();
+        QueryWrapper<ProEconPowerstationInfoDay1> pepi1 = new QueryWrapper();
+        qw.select("windpowerstation_id,avg(rnbqzhxl) rnbqzhxl");
+        pepi1.select("windpowerstation_id,sum(rfdl) rfdl");
+        qw.between("record_date", date1, date2);
+        pepi1.between("record_date", date1, date2);
+
+        List<String> wpList = new ArrayList<>();
+        if (StringUtils.isNotEmpty(wpids)) {
+            wpList = Arrays.asList(wpids.split(","));
+        } else if (StringUtils.isNotEmpty(companys)) {
+            String[] split = companys.split(",");
+            if (companys.contains("RGN")) {
+                wpList = CacheContext.organizeEquipmentList.stream().map(el -> el.getWindpowerstationId()).distinct().collect(Collectors.toList());
+            } else {
+                wpList = CacheContext.organizeEquipmentList.stream().filter(el -> wpids.contains(el.getCompanyId()))
+                        .map(el -> el.getWindpowerstationId()).distinct().collect(Collectors.toList());
+            }
+        }
+        qw.in("windpowerstation_id", wpList).groupBy("windpowerstation_id");
+        pepi1.in("windpowerstation_id", wpList).groupBy("windpowerstation_id");
+        List<ProEconPowerstationInfoDay7> lpepi7 = iProEconPowerstationInfoDay7Service.list(qw);
+        Map<String, List<ProBasicOrganizeEquipment>> equipmentStationMap = CacheContext.organizeEquipmentList.stream().collect(Collectors.groupingBy(ProBasicOrganizeEquipment::getWindpowerstationId));
+
+        List<ProEconPowerstationInfoDay1> lpepi1 = iProEconPowerstationInfoDay1Service.list(pepi1);
+        Map<String, ProEconPowerstationInfoDay1> pepid1Map = lpepi1.stream().collect(Collectors.toMap(ProEconPowerstationInfoDay1::getWindpowerstationId, Function.identity()));
+
+        Map<String, ProBasicPowerstationPoint> collect = CacheContext.proBasicPowerstationPoint.stream()
+                .filter(p -> "GNLYL".equals(p.getUniformCode()) && wpids.contains(p.getWindpowerstationId()))
+                .collect(Collectors.toMap(ProBasicPowerstationPoint::getWindpowerstationId, Function.identity()));
+
+        for (ProEconPowerstationInfoDay7 day7 : lpepi7) {
+            String wpId = day7.getWindpowerstationId();
+            OperationalAnalysis oa = new OperationalAnalysis();
+            oa.setWpsId(wpId);
+            oa.setModelId(equipmentStationMap.get(wpId).get(0).getModelId());
+            oa.setConversionRate(day7.getRnbqzhxl().doubleValue());
+            oa.setUtilizationHour(pepid1Map.get(wpId).getRfdl().doubleValue() / (CacheContext.proBasicOrganizeTreesMap.get(wpids).getZjCapacity()));
+            List<PointData> historyDatasRaw = edosUtil.getHistoryDatasRaw(collect.get(wpId).getNemCode(), date1.getTime() / 1000, date2.getTime() / 1000);
+            double v = historyDatasRaw.stream().mapToDouble(PointData::getPointValueInDouble).average().orElse(0);
+            oa.setIlluminationUtilizationRate(v);
+            resultList.add(oa);
+        }
+        Collection<OperationalAnalysis> values = resultList.stream().collect(Collectors.toMap(OperationalAnalysis::getModelId, r -> r, (r1, r2) -> {
+            r1.setConversionRate(r1.getConversionRate() + r2.getConversionRate());
+            r1.setUtilizationHour(r1.getUtilizationHour() + r2.getUtilizationHour());
+            r1.setIlluminationUtilizationRate(r1.getIlluminationUtilizationRate() + r2.getIlluminationUtilizationRate());
+            return r1;
+        })).values();
+        List<OperationalAnalysis> collect1 = values.stream().peek(oa -> {
+            oa.setConversionRate(NumberUtil.round(oa.getConversionRate(), 2).doubleValue());
+            oa.setUtilizationHour(NumberUtil.round(oa.getUtilizationHour(), 2).doubleValue());
+            oa.setIlluminationUtilizationRate(NumberUtil.round(oa.getIlluminationUtilizationRate(), 2).doubleValue());
+        }).collect(Collectors.toList());
+
+        return collect1;
+    }
+
 }