Просмотр исходного кода

项目(场站)信息保存

hxf 2 лет назад
Родитель
Сommit
d6a02cb8fd

+ 24 - 6
neim-biz/src/main/java/com/jiayue/biz/controller/ManualEntryController.java

@@ -2,10 +2,13 @@ package com.jiayue.biz.controller;
 
 import com.jiayue.biz.domain.*;
 import com.jiayue.biz.service.*;
+import com.jiayue.biz.vo.TotalityInfoForPInfoVo;
 import com.jiayue.common.core.controller.BaseController;
 import com.jiayue.common.core.domain.AjaxResult;
+import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.parameters.P;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -96,16 +99,18 @@ public class ManualEntryController extends BaseController {
     public AjaxResult getFanModelDataList(String id) {
         return AjaxResult.success(fanModelDataService.queryFanModelDataList(id));
     }
+
     // 修改项目的总体信息
     @PostMapping("/updateProjectTotalityInfoList")
-    public AjaxResult updateStationTotalityInfoList(@RequestBody TotalityInfo totalityInfo) {
-//        totalityInfoService.updateProjectTotalityInfoList(totalityInfo.getId(), totalityInfo.getPInfo());
+    public AjaxResult updateStationTotalityInfoList(@RequestBody TotalityInfoForPInfoVo totalityInfoForPInfoVo) {
+        totalityInfoService.updateProjectTotalityInfoList(totalityInfoForPInfoVo);
         return AjaxResult.success("200");
     }
+
     // 修改场站的总体信息
     @PostMapping("/updateStationTotalityInfoList")
-    public AjaxResult updateStationTotalityInfoList(@RequestBody String id, @RequestBody FInfo fInfo,@RequestBody GInfo gInfo) {
-        totalityInfoService.updateStationTotalityInfoList(id, fInfo,gInfo);
+    public AjaxResult updateStationTotalityInfoList(@RequestBody String data) {
+        totalityInfoService.updateStationTotalityInfoList(data);
         return AjaxResult.success("200");
     }
 
@@ -123,9 +128,22 @@ public class ManualEntryController extends BaseController {
 
     //项目进展解析
     @PostMapping("/projectProgressParse")
-    public void projectProgressParse(@RequestBody MultipartFile multipartFile, @RequestBody String eqId) {
+    public void projectProgressParse(@RequestParam("file") MultipartFile multipartFile, @RequestParam("id") String eqId, @RequestParam("name") String name) {
+
+        projectProgressService.projectProgressParse(multipartFile, eqId, name);
+
+    }
+
+    /**
+     * 保存附件
+     *
+     * @param multipartFile 文件
+     * @param name          文件夹名
+     */
+    @PostMapping("/saveAttachment")
+    public void saveAttachment(@RequestParam("file") MultipartFile multipartFile, @RequestParam("name") String name) {
 
-        projectProgressService.projectProgressParse(multipartFile, eqId);
+        projectProgressService.saveAttachment(multipartFile, name);
 
     }
 

+ 8 - 1
neim-biz/src/main/java/com/jiayue/biz/service/ProjectProgressService.java

@@ -12,6 +12,13 @@ public interface ProjectProgressService {
 
     //查询项目进展
     List<ProjectProgress> selectProProjectInfo();
+    /**
+     * 保存附件
+     * @param multipartFile 文件
+     * @param name 文件夹名
+     */
+    void saveAttachment(MultipartFile multipartFile, String name);
+
     //项目进展解析
-    void projectProgressParse(MultipartFile multipartFile, String eqId);
+    void projectProgressParse(MultipartFile multipartFile, String eqId,String name);
 }

+ 3 - 2
neim-biz/src/main/java/com/jiayue/biz/service/TotalityInfoService.java

@@ -4,6 +4,7 @@ import com.jiayue.biz.domain.FInfo;
 import com.jiayue.biz.domain.GInfo;
 import com.jiayue.biz.domain.PInfo;
 import com.jiayue.biz.domain.TotalityInfo;
+import com.jiayue.biz.vo.TotalityInfoForPInfoVo;
 
 import java.util.List;
 
@@ -12,7 +13,7 @@ public interface TotalityInfoService {
     //查询所有总体信息
     List<TotalityInfo> selectTotalityInfoList();
     // 修改项目的总体信息
-    void updateProjectTotalityInfoList(String id, PInfo pInfo);
+    void updateProjectTotalityInfoList(TotalityInfoForPInfoVo totalityInfoForPInfoVo);
     // 修改场站的总体信息
-    void updateStationTotalityInfoList(String id, FInfo fInfo, GInfo gInfo);
+    void updateStationTotalityInfoList(String data);
 }

+ 81 - 19
neim-biz/src/main/java/com/jiayue/biz/service/impl/ProjectProgressServiceImpl.java

@@ -10,18 +10,20 @@ 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 com.jiayue.common.utils.DateUtil;
 import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 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.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -32,6 +34,9 @@ public class ProjectProgressServiceImpl implements ProjectProgressService {
 
     private final String projectProgressDir = "D:\\\\projectProgressDir\\\\";
 
+    private final String projectProgressAttachment = "attachment\\\\";
+    private final String projectProgressBackNew = "new\\\\";
+
     private MongoTemplate mongoTemplate;
 
     //查询项目进展
@@ -39,28 +44,80 @@ public class ProjectProgressServiceImpl implements ProjectProgressService {
         return mongoTemplate.find(new Query(), ProjectProgress.class, "project_progress");
     }
 
+    /**
+     * 保存附件
+     * @param multipartFile 文件
+     * @param name 文件夹名
+     */
+    @SneakyThrows
+    public void saveAttachment(MultipartFile multipartFile, String name){
+        File projectProgressDirFileNew = new File(projectProgressDir + name + File.separator + projectProgressAttachment);
+        if (!projectProgressDirFileNew.exists()) {
+            projectProgressDirFileNew.mkdirs();
+        }
+        multipartFile.transferTo(new File(projectProgressDirFileNew.getPath() + File.separator + multipartFile.getOriginalFilename()));
+
+
+    }
+
+
+
+
 
     //项目进展解析
-    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);
+    public void projectProgressParse(MultipartFile multipartFile, String id, String name) {
+
+        String fileName = multipartFile.getOriginalFilename();
+        File filed = new File(fileName);
+        OutputStream out = null;
+        try {
+            //获取文件流,以文件流的方式输出到新文件
+//            InputStream in = multipartFile.getInputStream();
+            out = new FileOutputStream(filed);
+            byte[] ss = multipartFile.getBytes();
+            for (int i = 0; i < ss.length; i++) {
+                out.write(ss[i]);
+            }
+            ExcelReader reader = ExcelUtil.getReader(filed);
+            List<List<Object>> read = reader.read();
+            //解析文件入库
+            saveProjectProgress(read,id);
+
+
+            File projectProgressDirFileNew = new File(projectProgressDir + name + File.separator + projectProgressBackNew);
+            if (!projectProgressDirFileNew.exists()) {
+                projectProgressDirFileNew.mkdirs();
+            }
+
+            File[] files = projectProgressDirFileNew.listFiles();
+            //删除旧文件
+            if (files != null && files.length > 0) {
+                for (File file1 : files) {
+                    FileUtil.del(file1);
+                }
+            }
+            //项目进展文件移动
+            multipartFile.transferTo(new File(projectProgressDirFileNew.getPath() + File.separator + fileName));
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (out != null) {
+                try {
+                    out.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
             }
         }
-        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();
 
+    }
+
+
+
+    //项目进展解析文件入库
+    public void saveProjectProgress(List<List<Object>> read,String id){
         ArrayList<ProjectMenusOne> projectMenusOneList = new ArrayList<>();
 
         String s1 = "";
@@ -112,10 +169,15 @@ public class ProjectProgressServiceImpl implements ProjectProgressService {
         }
         //最终List
         ProjectProgress projectProgress = new ProjectProgress();
-        projectProgress.setId(UUID.randomUUID().toString());
+        projectProgress.setId(id);
         projectProgress.setProjectMenusOneList(projectMenusOneList);
+
+//        mongoTemplate.save(projectProgress,"project_progress");
+
     }
 
+
+
     //设置二级
     public ProjectMenusTow hTow(List<Object> objects) {
         ProjectMenusTow projectMenusTow = new ProjectMenusTow();

+ 19 - 9
neim-biz/src/main/java/com/jiayue/biz/service/impl/TotalityInfoServiceImpl.java

@@ -1,10 +1,12 @@
 package com.jiayue.biz.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.jiayue.biz.domain.FInfo;
 import com.jiayue.biz.domain.GInfo;
 import com.jiayue.biz.domain.PInfo;
 import com.jiayue.biz.domain.TotalityInfo;
 import com.jiayue.biz.service.TotalityInfoService;
+import com.jiayue.biz.vo.TotalityInfoForPInfoVo;
 import lombok.AllArgsConstructor;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -20,20 +22,28 @@ public class TotalityInfoServiceImpl implements TotalityInfoService {
     private MongoTemplate mongoTemplate;
 
     //查询所有总体信息
-    public List<TotalityInfo> selectTotalityInfoList(){
-      return  mongoTemplate.find(new Query(),TotalityInfo.class,"totality_info");
+    public List<TotalityInfo> selectTotalityInfoList() {
+        return mongoTemplate.find(new Query(), TotalityInfo.class, "totality_info");
     }
+
     // 修改项目的总体信息
-    public void updateProjectTotalityInfoList(String id, PInfo pInfo){
-        TotalityInfo totalityInfos = mongoTemplate.findOne(new Query(Criteria.where("_id").is(id)), TotalityInfo.class, "totality_info");
+    public void updateProjectTotalityInfoList(TotalityInfoForPInfoVo totalityInfoForPInfoVo) {
+        TotalityInfo totalityInfos = mongoTemplate.findOne(new Query(Criteria.where("_id").is(totalityInfoForPInfoVo.getId())), TotalityInfo.class, "totality_info");
+        PInfo pInfo = new PInfo();
+        pInfo.setApprovalNum(totalityInfoForPInfoVo.getApprovalNum());
+        pInfo.setBuildNum(totalityInfoForPInfoVo.getBuildNum());
+        pInfo.setElectricNum(totalityInfoForPInfoVo.getElectricNum());
+        pInfo.setInitiatedNum(totalityInfoForPInfoVo.getInitiatedNum());
         totalityInfos.setPInfo(pInfo);
-       // mongoTemplate.save(totalityInfos);
+        mongoTemplate.save(totalityInfos);
     }
+
     // 修改场站的总体信息
-   public void updateStationTotalityInfoList(String id, FInfo fInfo, GInfo gInfo){
-        TotalityInfo totalityInfos = mongoTemplate.findOne(new Query(Criteria.where("_id").is(id)), TotalityInfo.class, "totality_info");
-        totalityInfos.setFInfo(fInfo);
-        totalityInfos.setGInfo(gInfo);
+    public void updateStationTotalityInfoList(String data) {
+        TotalityInfo totalityInfo = JSONUtil.toBean(data, TotalityInfo.class);
+        TotalityInfo totalityInfos = mongoTemplate.findOne(new Query(Criteria.where("_id").is(totalityInfo.getId())), TotalityInfo.class, "totality_info");
+        totalityInfos.setFInfo(totalityInfo.getFInfo());
+        totalityInfos.setGInfo(totalityInfo.getGInfo());
         mongoTemplate.save(totalityInfos);
     }
 

+ 24 - 0
neim-biz/src/main/java/com/jiayue/biz/vo/TotalityInfoForPInfoVo.java

@@ -0,0 +1,24 @@
+package com.jiayue.biz.vo;
+
+import com.jiayue.biz.domain.PInfo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TotalityInfoForPInfoVo {
+    private String id;
+
+    //已发起项目数目
+    private String initiatedNum;
+    //已完成核准项目数目
+    private String approvalNum;
+    //正在实施项目数目
+    private String buildNum;
+    //投产发电项目数目
+    private String electricNum;
+
+
+}

+ 13 - 9
neim-ui/src/views/manualEntry/projectAndStationInfoEntry/index.vue

@@ -173,16 +173,20 @@ export default {
       })
     },
     projectSave() {
-      let saveData = {
-        id: this.id,
-        pInfo: this.form,
-        // fInfo: null,
-        // gInfo: null
+      // const formData = new FormData()
+      // formData.append("id",this.id)
+      // formData.append("pInfo",this.form)
+      console.log(this.form)
+      console.log(this.id)
+      let data = {
+        id : this.id,
+        initiatedNum: this.form.initiatedNum,//已发起项目数目
+        approvalNum: this.form.approvalNum,//已完成核准项目数目
+        buildNum: this.form.buildNum,//正在实施项目数目
+        electricNum: this.form.electricNum,//投产发电项目数目
       }
-      // let id = this.id
-      // let pInfo= this.form
-      console.log(saveData)
-      updateProjectTotalityInfoList(saveData).then(res=>{
+
+      updateProjectTotalityInfoList(data).then(res=>{
         this.$message.success('保存项目总体信息成功')
       }).catch(err=>{
         this.$message.warning('保存项目总体信息异常')

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

@@ -97,6 +97,7 @@ export default {
       const formData = new FormData()
       formData.append('file', item.file)
       formData.append("id", this.row.id)
+      formData.append("name", this.row.name)
       projectProgressParse(formData).then((response) => {
         this.$refs.upload.clearFiles()
         this.fullscreenLoading = false