소스 검색

1.机器设备测算表生成开发
2.新增接口查询项目下测算表list

GouGengquan 8 달 전
부모
커밋
6c29c3183e

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

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
 import com.dayou.dto.calculate.CalculateBaseInfoDTO;
 import com.dayou.result.Result;
 import com.dayou.result.Status;
+import com.dayou.vo.AssetsCalculateVO;
 import com.dayou.vo.calculate.AssetsCalculateProgressVO;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import lombok.extern.slf4j.Slf4j;
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.List;
 
 /**
  * 资产项目测算信息表
@@ -36,9 +38,9 @@ public class AssetsCalculateController {
     /**
     * 资产项目测算信息表列表
     */
-    @GetMapping("/page")
-    public Result<Page<AssetsCalculate>> page(AssetsCalculate assetsCalculate, Page page){
-        Page<AssetsCalculate> pages=assetsCalculateService.selectPage(page,assetsCalculate);
+    @GetMapping("/listAll/{projectId}")
+    public Result<List<AssetsCalculateVO>> listAll(@PathVariable Long projectId){
+        List<AssetsCalculateVO> pages = assetsCalculateService.listAllByProjectId(projectId);
         return Result.build(pages);
     }
 

+ 2 - 1
dao/src/main/java/com/dayou/mapper/AssetsCalculateEqptDataMapper.java

@@ -26,8 +26,9 @@ public interface AssetsCalculateEqptDataMapper extends BaseMapper<AssetsCalculat
     /**
      * 根据测算表id获取所有机器设备导入的数据
      * @param calculateId 测算表id
+     * @param equipmentType 设备类型
      * @return List<AssetsCalculateEqptData>
      */
-    List<AssetsCalculateEqptData> getAllByAssetsCalculateId(@Param("calculateId") Long calculateId);
+    List<AssetsCalculateEqptData> getAllByAssetsCalculateId(@Param("calculateId") Long calculateId, @Param("equipmentType") String equipmentType);
 
 }

+ 10 - 0
dao/src/main/java/com/dayou/mapper/AssetsCalculateMapper.java

@@ -2,9 +2,12 @@ package com.dayou.mapper;
 
 import com.dayou.entity.AssetsCalculate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dayou.vo.AssetsCalculateVO;
 import com.dayou.vo.calculate.AssetsCalculateProgressVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 资产项目测算信息表 Mapper 接口
@@ -37,4 +40,11 @@ public interface AssetsCalculateMapper extends BaseMapper<AssetsCalculate> {
      * @return Boolean
      */
     Boolean updateCalculateBaseInfo(@Param("calculateId") Long calculateId, @Param("baseInfo") String baseInfo);
+
+    /**
+     * 根据项目id查询所有测算表信息
+     * @param projectId 项目id
+     * @return List<AssetsCalculateVO>
+     */
+    List<AssetsCalculateVO> listAllByProjectId(@Param("projectId") Long projectId);
 }

+ 3 - 0
dao/src/main/resources/mapper/AssetsCalculateEqptDataMapper.xml

@@ -48,6 +48,9 @@
         FROM assets_calculate_eqpt_data
         WHERE delete_status = 0
         AND assets_calculate_id = #{calculateId}
+        <if test="equipmentType != null and equipmentType != ''">
+            AND equipment_type = #{equipmentType}
+        </if>
     </select>
 
 </mapper>

+ 15 - 0
dao/src/main/resources/mapper/AssetsCalculateMapper.xml

@@ -48,5 +48,20 @@
         AND id = #{calculateId}
     </update>
 
+    <!--根据项目id查询所有测算表信息-->
+    <select id="listAllByProjectId" resultType="com.dayou.vo.AssetsCalculateVO">
+        SELECT calculate.id AS id,
+               project_id,
+               calculate_name,
+               valuation_basis_date,
+               principal,
+               dict_data.name AS projectTypeName
+        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
+        WHERE calculate.delete_status = 0
+        AND calculate.project_id = #{projectId}
+    </select>
+
 
 </mapper>

+ 16 - 0
domain/src/main/java/com/dayou/entity/AssetsCalculateEqptData.java

