shilin 4 роки тому
батько
коміт
130fd6f7ef
21 змінених файлів з 9128 додано та 5 видалено
  1. 115 0
      src/main/java/com/gyee/frame/controller/contrast/ContrastController.java
  2. 97 0
      src/main/java/com/gyee/frame/mapper/auto/FaultEliminateDefectsMapper.java
  3. 98 0
      src/main/java/com/gyee/frame/mapper/auto/StatetransitionratesMapper.java
  4. 377 0
      src/main/java/com/gyee/frame/model/auto/FaultEliminateDefects.java
  5. 1023 0
      src/main/java/com/gyee/frame/model/auto/FaultEliminateDefectsExample.java
  6. 938 0
      src/main/java/com/gyee/frame/model/auto/Statetransitionrates.java
  7. 2024 0
      src/main/java/com/gyee/frame/model/auto/StatetransitionratesExample.java
  8. 763 0
      src/main/java/com/gyee/frame/model/custom/BenchMarkVo.java
  9. 355 0
      src/main/java/com/gyee/frame/model/custom/DataVo.java
  10. 240 0
      src/main/java/com/gyee/frame/service/FaultEliminateDefectsService.java
  11. 313 0
      src/main/java/com/gyee/frame/service/StatetransitionratesService.java
  12. 34 0
      src/main/java/com/gyee/frame/service/Windpowerinfoday3Service.java
  13. 26 3
      src/main/java/com/gyee/frame/service/Windturbineinfoday3Service.java
  14. 342 0
      src/main/java/com/gyee/frame/service/contrast/ContrastWpService.java
  15. 265 0
      src/main/java/com/gyee/frame/service/contrast/ContrastWtService.java
  16. 1033 0
      src/main/java/com/gyee/frame/util/BenchmarkUtil.java
  17. 3 0
      src/main/java/com/gyee/frame/util/StringUtils.java
  18. 2 2
      src/main/resources/mybatis-generator.xml
  19. 366 0
      src/main/resources/mybatis/auto/FaultEliminateDefectsMapper.xml
  20. 637 0
      src/main/resources/mybatis/auto/StatetransitionratesMapper.xml
  21. 77 0
      src/test/java/test/ContrastTest.java

+ 115 - 0
src/main/java/com/gyee/frame/controller/contrast/ContrastController.java

@@ -0,0 +1,115 @@
+package com.gyee.frame.controller.contrast;
+
+import com.gyee.frame.common.conf.AjaxStatus;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.custom.BenchMarkVo;
+import com.gyee.frame.model.custom.DataVo;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.service.contrast.ContrastWpService;
+import com.gyee.frame.service.contrast.ContrastWtService;
+import com.gyee.frame.util.BenchmarkUtil;
+import com.gyee.frame.util.DateUtils;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Controller
+@RequestMapping("/contrast")
+public class ContrastController {
+
+    @Resource
+    private ContrastWpService contrastWpService;
+    @Resource
+    private ContrastWtService contrastWtService;
+    /**
+     * 查询五损列表信息
+     **/
+    @GetMapping("/benchmarkLossList")
+    @ResponseBody
+    public AjaxResult benchmarkLossList(Tablepar tablepar, String wpId, String beginDate, String endDate) {
+
+        List<BenchMarkVo> vos =contrastWpService.benchmarkLossList(wpId, beginDate,  endDate);
+
+
+
+            if (vos != null && !vos.isEmpty()) {
+                BenchmarkUtil bu = new BenchmarkUtil();
+                vos = bu.getBenchMarkOrder(vos);
+                //默认综合排序,不需要从新排序,除非指定字段排序
+                if(StringUtils.notEmp(tablepar) && StringUtils.isNotEmpty(tablepar.getOrderByColumn()) )
+                {
+                    vos = bu.getBenchMarkOrder(vos,tablepar);
+                }
+                return AjaxResult.successData(AjaxStatus.success.code, vos);
+            } else {
+                return AjaxResult.successData(AjaxStatus.emptyresultset.code, vos);
+            }
+
+    }
+
+    /**
+     * 查询等级评估日所有信息
+     **/
+    @GetMapping("/findWpPowerOutChat")
+    @ResponseBody
+    public AjaxResult findWpPowerOutChat(String wpId, String beginDate, String endDate) throws Exception {
+        List<String> wpids = new ArrayList<String>();
+        if (StringUtils.notEmp(wpId)) {
+            if (wpId.indexOf(",") != -1) {
+                String[] strs = wpId.split(",");
+                if (strs.length > 0) {
+                    for (int i = 0; i < strs.length; i++) {
+                        wpids.add(strs[i]);
+                    }
+                }
+            } else {
+                wpids.add(wpId);
+            }
+
+        }
+
+        Date begin = DateUtils.parseDate(beginDate);
+        Date end = DateUtils.parseDate(endDate);
+        
+        List<DataVo> vos = contrastWpService.findWpPowerChat(wpids, begin, end);
+
+        if (vos != null && !vos.isEmpty()) {
+            return AjaxResult.successData(AjaxStatus.success.code, vos);
+        } else {
+            return AjaxResult.successData(AjaxStatus.emptyresultset.code, vos);
+        }
+    }
+
+    /**
+     * 查询风机列表信息
+     **/
+    @GetMapping("/benchmarkLossWtList")
+    @ResponseBody
+    public AjaxResult benchmarkLossWtList(Tablepar tablepar, String wpId, String beginDate, String endDate) {
+
+        List<BenchMarkVo> vos =contrastWtService.benchmarkLossWtList(wpId, beginDate,  endDate);
+
+        if (vos != null && !vos.isEmpty()) {
+            BenchmarkUtil bu = new BenchmarkUtil();
+            vos = bu.getBenchMarkOrder(vos);
+            //默认综合排序,不需要从新排序,除非指定字段排序
+            if(StringUtils.notEmp(tablepar) && StringUtils.isNotEmpty(tablepar.getOrderByColumn()) )
+            {
+                vos = bu.getBenchMarkOrder(vos,tablepar);
+            }
+            return AjaxResult.successData(AjaxStatus.success.code, vos);
+        } else {
+            return AjaxResult.successData(AjaxStatus.emptyresultset.code, vos);
+        }
+
+    }
+
+}
+

+ 97 - 0
src/main/java/com/gyee/frame/mapper/auto/FaultEliminateDefectsMapper.java

