Prechádzať zdrojové kódy

1.债权上传测算表相关接口
2.ppi指数新增通过类型获取ppi集合

GouGengquan 5 mesiacov pred
rodič
commit
d126b05a79

+ 101 - 0
biz-base/src/main/java/com/dayou/controller/AssetsCalculateCRDataController.java

@@ -0,0 +1,101 @@
+package com.dayou.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.dayou.config.FileNetConfig;
+import com.dayou.entity.AssetsCalculate;
+import com.dayou.entity.DocumentProduction;
+import com.dayou.result.Result;
+import com.dayou.result.Status;
+import com.dayou.service.AssetsCalculateService;
+import com.dayou.service.DocumentProductionService;
+import com.dayou.utils.FileNetUtil;
+import com.dayou.vo.AssetsCalculateVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Objects;
+
+import static com.dayou.enums.DocumentType.CR_CALCULATE;
+import static com.dayou.enums.DocumentType.EQPT_CALCULATE;
+
+/**
+ * 资产债权测算数据
+ *
+ * @author GouGengquan
+ * @since 2024-11-18
+ */
+@RestController
+@RequestMapping("assetsCalculateCRData")
+@Slf4j
+@CrossOrigin
+@SaCheckLogin
+public class AssetsCalculateCRDataController {
+
+    @Autowired
+    private FileNetConfig fileNetConfig;
+
+    @Autowired
+    private AssetsCalculateService assetsCalculateService;
+
+    @Autowired
+    private DocumentProductionService documentProductionService;
+
+    /**
+     * 上传债权测算表
+     * @param multipartFile 文件
+     * @param calculateId 测算表id
+     * @return Boolean
+     * @throws IOException
+     */
+    @PostMapping("/uploadCalculate")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<Boolean> uploadCalculate(MultipartFile multipartFile, Long calculateId) throws IOException {
+        // 判断文件类型
+        String name;
+        if (Objects.equals(multipartFile.getContentType(), "application/vnd.ms-excel") || Objects.equals(multipartFile.getContentType(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {
+            // 上传文件
+            name = System.currentTimeMillis() + "_债权测算表.xlsx";
+            FileNetUtil.uploadToServer(multipartFile, fileNetConfig.getBaseDir(), fileNetConfig.getAssetOutputCalculatePath(), name);
+
+            // 更新测算表进度
+            AssetsCalculate assetsCalculate = new AssetsCalculate();
+            assetsCalculate.setId(calculateId);
+            assetsCalculate.setProgress("FINISHED");
+            assetsCalculateService.updateById(assetsCalculate);
+
+            // 设置文档信息
+            AssetsCalculateVO assetsCalculateVO = assetsCalculateService.getCalculateInfoForDoc(calculateId);
+            DocumentProduction documentProduction = documentProductionService.getDocProdByBusinessId(assetsCalculateVO.getProjectId(), calculateId);
+
+            if (ObjectUtil.isNotNull(documentProduction)) { // 判断文档信息是否为空,不为空说明以前生成过文档,则更新文档版本号
+                documentProduction.setDocVersion(documentProduction.getDocVersion() + 1);
+            } else { // 为空重新new对象
+                documentProduction = new DocumentProduction();
+            }
+            documentProduction.setBusinessType("ASSETS")
+                    .setBusinessId(assetsCalculateVO.getProjectId())
+                    .setDocType(CR_CALCULATE.getName())
+                    .setDocName(assetsCalculateVO.getCalculateName() + ".xlsx")
+                    .setConsignor(assetsCalculateVO.getPrincipal())
+                    .setDocUrl(fileNetConfig.getAssetOutputCalculatePath() + name)
+                    .setCreateUserId(StpUtil.getLoginIdAsLong())
+                    .setBusinessCate(assetsCalculateVO.getProjectTypeName())
+                    .setDocNo("")
+                    .setBusinessSubId(calculateId);
+            documentProductionService.saveDocumentProduction(documentProduction);
+        }else {
+            return Result.build(Status.PARAM_ERROR, "请上传xls或xlsx类型的excel文档!");
+        }
+        return Result.build(true);
+    }
+
+}

+ 1 - 1
biz-base/src/main/java/com/dayou/controller/AssetsCalculateController.java

@@ -106,7 +106,7 @@ public class AssetsCalculateController {
     }
 
     /**
-     * 更新测算表基础测算信息
+     * 更新测算表基础测算信息(存的json格式字符串)
      * @param calculateBaseInfoDTO dto
      * @return Boolean
      */

+ 10 - 0
biz-base/src/main/java/com/dayou/controller/EqptPPIController.java

@@ -38,6 +38,16 @@ public class EqptPPIController {
     }
 
     /**
+     * 根据类型获取ppi
+     * @param ppiType 指数类型
+     * @return List<EqptPPI>
+     */
+    @GetMapping("/getPPIByType/{ppiType}")
+    public Result<List<EqptPPI>> getPPIByType(@PathVariable String ppiType) {
+        return Result.build(eqptPpiService.getPPIByType(ppiType));
+    }
+
+    /**
      * 根据ppi名和类型获取ppi
      * @param ppiName 名
      * @param ppiType 类型

+ 0 - 15
biz-base/src/main/java/com/dayou/controller/FileController.java

@@ -65,21 +65,6 @@ public class FileController {
     }
 
     /**
-     * 上传资产债权测算表
-     * @param multipartFile 文件
-     * @return Result<Map<String, String>> 文件信息
-     */
-    @PostMapping("/assets/uploadCRCalculate")
-    public Result<Map<String, String>> uploadAssetsCRCalculate(MultipartFile multipartFile){
-        // 判断文件类型
-        if (Objects.equals(multipartFile.getContentType(), "application/vnd.ms-excel") || Objects.equals(multipartFile.getContentType(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {
-            return Result.build(FileNetUtil.uploadToServer(multipartFile, fileNetConfig.getBaseDir(), fileNetConfig.getAssetOutputCalculatePath(), System.currentTimeMillis() + "_债权测算表.xlsx"));
-        }else {
-            return Result.build(Status.PARAM_ERROR, "请上传xls或xlsx类型的excel文档!");
-        }
-    }
-
-    /**
      * 房地产报告-表单1(估价结果一览表、基本信息)
      * @param file
      * @return

+ 1 - 1
dao/src/main/resources/mapper/AssetsCalculateMapper.xml

@@ -63,7 +63,7 @@
         FROM assets_calculate AS calculate
         LEFT JOIN assets_project AS project ON project.id = calculate.project_id AND project.delete_status = 0
         LEFT JOIN sys_dict_data AS dict_data ON dict_data.id = project.project_type_id
-        LEFT JOIN document_production AS doc ON doc.business_id = project.id AND doc.business_sub_id = calculate.id
+        LEFT JOIN document_production AS doc ON doc.business_id = project.id AND doc.business_sub_id = calculate.id AND doc.delete_status = 0
         WHERE calculate.delete_status = 0
         AND calculate.project_id = #{projectId}
     </select>

+ 7 - 0
service/src/main/java/com/dayou/service/AssetsCalculateService.java

@@ -100,4 +100,11 @@ public interface AssetsCalculateService extends IService<AssetsCalculate> {
          */
         EqptReportReferencesCalculateVO getReferencesInfoById(Long calculateId);
 
+        /**
+         * 获取新增DocumentProduction所需的测算信息
+         * @param calculateId 测算表id
+         * @return AssetsCalculateVO
+         */
+        AssetsCalculateVO getCalculateInfoForDoc(Long calculateId);
+
 }

+ 7 - 0
service/src/main/java/com/dayou/service/EqptPPIService.java

@@ -24,6 +24,13 @@ public interface EqptPPIService extends IService<EqptPPI> {
     List<EqptPPIDropDownData> getPPIDownData();
 
     /**
+     * 根据类型获取ppi
+     * @param ppiType 指数类型
+     * @return List<EqptPPI>
+     */
+    List<EqptPPI> getPPIByType(String ppiType);
+
+    /**
      * 根据ppi名和类型获取ppi
      * @param ppiName 名
      * @param ppiType 类型

+ 10 - 0
service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java

@@ -463,4 +463,14 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
         return referencesVO;
 
     }
+
+    /**
+     * 获取新增DocumentProduction所需的测算信息
+     * @param calculateId 测算表id
+     * @return AssetsCalculateVO
+     */
+    @Override
+    public AssetsCalculateVO getCalculateInfoForDoc(Long calculateId) {
+        return assetsCalculateMapper.getCalculateInfoForDoc(calculateId);
+    }
 }

+ 10 - 0
service/src/main/java/com/dayou/service/impl/EqptPPIServiceImpl.java

@@ -45,6 +45,16 @@ public class EqptPPIServiceImpl extends ServiceImpl<EqptPPIMapper, EqptPPI> impl
     }
 
     /**
+     * 根据类型获取ppi
+     * @param ppiType 指数类型
+     * @return List<EqptPPI>
+     */
+    @Override
+    public List<EqptPPI> getPPIByType(String ppiType) {
+        return eqptPPIMapper.getPPIByType(ppiType);
+    }
+
+    /**
      * 根据ppi名和类型获取ppi
      * @param ppiName 名
      * @param ppiType 类型