@@ -114,5 +114,21 @@ public class AssetsCalculateEqptData extends BaseEntity implements Serializable
     @ExcelProperty("备注")
     private String remark;
 
+    /**
+     * 空单元格占位(对应模板上的设置)
+     * 不设置占位的话,导入数据时空单元格不会创建单元格会导致模板样式丢失
+     */
+    private Integer placeholder;
+
+    /**
+     * 权重1
+     */
+    private Double weight01 = 40.00;
+
+    /**
+     * 权重2
+     */
+    private Double weight02 = 60.00;
+
 
 }

+ 40 - 0
domain/src/main/java/com/dayou/vo/AssetsCalculateVO.java

@@ -0,0 +1,40 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class AssetsCalculateVO{
+
+    /**
+     * 主键自增id
+     */
+    protected Long id;
+
+    /**
+     * 资产项目id
+     */
+    private Long projectId;
+
+    /**
+     * 测算名
+     */
+    private String calculateName;
+
+    /**
+     * 评估基准日
+     */
+    private LocalDate valuationBasisDate;
+
+    /**
+     * 委托人
+     */
+    private String principal;
+
+    /**
+     * 项目类型
+     */
+    private String projectTypeName;
+
+}

+ 2 - 1
service/src/main/java/com/dayou/service/AssetsCalculateEqptDataService.java

@@ -26,8 +26,9 @@ public interface AssetsCalculateEqptDataService extends IService<AssetsCalculate
     /**
      * 根据测算表id获取所有机器设备导入的数据
      * @param calculateId 测算表id
+     * @param equipmentType 设备类型
      * @return List<AssetsCalculateEqptData>
      */
-    List<AssetsCalculateEqptData> getAllByAssetsCalculateId(Long calculateId);
+    List<AssetsCalculateEqptData> getAllByAssetsCalculateId(Long calculateId, String equipmentType);
 
 }

+ 8 - 1
service/src/main/java/com/dayou/service/AssetsCalculateService.java

@@ -2,11 +2,13 @@ package com.dayou.service;
 import com.dayou.entity.AssetsCalculate;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.vo.AssetsCalculateVO;
 import com.dayou.vo.calculate.AssetsCalculateProgressVO;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.List;
 
 /**
  * <p>
@@ -18,7 +20,12 @@ import java.io.IOException;
  */
 public interface AssetsCalculateService extends IService<AssetsCalculate> {
 
-        Page<AssetsCalculate> selectPage(Page page,AssetsCalculate assetsCalculate);
+        /**
+         * 根据项目id查询所有测算表信息
+         * @param projectId 项目id
+         * @return List<AssetsCalculateVO>
+         */
+        List<AssetsCalculateVO> listAllByProjectId(Long projectId);
 
         AssetsCalculate detail(Long id);
 

+ 2 - 2
service/src/main/java/com/dayou/service/impl/AssetsCalculateEqptDataServiceImpl.java

@@ -42,7 +42,7 @@ public class AssetsCalculateEqptDataServiceImpl extends ServiceImpl<AssetsCalcul
     }
 
     @Override
-    public List<AssetsCalculateEqptData> getAllByAssetsCalculateId(Long calculateId) {
-        return dataMapper.getAllByAssetsCalculateId(calculateId);
+    public List<AssetsCalculateEqptData> getAllByAssetsCalculateId(Long calculateId, String equipmentType) {
+        return dataMapper.getAllByAssetsCalculateId(calculateId, equipmentType);
     }
 }

+ 26 - 9
service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java

@@ -19,6 +19,7 @@ import com.dayou.service.AssetsCalculateEqptDataService;
 import com.dayou.service.AssetsCalculateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.EasyExcelUtil;
+import com.dayou.vo.AssetsCalculateVO;
 import com.dayou.vo.calculate.AssetsCalculateProgressVO;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -37,6 +38,7 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.MessageFormat;
 import java.time.LocalDate;
+import java.util.List;
 
 import static com.dayou.common.CalculateFormula.EQUIPMENT_MAIN_FORMULA;
 