@@ -0,0 +1,97 @@
+package com.gyee.frame.mapper.auto;
+
+import com.gyee.frame.model.auto.FaultEliminateDefects;
+import com.gyee.frame.model.auto.FaultEliminateDefectsExample;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface FaultEliminateDefectsMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    long countByExample(FaultEliminateDefectsExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int deleteByExample(FaultEliminateDefectsExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int insert(FaultEliminateDefects record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int insertSelective(FaultEliminateDefects record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    List<FaultEliminateDefects> selectByExample(FaultEliminateDefectsExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    FaultEliminateDefects selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int updateByExampleSelective(@Param("record") FaultEliminateDefects record, @Param("example") FaultEliminateDefectsExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int updateByExample(@Param("record") FaultEliminateDefects record, @Param("example") FaultEliminateDefectsExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKeySelective(FaultEliminateDefects record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKey(FaultEliminateDefects record);
+}

+ 98 - 0
src/main/java/com/gyee/frame/mapper/auto/StatetransitionratesMapper.java

@@ -0,0 +1,98 @@
+package com.gyee.frame.mapper.auto;
+
+import com.gyee.frame.model.auto.Statetransitionrates;
+import com.gyee.frame.model.auto.StatetransitionratesExample;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface StatetransitionratesMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    long countByExample(StatetransitionratesExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int deleteByExample(StatetransitionratesExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int insert(Statetransitionrates record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int insertSelective(Statetransitionrates record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    List<Statetransitionrates> selectByExample(StatetransitionratesExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    Statetransitionrates selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int updateByExampleSelective(@Param("record") Statetransitionrates record, @Param("example") StatetransitionratesExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int updateByExample(@Param("record") Statetransitionrates record, @Param("example") StatetransitionratesExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKeySelective(Statetransitionrates record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKey(Statetransitionrates record);
+
+}

+ 377 - 0
src/main/java/com/gyee/frame/model/auto/FaultEliminateDefects.java

@@ -0,0 +1,377 @@
+package com.gyee.frame.model.auto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class FaultEliminateDefects implements Serializable {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.id
+     *
+     * @mbg.generated
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.WINDPOWERSTATIONID
+     *
+     * @mbg.generated
+     */
+    private String windpowerstationid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.WINDTURBINEID
+     *
+     * @mbg.generated
+     */
+    private String windturbineid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.PROJECTID
+     *
+     * @mbg.generated
+     */
+    private String projectid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.LINEID
+     *
+     * @mbg.generated
+     */
+    private String lineid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.DATETIME
+     *
+     * @mbg.generated
+     */
+    private Date datetime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.CLASSIFYID
+     *
+     * @mbg.generated
+     */
+    private String classifyid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.faultCount
+     *
+     * @mbg.generated
+     */
+    private Integer faultcount;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.rate
+     *
+     * @mbg.generated
+     */
+    private Integer rate;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.RIGHTCOUNT
+     *
+     * @mbg.generated
+     */
+    private Integer rightcount;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column faulteliminatedefects.cause
+     *
+     * @mbg.generated
+     */
+    private String cause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table faulteliminatedefects
+     *
+     * @mbg.generated
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.id
+     *
+     * @return the value of faulteliminatedefects.id
+     *
+     * @mbg.generated
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.id
+     *
+     * @param id the value for faulteliminatedefects.id
+     *
+     * @mbg.generated
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.WINDPOWERSTATIONID
+     *
+     * @return the value of faulteliminatedefects.WINDPOWERSTATIONID
+     *
+     * @mbg.generated
+     */
+    public String getWindpowerstationid() {
+        return windpowerstationid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.WINDPOWERSTATIONID
+     *
+     * @param windpowerstationid the value for faulteliminatedefects.WINDPOWERSTATIONID
+     *
+     * @mbg.generated
+     */
+    public void setWindpowerstationid(String windpowerstationid) {
+        this.windpowerstationid = windpowerstationid == null ? null : windpowerstationid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.WINDTURBINEID
+     *
+     * @return the value of faulteliminatedefects.WINDTURBINEID
+     *
+     * @mbg.generated
+     */
+    public String getWindturbineid() {
+        return windturbineid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.WINDTURBINEID
+     *
+     * @param windturbineid the value for faulteliminatedefects.WINDTURBINEID
+     *
+     * @mbg.generated
+     */
+    public void setWindturbineid(String windturbineid) {
+        this.windturbineid = windturbineid == null ? null : windturbineid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.PROJECTID
+     *
+     * @return the value of faulteliminatedefects.PROJECTID
+     *
+     * @mbg.generated
+     */
+    public String getProjectid() {
+        return projectid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.PROJECTID
+     *
+     * @param projectid the value for faulteliminatedefects.PROJECTID
+     *
+     * @mbg.generated
+     */
+    public void setProjectid(String projectid) {
+        this.projectid = projectid == null ? null : projectid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.LINEID
+     *
+     * @return the value of faulteliminatedefects.LINEID
+     *
+     * @mbg.generated
+     */
+    public String getLineid() {
+        return lineid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.LINEID
+     *
+     * @param lineid the value for faulteliminatedefects.LINEID
+     *
+     * @mbg.generated
+     */
+    public void setLineid(String lineid) {
+        this.lineid = lineid == null ? null : lineid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.DATETIME
+     *
+     * @return the value of faulteliminatedefects.DATETIME
+     *
+     * @mbg.generated
+     */
+    public Date getDatetime() {
+        return datetime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.DATETIME
+     *
+     * @param datetime the value for faulteliminatedefects.DATETIME
+     *
+     * @mbg.generated
+     */
+    public void setDatetime(Date datetime) {
+        this.datetime = datetime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.CLASSIFYID
+     *
+     * @return the value of faulteliminatedefects.CLASSIFYID
+     *
+     * @mbg.generated
+     */
+    public String getClassifyid() {
+        return classifyid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.CLASSIFYID
+     *
+     * @param classifyid the value for faulteliminatedefects.CLASSIFYID
+     *
+     * @mbg.generated
+     */
+    public void setClassifyid(String classifyid) {
+        this.classifyid = classifyid == null ? null : classifyid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.faultCount
+     *
+     * @return the value of faulteliminatedefects.faultCount
+     *
+     * @mbg.generated
+     */
+    public Integer getFaultcount() {
+        return faultcount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.faultCount
+     *
+     * @param faultcount the value for faulteliminatedefects.faultCount
+     *
+     * @mbg.generated
+     */
+    public void setFaultcount(Integer faultcount) {
+        this.faultcount = faultcount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.rate
+     *
+     * @return the value of faulteliminatedefects.rate
+     *
+     * @mbg.generated
+     */
+    public Integer getRate() {
+        return rate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.rate
+     *
+     * @param rate the value for faulteliminatedefects.rate
+     *
+     * @mbg.generated
+     */
+    public void setRate(Integer rate) {
+        this.rate = rate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.RIGHTCOUNT
+     *
+     * @return the value of faulteliminatedefects.RIGHTCOUNT
+     *
+     * @mbg.generated
+     */
+    public Integer getRightcount() {
+        return rightcount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.RIGHTCOUNT
+     *
+     * @param rightcount the value for faulteliminatedefects.RIGHTCOUNT
+     *
+     * @mbg.generated
+     */
+    public void setRightcount(Integer rightcount) {
+        this.rightcount = rightcount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column faulteliminatedefects.cause
+     *
+     * @return the value of faulteliminatedefects.cause
+     *
+     * @mbg.generated
+     */
+    public String getCause() {
+        return cause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column faulteliminatedefects.cause
+     *
+     * @param cause the value for faulteliminatedefects.cause
+     *
+     * @mbg.generated
+     */
+    public void setCause(String cause) {
+        this.cause = cause == null ? null : cause.trim();
+    }
+}

Різницю між файлами не показано, бо вона завелика
+ 1023 - 0
src/main/java/com/gyee/frame/model/auto/FaultEliminateDefectsExample.java


+ 938 - 0
src/main/java/com/gyee/frame/model/auto/Statetransitionrates.java

@@ -0,0 +1,938 @@
+package com.gyee.frame.model.auto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Statetransitionrates implements Serializable {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.ID
+     *
+     * @mbg.generated
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.windpwoerId
+     *
+     * @mbg.generated
+     */
+    private String windpwoerid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.projectId
+     *
+     * @mbg.generated
+     */
+    private String projectid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.lineId
+     *
+     * @mbg.generated
+     */
+    private String lineid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.windturbineId
+     *
+     * @mbg.generated
+     */
+    private String windturbineid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.recordDate
+     *
+     * @mbg.generated
+     */
+    private Date recorddate;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate1
+     *
+     * @mbg.generated
+     */
+    private Double timerate1;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate2
+     *
+     * @mbg.generated
+     */
+    private Double timerate2;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate3
+     *
+     * @mbg.generated
+     */
+    private Double timerate3;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate4
+     *
+     * @mbg.generated
+     */
+    private Double timerate4;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate5
+     *
+     * @mbg.generated
+     */
+    private Double timerate5;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate6
+     *
+     * @mbg.generated
+     */
+    private Double timerate6;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate7
+     *
+     * @mbg.generated
+     */
+    private Double timerate7;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate8
+     *
+     * @mbg.generated
+     */
+    private Double timerate8;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate9
+     *
+     * @mbg.generated
+     */
+    private Double timerate9;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate10
+     *
+     * @mbg.generated
+     */
+    private Double timerate10;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate11
+     *
+     * @mbg.generated
+     */
+    private Double timerate11;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate12
+     *
+     * @mbg.generated
+     */
+    private Double timerate12;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate13
+     *
+     * @mbg.generated
+     */
+    private Double timerate13;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate14
+     *
+     * @mbg.generated
+     */
+    private Double timerate14;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate15
+     *
+     * @mbg.generated
+     */
+    private Double timerate15;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate16
+     *
+     * @mbg.generated
+     */
+    private Double timerate16;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate17
+     *
+     * @mbg.generated
+     */
+    private Double timerate17;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate18
+     *
+     * @mbg.generated
+     */
+    private Double timerate18;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate19
+     *
+     * @mbg.generated
+     */
+    private Double timerate19;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate20
+     *
+     * @mbg.generated
+     */
+    private Double timerate20;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate21
+     *
+     * @mbg.generated
+     */
+    private Double timerate21;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column statetransitionrates.timerate22
+     *
+     * @mbg.generated
+     */
+    private Double timerate22;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table statetransitionrates
+     *
+     * @mbg.generated
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.ID
+     *
+     * @return the value of statetransitionrates.ID
+     *
+     * @mbg.generated
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.ID
+     *
+     * @param id the value for statetransitionrates.ID
+     *
+     * @mbg.generated
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.windpwoerId
+     *
+     * @return the value of statetransitionrates.windpwoerId
+     *
+     * @mbg.generated
+     */
+    public String getWindpwoerid() {
+        return windpwoerid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.windpwoerId
+     *
+     * @param windpwoerid the value for statetransitionrates.windpwoerId
+     *
+     * @mbg.generated
+     */
+    public void setWindpwoerid(String windpwoerid) {
+        this.windpwoerid = windpwoerid == null ? null : windpwoerid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.projectId
+     *
+     * @return the value of statetransitionrates.projectId
+     *
+     * @mbg.generated
+     */
+    public String getProjectid() {
+        return projectid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.projectId
+     *
+     * @param projectid the value for statetransitionrates.projectId
+     *
+     * @mbg.generated
+     */
+    public void setProjectid(String projectid) {
+        this.projectid = projectid == null ? null : projectid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.lineId
+     *
+     * @return the value of statetransitionrates.lineId
+     *
+     * @mbg.generated
+     */
+    public String getLineid() {
+        return lineid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.lineId
+     *
+     * @param lineid the value for statetransitionrates.lineId
+     *
+     * @mbg.generated
+     */
+    public void setLineid(String lineid) {
+        this.lineid = lineid == null ? null : lineid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.windturbineId
+     *
+     * @return the value of statetransitionrates.windturbineId
+     *
+     * @mbg.generated
+     */
+    public String getWindturbineid() {
+        return windturbineid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.windturbineId
+     *
+     * @param windturbineid the value for statetransitionrates.windturbineId
+     *
+     * @mbg.generated
+     */
+    public void setWindturbineid(String windturbineid) {
+        this.windturbineid = windturbineid == null ? null : windturbineid.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.recordDate
+     *
+     * @return the value of statetransitionrates.recordDate
+     *
+     * @mbg.generated
+     */
+    public Date getRecorddate() {
+        return recorddate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.recordDate
+     *
+     * @param recorddate the value for statetransitionrates.recordDate
+     *
+     * @mbg.generated
+     */
+    public void setRecorddate(Date recorddate) {
+        this.recorddate = recorddate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate1
+     *
+     * @return the value of statetransitionrates.timerate1
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate1() {
+        return timerate1;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate1
+     *
+     * @param timerate1 the value for statetransitionrates.timerate1
+     *
+     * @mbg.generated
+     */
+    public void setTimerate1(Double timerate1) {
+        this.timerate1 = timerate1;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate2
+     *
+     * @return the value of statetransitionrates.timerate2
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate2() {
+        return timerate2;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate2
+     *
+     * @param timerate2 the value for statetransitionrates.timerate2
+     *
+     * @mbg.generated
+     */
+    public void setTimerate2(Double timerate2) {
+        this.timerate2 = timerate2;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate3
+     *
+     * @return the value of statetransitionrates.timerate3
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate3() {
+        return timerate3;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate3
+     *
+     * @param timerate3 the value for statetransitionrates.timerate3
+     *
+     * @mbg.generated
+     */
+    public void setTimerate3(Double timerate3) {
+        this.timerate3 = timerate3;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate4
+     *
+     * @return the value of statetransitionrates.timerate4
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate4() {
+        return timerate4;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate4
+     *
+     * @param timerate4 the value for statetransitionrates.timerate4
+     *
+     * @mbg.generated
+     */
+    public void setTimerate4(Double timerate4) {
+        this.timerate4 = timerate4;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate5
+     *
+     * @return the value of statetransitionrates.timerate5
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate5() {
+        return timerate5;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate5
+     *
+     * @param timerate5 the value for statetransitionrates.timerate5
+     *
+     * @mbg.generated
+     */
+    public void setTimerate5(Double timerate5) {
+        this.timerate5 = timerate5;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate6
+     *
+     * @return the value of statetransitionrates.timerate6
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate6() {
+        return timerate6;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate6
+     *
+     * @param timerate6 the value for statetransitionrates.timerate6
+     *
+     * @mbg.generated
+     */
+    public void setTimerate6(Double timerate6) {
+        this.timerate6 = timerate6;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate7
+     *
+     * @return the value of statetransitionrates.timerate7
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate7() {
+        return timerate7;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate7
+     *
+     * @param timerate7 the value for statetransitionrates.timerate7
+     *
+     * @mbg.generated
+     */
+    public void setTimerate7(Double timerate7) {
+        this.timerate7 = timerate7;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate8
+     *
+     * @return the value of statetransitionrates.timerate8
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate8() {
+        return timerate8;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate8
+     *
+     * @param timerate8 the value for statetransitionrates.timerate8
+     *
+     * @mbg.generated
+     */
+    public void setTimerate8(Double timerate8) {
+        this.timerate8 = timerate8;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate9
+     *
+     * @return the value of statetransitionrates.timerate9
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate9() {
+        return timerate9;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate9
+     *
+     * @param timerate9 the value for statetransitionrates.timerate9
+     *
+     * @mbg.generated
+     */
+    public void setTimerate9(Double timerate9) {
+        this.timerate9 = timerate9;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate10
+     *
+     * @return the value of statetransitionrates.timerate10
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate10() {
+        return timerate10;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate10
+     *
+     * @param timerate10 the value for statetransitionrates.timerate10
+     *
+     * @mbg.generated
+     */
+    public void setTimerate10(Double timerate10) {
+        this.timerate10 = timerate10;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate11
+     *
+     * @return the value of statetransitionrates.timerate11
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate11() {
+        return timerate11;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate11
+     *
+     * @param timerate11 the value for statetransitionrates.timerate11
+     *
+     * @mbg.generated
+     */
+    public void setTimerate11(Double timerate11) {
+        this.timerate11 = timerate11;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate12
+     *
+     * @return the value of statetransitionrates.timerate12
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate12() {
+        return timerate12;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate12
+     *
+     * @param timerate12 the value for statetransitionrates.timerate12
+     *
+     * @mbg.generated
+     */
+    public void setTimerate12(Double timerate12) {
+        this.timerate12 = timerate12;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate13
+     *
+     * @return the value of statetransitionrates.timerate13
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate13() {
+        return timerate13;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate13
+     *
+     * @param timerate13 the value for statetransitionrates.timerate13
+     *
+     * @mbg.generated
+     */
+    public void setTimerate13(Double timerate13) {
+        this.timerate13 = timerate13;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate14
+     *
+     * @return the value of statetransitionrates.timerate14
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate14() {
+        return timerate14;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate14
+     *
+     * @param timerate14 the value for statetransitionrates.timerate14
+     *
+     * @mbg.generated
+     */
+    public void setTimerate14(Double timerate14) {
+        this.timerate14 = timerate14;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate15
+     *
+     * @return the value of statetransitionrates.timerate15
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate15() {
+        return timerate15;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate15
+     *
+     * @param timerate15 the value for statetransitionrates.timerate15
+     *
+     * @mbg.generated
+     */
+    public void setTimerate15(Double timerate15) {
+        this.timerate15 = timerate15;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate16
+     *
+     * @return the value of statetransitionrates.timerate16
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate16() {
+        return timerate16;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate16
+     *
+     * @param timerate16 the value for statetransitionrates.timerate16
+     *
+     * @mbg.generated
+     */
+    public void setTimerate16(Double timerate16) {
+        this.timerate16 = timerate16;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate17
+     *
+     * @return the value of statetransitionrates.timerate17
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate17() {
+        return timerate17;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate17
+     *
+     * @param timerate17 the value for statetransitionrates.timerate17
+     *
+     * @mbg.generated
+     */
+    public void setTimerate17(Double timerate17) {
+        this.timerate17 = timerate17;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate18
+     *
+     * @return the value of statetransitionrates.timerate18
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate18() {
+        return timerate18;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate18
+     *
+     * @param timerate18 the value for statetransitionrates.timerate18
+     *
+     * @mbg.generated
+     */
+    public void setTimerate18(Double timerate18) {
+        this.timerate18 = timerate18;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate19
+     *
+     * @return the value of statetransitionrates.timerate19
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate19() {
+        return timerate19;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate19
+     *
+     * @param timerate19 the value for statetransitionrates.timerate19
+     *
+     * @mbg.generated
+     */
+    public void setTimerate19(Double timerate19) {
+        this.timerate19 = timerate19;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate20
+     *
+     * @return the value of statetransitionrates.timerate20
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate20() {
+        return timerate20;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate20
+     *
+     * @param timerate20 the value for statetransitionrates.timerate20
+     *
+     * @mbg.generated
+     */
+    public void setTimerate20(Double timerate20) {
+        this.timerate20 = timerate20;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate21
+     *
+     * @return the value of statetransitionrates.timerate21
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate21() {
+        return timerate21;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate21
+     *
+     * @param timerate21 the value for statetransitionrates.timerate21
+     *
+     * @mbg.generated
+     */
+    public void setTimerate21(Double timerate21) {
+        this.timerate21 = timerate21;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column statetransitionrates.timerate22
+     *
+     * @return the value of statetransitionrates.timerate22
+     *
+     * @mbg.generated
+     */
+    public Double getTimerate22() {
+        return timerate22;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column statetransitionrates.timerate22
+     *
+     * @param timerate22 the value for statetransitionrates.timerate22
+     *
+     * @mbg.generated
+     */
+    public void setTimerate22(Double timerate22) {
+        this.timerate22 = timerate22;
+    }
+}

Різницю між файлами не показано, бо вона завелика
+ 2024 - 0
src/main/java/com/gyee/frame/model/auto/StatetransitionratesExample.java


+ 763 - 0
src/main/java/com/gyee/frame/model/custom/BenchMarkVo.java

@@ -0,0 +1,763 @@
+package com.gyee.frame.model.custom;
+
+import java.util.Date;
+
+public class BenchMarkVo {
+    private String cid;
+    private String lossType;
+    private String pjId;
+    private String pjName;
+    private String lnId;
+    private String lnName;
+    private String wtId;
+    private String wtName;
+    private String wpId;
+    private String wpName;
+    private String zjName;
+    private String zjDate;
+    private Date recordDate;
+    private Integer ordernum;
+    private Integer total;
+    private Double scadazhcydl;// scada综合场用电率
+    private Integer scadazhcydlnum;// scada综合场用电率排名
+    private Double dxklyl;// 等效可利用系数
+    private Integer dxklylnum;// 等效可利用系数排名
+    private Double fdl;// 发电量
+    private Integer fdlnum;// 发电量排名
+    private Double zhcydl;// 综合场用电率
+    private Integer zhcydlnum;// 综合场用电率排名
+    private Double fwjsl;// 复位及时率
+    private Integer fwjslnum;// 复位及时率排名
+    private Integer fwjslfraction;// 复位及时率分数
+    private Double ztzhjsl;// 状态转换及时率
+    private Integer ztzhjslnum;// 状态转换及时率
+    private Integer ztzhjslfraction;// 状态转换分数
+    private Double xqjsl;// 消缺及时率
+    private Integer xqjslnum;// 消缺及时率排名
+    private Integer xqjslfraction;// 消缺及时率分数
+    private Double xqjslFs;//消缺及时率分数(值际)
+    private Double fjhtyssdl;// 非计划停运损失电量
+    private Integer fjhtyssdlnum;// 非计划停运损失电量排名
+    private Double sbyxssdl;// 设备运行状态损失电量
+    private Integer sbyxssdlnum;// 设备运行状态损失电量排名
+    private Double fjhtjsc;// 非计划停机时长
+    private Integer fjhtjscnum;// 非计划停机时长排名
+    private Double qrfshgl;// 切入风速合格率
+    private Integer qrfshglnum;// 切入风速合格率排名
+    private Double edfshgl;// 额定风速合格率
+    private Integer edfshglnum;// 额定风速合格率排名
+    private Double fnlyl;// 风能利用率 发电量/理论发电量
+    private Integer fnlylnum;// 风能利用率 发电量/理论发电量排名
+    private Integer fnlylfraction;// 风能利用率分数
+    private Double gzssl;// 故障损失率 故障损失电量/理论发电量
+    private Integer gzsslnum;// 故障损失率 故障损失电量/理论发电量排名
+    private Integer gzsslfraction;// 故障损失率分数
+    private Double jxssl;// 检修损失率 故障损失电量/理论发电量
+    private Integer jxsslnum;// 检修损失率 故障损失电量/理论发电量排名
+    private Integer jxsslfraction;// 检修损失率分数
+    private Double qfl;// 弃风率 限电损失电量/理论发电量
+    private Integer qflnum;// 弃风率 限电损失电量/理论发电量排名
+    private Integer qflfraction;// 弃风率分数
+    private Double slssl;// 受累损失率 受累损失电量/理论发电量
+    private Integer slsslnum;// 受累损失率 受累损失电量/理论发电量排名
+    private Integer slsslfraction;// 受累损失率分数
+    private Double xnssl;// 性能损失率 欠发损失电量/理论发电量
+    private Integer xnsslnum;// 性能损失率 欠发损失电量/理论发电量排名
+    private Integer xnsslfraction;// 性能损失率 欠发损失电量/理论发电量排名
+    private Double scadafdl;// scada发电量
+    private Integer scadafdlnum;
+    private Double qfss;// 欠发损失
+    private Integer qfssnum;
+    private Double gzss;// 故障损失
+    private Integer gzssnum;
+    private Double whss;// 维护损失
+    private Integer whssnum;
+    private Double xdss;// 限电损失
+    private Integer xdssnum;
+    private Double slss;// 受累损失
+    private Integer slssnum;
+    private Integer fwcs;// 复位次数
+    private Integer fwzcs;// 复位总次数
+    private Integer ztcs;// 状态次数
+    private Integer ztzcs;// 状态总次数
+    private Integer xqcs;// 消缺次数
+    private Integer xqzcs;// 消缺总次数
+    private Integer gzcs;// 故障次数
+    private Integer fjts;// 风机台数
+    private Double gzcsradio;// 故障率
+    private Double gzcsrDf;//故障率得分
+    private Double total1;//分数   --奚博新加属性  用于比武总分
+    
+    public Integer getFjts() {
+        return fjts;
+    }
+
+    public void setFjts(Integer fjts) {
+        this.fjts = fjts;
+    }
+
+    public Integer getGzcs() {
+        return gzcs;
+    }
+
+    public void setGzcs(Integer gzcs) {
+        this.gzcs = gzcs;
+    }
+
+    public Double getGzcsradio() {
+        return gzcsradio;
+    }
+
+    public void setGzcsradio(Double gzcsradio) {
+        this.gzcsradio = gzcsradio;
+    }
+
+    public String getWtId() {
+        return wtId;
+    }
+
+    public void setWtId(String wtId) {
+        this.wtId = wtId;
+    }
+
+    public String getWtName() {
+        return wtName;
+    }
+
+    public void setWtName(String wtName) {
+        this.wtName = wtName;
+    }
+
+    public String getWpId() {
+        return wpId;
+    }
+
+    public void setWpId(String wpId) {
+        this.wpId = wpId;
+    }
+
+    public String getWpName() {
+        return wpName;
+    }
+
+    public void setWpName(String wpName) {
+        this.wpName = wpName;
+    }
+
+    public String getZjName() {
+        return zjName;
+    }
+
+    public void setZjName(String zjName) {
+        this.zjName = zjName;
+    }
+
+    public String getZjDate() {
+        return zjDate;
+    }
+
+    public void setZjDate(String zjDate) {
+        this.zjDate = zjDate;
+    }
+
+    public Date getRecordDate() {
+        return recordDate;
+    }
+
+    public void setRecordDate(Date recordDate) {
+        this.recordDate = recordDate;
+    }
+
+    public Integer getOrdernum() {
+        return ordernum;
+    }
+
+    public void setOrdernum(Integer ordernum) {
+        this.ordernum = ordernum;
+    }
+
+    public Integer getTotal() {
+        return total;
+    }
+
+    public void setTotal(Integer total) {
+        this.total = total;
+    }
+
+    public Double getScadazhcydl() {
+        return scadazhcydl;
+    }
+
+    public void setScadazhcydl(Double scadazhcydl) {
+        this.scadazhcydl = scadazhcydl;
+    }
+
+    public Integer getScadazhcydlnum() {
+        return scadazhcydlnum;
+    }
+
+    public void setScadazhcydlnum(Integer scadazhcydlnum) {
+        this.scadazhcydlnum = scadazhcydlnum;
+    }
+
+    public Double getDxklyl() {
+        return dxklyl;
+    }
+
+    public void setDxklyl(Double dxklyl) {
+        this.dxklyl = dxklyl;
+    }
+
+    public Integer getDxklylnum() {
+        return dxklylnum;
+    }
+
+    public void setDxklylnum(Integer dxklylnum) {
+        this.dxklylnum = dxklylnum;
+    }
+
+    public Double getFdl() {
+        return fdl;
+    }
+
+    public void setFdl(Double fdl) {
+        this.fdl = fdl;
+    }
+
+    public Integer getFdlnum() {
+        return fdlnum;
+    }
+
+    public void setFdlnum(Integer fdlnum) {
+        this.fdlnum = fdlnum;
+    }
+
+    public Double getZhcydl() {
+        return zhcydl;
+    }
+
+    public void setZhcydl(Double zhcydl) {
+        this.zhcydl = zhcydl;
+    }
+
+    public Integer getZhcydlnum() {
+        return zhcydlnum;
+    }
+
+    public void setZhcydlnum(Integer zhcydlnum) {
+        this.zhcydlnum = zhcydlnum;
+    }
+
+    public Double getFwjsl() {
+        return fwjsl;
+    }
+
+    public void setFwjsl(Double fwjsl) {
+        this.fwjsl = fwjsl;
+    }
+
+    public Integer getFwjslnum() {
+        return fwjslnum;
+    }
+
+    public void setFwjslnum(Integer fwjslnum) {
+        this.fwjslnum = fwjslnum;
+    }
+
+    public Double getZtzhjsl() {
+        return ztzhjsl;
+    }
+
+    public void setZtzhjsl(Double ztzhjsl) {
+        this.ztzhjsl = ztzhjsl;
+    }
+
+    public Integer getZtzhjslnum() {
+        return ztzhjslnum;
+    }
+
+    public void setZtzhjslnum(Integer ztzhjslnum) {
+        this.ztzhjslnum = ztzhjslnum;
+    }
+
+    public Double getXqjsl() {
+        return xqjsl;
+    }
+
+    public void setXqjsl(Double xqjsl) {
+        this.xqjsl = xqjsl;
+    }
+
+    public Integer getXqjslnum() {
+        return xqjslnum;
+    }
+
+    public void setXqjslnum(Integer xqjslnum) {
+        this.xqjslnum = xqjslnum;
+    }
+
+    public Double getFjhtyssdl() {
+        return fjhtyssdl;
+    }
+
+    public void setFjhtyssdl(Double fjhtyssdl) {
+        this.fjhtyssdl = fjhtyssdl;
+    }
+
+    public Integer getFjhtyssdlnum() {
+        return fjhtyssdlnum;
+    }
+
+    public void setFjhtyssdlnum(Integer fjhtyssdlnum) {
+        this.fjhtyssdlnum = fjhtyssdlnum;
+    }
+
+    public Double getSbyxssdl() {
+        return sbyxssdl;
+    }
+
+    public void setSbyxssdl(Double sbyxssdl) {
+        this.sbyxssdl = sbyxssdl;
+    }
+
+    public Integer getSbyxssdlnum() {
+        return sbyxssdlnum;
+    }
+
+    public void setSbyxssdlnum(Integer sbyxssdlnum) {
+        this.sbyxssdlnum = sbyxssdlnum;
+    }
+
+    public Double getFjhtjsc() {
+        return fjhtjsc;
+    }
+
+    public void setFjhtjsc(Double fjhtjsc) {
+        this.fjhtjsc = fjhtjsc;
+    }
+
+    public Integer getFjhtjscnum() {
+        return fjhtjscnum;
+    }
+
+    public void setFjhtjscnum(Integer fjhtjscnum) {
+        this.fjhtjscnum = fjhtjscnum;
+    }
+
+    public Double getQrfshgl() {
+        return qrfshgl;
+    }
+
+    public void setQrfshgl(Double qrfshgl) {
+        this.qrfshgl = qrfshgl;
+    }
+
+    public Integer getQrfshglnum() {
+        return qrfshglnum;
+    }
+
+    public void setQrfshglnum(Integer qrfshglnum) {
+        this.qrfshglnum = qrfshglnum;
+    }
+
+    public Double getEdfshgl() {
+        return edfshgl;
+    }
+
+    public void setEdfshgl(Double edfshgl) {
+        this.edfshgl = edfshgl;
+    }
+
+    public Integer getEdfshglnum() {
+        return edfshglnum;
+    }
+
+    public void setEdfshglnum(Integer edfshglnum) {
+        this.edfshglnum = edfshglnum;
+    }
+
+    public Double getFnlyl() {
+        return fnlyl;
+    }
+
+    public void setFnlyl(Double fnlyl) {
+        this.fnlyl = fnlyl;
+    }
+
+    public Integer getFnlylnum() {
+        return fnlylnum;
+    }
+
+    public void setFnlylnum(Integer fnlylnum) {
+        this.fnlylnum = fnlylnum;
+    }
+
+    public Double getGzssl() {
+        return gzssl;
+    }
+
+    public void setGzssl(Double gzssl) {
+        this.gzssl = gzssl;
+    }
+
+    public Integer getGzsslnum() {
+        return gzsslnum;
+    }
+
+    public void setGzsslnum(Integer gzsslnum) {
+        this.gzsslnum = gzsslnum;
+    }
+
+    public Double getJxssl() {
+        return jxssl;
+    }
+
+    public void setJxssl(Double jxssl) {
+        this.jxssl = jxssl;
+    }
+
+    public Integer getJxsslnum() {
+        return jxsslnum;
+    }
+
+    public void setJxsslnum(Integer jxsslnum) {
+        this.jxsslnum = jxsslnum;
+    }
+
+    public Double getQfl() {
+        return qfl;
+    }
+
+    public void setQfl(Double qfl) {
+        this.qfl = qfl;
+    }
+
+    public Integer getQflnum() {
+        return qflnum;
+    }
+
+    public void setQflnum(Integer qflnum) {
+        this.qflnum = qflnum;
+    }
+
+    public Double getSlssl() {
+        return slssl;
+    }
+
+    public void setSlssl(Double slssl) {
+        this.slssl = slssl;
+    }
+
+    public Integer getSlsslnum() {
+        return slsslnum;
+    }
+
+    public void setSlsslnum(Integer slsslnum) {
+        this.slsslnum = slsslnum;
+    }
+
+    public Double getScadafdl() {
+        return scadafdl;
+    }
+
+    public void setScadafdl(Double scadafdl) {
+        this.scadafdl = scadafdl;
+    }
+
+    public Integer getScadafdlnum() {
+        return scadafdlnum;
+    }
+
+    public void setScadafdlnum(Integer scadafdlnum) {
+        this.scadafdlnum = scadafdlnum;
+    }
+
+    public Double getQfss() {
+        return qfss;
+    }
+
+    public void setQfss(Double qfss) {
+        this.qfss = qfss;
+    }
+
+    public Integer getQfssnum() {
+        return qfssnum;
+    }
+
+    public void setQfssnum(Integer qfssnum) {
+        this.qfssnum = qfssnum;
+    }
+
+    public Double getGzss() {
+        return gzss;
+    }
+
+    public void setGzss(Double gzss) {
+        this.gzss = gzss;
+    }
+
+    public Integer getGzssnum() {
+        return gzssnum;
+    }
+
+    public void setGzssnum(Integer gzssnum) {
+        this.gzssnum = gzssnum;
+    }
+
+    public Double getWhss() {
+        return whss;
+    }
+
+    public void setWhss(Double whss) {
+        this.whss = whss;
+    }
+
+    public Integer getWhssnum() {
+        return whssnum;
+    }
+
+    public void setWhssnum(Integer whssnum) {
+        this.whssnum = whssnum;
+    }
+
+    public Double getXdss() {
+        return xdss;
+    }
+
+    public void setXdss(Double xdss) {
+        this.xdss = xdss;
+    }
+
+    public Integer getXdssnum() {
+        return xdssnum;
+    }
+
+    public void setXdssnum(Integer xdssnum) {
+        this.xdssnum = xdssnum;
+    }
+
+    public Double getSlss() {
+        return slss;
+    }
+
+    public void setSlss(Double slss) {
+        this.slss = slss;
+    }
+
+    public Integer getSlssnum() {
+        return slssnum;
+    }
+
+    public void setSlssnum(Integer slssnum) {
+        this.slssnum = slssnum;
+    }
+
+    public Integer getFwcs() {
+        return fwcs;
+    }
+
+    public void setFwcs(Integer fwcs) {
+        this.fwcs = fwcs;
+    }
+
+    public Integer getFwzcs() {
+        return fwzcs;
+    }
+
+    public void setFwzcs(Integer fwzcs) {
+        this.fwzcs = fwzcs;
+    }
+
+    public Integer getZtcs() {
+        return ztcs;
+    }
+
+    public void setZtcs(Integer ztcs) {
+        this.ztcs = ztcs;
+    }
+
+    public Integer getZtzcs() {
+        return ztzcs;
+    }
+
+    public void setZtzcs(Integer ztzcs) {
+        this.ztzcs = ztzcs;
+    }
+
+    public Integer getXqcs() {
+        return xqcs;
+    }
+
+    public void setXqcs(Integer xqcs) {
+        this.xqcs = xqcs;
+    }
+
+    public Integer getXqzcs() {
+        return xqzcs;
+    }
+
+    public void setXqzcs(Integer xqzcs) {
+        this.xqzcs = xqzcs;
+    }
+
+    public String getCid() {
+        return cid;
+    }
+
+    public void setCid(String cid) {
+        this.cid = cid;
+    }
+
+    public Double getXnssl() {
+        return xnssl;
+    }
+
+    public void setXnssl(Double xnssl) {
+        this.xnssl = xnssl;
+    }
+
+    public Integer getXnsslnum() {
+        return xnsslnum;
+    }
+
+    public void setXnsslnum(Integer xnsslnum) {
+        this.xnsslnum = xnsslnum;
+    }
+
+    public Integer getFwjslfraction() {
+        return fwjslfraction;
+    }
+
+    public void setFwjslfraction(Integer fwjslfraction) {
+        this.fwjslfraction = fwjslfraction;
+    }
+
+    public Integer getZtzhjslfraction() {
+        return ztzhjslfraction;
+    }
+
+    public void setZtzhjslfraction(Integer ztzhjslfraction) {
+        this.ztzhjslfraction = ztzhjslfraction;
+    }
+
+    public Integer getXqjslfraction() {
+        return xqjslfraction;
+    }
+
+    public void setXqjslfraction(Integer xqjslfraction) {
+        this.xqjslfraction = xqjslfraction;
+    }
+
+    public Integer getFnlylfraction() {
+        return fnlylfraction;
+    }
+
+    public void setFnlylfraction(Integer fnlylfraction) {
+        this.fnlylfraction = fnlylfraction;
+    }
+
+    public Integer getGzsslfraction() {
+        return gzsslfraction;
+    }
+
+    public void setGzsslfraction(Integer gzsslfraction) {
+        this.gzsslfraction = gzsslfraction;
+    }
+
+    public Integer getJxsslfraction() {
+        return jxsslfraction;
+    }
+
+    public void setJxsslfraction(Integer jxsslfraction) {
+        this.jxsslfraction = jxsslfraction;
+    }
+
+    public Integer getQflfraction() {
+        return qflfraction;
+    }
+
+    public void setQflfraction(Integer qflfraction) {
+        this.qflfraction = qflfraction;
+    }
+
+    public Integer getSlsslfraction() {
+        return slsslfraction;
+    }
+
+    public void setSlsslfraction(Integer slsslfraction) {
+        this.slsslfraction = slsslfraction;
+    }
+
+    public Integer getXnsslfraction() {
+        return xnsslfraction;
+    }
+
+    public void setXnsslfraction(Integer xnsslfraction) {
+        this.xnsslfraction = xnsslfraction;
+    }
+
+    public String getLossType() {
+        return lossType;
+    }
+
+    public void setLossType(String lossType) {
+        this.lossType = lossType;
+    }
+
+    public String getPjId() {
+        return pjId;
+    }
+
+    public void setPjId(String pjId) {
+        this.pjId = pjId;
+    }
+
+    public String getPjName() {
+        return pjName;
+    }
+
+    public void setPjName(String pjName) {
+        this.pjName = pjName;
+    }
+
+    public String getLnId() {
+        return lnId;
+    }
+
+    public void setLnId(String lnId) {
+        this.lnId = lnId;
+    }
+
+    public String getLnName() {
+        return lnName;
+    }
+
+    public void setLnName(String lnName) {
+        this.lnName = lnName;
+    }
+
+	public Double getTotal1() {
+		return total1;
+	}
+
+	public void setTotal1(Double total1) {
+		this.total1 = total1;
+	}
+
+	public Double getGzcsrDf() {
+		return gzcsrDf;
+	}
+
+	public void setGzcsrDf(Double gzcsrDf) {
+		this.gzcsrDf = gzcsrDf;
+	}
+
+	public Double getXqjslFs() {
+		return xqjslFs;
+	}
+
+	public void setXqjslFs(Double xqjslFs) {
+		this.xqjslFs = xqjslFs;
+	}
+    
+}

+ 355 - 0
src/main/java/com/gyee/frame/model/custom/DataVo.java

@@ -0,0 +1,355 @@
+
+package com.gyee.frame.model.custom;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:DataVo 类描述: 创建人:石林 创建时间:2014-3-4 下午2:34:22 修改人:shilinno1
+ * 修改时间:2014-3-4 下午2:34:22 修改备注:
+ * 
+ * @version
+ * 
+ */
+
+public class DataVo {
+
+    private Long time;
+    private String timestr;
+    private Double value1;
+
+    private Double value2;
+
+    private Double value3;
+
+    private Double value4;
+
+    private Double value5;
+
+    private Double value6;
+
+    private Double value7;
+
+    private Double value8;
+
+    private Double value9;
+    
+    private Double value10;
+    
+    private Double value11;
+    
+    private Double value12;
+    
+    private Double value13;
+
+    private Double speed;
+
+    private String name;
+
+    private String url;
+
+    private String aName;
+
+    private String desc;
+
+    private String datefomat;
+
+    private Long minRange;
+    private Long pointInterval;
+    private Integer year;
+    private Integer month;
+    private Integer day;
+    private String id;
+    private Integer hours;
+    private Integer minutes;
+    private Integer seconds;
+
+    private Long beginDate;
+    private Long endDate;
+    private Long beginDateDay;
+    private Long endDateDay;
+
+    private String value;
+
+
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public Long getMinRange() {
+        return minRange;
+    }
+
+    public void setMinRange(Long minRange) {
+        this.minRange = minRange;
+    }
+
+    public Long getPointInterval() {
+        return pointInterval;
+    }
+
+    public void setPointInterval(Long pointInterval) {
+        this.pointInterval = pointInterval;
+    }
+
+    public Integer getHours() {
+        return hours;
+    }
+
+    public void setHours(Integer hours) {
+        this.hours = hours;
+    }
+
+    public Integer getMinutes() {
+        return minutes;
+    }
+
+    public void setMinutes(Integer minutes) {
+        this.minutes = minutes;
+    }
+
+    public Integer getSeconds() {
+        return seconds;
+    }
+
+    public void setSeconds(Integer seconds) {
+        this.seconds = seconds;
+    }
+
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public Double getValue1() {
+        return value1;
+    }
+
+    public void setValue1(Double value1) {
+        this.value1 = value1;
+    }
+
+    public Double getValue2() {
+        return value2;
+    }
+
+    public void setValue2(Double value2) {
+        this.value2 = value2;
+    }
+
+    public Double getValue3() {
+        return value3;
+    }
+
+    public void setValue3(Double value3) {
+        this.value3 = value3;
+    }
+
+    public Double getValue4() {
+        return value4;
+    }
+
+    public void setValue4(Double value4) {
+        this.value4 = value4;
+    }
+
+    public Double getValue5() {
+        return value5;
+    }
+
+    public void setValue5(Double value5) {
+        this.value5 = value5;
+    }
+
+    public Double getValue6() {
+        return value6;
+    }
+
+    public void setValue6(Double value6) {
+        this.value6 = value6;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getaName() {
+        return aName;
+    }
+
+    public void setaName(String aName) {
+        this.aName = aName;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getYear() {
+        return year;
+    }
+
+    public void setYear(Integer year) {
+        this.year = year;
+    }
+
+    public Integer getMonth() {
+        return month;
+    }
+
+    public void setMonth(Integer month) {
+        this.month = month;
+    }
+
+    public Integer getDay() {
+        return day;
+    }
+
+    public void setDay(Integer day) {
+        this.day = day;
+    }
+
+    public Long getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Long beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Long getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Long endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getDatefomat() {
+        return datefomat;
+    }
+
+    public void setDatefomat(String datefomat) {
+        this.datefomat = datefomat;
+    }
+
+    public Long getBeginDateDay() {
+        return beginDateDay;
+    }
+
+    public void setBeginDateDay(Long beginDateDay) {
+        this.beginDateDay = beginDateDay;
+    }
+
+    public Long getEndDateDay() {
+        return endDateDay;
+    }
+
+    public void setEndDateDay(Long endDateDay) {
+        this.endDateDay = endDateDay;
+    }
+
+    public String getTimestr() {
+        return timestr;
+    }
+
+    public void setTimestr(String timestr) {
+        this.timestr = timestr;
+    }
+
+    public Double getValue7() {
+        return value7;
+    }
+
+    public void setValue7(Double value7) {
+        this.value7 = value7;
+    }
+
+    public Double getValue8() {
+        return value8;
+    }
+
+    public void setValue8(Double value8) {
+        this.value8 = value8;
+    }
+
+    public Double getValue9() {
+        return value9;
+    }
+
+    public void setValue9(Double value9) {
+        this.value9 = value9;
+    }
+
+	public Double getValue10() {
+		return value10;
+	}
+
+	public void setValue10(Double value10) {
+		this.value10 = value10;
+	}
+
+	public Double getValue11() {
+		return value11;
+	}
+
+	public void setValue11(Double value11) {
+		this.value11 = value11;
+	}
+
+	public Double getValue12() {
+		return value12;
+	}
+
+	public void setValue12(Double value12) {
+		this.value12 = value12;
+	}
+
+	public Double getValue13() {
+		return value13;
+	}
+
+	public void setValue13(Double value13) {
+		this.value13 = value13;
+	}
+
+}

+ 240 - 0
src/main/java/com/gyee/frame/service/FaultEliminateDefectsService.java

@@ -0,0 +1,240 @@
+package com.gyee.frame.service;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseService;
+import com.gyee.frame.common.support.Convert;
+import com.gyee.frame.mapper.auto.FaultEliminateDefectsMapper;
+import com.gyee.frame.model.auto.FaultEliminateDefects;
+import com.gyee.frame.model.auto.FaultEliminateDefectsExample;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * 风机信息表 FaultEliminateDefectsService
+ * @Title: FaultEliminateDefectsService.java 
+ * @Package com.gyee.frame.service 
+ **/
+@Service
+public class FaultEliminateDefectsService implements BaseService<FaultEliminateDefects, FaultEliminateDefectsExample> {
+	@Resource
+	private FaultEliminateDefectsMapper faultEliminateDefectsMapper;
+
+	@Resource
+	private Windturbineinfoday3Service windturbineinfoday3Service;
+	/**
+	 * 分页查询
+	 * @param tablepar
+	 * @param name
+	 * @return
+	 */
+	 public PageInfo<FaultEliminateDefects> list(Tablepar tablepar, String name){
+	        FaultEliminateDefectsExample testExample=new FaultEliminateDefectsExample();
+	        testExample.setOrderByClause("id ASC");
+	        if(name!=null&&!"".equals(name)){
+//	        	testExample.createCriteria().and.andCodeLike("%"+name+"%");
+	        }
+
+	        PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize());
+	        List<FaultEliminateDefects> list= faultEliminateDefectsMapper.selectByExample(testExample);
+	        PageInfo<FaultEliminateDefects> pageInfo = new PageInfo<FaultEliminateDefects>(list);
+	        return  pageInfo;
+	 }
+
+	@Override
+	public int deleteByPrimaryKey(String ids) {
+
+			List<Integer> lista=Convert.toIntArrayList(ids);
+			FaultEliminateDefectsExample example=new FaultEliminateDefectsExample();
+			example.createCriteria().andIdIn(lista);
+			return faultEliminateDefectsMapper.deleteByExample(example);
+
+
+	}
+
+
+	@Override
+	public FaultEliminateDefects selectByPrimaryKey(String id) {
+
+	 	if(StringUtils.isNotEmpty(id))
+		{
+			return faultEliminateDefectsMapper.selectByPrimaryKey(Integer.valueOf(id));
+
+		}
+	 	return new FaultEliminateDefects();
+
+	}
+
+
+	@Override
+	public int updateByPrimaryKeySelective(FaultEliminateDefects record) {
+		return faultEliminateDefectsMapper.updateByPrimaryKeySelective(record);
+	}
+
+
+	/**
+	 * 添加
+	 */
+	@Override
+	public int insertSelective(FaultEliminateDefects record) {
+
+//		//添加雪花主键id
+//		record.setId(SnowflakeIdWorker.getUUID());
+
+
+		return faultEliminateDefectsMapper.insertSelective(record);
+	}
+
+
+	@Override
+	public int updateByExampleSelective(FaultEliminateDefects record, FaultEliminateDefectsExample example) {
+
+		return faultEliminateDefectsMapper.updateByExampleSelective(record, example);
+	}
+
+
+	@Override
+	public int updateByExample(FaultEliminateDefects record, FaultEliminateDefectsExample example) {
+
+		return faultEliminateDefectsMapper.updateByExample(record, example);
+	}
+
+	@Override
+	public List<FaultEliminateDefects> selectByExample(FaultEliminateDefectsExample example) {
+
+		return faultEliminateDefectsMapper.selectByExample(example);
+	}
+
+
+	@Override
+	public long countByExample(FaultEliminateDefectsExample example) {
+
+		return faultEliminateDefectsMapper.countByExample(example);
+	}
+
+
+	@Override
+	public int deleteByExample(FaultEliminateDefectsExample example) {
+
+		return faultEliminateDefectsMapper.deleteByExample(example);
+	}
+
+	public Map<String, FaultEliminateDefects> getFaultEliminateDefectsByWpTotal(String wpId, Date beginDate, Date endDate){
+
+		Map<String, FaultEliminateDefects> stmap = new HashMap<String, FaultEliminateDefects>();
+
+		List<FaultEliminateDefects> list=new ArrayList<>();
+
+		FaultEliminateDefectsExample example=new FaultEliminateDefectsExample();
+		example.setOrderByClause("windpowerstationid ASC");
+
+		FaultEliminateDefectsExample.Criteria criteria =example.createCriteria();
+
+		if(StringUtils.isNotEmpty(wpId))
+		{
+			criteria.andWindpowerstationidEqualTo(wpId);
+		}
+
+		if(beginDate!=null && endDate!=null ){
+
+
+			criteria.andDatetimeGreaterThanOrEqualTo(beginDate).andDatetimeLessThanOrEqualTo(endDate);
+			list= faultEliminateDefectsMapper.selectByExample(example);
+		}
+		if(list!=null)
+		{
+			for(FaultEliminateDefects st:list)
+			{
+
+				if(stmap.containsKey(st.getWindpowerstationid()))
+				{
+					FaultEliminateDefects vo=stmap.get(st.getWindpowerstationid());
+					vo.setWindpowerstationid(st.getWindpowerstationid());
+					vo.setFaultcount(vo.getFaultcount()+st.getFaultcount());
+					vo.setRightcount(vo.getRightcount()+st.getRightcount());
+					stmap.put(vo.getWindpowerstationid(), vo);
+				}else
+				{
+					FaultEliminateDefects vo=new FaultEliminateDefects();
+					vo.setWindpowerstationid(st.getWindpowerstationid());
+					vo.setFaultcount(st.getFaultcount());
+					vo.setRightcount(st.getRightcount());
+					stmap.put(vo.getWindpowerstationid(), vo);
+				}
+
+			}
+		}
+		return stmap;
+	}
+
+	public Map<String, FaultEliminateDefects> getFaultEliminateDefectsByWtTotal(String id, Date beginDate, Date endDate,int type){
+
+		Map<String, FaultEliminateDefects> stmap = new HashMap<String, FaultEliminateDefects>();
+
+		List<FaultEliminateDefects> list=new ArrayList<>();
+
+		FaultEliminateDefectsExample example=new FaultEliminateDefectsExample();
+		example.setOrderByClause("windpowerstationid ASC");
+
+		FaultEliminateDefectsExample.Criteria criteria =example.createCriteria();
+
+		if(StringUtils.notEmp(type))
+		{
+			switch (type) {
+				case 1:
+
+					if(StringUtils.notEmp(id)){
+						criteria.andWindpowerstationidEqualTo(id);
+					}
+					break;
+				case 2:
+					if(StringUtils.notEmp(id)){
+						criteria.andProjectidEqualTo(id);
+					}
+					break;
+				case 3:
+					if(StringUtils.notEmp(id)){
+						criteria.andLineidEqualTo(id);
+					}
+					break;
+				default:
+					break;
+			}
+		}
+
+		if(beginDate!=null && endDate!=null ){
+
+
+			criteria.andDatetimeGreaterThanOrEqualTo(beginDate).andDatetimeLessThanOrEqualTo(endDate);
+			list= faultEliminateDefectsMapper.selectByExample(example);
+		}
+		if(list!=null)
+		{
+			for(FaultEliminateDefects st:list)
+			{
+
+				if(stmap.containsKey(st.getWindpowerstationid()))
+				{
+					FaultEliminateDefects vo=stmap.get(st.getWindpowerstationid());
+					vo.setWindpowerstationid(st.getWindpowerstationid());
+					vo.setFaultcount(vo.getFaultcount()+st.getFaultcount());
+					vo.setRightcount(vo.getRightcount()+st.getRightcount());
+					stmap.put(vo.getWindpowerstationid(), vo);
+				}else
+				{
+					FaultEliminateDefects vo=new FaultEliminateDefects();
+					vo.setWindpowerstationid(st.getWindpowerstationid());
+					vo.setFaultcount(st.getFaultcount());
+					vo.setRightcount(st.getRightcount());
+					stmap.put(vo.getWindpowerstationid(), vo);
+				}
+
+			}
+		}
+		return stmap;
+	}
+}

+ 313 - 0
src/main/java/com/gyee/frame/service/StatetransitionratesService.java

@@ -0,0 +1,313 @@
+package com.gyee.frame.service;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseService;
+import com.gyee.frame.common.support.Convert;
+import com.gyee.frame.mapper.auto.StatetransitionratesMapper;
+import com.gyee.frame.model.auto.Statetransitionrates;
+import com.gyee.frame.model.auto.StatetransitionratesExample;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * 风机信息表 StatetransitionratesService
+ * @Title: StatetransitionratesService.java 
+ * @Package com.gyee.frame.service 
+ **/
+@Service
+public class StatetransitionratesService implements BaseService<Statetransitionrates, StatetransitionratesExample> {
+	@Resource
+	private StatetransitionratesMapper statetransitionratesMapper;
+
+	@Resource
+	private Windturbineinfoday3Service windturbineinfoday3Service;
+	/**
+	 * 分页查询
+	 * @param tablepar
+	 * @param name
+	 * @return
+	 */
+	 public PageInfo<Statetransitionrates> list(Tablepar tablepar, String name){
+	        StatetransitionratesExample testExample=new StatetransitionratesExample();
+	        testExample.setOrderByClause("id ASC");
+	        if(name!=null&&!"".equals(name)){
+//	        	testExample.createCriteria().and.andCodeLike("%"+name+"%");
+	        }
+
+	        PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize());
+	        List<Statetransitionrates> list= statetransitionratesMapper.selectByExample(testExample);
+	        PageInfo<Statetransitionrates> pageInfo = new PageInfo<Statetransitionrates>(list);
+	        return  pageInfo;
+	 }
+
+	@Override
+	public int deleteByPrimaryKey(String ids) {
+
+			List<Integer> lista=Convert.toIntArrayList(ids);
+			StatetransitionratesExample example=new StatetransitionratesExample();
+			example.createCriteria().andIdIn(lista);
+			return statetransitionratesMapper.deleteByExample(example);
+
+
+	}
+
+
+	@Override
+	public Statetransitionrates selectByPrimaryKey(String id) {
+
+	 	if(StringUtils.isNotEmpty(id))
+		{
+			return statetransitionratesMapper.selectByPrimaryKey(Integer.valueOf(id));
+
+		}
+	 	return new Statetransitionrates();
+
+	}
+
+
+	@Override
+	public int updateByPrimaryKeySelective(Statetransitionrates record) {
+		return statetransitionratesMapper.updateByPrimaryKeySelective(record);
+	}
+
+
+	/**
+	 * 添加
+	 */
+	@Override
+	public int insertSelective(Statetransitionrates record) {
+
+//		//添加雪花主键id
+//		record.setId(SnowflakeIdWorker.getUUID());
+
+
+		return statetransitionratesMapper.insertSelective(record);
+	}
+
+
+	@Override
+	public int updateByExampleSelective(Statetransitionrates record, StatetransitionratesExample example) {
+
+		return statetransitionratesMapper.updateByExampleSelective(record, example);
+	}
+
+
+	@Override
+	public int updateByExample(Statetransitionrates record, StatetransitionratesExample example) {
+
+		return statetransitionratesMapper.updateByExample(record, example);
+	}
+
+	@Override
+	public List<Statetransitionrates> selectByExample(StatetransitionratesExample example) {
+
+		return statetransitionratesMapper.selectByExample(example);
+	}
+
+
+	@Override
+	public long countByExample(StatetransitionratesExample example) {
+
+		return statetransitionratesMapper.countByExample(example);
+	}
+
+
+	@Override
+	public int deleteByExample(StatetransitionratesExample example) {
+
+		return statetransitionratesMapper.deleteByExample(example);
+	}
+
+	public Map<String, Statetransitionrates>  getStatetransitionratesByWpTotal(String wpId, Date beginDate, Date endDate){
+
+		Map<String, Statetransitionrates> stmap = new HashMap<String, Statetransitionrates>();
+
+		List<Statetransitionrates> list=new ArrayList<>();
+
+		StatetransitionratesExample example=new StatetransitionratesExample();
+		example.setOrderByClause("windpwoerid ASC");
+
+		StatetransitionratesExample.Criteria criteria =example.createCriteria();
+
+		if(StringUtils.isNotEmpty(wpId))
+		{
+			criteria.andWindpwoeridEqualTo(wpId);
+		}
+		if(beginDate!=null && endDate!=null){
+
+
+			criteria.andRecorddateGreaterThanOrEqualTo(beginDate).andRecorddateLessThanOrEqualTo(endDate);
+			list= statetransitionratesMapper.selectByExample(example);
+		}
+		if(list!=null)
+		{
+			for(Statetransitionrates st:list)
+			{
+
+				if(stmap.containsKey(st.getWindpwoerid()))
+				{
+					Statetransitionrates vo=stmap.get(st.getWindpwoerid());
+					vo.setWindpwoerid(st.getWindpwoerid());
+					vo.setTimerate1(vo.getTimerate1()+st.getTimerate1());
+					vo.setTimerate2(vo.getTimerate2()+st.getTimerate2());
+					vo.setTimerate3(vo.getTimerate3()+st.getTimerate3());
+					vo.setTimerate4(vo.getTimerate4()+st.getTimerate4());
+					vo.setTimerate5(vo.getTimerate5()+st.getTimerate5());
+					vo.setTimerate6(vo.getTimerate6()+st.getTimerate6());
+					vo.setTimerate7(vo.getTimerate7()+st.getTimerate7());
+					vo.setTimerate8(vo.getTimerate8()+st.getTimerate8());
+					vo.setTimerate9(vo.getTimerate9()+st.getTimerate9());
+					vo.setTimerate10(vo.getTimerate10()+st.getTimerate10());
+					vo.setTimerate11(vo.getTimerate11()+st.getTimerate11());
+					vo.setTimerate12(vo.getTimerate12()+st.getTimerate12());
+					vo.setTimerate13(vo.getTimerate13()+st.getTimerate13());
+					vo.setTimerate14(vo.getTimerate14()+st.getTimerate14());
+					vo.setTimerate15(vo.getTimerate15()+st.getTimerate15());
+					vo.setTimerate16(vo.getTimerate16()+st.getTimerate16());
+					vo.setTimerate17(vo.getTimerate17()+st.getTimerate17());
+					vo.setTimerate18(vo.getTimerate18()+st.getTimerate18());
+					vo.setTimerate19(vo.getTimerate19()+st.getTimerate19());
+					vo.setTimerate20(vo.getTimerate20()+st.getTimerate20());
+					stmap.put(vo.getWindpwoerid(), vo);
+				}else
+				{
+					Statetransitionrates vo=new Statetransitionrates();
+					vo.setWindpwoerid(st.getWindpwoerid());
+					vo.setTimerate1(st.getTimerate1());
+					vo.setTimerate2(st.getTimerate2());
+					vo.setTimerate3(st.getTimerate3());
+					vo.setTimerate4(st.getTimerate4());
+					vo.setTimerate5(st.getTimerate5());
+					vo.setTimerate6(st.getTimerate6());
+					vo.setTimerate7(st.getTimerate7());
+					vo.setTimerate8(st.getTimerate8());
+					vo.setTimerate9(st.getTimerate9());
+					vo.setTimerate10(st.getTimerate10());
+					vo.setTimerate11(st.getTimerate11());
+					vo.setTimerate12(st.getTimerate12());
+					vo.setTimerate13(st.getTimerate13());
+					vo.setTimerate14(st.getTimerate14());
+					vo.setTimerate15(st.getTimerate15());
+					vo.setTimerate16(st.getTimerate16());
+					vo.setTimerate17(st.getTimerate17());
+					vo.setTimerate18(st.getTimerate18());
+					vo.setTimerate19(st.getTimerate19());
+					vo.setTimerate20(st.getTimerate20());
+					stmap.put(vo.getWindpwoerid(), vo);
+				}
+
+			}
+		}
+		return stmap;
+	}
+
+	public Map<String, Statetransitionrates>  getStatetransitionratesByWtTotal(String id, Date beginDate, Date endDate,int type){
+
+		Map<String, Statetransitionrates> stmap = new HashMap<String, Statetransitionrates>();
+
+		List<Statetransitionrates> list=new ArrayList<>();
+
+		StatetransitionratesExample example=new StatetransitionratesExample();
+		example.setOrderByClause("windpwoerid ASC");
+
+		StatetransitionratesExample.Criteria criteria =example.createCriteria();
+
+
+
+		if(StringUtils.notEmp(type))
+		{
+			switch (type) {
+				case 1:
+
+					if(StringUtils.notEmp(id)){
+						criteria.andWindpwoeridEqualTo(id);
+					}
+					break;
+				case 2:
+					if(StringUtils.notEmp(id)){
+						criteria.andProjectidEqualTo(id);
+					}
+					break;
+				case 3:
+					if(StringUtils.notEmp(id)){
+						criteria.andLineidEqualTo(id);
+					}
+					break;
+				default:
+					break;
+			}
+		}
+		if(beginDate!=null && endDate!=null){
+
+
+			criteria.andRecorddateGreaterThanOrEqualTo(beginDate).andRecorddateLessThanOrEqualTo(endDate);
+			list= statetransitionratesMapper.selectByExample(example);
+		}
+		if(list!=null)
+		{
+			for(Statetransitionrates st:list)
+			{
+
+				if(stmap.containsKey(st.getWindpwoerid()))
+				{
+					Statetransitionrates vo=stmap.get(st.getWindpwoerid());
+					vo.setWindpwoerid(st.getWindpwoerid());
+					vo.setTimerate1(vo.getTimerate1()+st.getTimerate1());
+					vo.setTimerate2(vo.getTimerate2()+st.getTimerate2());
+					vo.setTimerate3(vo.getTimerate3()+st.getTimerate3());
+					vo.setTimerate4(vo.getTimerate4()+st.getTimerate4());
+					vo.setTimerate5(vo.getTimerate5()+st.getTimerate5());
+					vo.setTimerate6(vo.getTimerate6()+st.getTimerate6());
+					vo.setTimerate7(vo.getTimerate7()+st.getTimerate7());
+					vo.setTimerate8(vo.getTimerate8()+st.getTimerate8());
+					vo.setTimerate9(vo.getTimerate9()+st.getTimerate9());
+					vo.setTimerate10(vo.getTimerate10()+st.getTimerate10());
+					vo.setTimerate11(vo.getTimerate11()+st.getTimerate11());
+					vo.setTimerate12(vo.getTimerate12()+st.getTimerate12());
+					vo.setTimerate13(vo.getTimerate13()+st.getTimerate13());
+					vo.setTimerate14(vo.getTimerate14()+st.getTimerate14());
+					vo.setTimerate15(vo.getTimerate15()+st.getTimerate15());
+					vo.setTimerate16(vo.getTimerate16()+st.getTimerate16());
+					vo.setTimerate17(vo.getTimerate17()+st.getTimerate17());
+					vo.setTimerate18(vo.getTimerate18()+st.getTimerate18());
+					vo.setTimerate19(vo.getTimerate19()+st.getTimerate19());
+					vo.setTimerate20(vo.getTimerate20()+st.getTimerate20());
+					stmap.put(vo.getWindpwoerid(), vo);
+				}else
+				{
+					Statetransitionrates vo=new Statetransitionrates();
+					vo.setWindpwoerid(st.getWindpwoerid());
+					vo.setTimerate1(st.getTimerate1());
+					vo.setTimerate2(st.getTimerate2());
+					vo.setTimerate3(st.getTimerate3());
+					vo.setTimerate4(st.getTimerate4());
+					vo.setTimerate5(st.getTimerate5());
+					vo.setTimerate6(st.getTimerate6());
+					vo.setTimerate7(st.getTimerate7());
+					vo.setTimerate8(st.getTimerate8());
+					vo.setTimerate9(st.getTimerate9());
+					vo.setTimerate10(st.getTimerate10());
+					vo.setTimerate11(st.getTimerate11());
+					vo.setTimerate12(st.getTimerate12());
+					vo.setTimerate13(st.getTimerate13());
+					vo.setTimerate14(st.getTimerate14());
+					vo.setTimerate15(st.getTimerate15());
+					vo.setTimerate16(st.getTimerate16());
+					vo.setTimerate17(st.getTimerate17());
+					vo.setTimerate18(st.getTimerate18());
+					vo.setTimerate19(st.getTimerate19());
+					vo.setTimerate20(st.getTimerate20());
+					stmap.put(vo.getWindpwoerid(), vo);
+				}
+
+			}
+		}
+		return stmap;
+	}
+
+}

+ 34 - 0
src/main/java/com/gyee/frame/service/Windpowerinfoday3Service.java

@@ -663,4 +663,38 @@ public class Windpowerinfoday3Service implements BaseService<Windpowerinfoday3,
 		}
 	}
 
+
+	public List<Windpowerinfoday3> getWindpowerinfoday3(List<String> wpIds, Date beginDate, Date endDate,String location,String foreignkeyid) {
+
+
+		List<Windpowerinfoday3> list=new ArrayList<>();
+
+		Windpowerinfoday3Example example=new Windpowerinfoday3Example();
+		example.setOrderByClause("windpowerstationid ASC");
+
+		Windpowerinfoday3Example.Criteria criteria =example.createCriteria();
+
+		if(StringUtils.isNotEmpty(wpIds))
+		{
+			criteria.andForeignkeyidIn(wpIds);
+		}
+
+		if(beginDate!=null && endDate!=null ){
+			criteria.andRecorddateGreaterThanOrEqualTo(beginDate).andRecorddateLessThanOrEqualTo(endDate);
+		}
+		if(StringUtils.isNotEmpty(location))
+		{
+			criteria.andLocationEqualTo(location);
+		}
+
+		if(StringUtils.isNotEmpty(foreignkeyid))
+		{
+			criteria.andForeignkeyidLike(foreignkeyid);
+		}
+
+		list= windpowerinfoday3Mapper.selectByExample(example);
+		return list;
+
+	}
+
 }

+ 26 - 3
src/main/java/com/gyee/frame/service/Windturbineinfoday3Service.java

@@ -6,9 +6,7 @@ import com.gyee.frame.common.base.BaseService;
 import com.gyee.frame.common.spring.InitialRunner;
 import com.gyee.frame.common.support.Convert;
 import com.gyee.frame.mapper.auto.Windturbineinfoday3Mapper;
-import com.gyee.frame.model.auto.Windturbine;
-import com.gyee.frame.model.auto.Windturbineinfoday3;
-import com.gyee.frame.model.auto.Windturbineinfoday3Example;
+import com.gyee.frame.model.auto.*;
 import com.gyee.frame.model.custom.Tablepar;
 import com.gyee.frame.util.StringUtils;
 import org.springframework.stereotype.Service;
@@ -786,4 +784,29 @@ public class Windturbineinfoday3Service implements BaseService<Windturbineinfoda
         return resultmap;
 
     }
+
+    public List<Windturbineinfoday3> getWindturbineinfoday3(String wpId, Date beginDate, Date endDate) {
+
+
+        List<Windturbineinfoday3> list=new ArrayList<>();
+
+        Windturbineinfoday3Example example=new Windturbineinfoday3Example();
+        example.setOrderByClause("windpowerstationid ASC");
+
+        Windturbineinfoday3Example.Criteria criteria =example.createCriteria();
+
+        if(StringUtils.isNotEmpty(wpId))
+        {
+            criteria.andWindpowerstationidEqualTo(wpId);
+        }
+
+        if(beginDate!=null && endDate!=null ){
+            criteria.andRecorddateGreaterThanOrEqualTo(beginDate).andRecorddateLessThanOrEqualTo(endDate);
+        }
+
+
+        list= windturbineinfoday3Mapper.selectByExample(example);
+        return list;
+
+    }
 }

+ 342 - 0
src/main/java/com/gyee/frame/service/contrast/ContrastWpService.java

@@ -0,0 +1,342 @@
+package com.gyee.frame.service.contrast;
+
+import com.gyee.frame.common.spring.InitialRunner;
+import com.gyee.frame.model.auto.FaultEliminateDefects;
+import com.gyee.frame.model.auto.Statetransitionrates;
+import com.gyee.frame.model.auto.Windpowerinfoday3;
+import com.gyee.frame.model.auto.Windpowerstation;
+import com.gyee.frame.model.custom.BenchMarkVo;
+import com.gyee.frame.model.custom.DataVo;
+import com.gyee.frame.service.FaultEliminateDefectsService;
+import com.gyee.frame.service.StatetransitionratesService;
+import com.gyee.frame.service.Windpowerinfoday3Service;
+import com.gyee.frame.util.DateUtils;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+
+
+@Service
+public class ContrastWpService {
+	@Resource
+	private Windpowerinfoday3Service windpowerinfoday3Service;
+	@Autowired
+	private FaultEliminateDefectsService faultEliminateDefectsService;
+	@Autowired
+	private StatetransitionratesService statetransitionratesService;
+
+	public List<DataVo> findWpPowerChat(List<String> wpIds, Date beginDate, Date endDate){
+
+		List<DataVo> vos = new ArrayList<DataVo>();
+
+		List<Windpowerinfoday3> ls =  windpowerinfoday3Service.getWindpowerinfoday3(wpIds,  beginDate,  endDate,"windpower","%FDC");
+
+		Map<String, Windpowerstation> wpmap = InitialRunner.wpmap;
+		Map<String, DataVo> vomap = new HashMap<String, DataVo>();
+		if (!ls.isEmpty()) {
+			for (int i = 0; i < ls.size(); i++) {
+				Windpowerinfoday3 wd = ls.get(i);
+				if (vomap.containsKey(wd.getWindpowerstationid())) {
+					DataVo vo = vomap.get(wd.getWindpowerstationid());
+					double losspower1 = null != wd.getDaynhxdssdl2() ? wd.getDaynhxdssdl2() : 0.0;
+					double losspower2 = null != wd.getDaynhgzssdl2() ? wd.getDaynhgzssdl2() : 0.0;
+					double losspower3 = null != wd.getDaynhwhssdl2() ? wd.getDaynhwhssdl2() : 0.0;
+					double losspower4 = null != wd.getDaynhqfdl2() ? wd.getDaynhqfdl2() : 0.0;
+
+					double fdl = null != wd.getDaydl2() ? wd.getDaydl2() : 0.0;
+
+					vo.setValue1(vo.getValue1() + losspower1);// 限电损失
+					vo.setValue2(vo.getValue2() + losspower2);// 故障损失
+					vo.setValue3(vo.getValue3() + losspower3);// 维护损失
+					vo.setValue4(vo.getValue4() + losspower4);// 欠发损失
+					vo.setValue5(0.0);// 受累损失
+					vo.setValue6(vo.getValue6() + fdl);// 发电量
+					vomap.put(wd.getWindpowerstationid(), vo);
+				} else {
+					DataVo vo = new DataVo();
+
+					vo.setValue1(null != wd.getDaynhxdssdl2() ? wd.getDaynhxdssdl2() : 0.0);// 限电损失
+					vo.setValue2(null != wd.getDaynhgzssdl2() ? wd.getDaynhgzssdl2() : 0.0);// 故障损失
+					vo.setValue3(null != wd.getDaynhwhssdl2() ? wd.getDaynhwhssdl2() : 0.0);// 维护损失
+					vo.setValue4(null != wd.getDaynhqfdl2() ? wd.getDaynhqfdl2() : 0.0);// 欠发损失
+
+					vo.setValue5(0.0);// 受累损失
+					vo.setValue6(null != wd.getDaydl2() ? (new BigDecimal(wd.getDaydl2()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue()) : 0.0);// 发电量
+					// vo.setValue7(null != wd.getGridelectricity() ?
+					// wd.getGridelectricity() : 0.0);// 上网电量
+					// vo.setValue8(null != wd.getBuyelectricity() ?
+					// wd.getBuyelectricity() : 0.0);// 购网电量
+
+					vo.setTime(DateUtils.truncate(DateUtils.addDays(wd.getRecorddate(), 1)).getTime());
+					if (wpmap.containsKey(wd.getWindpowerstationid())) {
+						Windpowerstation wp = wpmap.get(wd.getWindpowerstationid());
+						vo.setName(wp.getName());
+					}
+					vomap.put(wd.getWindpowerstationid(), vo);
+				}
+
+			}
+			Set<Map.Entry<String, DataVo>> set = vomap.entrySet();
+			for (Iterator<Map.Entry<String, DataVo>> it = set.iterator(); it.hasNext();) {
+				Map.Entry<String, DataVo> entry = (Map.Entry<String, DataVo>) it.next();
+				// System.out.println(entry.getKey() + "--->" +
+				// entry.getValue());
+				DataVo vo = entry.getValue();
+				vo.setValue1(new BigDecimal(vo.getValue1()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue());
+				vo.setValue2(new BigDecimal(vo.getValue2()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue());
+				vo.setValue3(new BigDecimal(vo.getValue3()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue());
+				vo.setValue4(new BigDecimal(vo.getValue4()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue());
+				vo.setValue5(StringUtils.round(vo.getValue5(), 2));
+				vo.setValue6(new BigDecimal(vo.getValue6()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).doubleValue());
+				// vo.setValue7(StringUtils.round(vo.getValue7(), 2));
+				// vo.setValue8(StringUtils.round(vo.getValue8(), 2));
+				vos.add(vo);
+			}
+		}
+
+		return vos;
+	}
+
+	public List<BenchMarkVo> benchmarkLossList(String wpId, String beginDate, String endDate) {
+		List<BenchMarkVo> vos = new ArrayList<>();
+		Date tempDate = null;
+		if (StringUtils.isNotEmpty(beginDate) && StringUtils.isNotEmpty(endDate)) {
+			Date begin = DateUtils.parseDate(beginDate);
+			Date end = DateUtils.parseDate(endDate);
+
+			// 获得复位及时率、状态转换及时率数据
+			Map<String, Statetransitionrates> stmap = statetransitionratesService.getStatetransitionratesByWpTotal(null, begin, end);
+			// 获得消缺及时率数据
+			Map<String, FaultEliminateDefects> fdmap = faultEliminateDefectsService.getFaultEliminateDefectsByWpTotal(null, begin, end);
+
+			List<String> wpids = new ArrayList<String>();
+			if (StringUtils.notEmp(wpId)) {
+				if (wpId.indexOf(",") != -1) {
+					String[] strs = wpId.split(",");
+					if (strs.length > 0) {
+						for (int i = 0; i < strs.length; i++) {
+							wpids.add(strs[i]);
+						}
+					}
+				} else {
+					wpids.add(wpId);
+				}
+			}
+			List<Windpowerinfoday3> ls = windpowerinfoday3Service.getWindpowerinfoday3(wpids, begin, end, "windpower", "%FDC");
+
+
+			Map<String, Windpowerstation> wpmap = InitialRunner.wpmap;
+
+			Map<String, Windpowerinfoday3> wdmap = new HashMap<String, Windpowerinfoday3>();
+			if (!ls.isEmpty()) {
+				for (Windpowerinfoday3 wd : ls) {
+					if (wdmap.containsKey(wd.getWindpowerstationid())) {
+						Windpowerinfoday3 w = wdmap.get(wd.getWindpowerstationid());
+						w.setWindpowerstationid(wd.getWindpowerstationid());
+						double losspower1 = null != wd.getDaynhxdssdl() ? wd.getDaynhxdssdl() : 0.0;
+						double losspower2 = null != wd.getDaynhgzssdl() ? wd.getDaynhgzssdl() : 0.0;
+						double losspower3 = null != wd.getDaynhwhssdl() ? wd.getDaynhwhssdl() : 0.0;
+						double losspower4 = null != wd.getDaynhqfdl() ? wd.getDaynhqfdl() : 0.0;
+						double scadafdl = null != wd.getDaydl2() ? wd.getDaydl2() : 0; // scada发电量
+
+						w.setDaynhxdssdl(w.getDaynhxdssdl() + losspower1);
+						w.setDaynhgzssdl(w.getDaynhgzssdl() + losspower2);
+						w.setDaynhwhssdl(w.getDaynhwhssdl() + losspower3);
+						w.setDaynhqfdl(w.getDaynhqfdl() + losspower4);
+						w.setDaydl2(w.getDaydl2() + scadafdl);
+						wdmap.put(wd.getWindpowerstationid(), w);
+					} else {
+						Windpowerinfoday3 w = new Windpowerinfoday3();
+						w.setWindpowerstationid(wd.getWindpowerstationid());
+						double scadafdl = null != wd.getDaydl2() ? wd.getDaydl2() : 0; // scada发电量
+						double losspower1 = null != wd.getDaynhxdssdl() ? wd.getDaynhxdssdl() : 0.0;
+						double losspower2 = null != wd.getDaynhgzssdl() ? wd.getDaynhgzssdl() : 0.0;
+						double losspower3 = null != wd.getDaynhwhssdl() ? wd.getDaynhwhssdl() : 0.0;
+						double losspower4 = null != wd.getDaynhqfdl() ? wd.getDaynhqfdl() : 0.0;
+						w.setDaydl2(scadafdl);
+						w.setDaynhxdssdl(losspower1);
+						w.setDaynhgzssdl(losspower2);
+						w.setDaynhwhssdl(losspower3);
+						w.setDaynhqfdl(losspower4);
+						wdmap.put(wd.getWindpowerstationid(), w);
+					}
+				}
+
+				Set<Map.Entry<String, Windpowerinfoday3>> set = wdmap.entrySet();
+				for (Iterator<Map.Entry<String, Windpowerinfoday3>> it = set.iterator(); it.hasNext(); ) {
+					Map.Entry<String, Windpowerinfoday3> entry = (Map.Entry<String, Windpowerinfoday3>) it.next();
+					// System.out.println(entry.getKey() + "--->" +
+					// entry.getValue());
+
+					Windpowerinfoday3 wd = entry.getValue();
+					String name = null;
+
+					if (wpmap.containsKey(wd.getWindpowerstationid())) {
+						Windpowerstation wp = wpmap.get(wd.getWindpowerstationid());
+						name = wp.getName();
+
+					}
+					BenchMarkVo vo = new BenchMarkVo();
+					vo.setWpId(wd.getWindpowerstationid());
+					vo.setWpName(name);
+					// vo.setRecordDate(DateUtils.truncate(wd.getRecorddate()));
+					double scadafdl = null != wd.getDaydl2() ? (new BigDecimal(wd.getDaydl2()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue()) : 0; // scada发电量
+					double fdl = null != wd.getDaydl2() ? wd.getDaydl2() : 0; // 发电量
+					double qfss = null != wd.getDaynhqfdl() ? (new BigDecimal(wd.getDaynhqfdl()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue()) : 0;// 欠发损失发电量
+					double gzss = null != wd.getDaynhgzssdl() ? (new BigDecimal(wd.getDaynhgzssdl()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue()) : 0;// 故障损失发电量
+					double whss = null != wd.getDaynhwhssdl() ? (new BigDecimal(wd.getDaynhwhssdl()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue()) : 0;// 维护损失发电量
+					double xdss = null != wd.getDaynhxdssdl() ? (new BigDecimal(wd.getDaynhxdssdl()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue()) : 0;// 限电损失发电量
+					double llfdl = scadafdl + qfss + gzss + whss + xdss;// 理论发电量
+					vo.setFdl(fdl);// 发电量
+					vo.setFjhtyssdl(gzss);// 非计划停运损失电量
+					vo.setSbyxssdl(qfss);// 设备运行状态损失电量
+					vo.setSlssl(0.0);// 受累损失电量
+
+					vo.setScadafdl(scadafdl);
+					vo.setGzss(gzss);
+					vo.setWhss(whss);
+					vo.setQfss(qfss);
+					vo.setXdss(xdss);
+					vo.setSlss(0.0);
+
+					if (llfdl != 0) {
+						double temp = xdss;
+
+						BigDecimal b1 = new BigDecimal(temp);
+						BigDecimal b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 弃风率
+						vo.setQfl(temp);
+						temp = qfss;
+
+						b1 = new BigDecimal(temp);
+						b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 性能损失率
+						vo.setXnssl(temp);
+						temp = gzss;
+
+						b1 = new BigDecimal(temp);
+						b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 故障损失率
+						vo.setGzssl(temp);
+
+						temp = whss;
+
+						b1 = new BigDecimal(temp);
+						b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 检修损失率
+						vo.setJxssl(temp);
+						temp = 0;
+
+						b1 = new BigDecimal(temp);
+						b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 受累损失率
+						vo.setSlssl(temp);
+						temp = scadafdl;
+
+						b1 = new BigDecimal(temp);
+						b2 = new BigDecimal(llfdl);
+
+						temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+						// temp 风能利用率
+						vo.setFnlyl(temp);
+					} else {
+						// temp 风能利用率
+						vo.setFnlyl(0.0);
+						// temp 故障损失率
+						vo.setGzssl(0.0);
+						// temp 检修损失率
+						vo.setJxssl(0.0);
+						// temp 弃风率
+						vo.setQfl(0.0);
+						// temp 受累损失率
+						vo.setSlssl(0.0);
+						// temp 性能损失率
+						vo.setXnssl(0.0);
+					}
+
+					if (stmap.containsKey(wd.getWindpowerstationid())) {
+						Statetransitionrates st = stmap.get(wd.getWindpowerstationid());
+
+						double temp1 = st.getTimerate1();// 小于3米5分钟转换及时次数
+						double temp2 = st.getTimerate13();// 小于3米状态转换总次数
+
+						if (temp2 != 0) {
+							double temp = 0;
+
+							BigDecimal b1 = new BigDecimal(temp1);
+							BigDecimal b2 = new BigDecimal(temp2);
+
+							temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+							// temp 复位及时率
+							vo.setFwjsl(temp);
+						} else {
+							vo.setFwjsl(100.0);
+						}
+
+						temp1 = st.getTimerate16();// 5分钟复位及时次数
+						temp2 = st.getTimerate20();// 总复位次数
+
+						if (temp2 != 0) {
+							double temp = 0;
+
+							BigDecimal b1 = new BigDecimal(temp1);
+							BigDecimal b2 = new BigDecimal(temp2);
+
+							temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+							// temp 状态转换及时率
+							vo.setZtzhjsl(temp);
+						} else {
+							vo.setZtzhjsl(100.0);
+						}
+
+					} else {
+						vo.setZtzhjsl(100.0);
+						vo.setFwjsl(100.0);
+					}
+					if (fdmap.containsKey(wd.getWindpowerstationid())) {
+						FaultEliminateDefects fd = fdmap.get(wd.getWindpowerstationid());
+
+						double temp1 = fd.getRightcount();// 消缺及时次数
+						double temp2 = fd.getFaultcount();// 故障次数
+
+						if (temp2 != 0) {
+							double temp = 0;
+
+							BigDecimal b1 = new BigDecimal(temp1);
+							BigDecimal b2 = new BigDecimal(temp2);
+
+							temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+							// temp 消缺及时率
+							vo.setXqjsl(temp);
+						} else {
+							vo.setXqjsl(100.0);
+						}
+
+					} else {
+						vo.setXqjsl(100.0);
+					}
+
+					vos.add(vo);
+
+				}
+			}
+
+		}
+		return vos;
+	}
+}

+ 265 - 0
src/main/java/com/gyee/frame/service/contrast/ContrastWtService.java

@@ -0,0 +1,265 @@
+package com.gyee.frame.service.contrast;
+
+import com.gyee.frame.common.spring.InitialRunner;
+import com.gyee.frame.model.auto.FaultEliminateDefects;
+import com.gyee.frame.model.auto.Statetransitionrates;
+import com.gyee.frame.model.auto.Windturbine;
+import com.gyee.frame.model.auto.Windturbineinfoday3;
+import com.gyee.frame.model.custom.BenchMarkVo;
+import com.gyee.frame.service.FaultEliminateDefectsService;
+import com.gyee.frame.service.StatetransitionratesService;
+import com.gyee.frame.service.Windturbineinfoday3Service;
+import com.gyee.frame.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+
+
+@Service
+public class ContrastWtService {
+	@Resource
+	private Windturbineinfoday3Service windturbineinfoday3Service;
+	@Autowired
+	private FaultEliminateDefectsService faultEliminateDefectsService;
+	@Autowired
+	private StatetransitionratesService statetransitionratesService;
+
+	public List<BenchMarkVo> benchmarkLossWtList(String wpId, String beginDate, String endDate)
+	{
+		List<BenchMarkVo> vos=new ArrayList<>();
+		getBenchMarkInfo(vos,wpId, beginDate, endDate);
+		return vos;
+	}
+	public void getBenchMarkInfo(List<BenchMarkVo> vos,String wpId, String beginDate, String endDate)   {
+		Map<String, BenchMarkVo> bmmap = new HashMap<String, BenchMarkVo>();
+
+		setBenchmarkInfo(bmmap, wpId,DateUtils.parseDate(beginDate),DateUtils.parseDate(endDate));
+
+		Set<Map.Entry<String, BenchMarkVo>> set = bmmap.entrySet();
+		for (Iterator<Map.Entry<String, BenchMarkVo>> it = set.iterator(); it.hasNext();) {
+			Map.Entry<String, BenchMarkVo> entry = (Map.Entry<String, BenchMarkVo>) it.next();
+			// System.out.println(entry.getKey() + "--->" + entry.getValue());
+			BenchMarkVo bm = entry.getValue();
+			totalBenchmarkInfo(bm);
+			vos.add(bm);
+		}
+
+	}
+
+	private void setBenchmarkInfo(Map<String, BenchMarkVo> bmmap, String wpId, Date beginDate, Date endDate) {
+		// 获得复位及时率、状态转换及时率数据
+		Map<String, Statetransitionrates> stmap = statetransitionratesService.getStatetransitionratesByWtTotal(wpId, beginDate, endDate, 1);
+		// 获得消缺及时率数据
+		Map<String, FaultEliminateDefects> fdmap = faultEliminateDefectsService.getFaultEliminateDefectsByWtTotal(wpId, beginDate, endDate, 1);
+
+
+		List<Windturbineinfoday3> ls =windturbineinfoday3Service.getWindturbineinfoday3(wpId, beginDate, endDate) ;
+
+		Map<String, Windturbine> wtmap = InitialRunner.wtmap;
+
+		if (!ls.isEmpty()) {
+			for (Windturbineinfoday3 wd : ls) {
+
+				if (bmmap.containsKey(wd.getWindturbineid())) {
+					BenchMarkVo bm = bmmap.get(wd.getWindturbineid());
+					bm.setScadafdl(bm.getScadafdl() + wd.getDaydl2());
+					bm.setGzss(bm.getGzss() + wd.getDaynhgzssdl());
+					bm.setWhss(bm.getWhss() + wd.getDaynhwhssdl());
+					bm.setQfss(bm.getQfss() + wd.getDaynhqfdl());
+					bm.setXdss(bm.getXdss() + wd.getDaynhxdssdl());
+					bmmap.put(wd.getWindturbineid(), bm);
+				} else {
+					BenchMarkVo bm = new BenchMarkVo();
+					intialBenchMarkTemp(bm);
+					bm.setScadafdl(bm.getScadafdl() + wd.getDaydl2());
+					bm.setGzss(bm.getGzss() + wd.getDaynhgzssdl());
+					bm.setWhss(bm.getWhss() + wd.getDaynhwhssdl());
+					bm.setQfss(bm.getQfss() + wd.getDaynhqfdl());
+					bm.setXdss(bm.getXdss() + wd.getDaynhxdssdl());
+					if (wtmap.containsKey(wd.getWindturbineid())) {
+						Windturbine wt = wtmap.get(wd.getWindturbineid());
+						// bm.setWtName(wt.getName());
+						bm.setWtName(wt.getCode());
+					}
+					bm.setWtId(wd.getWindturbineid());
+
+					if (stmap.containsKey(wd.getWindturbineid())) {
+						Statetransitionrates st = stmap.get(wd.getWindturbineid());
+
+						Double temp1 = st.getTimerate1();// 小于3米5分钟转换及时次数
+						Double temp2 = st.getTimerate13();// 小于3米状态转换总次数
+						bm.setZtcs(bm.getZtcs() + temp1.intValue());
+						bm.setZtzcs(bm.getZtzcs() + temp2.intValue());
+						temp1 = st.getTimerate16();// 5分钟复位及时次数
+						temp2 = st.getTimerate20();// 总复位次数
+						bm.setFwcs(bm.getFwcs() + temp1.intValue());
+						bm.setFwzcs(bm.getFwzcs() + temp2.intValue());
+					}
+					if (fdmap.containsKey(wd.getWindturbineid())) {
+						FaultEliminateDefects fd = fdmap.get(wd.getWindturbineid());
+
+						Integer temp1 = fd.getRightcount();// 消缺及时次数
+						Integer temp2 = fd.getFaultcount();// 故障次数
+
+						bm.setXqcs(bm.getXqcs() + temp1.intValue());
+						bm.setXqzcs(bm.getXqzcs() + temp2.intValue());
+
+					}
+					bmmap.put(wd.getWindturbineid(), bm);
+
+				}
+
+			}
+		}
+	}
+	private void intialBenchMarkTemp(BenchMarkVo bm) {
+		bm.setScadafdl(0.0);
+		bm.setGzss(0.0);
+		bm.setWhss(0.0);
+		bm.setQfss(0.0);
+		bm.setXdss(0.0);
+		bm.setSlss(0.0);
+		bm.setFwcs(0);
+		bm.setFwzcs(0);
+		bm.setZtcs(0);
+		bm.setZtzcs(0);
+		bm.setXqcs(0);
+		bm.setXqzcs(0);
+	}
+
+	private void totalBenchmarkInfo(BenchMarkVo bm) {
+		double scadafdl = bm.getScadafdl(); // scada发电量
+		double qfss = bm.getQfss();// 欠发损失发电量
+		double gzss = bm.getGzss();// 故障损失发电量
+		double whss = bm.getWhss();// 维护损失发电量
+		double xdss = bm.getXdss();// 限电损失发电量
+		double llfdl = scadafdl + qfss + gzss + whss + xdss;// 理论发电量
+
+		if (llfdl != 0) {
+			double temp = xdss;
+
+			BigDecimal b1 = new BigDecimal(temp);
+			BigDecimal b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 弃风率
+			bm.setQfl(temp);
+			temp = qfss;
+
+			b1 = new BigDecimal(temp);
+			b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 性能损失率
+			bm.setXnssl(temp);
+
+			temp = gzss;
+
+			b1 = new BigDecimal(temp);
+			b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 故障损失率
+			bm.setGzssl(temp);
+
+			temp = whss;
+
+			b1 = new BigDecimal(temp);
+			b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 检修损失率
+			bm.setJxssl(temp);
+			temp = 0;
+
+			b1 = new BigDecimal(temp);
+			b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 受累损失率
+			bm.setSlssl(temp);
+			temp = scadafdl;
+
+			b1 = new BigDecimal(temp);
+			b2 = new BigDecimal(llfdl);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 风能利用率
+			bm.setFnlyl(temp);
+			// 受累损失电量
+			bm.setSlssl(0.0);
+		} else {
+			// temp 风能利用率
+			bm.setFnlyl(0.0);
+			// temp 故障损失率
+			bm.setGzssl(0.0);
+			// temp 检修损失率
+			bm.setJxssl(0.0);
+			// temp 弃风率
+			bm.setQfl(0.0);
+			// temp 受累损失率
+			bm.setSlssl(0.0);
+			// 受累损失电量
+			bm.setSlssl(0.0);
+			// temp 性能损失率
+			bm.setXnssl(0.0);
+		}
+
+		if (bm.getFwzcs() != 0) {
+
+			double temp1 = bm.getFwcs();// 5分钟复位及时次数
+			double temp2 = bm.getFwzcs();// 总复位次数
+
+			double temp = 0;
+
+			BigDecimal b1 = new BigDecimal(temp1);
+			BigDecimal b2 = new BigDecimal(temp2);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+			// temp 复位及时率
+			bm.setFwjsl(temp);
+		} else {
+			bm.setFwjsl(100.0);
+		}
+
+		if (bm.getZtzcs() != 0) {
+
+			double temp1 = bm.getZtcs();// 小于3米5分钟转换及时次数
+			double temp2 = bm.getZtzcs();// 小于3米状态转换总次数
+
+			double temp = 0;
+
+			BigDecimal b1 = new BigDecimal(temp1);
+			BigDecimal b2 = new BigDecimal(temp2);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+
+			// temp 状态转换及时率
+			bm.setZtzhjsl(temp);
+		} else {
+			bm.setZtzhjsl(100.0);
+		}
+
+		if (bm.getXqzcs() != 0) {
+
+			double temp1 = bm.getXqcs();// 消缺及时次数
+			double temp2 = bm.getXqzcs();// 故障总次数
+
+			double temp = 0;
+
+			BigDecimal b1 = new BigDecimal(temp1);
+			BigDecimal b2 = new BigDecimal(temp2);
+
+			temp = b1.divide(b2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).doubleValue();
+
+			// temp 消缺及时率
+			bm.setXqjsl(temp);
+		} else {
+			bm.setXqjsl(100.0);
+		}
+	}
+}

Різницю між файлами не показано, бо вона завелика
+ 1033 - 0
src/main/java/com/gyee/frame/util/BenchmarkUtil.java


+ 3 - 0
src/main/java/com/gyee/frame/util/StringUtils.java

@@ -55,7 +55,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
     {
         return !isEmpty(coll);
     }
+    public static int roundToInt(double num) {
 
+        return new BigDecimal(num).setScale(0, RoundingMode.HALF_UP).intValue();
+    }
     /**
      * * 判断一个对象数组是否为空
      * 

+ 2 - 2
src/main/resources/mybatis-generator.xml

@@ -102,7 +102,7 @@
         </table>-->
 
 
-        <table tableName='WindTurbineInfoDay' domainObjectName='WindTurbineInfoDay'/>
-
+        <table tableName='Statetransitionrates' domainObjectName='Statetransitionrates'/>
+        <table tableName='FaultEliminateDefects' domainObjectName='FaultEliminateDefects'/>
     </context>
 </generatorConfiguration>

+ 366 - 0
src/main/resources/mybatis/auto/FaultEliminateDefectsMapper.xml

@@ -0,0 +1,366 @@
+<?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.gyee.frame.mapper.auto.FaultEliminateDefectsMapper">
+  <resultMap id="BaseResultMap" type="com.gyee.frame.model.auto.FaultEliminateDefects">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <id column="id" jdbcType="DECIMAL" property="id" />
+    <result column="WINDPOWERSTATIONID" jdbcType="VARCHAR" property="windpowerstationid" />
+    <result column="WINDTURBINEID" jdbcType="VARCHAR" property="windturbineid" />
+    <result column="PROJECTID" jdbcType="VARCHAR" property="projectid" />
+    <result column="LINEID" jdbcType="VARCHAR" property="lineid" />
+    <result column="DATETIME" jdbcType="TIMESTAMP" property="datetime" />
+    <result column="CLASSIFYID" jdbcType="VARCHAR" property="classifyid" />
+    <result column="faultCount" jdbcType="DECIMAL" property="faultcount" />
+    <result column="rate" jdbcType="DECIMAL" property="rate" />
+    <result column="RIGHTCOUNT" jdbcType="DECIMAL" property="rightcount" />
+    <result column="cause" jdbcType="VARCHAR" property="cause" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    id, WINDPOWERSTATIONID, WINDTURBINEID, PROJECTID, LINEID, DATETIME, CLASSIFYID, faultCount, 
+    rate, RIGHTCOUNT, cause
+  </sql>
+  <select id="selectByExample" parameterType="com.gyee.frame.model.auto.FaultEliminateDefectsExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from faulteliminatedefects
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from faulteliminatedefects
+    where id = #{id,jdbcType=DECIMAL}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    delete from faulteliminatedefects
+    where id = #{id,jdbcType=DECIMAL}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.gyee.frame.model.auto.FaultEliminateDefectsExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    delete from faulteliminatedefects
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.gyee.frame.model.auto.FaultEliminateDefects">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    insert into faulteliminatedefects (id, WINDPOWERSTATIONID, WINDTURBINEID, 
+      PROJECTID, LINEID, DATETIME, 
+      CLASSIFYID, faultCount, rate, 
+      RIGHTCOUNT, cause)
+    values (#{id,jdbcType=DECIMAL}, #{windpowerstationid,jdbcType=VARCHAR}, #{windturbineid,jdbcType=VARCHAR}, 
+      #{projectid,jdbcType=VARCHAR}, #{lineid,jdbcType=VARCHAR}, #{datetime,jdbcType=TIMESTAMP}, 
+      #{classifyid,jdbcType=VARCHAR}, #{faultcount,jdbcType=DECIMAL}, #{rate,jdbcType=DECIMAL}, 
+      #{rightcount,jdbcType=DECIMAL}, #{cause,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.gyee.frame.model.auto.FaultEliminateDefects">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    insert into faulteliminatedefects
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="windpowerstationid != null">
+        WINDPOWERSTATIONID,
+      </if>
+      <if test="windturbineid != null">
+        WINDTURBINEID,
+      </if>
+      <if test="projectid != null">
+        PROJECTID,
+      </if>
+      <if test="lineid != null">
+        LINEID,
+      </if>
+      <if test="datetime != null">
+        DATETIME,
+      </if>
+      <if test="classifyid != null">
+        CLASSIFYID,
+      </if>
+      <if test="faultcount != null">
+        faultCount,
+      </if>
+      <if test="rate != null">
+        rate,
+      </if>
+      <if test="rightcount != null">
+        RIGHTCOUNT,
+      </if>
+      <if test="cause != null">
+        cause,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=DECIMAL},
+      </if>
+      <if test="windpowerstationid != null">
+        #{windpowerstationid,jdbcType=VARCHAR},
+      </if>
+      <if test="windturbineid != null">
+        #{windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="projectid != null">
+        #{projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="lineid != null">
+        #{lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="datetime != null">
+        #{datetime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="classifyid != null">
+        #{classifyid,jdbcType=VARCHAR},
+      </if>
+      <if test="faultcount != null">
+        #{faultcount,jdbcType=DECIMAL},
+      </if>
+      <if test="rate != null">
+        #{rate,jdbcType=DECIMAL},
+      </if>
+      <if test="rightcount != null">
+        #{rightcount,jdbcType=DECIMAL},
+      </if>
+      <if test="cause != null">
+        #{cause,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.gyee.frame.model.auto.FaultEliminateDefectsExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select count(*) from faulteliminatedefects
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update faulteliminatedefects
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=DECIMAL},
+      </if>
+      <if test="record.windpowerstationid != null">
+        WINDPOWERSTATIONID = #{record.windpowerstationid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.windturbineid != null">
+        WINDTURBINEID = #{record.windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.projectid != null">
+        PROJECTID = #{record.projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.lineid != null">
+        LINEID = #{record.lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.datetime != null">
+        DATETIME = #{record.datetime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.classifyid != null">
+        CLASSIFYID = #{record.classifyid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.faultcount != null">
+        faultCount = #{record.faultcount,jdbcType=DECIMAL},
+      </if>
+      <if test="record.rate != null">
+        rate = #{record.rate,jdbcType=DECIMAL},
+      </if>
+      <if test="record.rightcount != null">
+        RIGHTCOUNT = #{record.rightcount,jdbcType=DECIMAL},
+      </if>
+      <if test="record.cause != null">
+        cause = #{record.cause,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update faulteliminatedefects
+    set id = #{record.id,jdbcType=DECIMAL},
+      WINDPOWERSTATIONID = #{record.windpowerstationid,jdbcType=VARCHAR},
+      WINDTURBINEID = #{record.windturbineid,jdbcType=VARCHAR},
+      PROJECTID = #{record.projectid,jdbcType=VARCHAR},
+      LINEID = #{record.lineid,jdbcType=VARCHAR},
+      DATETIME = #{record.datetime,jdbcType=TIMESTAMP},
+      CLASSIFYID = #{record.classifyid,jdbcType=VARCHAR},
+      faultCount = #{record.faultcount,jdbcType=DECIMAL},
+      rate = #{record.rate,jdbcType=DECIMAL},
+      RIGHTCOUNT = #{record.rightcount,jdbcType=DECIMAL},
+      cause = #{record.cause,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.gyee.frame.model.auto.FaultEliminateDefects">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update faulteliminatedefects
+    <set>
+      <if test="windpowerstationid != null">
+        WINDPOWERSTATIONID = #{windpowerstationid,jdbcType=VARCHAR},
+      </if>
+      <if test="windturbineid != null">
+        WINDTURBINEID = #{windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="projectid != null">
+        PROJECTID = #{projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="lineid != null">
+        LINEID = #{lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="datetime != null">
+        DATETIME = #{datetime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="classifyid != null">
+        CLASSIFYID = #{classifyid,jdbcType=VARCHAR},
+      </if>
+      <if test="faultcount != null">
+        faultCount = #{faultcount,jdbcType=DECIMAL},
+      </if>
+      <if test="rate != null">
+        rate = #{rate,jdbcType=DECIMAL},
+      </if>
+      <if test="rightcount != null">
+        RIGHTCOUNT = #{rightcount,jdbcType=DECIMAL},
+      </if>
+      <if test="cause != null">
+        cause = #{cause,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=DECIMAL}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.gyee.frame.model.auto.FaultEliminateDefects">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update faulteliminatedefects
+    set WINDPOWERSTATIONID = #{windpowerstationid,jdbcType=VARCHAR},
+      WINDTURBINEID = #{windturbineid,jdbcType=VARCHAR},
+      PROJECTID = #{projectid,jdbcType=VARCHAR},
+      LINEID = #{lineid,jdbcType=VARCHAR},
+      DATETIME = #{datetime,jdbcType=TIMESTAMP},
+      CLASSIFYID = #{classifyid,jdbcType=VARCHAR},
+      faultCount = #{faultcount,jdbcType=DECIMAL},
+      rate = #{rate,jdbcType=DECIMAL},
+      RIGHTCOUNT = #{rightcount,jdbcType=DECIMAL},
+      cause = #{cause,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=DECIMAL}
+  </update>
+</mapper>

+ 637 - 0
src/main/resources/mybatis/auto/StatetransitionratesMapper.xml

@@ -0,0 +1,637 @@
+<?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.gyee.frame.mapper.auto.StatetransitionratesMapper">
+  <resultMap id="BaseResultMap" type="com.gyee.frame.model.auto.Statetransitionrates">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <id column="ID" jdbcType="INTEGER" property="id" />
+    <result column="windpwoerId" jdbcType="VARCHAR" property="windpwoerid" />
+    <result column="projectId" jdbcType="VARCHAR" property="projectid" />
+    <result column="lineId" jdbcType="VARCHAR" property="lineid" />
+    <result column="windturbineId" jdbcType="VARCHAR" property="windturbineid" />
+    <result column="recordDate" jdbcType="TIMESTAMP" property="recorddate" />
+    <result column="timerate1" jdbcType="DECIMAL" property="timerate1" />
+    <result column="timerate2" jdbcType="DECIMAL" property="timerate2" />
+    <result column="timerate3" jdbcType="DECIMAL" property="timerate3" />
+    <result column="timerate4" jdbcType="DECIMAL" property="timerate4" />
+    <result column="timerate5" jdbcType="DECIMAL" property="timerate5" />
+    <result column="timerate6" jdbcType="DECIMAL" property="timerate6" />
+    <result column="timerate7" jdbcType="DECIMAL" property="timerate7" />
+    <result column="timerate8" jdbcType="DECIMAL" property="timerate8" />
+    <result column="timerate9" jdbcType="DECIMAL" property="timerate9" />
+    <result column="timerate10" jdbcType="DECIMAL" property="timerate10" />
+    <result column="timerate11" jdbcType="DECIMAL" property="timerate11" />
+    <result column="timerate12" jdbcType="DECIMAL" property="timerate12" />
+    <result column="timerate13" jdbcType="DECIMAL" property="timerate13" />
+    <result column="timerate14" jdbcType="DECIMAL" property="timerate14" />
+    <result column="timerate15" jdbcType="DECIMAL" property="timerate15" />
+    <result column="timerate16" jdbcType="DECIMAL" property="timerate16" />
+    <result column="timerate17" jdbcType="DECIMAL" property="timerate17" />
+    <result column="timerate18" jdbcType="DECIMAL" property="timerate18" />
+    <result column="timerate19" jdbcType="DECIMAL" property="timerate19" />
+    <result column="timerate20" jdbcType="DECIMAL" property="timerate20" />
+    <result column="timerate21" jdbcType="DECIMAL" property="timerate21" />
+    <result column="timerate22" jdbcType="DECIMAL" property="timerate22" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    ID, windpwoerId, projectId, lineId, windturbineId, recordDate, timerate1, timerate2, 
+    timerate3, timerate4, timerate5, timerate6, timerate7, timerate8, timerate9, timerate10, 
+    timerate11, timerate12, timerate13, timerate14, timerate15, timerate16, timerate17, 
+    timerate18, timerate19, timerate20, timerate21, timerate22
+  </sql>
+  <select id="selectByExample" parameterType="com.gyee.frame.model.auto.StatetransitionratesExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from statetransitionrates
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from statetransitionrates
+    where ID = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    delete from statetransitionrates
+    where ID = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.gyee.frame.model.auto.StatetransitionratesExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    delete from statetransitionrates
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.gyee.frame.model.auto.Statetransitionrates">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    insert into statetransitionrates (ID, windpwoerId, projectId, 
+      lineId, windturbineId, recordDate, 
+      timerate1, timerate2, timerate3, 
+      timerate4, timerate5, timerate6, 
+      timerate7, timerate8, timerate9, 
+      timerate10, timerate11, timerate12, 
+      timerate13, timerate14, timerate15, 
+      timerate16, timerate17, timerate18, 
+      timerate19, timerate20, timerate21, 
+      timerate22)
+    values (#{id,jdbcType=INTEGER}, #{windpwoerid,jdbcType=VARCHAR}, #{projectid,jdbcType=VARCHAR}, 
+      #{lineid,jdbcType=VARCHAR}, #{windturbineid,jdbcType=VARCHAR}, #{recorddate,jdbcType=TIMESTAMP}, 
+      #{timerate1,jdbcType=DECIMAL}, #{timerate2,jdbcType=DECIMAL}, #{timerate3,jdbcType=DECIMAL}, 
+      #{timerate4,jdbcType=DECIMAL}, #{timerate5,jdbcType=DECIMAL}, #{timerate6,jdbcType=DECIMAL}, 
+      #{timerate7,jdbcType=DECIMAL}, #{timerate8,jdbcType=DECIMAL}, #{timerate9,jdbcType=DECIMAL}, 
+      #{timerate10,jdbcType=DECIMAL}, #{timerate11,jdbcType=DECIMAL}, #{timerate12,jdbcType=DECIMAL}, 
+      #{timerate13,jdbcType=DECIMAL}, #{timerate14,jdbcType=DECIMAL}, #{timerate15,jdbcType=DECIMAL}, 
+      #{timerate16,jdbcType=DECIMAL}, #{timerate17,jdbcType=DECIMAL}, #{timerate18,jdbcType=DECIMAL}, 
+      #{timerate19,jdbcType=DECIMAL}, #{timerate20,jdbcType=DECIMAL}, #{timerate21,jdbcType=DECIMAL}, 
+      #{timerate22,jdbcType=DECIMAL})
+  </insert>
+  <insert id="insertSelective" parameterType="com.gyee.frame.model.auto.Statetransitionrates">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    insert into statetransitionrates
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        ID,
+      </if>
+      <if test="windpwoerid != null">
+        windpwoerId,
+      </if>
+      <if test="projectid != null">
+        projectId,
+      </if>
+      <if test="lineid != null">
+        lineId,
+      </if>
+      <if test="windturbineid != null">
+        windturbineId,
+      </if>
+      <if test="recorddate != null">
+        recordDate,
+      </if>
+      <if test="timerate1 != null">
+        timerate1,
+      </if>
+      <if test="timerate2 != null">
+        timerate2,
+      </if>
+      <if test="timerate3 != null">
+        timerate3,
+      </if>
+      <if test="timerate4 != null">
+        timerate4,
+      </if>
+      <if test="timerate5 != null">
+        timerate5,
+      </if>
+      <if test="timerate6 != null">
+        timerate6,
+      </if>
+      <if test="timerate7 != null">
+        timerate7,
+      </if>
+      <if test="timerate8 != null">
+        timerate8,
+      </if>
+      <if test="timerate9 != null">
+        timerate9,
+      </if>
+      <if test="timerate10 != null">
+        timerate10,
+      </if>
+      <if test="timerate11 != null">
+        timerate11,
+      </if>
+      <if test="timerate12 != null">
+        timerate12,
+      </if>
+      <if test="timerate13 != null">
+        timerate13,
+      </if>
+      <if test="timerate14 != null">
+        timerate14,
+      </if>
+      <if test="timerate15 != null">
+        timerate15,
+      </if>
+      <if test="timerate16 != null">
+        timerate16,
+      </if>
+      <if test="timerate17 != null">
+        timerate17,
+      </if>
+      <if test="timerate18 != null">
+        timerate18,
+      </if>
+      <if test="timerate19 != null">
+        timerate19,
+      </if>
+      <if test="timerate20 != null">
+        timerate20,
+      </if>
+      <if test="timerate21 != null">
+        timerate21,
+      </if>
+      <if test="timerate22 != null">
+        timerate22,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="windpwoerid != null">
+        #{windpwoerid,jdbcType=VARCHAR},
+      </if>
+      <if test="projectid != null">
+        #{projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="lineid != null">
+        #{lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="windturbineid != null">
+        #{windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="recorddate != null">
+        #{recorddate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="timerate1 != null">
+        #{timerate1,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate2 != null">
+        #{timerate2,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate3 != null">
+        #{timerate3,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate4 != null">
+        #{timerate4,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate5 != null">
+        #{timerate5,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate6 != null">
+        #{timerate6,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate7 != null">
+        #{timerate7,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate8 != null">
+        #{timerate8,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate9 != null">
+        #{timerate9,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate10 != null">
+        #{timerate10,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate11 != null">
+        #{timerate11,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate12 != null">
+        #{timerate12,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate13 != null">
+        #{timerate13,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate14 != null">
+        #{timerate14,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate15 != null">
+        #{timerate15,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate16 != null">
+        #{timerate16,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate17 != null">
+        #{timerate17,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate18 != null">
+        #{timerate18,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate19 != null">
+        #{timerate19,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate20 != null">
+        #{timerate20,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate21 != null">
+        #{timerate21,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate22 != null">
+        #{timerate22,jdbcType=DECIMAL},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.gyee.frame.model.auto.StatetransitionratesExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    select count(*) from statetransitionrates
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update statetransitionrates
+    <set>
+      <if test="record.id != null">
+        ID = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.windpwoerid != null">
+        windpwoerId = #{record.windpwoerid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.projectid != null">
+        projectId = #{record.projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.lineid != null">
+        lineId = #{record.lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.windturbineid != null">
+        windturbineId = #{record.windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.recorddate != null">
+        recordDate = #{record.recorddate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.timerate1 != null">
+        timerate1 = #{record.timerate1,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate2 != null">
+        timerate2 = #{record.timerate2,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate3 != null">
+        timerate3 = #{record.timerate3,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate4 != null">
+        timerate4 = #{record.timerate4,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate5 != null">
+        timerate5 = #{record.timerate5,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate6 != null">
+        timerate6 = #{record.timerate6,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate7 != null">
+        timerate7 = #{record.timerate7,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate8 != null">
+        timerate8 = #{record.timerate8,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate9 != null">
+        timerate9 = #{record.timerate9,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate10 != null">
+        timerate10 = #{record.timerate10,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate11 != null">
+        timerate11 = #{record.timerate11,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate12 != null">
+        timerate12 = #{record.timerate12,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate13 != null">
+        timerate13 = #{record.timerate13,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate14 != null">
+        timerate14 = #{record.timerate14,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate15 != null">
+        timerate15 = #{record.timerate15,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate16 != null">
+        timerate16 = #{record.timerate16,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate17 != null">
+        timerate17 = #{record.timerate17,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate18 != null">
+        timerate18 = #{record.timerate18,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate19 != null">
+        timerate19 = #{record.timerate19,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate20 != null">
+        timerate20 = #{record.timerate20,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate21 != null">
+        timerate21 = #{record.timerate21,jdbcType=DECIMAL},
+      </if>
+      <if test="record.timerate22 != null">
+        timerate22 = #{record.timerate22,jdbcType=DECIMAL},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update statetransitionrates
+    set ID = #{record.id,jdbcType=INTEGER},
+      windpwoerId = #{record.windpwoerid,jdbcType=VARCHAR},
+      projectId = #{record.projectid,jdbcType=VARCHAR},
+      lineId = #{record.lineid,jdbcType=VARCHAR},
+      windturbineId = #{record.windturbineid,jdbcType=VARCHAR},
+      recordDate = #{record.recorddate,jdbcType=TIMESTAMP},
+      timerate1 = #{record.timerate1,jdbcType=DECIMAL},
+      timerate2 = #{record.timerate2,jdbcType=DECIMAL},
+      timerate3 = #{record.timerate3,jdbcType=DECIMAL},
+      timerate4 = #{record.timerate4,jdbcType=DECIMAL},
+      timerate5 = #{record.timerate5,jdbcType=DECIMAL},
+      timerate6 = #{record.timerate6,jdbcType=DECIMAL},
+      timerate7 = #{record.timerate7,jdbcType=DECIMAL},
+      timerate8 = #{record.timerate8,jdbcType=DECIMAL},
+      timerate9 = #{record.timerate9,jdbcType=DECIMAL},
+      timerate10 = #{record.timerate10,jdbcType=DECIMAL},
+      timerate11 = #{record.timerate11,jdbcType=DECIMAL},
+      timerate12 = #{record.timerate12,jdbcType=DECIMAL},
+      timerate13 = #{record.timerate13,jdbcType=DECIMAL},
+      timerate14 = #{record.timerate14,jdbcType=DECIMAL},
+      timerate15 = #{record.timerate15,jdbcType=DECIMAL},
+      timerate16 = #{record.timerate16,jdbcType=DECIMAL},
+      timerate17 = #{record.timerate17,jdbcType=DECIMAL},
+      timerate18 = #{record.timerate18,jdbcType=DECIMAL},
+      timerate19 = #{record.timerate19,jdbcType=DECIMAL},
+      timerate20 = #{record.timerate20,jdbcType=DECIMAL},
+      timerate21 = #{record.timerate21,jdbcType=DECIMAL},
+      timerate22 = #{record.timerate22,jdbcType=DECIMAL}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.gyee.frame.model.auto.Statetransitionrates">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update statetransitionrates
+    <set>
+      <if test="windpwoerid != null">
+        windpwoerId = #{windpwoerid,jdbcType=VARCHAR},
+      </if>
+      <if test="projectid != null">
+        projectId = #{projectid,jdbcType=VARCHAR},
+      </if>
+      <if test="lineid != null">
+        lineId = #{lineid,jdbcType=VARCHAR},
+      </if>
+      <if test="windturbineid != null">
+        windturbineId = #{windturbineid,jdbcType=VARCHAR},
+      </if>
+      <if test="recorddate != null">
+        recordDate = #{recorddate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="timerate1 != null">
+        timerate1 = #{timerate1,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate2 != null">
+        timerate2 = #{timerate2,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate3 != null">
+        timerate3 = #{timerate3,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate4 != null">
+        timerate4 = #{timerate4,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate5 != null">
+        timerate5 = #{timerate5,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate6 != null">
+        timerate6 = #{timerate6,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate7 != null">
+        timerate7 = #{timerate7,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate8 != null">
+        timerate8 = #{timerate8,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate9 != null">
+        timerate9 = #{timerate9,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate10 != null">
+        timerate10 = #{timerate10,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate11 != null">
+        timerate11 = #{timerate11,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate12 != null">
+        timerate12 = #{timerate12,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate13 != null">
+        timerate13 = #{timerate13,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate14 != null">
+        timerate14 = #{timerate14,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate15 != null">
+        timerate15 = #{timerate15,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate16 != null">
+        timerate16 = #{timerate16,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate17 != null">
+        timerate17 = #{timerate17,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate18 != null">
+        timerate18 = #{timerate18,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate19 != null">
+        timerate19 = #{timerate19,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate20 != null">
+        timerate20 = #{timerate20,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate21 != null">
+        timerate21 = #{timerate21,jdbcType=DECIMAL},
+      </if>
+      <if test="timerate22 != null">
+        timerate22 = #{timerate22,jdbcType=DECIMAL},
+      </if>
+    </set>
+    where ID = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.gyee.frame.model.auto.Statetransitionrates">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+    -->
+    update statetransitionrates
+    set windpwoerId = #{windpwoerid,jdbcType=VARCHAR},
+      projectId = #{projectid,jdbcType=VARCHAR},
+      lineId = #{lineid,jdbcType=VARCHAR},
+      windturbineId = #{windturbineid,jdbcType=VARCHAR},
+      recordDate = #{recorddate,jdbcType=TIMESTAMP},
+      timerate1 = #{timerate1,jdbcType=DECIMAL},
+      timerate2 = #{timerate2,jdbcType=DECIMAL},
+      timerate3 = #{timerate3,jdbcType=DECIMAL},
+      timerate4 = #{timerate4,jdbcType=DECIMAL},
+      timerate5 = #{timerate5,jdbcType=DECIMAL},
+      timerate6 = #{timerate6,jdbcType=DECIMAL},
+      timerate7 = #{timerate7,jdbcType=DECIMAL},
+      timerate8 = #{timerate8,jdbcType=DECIMAL},
+      timerate9 = #{timerate9,jdbcType=DECIMAL},
+      timerate10 = #{timerate10,jdbcType=DECIMAL},
+      timerate11 = #{timerate11,jdbcType=DECIMAL},
+      timerate12 = #{timerate12,jdbcType=DECIMAL},
+      timerate13 = #{timerate13,jdbcType=DECIMAL},
+      timerate14 = #{timerate14,jdbcType=DECIMAL},
+      timerate15 = #{timerate15,jdbcType=DECIMAL},
+      timerate16 = #{timerate16,jdbcType=DECIMAL},
+      timerate17 = #{timerate17,jdbcType=DECIMAL},
+      timerate18 = #{timerate18,jdbcType=DECIMAL},
+      timerate19 = #{timerate19,jdbcType=DECIMAL},
+      timerate20 = #{timerate20,jdbcType=DECIMAL},
+      timerate21 = #{timerate21,jdbcType=DECIMAL},
+      timerate22 = #{timerate22,jdbcType=DECIMAL}
+    where ID = #{id,jdbcType=INTEGER}
+  </update>
+
+
+</mapper>

+ 77 - 0
src/test/java/test/ContrastTest.java

@@ -0,0 +1,77 @@
+package test;
+
+import com.gyee.SpringbootStart;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.common.spring.SpringUtils;
+import com.gyee.frame.controller.contrast.ContrastController;
+import com.gyee.frame.model.custom.BenchMarkVo;
+import com.gyee.frame.model.custom.Tablepar;
+import lombok.SneakyThrows;
+import org.springframework.boot.SpringApplication;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+public class ContrastTest {
+
+    @SneakyThrows
+    public static void main(String[] args) {
+
+        SpringApplication.run(SpringbootStart.class, args);
+
+
+        Calendar c = Calendar.getInstance();
+
+        c.set(Calendar.HOUR_OF_DAY, 0);
+        c.set(Calendar.MINUTE, 0);
+        c.set(Calendar.SECOND, 0);
+
+        c.set(Calendar.DAY_OF_MONTH,1);
+        c.set(Calendar.MONTH,0);
+        c.set(Calendar.YEAR,2021);
+
+        Date beginDate = c.getTime();
+
+        String wpid="MHS_FDC";
+
+        ContrastController contrastController= SpringUtils.getBean("contrastController");
+//
+//        AjaxResult ajaxResult = dayBenchmarkingController.gadaylist(wpid,"2021-01-01");
+//
+//        List<Windturbineinfodaytop3> test=(List<Windturbineinfodaytop3>)ajaxResult.get("data");
+
+        Tablepar tablepar=new Tablepar();
+        tablepar.setPageNum(1);
+        tablepar.setPageSize(10);
+
+//        AjaxResult ajaxResult = contrastController.benchmarkLossList(tablepar,wpid,"2021-01-01 00:00:00","2021-01-04 00:00:00");
+//
+//        List<BenchMarkVo> test=(List<BenchMarkVo>)ajaxResult.get("data");
+//        for(BenchMarkVo wtd:test)
+//        {
+//            System.out.println(wtd.getDxklyl()+"----------------"+wtd.getEdfshgl());
+//        }
+        //System.out.println(test);
+
+//        AjaxResult ajaxResult = contrastController.findWpPowerOutChat(wpid,"2021-01-01 00:00:00","2021-01-04 00:00:00");
+//        List<DataVo> test=(List<DataVo>)ajaxResult.get("data");
+//        for(DataVo wtd:test)
+//        {
+//            System.out.println(wtd.getValue1()+"----------------"+wtd.getValue2());
+//        }
+
+        AjaxResult ajaxResult = contrastController.benchmarkLossWtList(tablepar,wpid,"2021-01-01 00:00:00","2021-01-04 00:00:00");
+
+        List<BenchMarkVo> test=(List<BenchMarkVo>)ajaxResult.get("data");
+        for(BenchMarkVo wtd:test)
+        {
+            System.out.println(wtd.getDxklyl()+"----------------"+wtd.getEdfshgl());
+        }
+        System.out.println(test);
+    }
+
+
+
+
+}