zy vor 2 Jahren
Ursprung
Commit
9c447a23fc

+ 0 - 15
neim-biz/neim-biz.iml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 31 - 10
neim-biz/src/main/java/com/jiayue/biz/controller/ManualEntryController.java

@@ -2,18 +2,14 @@ package com.jiayue.biz.controller;
 
 import com.jiayue.biz.domain.ProjectInfo;
 import com.jiayue.biz.domain.ProvincialEnergyStations;
+import com.jiayue.biz.domain.StationInfo;
 import com.jiayue.biz.domain.TotalityInfo;
-import com.jiayue.biz.service.ManualEntryService;
-import com.jiayue.biz.service.ProjectInfoService;
-import com.jiayue.biz.service.TotalityInfoService;
+import com.jiayue.biz.service.*;
 import com.jiayue.common.core.controller.BaseController;
 import com.jiayue.common.core.domain.AjaxResult;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -31,6 +27,8 @@ public class ManualEntryController extends BaseController {
     private final ManualEntryService manualEntryService;
     private final TotalityInfoService totalityInfoService;
     private final ProjectInfoService projectInfoService;
+    private final StationInfoService stationInfoService;
+    private final FanModelDataService fanModelDataService;
     /*获取光伏站下拉框,风场站的下拉框*/
     @GetMapping("/stationInfo")
     public AjaxResult hauFuInfo() {
@@ -61,15 +59,38 @@ public class ManualEntryController extends BaseController {
         }
         return AjaxResult.success(list);
     }
+    /**
+     *获取场站信息
+     */
+    @GetMapping("/getStationInfo")
+    public AjaxResult getStationInfo(){
+        List<Map<String,String>> list = new ArrayList<>();
+        List<StationInfo> stationInfos = stationInfoService.selectStationInfo();
+        for(StationInfo stationInfo : stationInfos){
+            Map<String,String> map = new HashMap<>();
+            map.put("id",stationInfo.getId());
+            map.put("name",stationInfo.getStationBasicInfo().getStationName());
+            list.add(map);
+        }
+        return AjaxResult.success(list);
+    }
 
     /**
      * 资源概况(更新)
      * @param provincialEnergyStations 资源概况
      */
-    @PutMapping("/updateProvincialEnergyStations")
-    public void update(ProvincialEnergyStations provincialEnergyStations){
+    @PostMapping("/updateProvincialEnergyStations")
+    public void update(@RequestBody ProvincialEnergyStations provincialEnergyStations){
         manualEntryService.updateProvincialEnergyStations(provincialEnergyStations);
     }
-
+    /*获取风机统计数据*/
+    @GetMapping("/getFanModelDataList")
+    public AjaxResult getFanModelDataList(){
+        return AjaxResult.success(fanModelDataService.getFanModelDataList());
+    }
+   @GetMapping("/getFanModelDataList")
+    public AjaxResult getFanModelDataList(@RequestBody ){
+        return AjaxResult.success(fanModelDataService.updateFanModelData(););
+    }
 
 }

+ 2 - 0
neim-biz/src/main/java/com/jiayue/biz/domain/HdInfo.java

@@ -2,12 +2,14 @@ package com.jiayue.biz.domain;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * 华电基本信息
  */
 @Data
 @AllArgsConstructor
+@NoArgsConstructor
 public class HdInfo {
    //风场站个数
    private String fNum;

+ 2 - 0
neim-biz/src/main/java/com/jiayue/biz/service/FanModelDataService.java

@@ -7,4 +7,6 @@ import java.util.List;
 public interface FanModelDataService {
     //查询杨总数据(风机计算数据)
     List<FanModelData> getFanModelDataList();
+    void updateFanModelData(FanModelData fanModelData);
+    void deleteFanModelData(String id);
 }

+ 18 - 0
neim-biz/src/main/java/com/jiayue/biz/service/impl/FanModelDataServiceImpl.java

@@ -5,10 +5,12 @@ import com.jiayue.biz.service.FanModelDataService;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.UUID;
 
 @Service
 @AllArgsConstructor
@@ -21,6 +23,22 @@ public class FanModelDataServiceImpl implements FanModelDataService {
     public List<FanModelData> getFanModelDataList() {
         return mongoTemplate.find(new Query(), FanModelData.class, "fan_model_data");
     }
+    // 修改
+    public void updateFanModelData(FanModelData fanModelData) {
+        if(fanModelData.getId().equals("")){
+            fanModelData.setId(UUID.randomUUID().toString());
+        }
+        mongoTemplate.save(fanModelData,"fan_model_data");
+    }
+    // 删除
+    public void deleteFanModelData(String id) {
+        Query query = new Query();
+        Criteria criteria = new Criteria();
+        // 设置条件:
+        criteria.and("id").is(id);
+        query.addCriteria(criteria);
+        mongoTemplate.remove(query,"fan_model_data");
+    }
 
 
 }

+ 12 - 12
neim-biz/src/main/resources/application-dev.yml

@@ -2,11 +2,11 @@
 spring:
   data:
     mongodb:
-      host: 49.4.78.194
+#      host: 49.4.78.194
 #      host: 10.124.252.246
-#      host: 192.168.1.208
-      port: 17142
-#      port: 27017
+      host: 192.168.1.208
+#      port: 17142
+      port: 27017
       database: neim
       username: neimdb
       password: 'neim123'
@@ -15,9 +15,9 @@ spring:
       primary: mysql #设置默认的数据源或者数据源组,默认值即为master
       datasource:
         mysql:
-#          url: jdbc:mysql://192.168.1.205:3306/nerp-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
+          url: jdbc:mysql://192.168.1.205:3306/nerp-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
 #          url: jdbc:mysql://49.4.78.194:17136/nerp-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
-          url: jdbc:mysql://10.124.252.246:3306/nerp-db-v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
+#          url: jdbc:mysql://10.124.252.246:3306/nerp-db-v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
           username: root
           password: '!QAZ2root'
           driver-class-name: com.mysql.cj.jdbc.Driver
@@ -64,12 +64,12 @@ spring:
                 config:
                   multi-statement-allow: true
         tdengine:
-#          url: jdbc:TAOS://192.168.1.208:6030/nerp_db
-          url: jdbc:TAOS://10.124.252.246:6030/nerp_db
+          url: jdbc:TAOS://192.168.1.208:6030/nerp_db
+#          url: jdbc:TAOS://10.124.252.246:6030/nerp_db
 #          url: jdbc:TAOS://49.4.78.194:17139/nerp_db
           username: root
-#          password: 123456
-          password: "!QAZ2root"
+          password: 123456
+#          password: "!QAZ2root"
           driver-class-name: com.taosdata.jdbc.TSDBDriver
           type: com.alibaba.druid.pool.DruidDataSource
           druid:
@@ -79,8 +79,8 @@ spring:
   # redis 配置
   redis:
     # 地址
-#    host: 192.168.1.205
-    host: 10.124.252.244
+    host: 192.168.1.205
+#    host: 10.124.252.244
     # 端口,默认为6379
     port: 6379
 #    port: 17137

+ 39 - 35
neim-biz/src/test/java/service/DeleteUploadLogServiceTest.java

@@ -1,34 +1,34 @@
-//package service;
-//
-//import com.jiayue.NeimApplication;
-//import com.jiayue.biz.domain.*;
-//import com.jiayue.biz.service.StatisticsSituationService;
-//import com.jiayue.biz.service.WindTowerInfoService;
-//import com.jiayue.biz.service.impl.*;
-//import com.jiayue.biz.util.CalculationUtil;
-//import com.jiayue.common.utils.DateUtil;
-//import org.apache.commons.math3.fitting.PolynomialCurveFitter;
-//import org.apache.commons.math3.fitting.WeightedObservedPoints;
-//import org.apache.poi.xssf.streaming.SXSSFRow;
-//import org.apache.poi.xssf.streaming.SXSSFSheet;
-//import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-//import org.junit.jupiter.api.Test;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.boot.test.context.SpringBootTest;
-//import wei.yigulu.modbus.domain.FunctionCode;
-//import wei.yigulu.modbus.domain.Obj4RequestRegister;
-//import wei.yigulu.modbus.domain.datatype.IModbusDataType;
-//import wei.yigulu.modbus.domain.datatype.ModbusDataTypeEnum;
-//import wei.yigulu.modbus.domain.datatype.NumericModbusData;
-//import wei.yigulu.modbus.exceptiom.ModbusException;
-//import wei.yigulu.modbus.netty.ModbusTcpMasterBuilder;
-//import wei.yigulu.modbus.utils.ModbusRequestDataUtils;
-//
-//import java.io.*;
-//import java.math.BigDecimal;
-//import java.math.RoundingMode;
-//import java.util.*;
-//import java.util.stream.Collectors;
+package service;
+
+import com.jiayue.NeimApplication;
+import com.jiayue.biz.domain.*;
+import com.jiayue.biz.service.StatisticsSituationService;
+import com.jiayue.biz.service.WindTowerInfoService;
+import com.jiayue.biz.service.impl.*;
+import com.jiayue.biz.util.CalculationUtil;
+import com.jiayue.common.utils.DateUtil;
+import org.apache.commons.math3.fitting.PolynomialCurveFitter;
+import org.apache.commons.math3.fitting.WeightedObservedPoints;
+import org.apache.poi.xssf.streaming.SXSSFRow;
+import org.apache.poi.xssf.streaming.SXSSFSheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import wei.yigulu.modbus.domain.FunctionCode;
+import wei.yigulu.modbus.domain.Obj4RequestRegister;
+import wei.yigulu.modbus.domain.datatype.IModbusDataType;
+import wei.yigulu.modbus.domain.datatype.ModbusDataTypeEnum;
+import wei.yigulu.modbus.domain.datatype.NumericModbusData;
+import wei.yigulu.modbus.exceptiom.ModbusException;
+import wei.yigulu.modbus.netty.ModbusTcpMasterBuilder;
+import wei.yigulu.modbus.utils.ModbusRequestDataUtils;
+
+import java.io.*;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.stream.Collectors;
 //
 ///**
 // * 删除上报日志测试类
@@ -69,10 +69,7 @@
 //
 //    }
 //
-//    @Test
-//    public void mains() {
-////       homePageService. getWsAndWpdForHeight("006174");
-//    }
+
 //
 //    @Test
 //    public void homePageCharts() {
@@ -351,3 +348,10 @@
 //
 //    }
 //}
+
+public class DeleteUploadLogServiceTest {
+    @Test
+    public void mains() {
+//       homePageService. getWsAndWpdForHeight("006174");
+    }
+}

+ 10 - 5
neim-biz/src/test/java/service/TDengineTest.java

@@ -335,18 +335,23 @@ public class TDengineTest {
     @Test
     public void testNew() {
         List<WindTowerInfo> list1 = windTowerInfoService.lambdaQuery().list();
-        for (WindTowerInfo windTowerInfo : list1) {
+        List<WindTowerInfo> collect = list1.stream().collect(Collectors.toList());
+        for (WindTowerInfo windTowerInfo : collect) {
             Date date = new Date(1606752000000l);
             String equipmentId = windTowerInfo.getEquipmentNo();
-            List<WindTowerInfo> list = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, equipmentId).list();
+//            List<WindTowerInfo> list = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, equipmentId).list();
             HashSet<String> dataSet = new HashSet<>();
-            String heights = list.get(0).getHeights();
-            String wdHeights = list.get(0).getWdHeights();
+            String heights = windTowerInfo.getHeights();
+            String wdHeights = windTowerInfo.getWdHeights();
             dataSet.addAll(Arrays.asList(heights.split(",")));
             dataSet.addAll(Arrays.asList(wdHeights.split(",")));
             for (long i = date.getTime(); i < 1680278400000l; i = DateUtil.offsetMonth(new Date(i), 1).getTime()) {
                 long l = DateUtil.offsetMonth(new Date(i), 1).getTime();
-                List<Map<String, Object>> mapList = windTowerDataParentTableService.selectByBetweenTimeAndEquipmetIdOld(new Date(i), new Date(l), equipmentId);
+                DateTime dateTime = DateUtil.offsetDay(new Date(i), 15);
+
+                List<Map<String, Object>> mapList = windTowerDataParentTableService.selectByBetweenTimeAndEquipmetIdOld(new Date(i), new Date(dateTime.getTime()), equipmentId);
+                List<Map<String, Object>> mapList1 = windTowerDataParentTableService.selectByBetweenTimeAndEquipmetIdOld(new Date(dateTime.getTime() + 1), new Date(l), equipmentId);
+                mapList.addAll(mapList1);
                 if (mapList.size() > 0) {
                     ArrayList<ProphaseWeatherData> prophaseAnemometryPublicDataArrayList = new ArrayList<>();
                     for (Map<String, Object> map : mapList) {

BIN
neim-ui/public/static/模板.xls


+ 9 - 0
neim-ui/src/api/biz/manualEntry/projectAndStationInfoEntry.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+/*获取项目(场站)总体信息*/
+export function getTotalityInfo() {
+  return request({
+    url: '/manualEntry/getTotalityInfo',
+    method: 'get'
+  })
+}

+ 9 - 0
neim-ui/src/api/biz/manualEntry/projectEvolveEntry.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+/*获取项目信息*/
+export function getProjectInfo() {
+  return request({
+    url: '/manualEntry/getProjectInfo',
+    method: 'get'
+  })
+}

+ 8 - 0
neim-ui/src/api/biz/manualEntry/provincialInfoEntry.js

@@ -15,3 +15,11 @@ export function getProvincialEnergyStations() {
     method: 'get'
   })
 }
+//获取华电以及全省资源概况
+export function updateProvincialEnergyStations(data) {
+  return request({
+    url: '/manualEntry/updateProvincialEnergyStations',
+    method: 'post',
+    data: data
+  })
+}

+ 9 - 0
neim-ui/src/api/biz/manualEntry/stationDataInfoEntry.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+/*获取场站信息*/
+export function getStationInfo() {
+  return request({
+    url: '/manualEntry/getStationInfo',
+    method: 'get'
+  })
+}

+ 194 - 0
neim-ui/src/views/manualEntry/projectAndStationInfoEntry/index.vue

@@ -0,0 +1,194 @@
+<template>
+  <el-card class="box-card">
+    <div slot="header" class="clearfix">
+      <span>项目(场站)统计信息录入</span>
+    </div>
+    <div>
+      <el-tabs tab-position="left" style="height: 300px;">
+        <el-tab-pane label="项目统计信息">
+          <el-form ref="form" :model="form" :rules="rules" label-width="180px" style="width: 50%">
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="已发起项目数目:" prop="initiatedNum">
+                  <el-input v-model="form.initiatedNum" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="已完成核准项目数目:" prop="approvalNum">
+                  <el-input v-model="form.approvalNum" :maxlength="11" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="正在实施项目数目:" prop="buildNum">
+                  <el-input v-model="form.buildNum" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="投产发电项目数目:" prop="electricNum">
+                  <el-input v-model="form.electricNum" :maxlength="11" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-form-item style="text-align: center; margin-top: 1%;">
+              <el-button type="primary" @click="projectSave">保存</el-button>
+            </el-form-item>
+          </el-form>
+        </el-tab-pane>
+        <el-tab-pane label="场站统计信息">
+          <el-form ref="form" :model="fInfo" :rules="fInfoRules" label-width="120px" style="width: 50%">
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="风电场总数:" prop="num">
+                  <el-input v-model="fInfo.num" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="装机容量:" prop="capacity">
+                  <el-input v-model="fInfo.capacity" :maxlength="11" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="风机台数:" prop="fjNum">
+                  <el-input v-model="fInfo.fjNum" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+
+          <el-form ref="form" :model="gInfo" :rules="gInfoRules" label-width="120px" style="width: 50%">
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="光伏场站总数:" prop="num">
+                  <el-input v-model="gInfo.num" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="装机容量:" prop="capacity">
+                  <el-input v-model="gInfo.capacity" :maxlength="11" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-bg el-row-two" justify="space-between">
+              <el-col :span="12">
+                <el-form-item label="逆变器台数:" prop="nbqNum">
+                  <el-input v-model="gInfo.nbqNum" :maxlength="16" placeholder="必填项" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-form-item style="text-align: center; margin-top: 1%;">
+              <el-button type="primary" @click="stationSave">保存</el-button>
+            </el-form-item>
+          </el-form>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </el-card>
+</template>
+
+<script>
+import {getTotalityInfo} from "@/api/biz/manualEntry/projectAndStationInfoEntry";
+
+export default {
+  //项目或场站信息录入
+  name: "index",
+  data() {
+    const reg = /^\d+(\.\d{1,6})?$/
+    const checkFnum = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error('不能为空'))
+      }
+      if (reg.test(value) == false) {
+        callback(new Error('只能输入正数数字或带小数点6位以内的数字'));
+      }
+      callback()
+
+    }
+    return {
+      id: '',
+      form: {
+        initiatedNum: '3',//已发起项目数目
+        approvalNum: '5',//已完成核准项目数目
+        buildNum: '4',//正在实施项目数目
+        electricNum: '1',//投产发电项目数目
+      },
+      rules: {
+        initiatedNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+        approvalNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+        buildNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+        electricNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+      },
+      fInfoRules: {
+        num: [{required: true, validator: checkFnum, trigger: 'change'}],
+        capacity: [{required: true, validator: checkFnum, trigger: 'change'}],
+        fjNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+      },
+      gInfoRules: {
+        num: [{required: true, validator: checkFnum, trigger: 'change'}],
+        capacity: [{required: true, validator: checkFnum, trigger: 'change'}],
+        nbqNum: [{required: true, validator: checkFnum, trigger: 'change'}],
+      },
+      fInfo: {
+        num: "10",
+        capacity: "724.6",
+        fjNum: "407"
+      },
+      gInfo: {
+        num: "4",
+        capacity: "110",
+        nbqNum: "204"
+      },
+    }
+  },
+  mounted() {
+    this.initInfo()
+  },
+  methods: {
+    initInfo() {
+      getTotalityInfo().then(res => {
+        let data = res.data[0]
+        this.id = data.id
+        console.log()
+        this.form = {
+          initiatedNum: data.pinfo.initiatedNum,//已发起项目数目
+          approvalNum: data.pinfo.approvalNum,//已完成核准项目数目
+          buildNum: data.pinfo.buildNum,//正在实施项目数目
+          electricNum: data.pinfo.electricNum,//投产发电项目数目
+        }
+        this.fInfo = {
+          num: data.finfo.num,
+          capacity: data.finfo.capacity,
+          fjNum: data.finfo.fjNum
+        }
+        this.gInfo = {
+          num: data.ginfo.num,
+          capacity: data.ginfo.capacity,
+          nbqNum: data.ginfo.nbqNum
+        }
+      }).catch(err => {
+        console.log('获取项目(场站)总体信息异常:' + err)
+      })
+    },
+    projectSave() {
+      let saveData = {
+        id: this.id,
+        pinfo: this.form
+      }
+    },
+    stationSave() {
+      let saveData = {
+        id: this.id,
+        fInfo: this.fInfo,
+        gInfo: this.gInfo
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 102 - 0
neim-ui/src/views/manualEntry/projectEvolveEntry/index.vue

@@ -0,0 +1,102 @@
+<template>
+  <el-card class="box-card">
+    <div class="operateDiv">
+      <el-button size="medium" icon="el-icon-download" @click="frontDownload">下载模板</el-button>
+    </div>
+    <div style="margin-top: .5% ">
+      <el-table
+        :data="tableData.slice((page.currentPage-1)*page.pageSize,page.currentPage*page.pageSize)"
+        border
+        style="width: 100%">
+        <el-table-column
+          prop="name" align="center"
+          label="项目名称"
+        >
+        </el-table-column>
+        <el-table-column label="操作" align="center">
+          <template slot-scope="scope">
+            <el-button icon="el-icon-download" @click="handleClick(scope.row)" type="text" size="small">下载最新进展</el-button>
+            <el-button icon="el-icon-upload2" @click="handleClick(scope.row)" type="text" size="small">上传进展</el-button>
+            <el-button icon="el-icon-upload2" @click="handleClick(scope.row)" type="text" size="small">上传附件</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="block">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page=page.currentPage
+          :page-sizes="[10, 15, 30, 50]"
+          :page-size=page.pageSize
+          layout="total, sizes, prev, pager, next, jumper"
+          :total=page.total>
+        </el-pagination>
+      </div>
+    </div>
+  </el-card>
+</template>
+
+<script>
+import {getProjectInfo} from "@/api/biz/manualEntry/projectEvolveEntry";
+
+export default {
+  // 项目进展录入
+  name: "index",
+  data(){
+    return{
+      tableData:[],
+      page: {
+        total: 0, // 总页数
+        currentPage: 1, // 当前页数
+        pageSize: 10 // 每页显示多少条
+      },
+    }
+  },
+  mounted() {
+    this.initInfo()
+  },
+  methods: {
+    initInfo() {
+      getProjectInfo().then(res=>{
+        console.log(res.data)
+        this.tableData = res.data
+        this.page.total = this.tableData.length
+      }).catch(err=>{
+        console.log('获取项目信息异常:'+err)
+      })
+    },
+    handleClick(row) {
+      console.log(row);
+    },
+    /*pageSize改变*/
+    handleSizeChange(val) {
+      this.page.pageSize = val
+      this.page.currentPage = 1
+    },
+    /*currentPage改变*/
+    handleCurrentChange(val) {
+      this.page.currentPage = val
+    },
+    frontDownload() {
+      let a = document.createElement("a"); //创建一个<a></a>标签
+      a.href = "/static/模板.xls"; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
+      a.download = "模板(新).xls"; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
+      a.style.display = "none"; // 障眼法藏起来a标签
+      document.body.appendChild(a); // 将a标签追加到文档对象中
+      a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
+      a.remove(); // 一次性的,用完就删除a标签
+    }
+  }
+
+}
+</script>
+
+<style scoped>
+.operateDiv{
+  display: flex;
+}
+.block{
+  float: right;
+  margin: 1%;
+}
+</style>

+ 25 - 5
neim-ui/src/views/manualEntry/provincialInfoEntry/index.vue

@@ -105,7 +105,7 @@
 </template>
 
 <script>
-import {getStationInfo, getProvincialEnergyStations} from "@/api/biz/manualEntry/provincialInfoEntry";
+import {getStationInfo, getProvincialEnergyStations,updateProvincialEnergyStations} from "@/api/biz/manualEntry/provincialInfoEntry";
 
 export default {
   // 全省总体信息录入页面
@@ -113,7 +113,6 @@ export default {
   data() {
     const reg = /^\d+(\.\d{1,6})?$/
     const checkFnum = (rule, value, callback) => {
-      console.log(rule)
       if (!value) {
         callback(new Error('不能为空'))
       }
@@ -159,8 +158,8 @@ export default {
     getProvincialEnergyStationsInfo() {
       getProvincialEnergyStations().then(res => {
         let data = res.data
-        console.log(data.hdInfo)
         this.form = {
+          id:data.id,
           resourcesOverview: data.resourcesOverview,
           provinceInfofnum:data.provinceInfo.fnum,
           provinceInfofhours:data.provinceInfo.fhours.slice(0, -1),
@@ -173,14 +172,35 @@ export default {
           hdInfogename:data.hdInfo.gename,
           hdInfoghours:data.hdInfo.ghours.slice(0, -1),
         }
-        console.log(this.form)
+        // console.log(this.form)
       }).catch(err => {
         console.log(err)
       })
     },
     //保存
     save() {
-      console.log(this.form)
+      let saveData = {
+        id:this.form.id,
+        resourcesOverview: this.form.resourcesOverview,
+        provinceInfo: {
+          fnum: this.form.provinceInfofnum,
+          fhours: this.form.provinceInfofhours+'h',
+          gnum: this.form.provinceInfognum,
+          ghours: this.form.provinceInfoghours+'h'
+        },
+        hdInfo: {
+          fnum: this.form.hdInfofnum,
+          fename: this.form.hdInfofename,
+          fhours: this.form.hdInfofhours+'h',
+          gnum: this.form.hdInfognum,
+          gename: this.form.hdInfogename,
+          ghours: this.form.hdInfoghours+'h'
+        }
+      }
+      updateProvincialEnergyStations(saveData).then(res=>{
+        console.log(res.data)
+      })
+      console.log(saveData)
     }
   }
 }

+ 144 - 0
neim-ui/src/views/manualEntry/stationDataInfoEntry/index.vue

@@ -0,0 +1,144 @@
+<template>
+  <el-card class="box-card">
+    <div class="optionDiv">
+      <div>
+        场站:
+        <el-select v-model="staionId" placeholder="请选择">
+          <el-option
+            v-for="item in staionInfo"
+            :key="item.id"
+            :label="item.name"
+            :value="item.name">
+          </el-option>
+        </el-select>
+      </div>
+      <el-button class="option" @click="search">查询</el-button>
+      <el-button class="option" @click="dialogVisible = true">补录</el-button>
+    </div>
+    <div style="margin-top: .5%">
+      <el-table
+        :data="tableData.slice((page.currentPage-1)*page.pageSize,page.currentPage*page.pageSize)"
+        border
+        style="width: 100%">
+        <el-table-column prop="stationName" align="center" label="场站名称"></el-table-column>
+        <el-table-column prop="modelName" align="center" label="风机机型"></el-table-column>
+        <el-table-column prop="wsAve" align="center" label="平均风速"></el-table-column>
+        <el-table-column prop="wdSum" align="center" label="主风向"></el-table-column>
+        <el-table-column prop="generatingCapacity" align="center" label="年平均发电量(MWh)"></el-table-column>
+        <el-table-column prop="realTimeTotal" align="center" label="年平均有效小时数"></el-table-column>
+      </el-table>
+      <div class="block">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page=page.currentPage
+          :page-sizes="[10, 15, 30, 50]"
+          :page-size=page.pageSize
+          layout="total, sizes, prev, pager, next, jumper"
+          :total=page.total>
+        </el-pagination>
+      </div>
+    </div>
+    <el-dialog title="编辑" :visible.sync="dialogVisible">
+      <el-form :model="form" :rules="rules">
+        <el-row class="row-bg el-row-two" justify="space-between">
+          <el-col :span="12">
+            <el-form-item label="日期" style="width: 100%">
+              <el-date-picker
+                v-model="form.date"
+                type="date"
+                placeholder="选择日期" :picker-options="pickerOptions">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="场站" style="width: 100%">
+              <el-select v-model="form.staionId" placeholder="请选择" >
+                <el-option
+                  v-for="item in staionInfo"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.name">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </el-card>
+</template>
+
+<script>
+import {getStationInfo} from "@/api/biz/manualEntry/stationDataInfoEntry";
+
+export default {
+  // 杨总数据信息补录
+  name: "index",
+  data() {
+    return {
+      dialogVisible: false,
+      date: new Date(new Date() - 86400000),
+      staionId: '',
+      staionInfo: [],
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now() - 86400000
+        }
+      },
+      tableData: [],
+      page: {
+        total: 0, // 总页数
+        currentPage: 1, // 当前页数
+        pageSize: 10 // 每页显示多少条
+      },
+      form: {},
+      rules: {},
+    }
+  },
+  mounted() {
+    this.getStationInfo()
+  },
+  methods: {
+    search() {
+
+    },
+    getStationInfo() {
+      getStationInfo().then(res => {
+        console.log(res.data)
+        this.staionInfo = res.data
+      }).catch(err => {
+        console.log('获取场站列表异常:' + err)
+      })
+    },
+    /*pageSize改变*/
+    handleSizeChange(val) {
+      this.page.pageSize = val
+      this.page.currentPage = 1
+    },
+    /*currentPage改变*/
+    handleCurrentChange(val) {
+      this.page.currentPage = val
+    },
+  }
+}
+</script>
+
+<style scoped>
+.optionDiv {
+  display: flex;
+}
+
+.option {
+  margin-left: .5%;
+}
+
+.block {
+  float: right;
+  margin: 1%;
+}
+</style>