@@ -66,13 +68,16 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
     @Autowired
     private FileNetConfig fileNetConfig;
 
+    /**
+     * 根据项目id查询所有测算表信息
+     * @param projectId 项目id
+     * @return List<AssetsCalculateVO>
+     */
     @Override
-    @SuppressWarnings("unchecked")
-    public Page<AssetsCalculate> selectPage(Page page,AssetsCalculate assetsCalculate){
-        return this.page(page, new QueryWrapper<AssetsCalculate>(assetsCalculate));
+    public List<AssetsCalculateVO> listAllByProjectId(Long projectId) {
+        return assetsCalculateMapper.listAllByProjectId(projectId);
     }
 
-
     @Override
     public AssetsCalculate detail(Long id){
         return this.getById(id);
@@ -150,24 +155,24 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
         // 第一步:写入数据到 机器设备-主模板-设备信息-段落模板
         // 获取模板
-        TmplAssetCalculateSection calculateSection = calculateSectionMapper.getByTmplCode("MAIN_DETAIL");
+        TmplAssetCalculateSection mainDetail = calculateSectionMapper.getByTmplCode("MAIN_DETAIL");
         // 生成后文件的位置
         String mainDetailPath = fileNetConfig.getBaseDir() + fileNetConfig.getAssetOutputCalculatePath() + System.currentTimeMillis() + "_MAIN_DETAIL.xlsx";
         // 模板文件的位置
-        String mainDetailTMplPath = fileNetConfig.getBaseDir() + calculateSection.getSectionFileUrl() + calculateSection.getSectionFileName();
+        String mainDetailTMplPath = fileNetConfig.getBaseDir() + mainDetail.getSectionFileUrl() + mainDetail.getSectionFileName();
         // 写入
         EasyExcel.write(mainDetailPath)
                 .withTemplate(mainDetailTMplPath)
                 .sheet()
-                .doFill(assetsCalculateEqptDataService.getAllByAssetsCalculateId(calculateId));
+                .doFill(assetsCalculateEqptDataService.getAllByAssetsCalculateId(calculateId, null));
 
         // 第二步:写入数据到 机器设备-主模板
         // 获取模板
-        TmplAssetCalculate calculate = tmplAssetCalculateMapper.getCalculateTmplByCode("MAIN");
+        TmplAssetCalculate main = tmplAssetCalculateMapper.getCalculateTmplByCode("MAIN");
         // 生成后文件的位置
         String mainPath = fileNetConfig.getBaseDir() + fileNetConfig.getAssetOutputCalculatePath() + System.currentTimeMillis() + "_MAIN.xlsx";
         // 模板文件的位置
-        String mainTmplPath = fileNetConfig.getBaseDir() + calculate.getFileUrl() + calculate.getFileName();
+        String mainTmplPath = fileNetConfig.getBaseDir() + main.getFileUrl() + main.getFileName();
         // 获取基础测算信息
         ObjectMapper objectMapper = new ObjectMapper();
         EquipmentBaseInfoDTO baseInfoDTO = objectMapper.readValue(getCalculateBaseInfo(calculateId), EquipmentBaseInfoDTO.class);
@@ -204,6 +209,18 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
                 cell.setCellFormula(MessageFormat.format(formula.getFormula(),(row.getRowNum() + 1)));
             }
         }
+
+        // 第五步:设置进口设备的测算表
+        List<AssetsCalculateEqptData> importedEqptData = assetsCalculateEqptDataService.getAllByAssetsCalculateId(calculateId, "进口设备");
+        if (!importedEqptData.isEmpty()) {
+            // 获取模板
+            TmplAssetCalculate imported = tmplAssetCalculateMapper.getCalculateTmplByCode("IMPORTED");
+            // 生成后文件的位置
+            String importedPath = fileNetConfig.getBaseDir() + fileNetConfig.getAssetOutputCalculatePath() + System.currentTimeMillis() + "_MAIN.xlsx";
+            // 模板文件的位置
+            String importedTmplPath = fileNetConfig.getBaseDir() + main.getFileUrl() + main.getFileName();
+        }
+
         // 强制计算公式
         workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();