瀏覽代碼

项目进展解析

hxf 2 年之前
父節點
當前提交
73d364725c

+ 19 - 8
neim-biz/src/main/java/com/jiayue/biz/controller/ManualEntryController.java

@@ -10,6 +10,7 @@ import com.jiayue.common.core.domain.AjaxResult;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -29,6 +30,8 @@ public class ManualEntryController extends BaseController {
     private final ProjectInfoService projectInfoService;
     private final StationInfoService stationInfoService;
     private final FanModelDataService fanModelDataService;
+
+    private final ProjectProgressService projectProgressService;
     /*获取光伏站下拉框,风场站的下拉框*/
     @GetMapping("/stationInfo")
     public AjaxResult hauFuInfo() {
@@ -83,14 +86,22 @@ public class ManualEntryController extends BaseController {
     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(););
+//    /*获取风机统计数据*/
+//    @GetMapping("/getFanModelDataList")
+//    public AjaxResult getFanModelDataList(){
+//        return AjaxResult.success(fanModelDataService.getFanModelDataList());
+//    }
+//   @GetMapping("/getFanModelDataList")
+//    public AjaxResult getFanModelDataList(@RequestBody ){
+//        return AjaxResult.success(fanModelDataService.updateFanModelData(););
+//    }
+
+    //项目进展解析
+    @PostMapping("/projectProgressParse")
+    public void projectProgressParse(@RequestBody MultipartFile multipartFile, @RequestBody String eqId){
+
+        projectProgressService.projectProgressParse(multipartFile,eqId);
+
     }
 
 }

+ 3 - 0
neim-biz/src/main/java/com/jiayue/biz/service/ProjectProgressService.java

@@ -3,6 +3,7 @@ package com.jiayue.biz.service;
 
 
 import com.jiayue.biz.domain.ProjectProgress;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -11,4 +12,6 @@ public interface ProjectProgressService {
 
     //查询项目进展
     List<ProjectProgress> selectProProjectInfo();
+    //项目进展解析
+    void projectProgressParse(MultipartFile multipartFile, String eqId);
 }

+ 143 - 1
neim-biz/src/main/java/com/jiayue/biz/service/impl/ProjectProgressServiceImpl.java

@@ -1,24 +1,166 @@
 package com.jiayue.biz.service.impl;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.db.handler.StringHandler;
+import cn.hutool.poi.excel.ExcelReader;
+import cn.hutool.poi.excel.ExcelUtil;
+import com.jiayue.biz.domain.ProjectMenusOne;
+import com.jiayue.biz.domain.ProjectMenusThree;
+import com.jiayue.biz.domain.ProjectMenusTow;
 import com.jiayue.biz.domain.ProjectProgress;
 import com.jiayue.biz.service.ProjectProgressService;
+import com.jiayue.biz.util.CalculationUtil;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 @Service
 @AllArgsConstructor
 public class ProjectProgressServiceImpl implements ProjectProgressService {
 
+    private final String indexStr = "一二三四五六七";
+    private final String indexStrs = "12345678910";
+
+    private final String projectProgressDir = "D:\\\\projectProgressDir\\\\";
+
     private MongoTemplate mongoTemplate;
 
     //查询项目进展
-    public List<ProjectProgress> selectProProjectInfo(){
+    public List<ProjectProgress> selectProProjectInfo() {
         return mongoTemplate.find(new Query(), ProjectProgress.class, "project_progress");
     }
 
 
+    //项目进展解析
+    public void projectProgressParse(MultipartFile multipartFile, String eqId) {
+        File projectProgressDirFile = new File(projectProgressDir + eqId);
+        File[] files = projectProgressDirFile.listFiles();
+        //删除旧文件
+        if (files.length > 0) {
+            for (File file : files) {
+                FileUtil.del(file);
+            }
+        }
+        if (!projectProgressDirFile.exists()) {
+            projectProgressDirFile.mkdirs();
+        }
+        String filename = multipartFile.getOriginalFilename();
+        File file = new File(filename);
+        //项目进展文件移动
+        FileUtil.move(file, new File(projectProgressDirFile.getPath() + File.separator), true);
+
+        ExcelReader reader = ExcelUtil.getReader(file);
+        List<List<Object>> read = reader.read();
+
+        ArrayList<ProjectMenusOne> projectMenusOneList = new ArrayList<>();
+
+        String s1 = "";
+        //创建一级菜单
+        ProjectMenusOne projectMenusOne = new ProjectMenusOne();
+        ProjectMenusTow projectMenusTow = new ProjectMenusTow();
+        //循环每行数据
+        for (List<Object> objects : read) {
+            if (indexStr.contains(objects.get(0).toString())) {
+                //每次进入新的一级菜单都需要新的对象
+                projectMenusOne = new ProjectMenusOne();
+                projectMenusOne.setId(UUID.randomUUID().toString());
+                projectMenusOne.setIndex(objects.get(0).toString());
+                projectMenusOne.setWorkContent(objects.get(1).toString());
+                projectMenusOne.setPlanTime(objects.get(2).toString());
+                projectMenusOne.setProjectMenusTows(new ArrayList<ProjectMenusTow>());
+                projectMenusOneList.add(projectMenusOne);
+                if ((objects.get(0).toString().equals("一") && objects.get(4) != null && !objects.get(4).toString().equals("")) ||
+                        (objects.get(0).toString().equals("一") && objects.get(5) != null && !objects.get(5).toString().equals(""))) {
+                    ProjectMenusTow projectMenusTow1 = new ProjectMenusTow();
+                    projectMenusTow1.setId(UUID.randomUUID().toString());
+                    projectMenusTow1.setIndex("");
+                    projectMenusTow1.setPlanTime("");
+                    projectMenusTow1.setWorkContent("");
+                    projectMenusTow1.setProjectMenusThreeList(new ArrayList<>());
+
+                    ProjectMenusThree projectMenusThree = new ProjectMenusThree();
+                    projectMenusThree.setIndex("");
+                    projectMenusThree.setRealTime(objects.get(4) == null ? "" : objects.get(4).toString());
+                    projectMenusThree.setWorkContent("");
+                    projectMenusThree.setRemark(objects.get(5) == null ? "" : objects.get(5).toString());
+
+                    projectMenusTow1.getProjectMenusThreeList().add(projectMenusThree);
+                    projectMenusOne.getProjectMenusTows().add(projectMenusTow1);
+                }
+
+            } else if (indexStrs.contains(objects.get(0).toString())) {
+                //如果 二级菜单 有变化再创建新的
+                if (!s1.equals(objects.get(1).toString())) {
+                    projectMenusTow = hTow(objects);
+                    projectMenusTow.setProjectMenusThreeList(new ArrayList<ProjectMenusThree>());
+                    projectMenusOne.getProjectMenusTows().add(projectMenusTow);
+                }
+                //三级菜单每次都需要新对象
+                projectMenusTow.getProjectMenusThreeList().add(hThree(objects));
+                s1 = objects.get(1).toString();
+            }
+
+        }
+        //最终List
+        ProjectProgress projectProgress = new ProjectProgress();
+        projectProgress.setId(UUID.randomUUID().toString());
+        projectProgress.setProjectMenusOneList(projectMenusOneList);
+    }
+
+    //设置二级
+    public ProjectMenusTow hTow(List<Object> objects) {
+        ProjectMenusTow projectMenusTow = new ProjectMenusTow();
+        projectMenusTow.setId(UUID.randomUUID().toString());
+        projectMenusTow.setIndex(objects.get(0) == null ? "" : objects.get(0).toString());
+        projectMenusTow.setWorkContent(objects.get(1) == null ? "" : objects.get(1).toString());
+        projectMenusTow.setPlanTime(objects.get(2) == null ? "" : objects.get(2).toString());
+        return projectMenusTow;
+    }
+
+
+    //设置三级信息
+    public ProjectMenusThree hThree(List<Object> objects) {
+        ProjectMenusThree projectMenusThree = new ProjectMenusThree();
+        projectMenusThree.setId(UUID.randomUUID().toString());
+        if (objects.get(3) != null) {
+            projectMenusThree.setIndex(splitStr(objects.get(3).toString()));
+            projectMenusThree.setWorkContent(splitStr22(objects.get(3).toString()));
+        }
+        projectMenusThree.setRealTime(objects.get(4) == null ? "" : objects.get(4).toString());
+        projectMenusThree.setRemark(objects.get(5) == null ? "" : objects.get(5).toString());
+        return projectMenusThree;
+
+    }
+
+
+    public String splitStr(String strs) {
+        if (strs.contains(".")) {
+            int index = strs.indexOf(".");
+            String substring = strs.substring(0, index + 2);
+            return CalculationUtil.getNumberFromStringForDian(substring);
+        } else {
+            return "";
+        }
+    }
+
+    public String splitStr22(String strs) {
+        if (strs.contains(".")) {
+            int index = strs.indexOf(".");
+            String substring = strs.substring(index);
+            return substring;
+        } else {
+            return "";
+        }
+    }
+
+
 }

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

@@ -1,5 +1,9 @@
 # 数据源配置
 spring:
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 20MB
   data:
     mongodb:
 #      host: 49.4.78.194
@@ -109,6 +113,7 @@ file:
   excelDir: "D:\\analysisData\\new\\"
   outPutBackDir: "D:\\out\\backUps\\"
   excelBackDir: "D:\\analysisData\\backUps\\"
+  projectProgressDir: "D:\\projectProgressDir\\"
 email:
   user: "wanghongchen942"
   password: "LXQDEOCRCSXWBIAO"

+ 1 - 0
neim-biz/src/main/resources/application-prod.yml

@@ -86,6 +86,7 @@ file:
   excelDir: "D:\\analysisData\\new\\"
   outPutBackDir: "D:\\out\\backUps\\"
   excelBackDir: "D:\\analysisData\\backUps\\"
+  projectProgressDir: "D:\\projectProgressDir\\"
 email:
   user: "wanghongchen942"
   password: "LXQDEOCRCSXWBIAO"

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

@@ -7,3 +7,12 @@ export function getProjectInfo() {
     method: 'get'
   })
 }
+/*上传项目信息*/
+export function projectProgressParse(data) {
+  return request({
+    url: '/manualEntry/projectProgressParse',
+    method: 'post',
+    data: data
+  })
+}
+