Browse Source

1.机器设备测算表新增增值率计算
2.新增资产报告模板管理相关接口

GouGengquan 7 months ago
parent
commit
c82b479a06
22 changed files with 1014 additions and 29 deletions
  1. 84 0
      biz-base/src/main/java/com/dayou/controller/TmplAssetReportController.java
  2. 72 0
      biz-base/src/main/java/com/dayou/controller/TmplAssetReportSectionController.java
  3. 35 0
      dao/src/main/java/com/dayou/mapper/TmplAssetReportMapper.java
  4. 22 0
      dao/src/main/java/com/dayou/mapper/TmplAssetReportSectionMapper.java
  5. 45 0
      dao/src/main/resources/mapper/TmplAssetReportMapper.xml
  6. 35 0
      dao/src/main/resources/mapper/TmplAssetReportSectionMapper.xml
  7. 48 0
      domain/src/main/java/com/dayou/bo/EqptReportFillBO.java
  8. 15 14
      domain/src/main/java/com/dayou/common/CalculateFormula.java
  9. 1 1
      domain/src/main/java/com/dayou/dto/calculate/equipment/EquipmentBaseInfoDTO.java
  10. 229 0
      domain/src/main/java/com/dayou/dto/report/equipment/EqptReportBaseInfoDTO.java
  11. 58 0
      domain/src/main/java/com/dayou/entity/TmplAssetReport.java
  12. 48 0
      domain/src/main/java/com/dayou/entity/TmplAssetReportSection.java
  13. 2 2
      domain/src/main/java/com/dayou/enums/EquipmentTmplCode.java
  14. 33 0
      domain/src/main/java/com/dayou/enums/EqptReportTmplCode.java
  15. 5 0
      domain/src/main/java/com/dayou/vo/AssetsCalculateEqptDataVO.java
  16. 58 0
      domain/src/main/java/com/dayou/vo/TmplAssetReportDetailVO.java
  17. 26 0
      service/src/main/java/com/dayou/service/TmplAssetReportSectionService.java
  18. 43 0
      service/src/main/java/com/dayou/service/TmplAssetReportService.java
  19. 7 12
      service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java
  20. 58 0
      service/src/main/java/com/dayou/service/impl/TmplAssetReportSectionServiceImpl.java
  21. 81 0
      service/src/main/java/com/dayou/service/impl/TmplAssetReportServiceImpl.java
  22. 9 0
      sql/update_sql.sql

+ 84 - 0
biz-base/src/main/java/com/dayou/controller/TmplAssetReportController.java

@@ -0,0 +1,84 @@
+package com.dayou.controller;
+
+import com.dayou.common.DropDownBoxData;
+import com.dayou.entity.TmplAssetReportSection;
+import com.dayou.result.Result;
+import com.dayou.vo.TmplAssetReportDetailVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.service.TmplAssetReportService;
+import com.dayou.entity.TmplAssetReport;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 资产报告模板信息表
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@RestController
+@RequestMapping("tmplAssetReport")
+@Slf4j
+@CrossOrigin
+public class TmplAssetReportController {
+    @Autowired
+    private TmplAssetReportService tmplAssetReportService;
+
+    /**
+    * 资产报告模板信息表列表
+    */
+    @GetMapping("/page")
+    public Result<Page<TmplAssetReport>> page(TmplAssetReport tmplAssetReport, Page page){
+        Page<TmplAssetReport> pages=tmplAssetReportService.selectPage(page,tmplAssetReport);
+        return Result.build(pages);
+    }
+
+    /**
+     * 通过模板id获取报告模板详细信息
+     * @param id 模板id
+     * @return TmplAssetReportDetailVO
+     */
+    @GetMapping("/detail/{id}")
+    public Result<TmplAssetReportDetailVO> detail(@PathVariable Long id){
+        return Result.build(tmplAssetReportService.detail(id));
+     }
+
+    /**
+     * 资产报告模板信息表新增
+     */
+    @PostMapping("/save")
+    public Result<Boolean> save(@RequestBody TmplAssetReport tmplAssetReport) {
+        Boolean ret = tmplAssetReportService.add(tmplAssetReport);
+        return Result.build(ret);
+    }
+
+    /**
+     * 资产报告模板信息表更新
+     */
+    @PutMapping("/update")
+    public Result<Boolean> update(@RequestBody TmplAssetReport tmplAssetReport) {
+        Boolean ret = tmplAssetReportService.update(tmplAssetReport);
+        return Result.build(ret);
+    }
+
+    /**
+     * 资产报告模板信息表删除
+     */
+    @DeleteMapping("/delete/{id}")
+    public Result<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = tmplAssetReportService.delete(id);
+        return Result.build(ret);
+    }
+
+    @GetMapping("/getDropDownBoxData")
+    public Result<List<DropDownBoxData>> getDropDownBoxData() {
+        return Result.build(tmplAssetReportService.getDropDownBoxData());
+    }
+
+}
+

+ 72 - 0
biz-base/src/main/java/com/dayou/controller/TmplAssetReportSectionController.java

@@ -0,0 +1,72 @@
+package com.dayou.controller;
+
+import com.dayou.result.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.service.TmplAssetReportSectionService;
+import com.dayou.entity.TmplAssetReportSection;
+import org.springframework.web.bind.annotation.*;
+/**
+ * 资产报告模板的段落模板信息表
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@RestController
+@RequestMapping("tmplAssetReportSection")
+@Slf4j
+@CrossOrigin
+public class TmplAssetReportSectionController {
+    @Autowired
+    private TmplAssetReportSectionService tmplAssetReportSectionService;
+
+    /**
+    * 资产报告模板的段落模板信息表列表
+    */
+    @GetMapping("/page")
+    public Result<Page<TmplAssetReportSection>> page(TmplAssetReportSection tmplAssetReportSection, Page page){
+        Page<TmplAssetReportSection> pages=tmplAssetReportSectionService.selectPage(page,tmplAssetReportSection);
+        return Result.build(pages);
+    }
+
+    /**
+     * 资产报告模板的段落模板信息表详情
+     */
+    @GetMapping("/detail/{id}")
+    public Result<TmplAssetReportSection> detail(@PathVariable Long id){
+        TmplAssetReportSection xTmplAssetReportSection =tmplAssetReportSectionService.detail(id);
+        return Result.build(xTmplAssetReportSection);
+     }
+
+    /**
+     * 资产报告模板的段落模板信息表新增
+     */
+    @PostMapping("/save")
+    public Result<Boolean> save(@RequestBody TmplAssetReportSection tmplAssetReportSection) {
+        Boolean ret = tmplAssetReportSectionService.add(tmplAssetReportSection);
+        return Result.build(ret);
+    }
+
+    /**
+     * 资产报告模板的段落模板信息表更新
+     */
+    @PutMapping("/update")
+    public Result<Boolean> update(@RequestBody TmplAssetReportSection tmplAssetReportSection) {
+        Boolean ret = tmplAssetReportSectionService.update(tmplAssetReportSection);
+        return Result.build(ret);
+    }
+
+    /**
+     * 资产报告模板的段落模板信息表删除
+     */
+    @DeleteMapping("/delete/{id}")
+    public Result<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = tmplAssetReportSectionService.delete(id);
+        return Result.build(ret);
+    }
+
+}
+

+ 35 - 0
dao/src/main/java/com/dayou/mapper/TmplAssetReportMapper.java

@@ -0,0 +1,35 @@
+package com.dayou.mapper;
+
+import com.dayou.common.DropDownBoxData;
+import com.dayou.entity.TmplAssetReport;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dayou.entity.TmplAssetReportSection;
+import com.dayou.vo.TmplAssetReportDetailVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 资产报告模板信息表 Mapper 接口
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+public interface TmplAssetReportMapper extends BaseMapper<TmplAssetReport> {
+
+    /**
+     * 获取资产报告的下拉框数据
+     * @return List<DropDownBoxData>
+     */
+    List<DropDownBoxData> getDropDownBoxData();
+
+    /**
+     * 根据报告模板id获取报告模板详细信息
+     * @param templateReportId 模板id
+     * @return TmplAssetReportSection
+     */
+    TmplAssetReportDetailVO getTmplAssetReportDetailById(@Param("templateReportId") Long templateReportId);
+
+}

+ 22 - 0
dao/src/main/java/com/dayou/mapper/TmplAssetReportSectionMapper.java

@@ -0,0 +1,22 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.TmplAssetReportSection;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 资产报告模板的段落模板信息表 Mapper 接口
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+public interface TmplAssetReportSectionMapper extends BaseMapper<TmplAssetReportSection> {
+    /**
+     * 根据报告主模板id更新段落模板删除状态
+     * @param TRId 主模板id
+     * @return Boolean
+     */
+    Boolean updateDeleteStatusByTRId(@Param("TRId") Long TRId);
+}

+ 45 - 0
dao/src/main/resources/mapper/TmplAssetReportMapper.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.TmplAssetReportMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.TmplAssetReport">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="delete_status" property="deleteStatus" />
+        <result column="report_name" property="reportName" />
+        <result column="file_name" property="fileName" />
+        <result column="file_url" property="fileUrl" />
+        <result column="report_type" property="reportType" />
+        <result column="report_sec_type" property="reportSecType" />
+        <result column="has_section" property="hasSection" />
+        <result column="tmpl_code" property="tmplCode" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        create_time,
+        update_time,
+        delete_status,
+        report_name, file_name, file_url, report_type, report_sec_type, has_section, tmpl_code
+    </sql>
+
+    <!--获取资产测算表的下拉框数据-->
+    <select id="getDropDownBoxData" resultType="com.dayou.common.DropDownBoxData">
+        SELECT id, report_name AS name
+        FROM tmpl_asset_report
+        WHERE delete_status = 0
+          AND has_section = 1
+    </select>
+
+    <!--根据报告模板id获取报告模板详细信息-->
+    <select id="getTmplAssetReportDetailById" resultType="com.dayou.vo.TmplAssetReportDetailVO">
+        SELECT id, report_name, file_name, file_url, report_type, has_section, update_time, tmpl_code
+        FROM tmpl_asset_report
+        WHERE delete_status = 0
+          AND id = #{templateReportId}
+    </select>
+
+</mapper>

+ 35 - 0
dao/src/main/resources/mapper/TmplAssetReportSectionMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.TmplAssetReportSectionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.TmplAssetReportSection">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="delete_status" property="deleteStatus" />
+        <result column="template_report_id" property="templateReportId" />
+        <result column="section_file_name" property="sectionFileName" />
+        <result column="section_file_url" property="sectionFileUrl" />
+        <result column="section_name" property="sectionName" />
+        <result column="tmpl_code" property="tmplCode" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        create_time,
+        update_time,
+        delete_status,
+        template_report_id, section_file_name, section_file_url, section_name, tmpl_code
+    </sql>
+
+    <!--根据报告主模板id更新段落模板删除状态-->
+    <update id="updateDeleteStatusByTRId">
+        UPDATE tmpl_asset_report_section
+        SET delete_status = 1
+        WHERE delete_status = 0
+          AND template_report_id = #{TRId}
+    </update>
+
+</mapper>

+ 48 - 0
domain/src/main/java/com/dayou/bo/EqptReportFillBO.java

@@ -0,0 +1,48 @@
+package com.dayou.bo;
+
+import com.dayou.dto.report.equipment.EqptReportBaseInfoDTO;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EqptReportFillBO {
+
+    /**
+     * 产品号
+     */
+    private String productionNo;
+
+    /**
+     * 账面原值
+     */
+    private BigDecimal bookOriginalValue;
+
+    /**
+     * 账面净值
+     */
+    private BigDecimal bookNetValue;
+
+    /**
+     * 评估原值
+     */
+    private BigDecimal evaluateOriginalValue;
+
+    /**
+     * 评估净值
+     */
+    private BigDecimal evaluateNetValue;
+
+    /**
+     * 增值率
+     */
+    private Double valueAddedRate;
+
+    /**
+     * 开始评估工作年月
+     */
+    private String startWorkMonth;
+
+    private EqptReportBaseInfoDTO eqptReportBaseInfo;
+
+}

+ 15 - 14
domain/src/main/java/com/dayou/common/CalculateFormula.java

@@ -26,21 +26,22 @@ public class CalculateFormula {
      */
     public enum EquipmentMainFormula {
         不含税单价("L{0}/(1+M{0})",14),
-        原值("AP{0}",16),
-        成新率("Y{0}",17),
+        原值("AQ{0}",16),
+        成新率("Z{0}",17),
         净值("ROUND(P{0}*Q{0},0)",18),
-        已使用年数("ROUND(($U$2-F{0})/365,2)",20),
-        年限成新率("IF((S{0}-T{0})/S{0}<15%,15%,ROUND((S{0}-T{0})/S{0},2))",21),
-        综合成新率("ROUND(U{0}*V{0}+W{0}*X{0},2)",25),
-        报价("AD{0}*H{0}",31),
-        运杂费("ROUND(AE{0}*AF{0},0)",33),
-        基础费("ROUND(AE{0}*AH{0},0)",35),
-        安装费("AE{0}*AJ{0}",37),
-        设备工程费("ROUND(AE{0}+AG{0}+AI{0}+AK{0},0)",38),
-        前期费("ROUND(AL{0}*AS3,0)",39),
-        资金成本("ROUND((AM{0}*((1+$AS$3)^($AS$1)-1)+AL{0}*((1+$AS$3)^($AS$1/2)-1)),0)",40),
-        可抵扣增值税("ROUND(AE{0}/(1+13%)*13%+(AG{0}+AI{0}+AK{0})/(1+9%)*9%+AL{0}*($AS$3-$AS$4)/1.06*0.06,0)",41),
-        重置全价("ROUND(AL{0}+AM{0}+AN{0}-AO{0},0)",42);
+        增值率("ROUND((R{0}-K{0})/K{0},2)", 19),
+        已使用年数("ROUND(($V$2-F{0})/365,2)",21),
+        年限成新率("IF((T{0}-U{0})/T{0}<15%,15%,ROUND((T{0}-U{0})/T{0},2))",22),
+        综合成新率("ROUND(V{0}*W{0}+X{0}*Y{0},2)",26),
+        报价("AE{0}*H{0}",32),
+        运杂费("ROUND(AF{0}*AG{0},0)",34),
+        基础费("ROUND(AF{0}*AI{0},0)",36),
+        安装费("AF{0}*AK{0}",38),
+        设备工程费("ROUND(AF{0}+AH{0}+AJ{0}+AL{0},0)",39),
+        前期费("ROUND(AM{0}*AT3,0)",40),
+        资金成本("ROUND((AN{0}*((1+$AT$3)^($AT$1)-1)+AM{0}*((1+$AT$3)^($AT$1/2)-1)),0)",41),
+        可抵扣增值税("ROUND(AF{0}/(1+13%)*13%+(AH{0}+AJ{0}+AL{0})/(1+9%)*9%+AM{0}*($AT$3-$AT$4)/1.06*0.06,0)",42),
+        重置全价("ROUND(AM{0}+AN{0}+AO{0}-AP{0},0)",43);
 
         /**
          * 公式

+ 1 - 1
domain/src/main/java/com/dayou/dto/calculate/equipment/EquipmentBaseInfoDTO.java

@@ -9,7 +9,7 @@ import java.time.LocalDate;
  * 机器设备-基础信息
  */
 @Data
-public class EquipmentBaseInfoDTO {
+public class EqptCalculateBaseInfoDTO {
 
     /**
      * 评估基准日

+ 229 - 0
domain/src/main/java/com/dayou/dto/report/equipment/EqptReportBaseInfoDTO.java

@@ -0,0 +1,229 @@
+package com.dayou.dto.report.equipment;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EqptReportBaseInfoDTO {
+
+    /**
+     * 评估报告名称
+     */
+    private String reportName;
+
+    /**
+     * 评估目的
+     */
+    private String purpose;
+
+    /**
+     * 评估范围
+     */
+    private String scope;
+
+    /**
+     * 价值类型
+     */
+    private String valueType;
+
+    /**
+     * 前期准备阶段
+     */
+    private String preparationPhase;
+
+    /**
+     * 评估基准日
+     */
+    private String valuationBasisDate;
+
+    /**
+     * 现场调查日
+     */
+    private String fieldInvestigationDay;
+
+    /**
+     * 评估方法
+     */
+    private String method;
+
+    /**
+     * 评估结论
+     */
+    private String conclusion;
+
+    /**
+     * 是否包含增值税
+     */
+    private Boolean hasVAT;
+
+    /**
+     * 评估报告日
+     */
+    private String reportDate;
+
+    /**
+     * 报告有效期
+     */
+    private String reportValidity;
+
+    /**
+     * 委托人
+     */
+    private List<ConsignorInfo> consignorInfos;
+
+    /**
+     * 产权持有人
+     */
+    private List<PropertyOwnerInfo> propertyOwnerInfos;
+
+    /**
+     * 委托人与产权持有人之间的关系
+     */
+    private String ownerClient;
+
+    /**
+     * 资产实物情况
+     */
+    private AssetsInfo assetsInfo;
+
+    /**
+     * 委托人信息
+     */
+    @Data
+    public static class ConsignorInfo {
+
+        /**
+         * 公司名称
+         */
+        private String consignorCompanyName;
+
+        /**
+         * 统一社会信用代码
+         */
+        private String consignorUnifiedSocialCreditCode;
+
+        /**
+         * 注册地址
+         */
+        private String consignorRegisteredAddress;
+
+        /**
+         * 法定代表人/负责人
+         */
+        private String consignorLegalRepresentative;
+
+        /**
+         * 类型
+         */
+        private String consignorType;
+
+        /**
+         * 成立日期
+         */
+        private String consignorEstablishmentDate;
+
+        /**
+         * 经营范围
+         */
+        private String consignorBusinessScope;
+
+    }
+
+    /**
+     * 产权持有人信息
+     */
+    @Data
+    public static class PropertyOwnerInfo {
+
+        /**
+         * 公司名称
+         */
+        private String ownerCompanyName;
+
+        /**
+         * 统一社会信用代码
+         */
+        private String ownerUnifiedSocialCreditCode;
+
+        /**
+         * 注册地址
+         */
+        private String ownerRegisteredAddress;
+
+        /**
+         * 法定代表人/负责人
+         */
+        private String ownerLegalRepresentative;
+
+        /**
+         * 类型
+         */
+        private String ownerType;
+
+        /**
+         * 成立日期
+         */
+        private String ownerEstablishmentDate;
+
+        /**
+         * 经营范围
+         */
+        private String ownerBusinessScope;
+
+    }
+
+    /**
+     * 资产实物情况信息
+     */
+    @Data
+    public static class AssetsInfo {
+
+        /**
+         * 资产项数
+         */
+        private String assetCount;
+
+        /**
+         * 资产位置
+         */
+        private String assetLocation;
+
+        /**
+         * 主要设备资产
+         */
+        private String majorEquipmentAssets;
+
+        /**
+         * 购置期间
+         */
+        private String purchasePeriod;
+
+        /**
+         * 资产现状
+         */
+        private String assetCondition;
+
+        /**
+         * 是否设立抵押权
+         */
+        private Boolean establishMortgage;
+
+        /**
+         * 是否尚在质保期
+         */
+        private Boolean underWarranty;
+
+        /**
+         * 基准日尚余未付设备款
+         */
+        private Boolean eqptUnpaidAmount;
+
+        /**
+         * 产权持有人权属等主要资料不完整或者存在瑕疵的情形
+         */
+        private Boolean hasFlaw;
+
+    }
+
+}

+ 58 - 0
domain/src/main/java/com/dayou/entity/TmplAssetReport.java

@@ -0,0 +1,58 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * <p>
+ * 资产报告模板信息表
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TmplAssetReport extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 报告名字
+     */
+    private String reportName;
+
+    /**
+     * 模板文件名字
+     */
+    private String fileName;
+
+    /**
+     * 模板文件存储位置
+     */
+    private String fileUrl;
+
+    /**
+     * 报告类型
+     */
+    private String reportType;
+
+    /**
+     * 二级报告类型(针对细分情况)
+     */
+    private String reportSecType;
+
+    /**
+     * 是否有段落模板
+     */
+    private Boolean hasSection;
+
+    /**
+     * 模板code
+     */
+    private String tmplCode;
+
+
+}

+ 48 - 0
domain/src/main/java/com/dayou/entity/TmplAssetReportSection.java

@@ -0,0 +1,48 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * <p>
+ * 资产报告模板的段落模板信息表
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TmplAssetReportSection extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 报告模板id
+     */
+    private Long templateReportId;
+
+    /**
+     * 段落模板文件名字
+     */
+    private String sectionFileName;
+
+    /**
+     * 段落模板文件存储位置
+     */
+    private String sectionFileUrl;
+
+    /**
+     * 测算表段落模板名称
+     */
+    private String sectionName;
+
+    /**
+     * 模板code
+     */
+    private String tmplCode;
+
+
+}

+ 2 - 2
domain/src/main/java/com/dayou/enums/EquipmentTmplCode.java

@@ -1,6 +1,6 @@
 package com.dayou.enums;
 
-public enum EquipmentTmplCode {
+public enum EqptCalculateTmplCode {
 
     MAIN("MAIN", "机器设备-主模板"),
     MAIN_DETAIL("MAIN_DETAIL", "机器设备-主模板-设备信息-段落模板"),
@@ -11,7 +11,7 @@ public enum EquipmentTmplCode {
 
     private String name;
 
-    EquipmentTmplCode(String code, String name) {
+    EqptCalculateTmplCode(String code, String name) {
         this.code = code;
         this.name = name;
     }

+ 33 - 0
domain/src/main/java/com/dayou/enums/EqptReportTmplCode.java

@@ -0,0 +1,33 @@
+package com.dayou.enums;
+
+public enum EqptReportTmplCode {
+
+    MAIN("MAIN", "设备融资项目报告-框架-主模板"),
+    COVER("COVER", "设备融资项目报告-封面-段落模板"),
+    CATALOGUE("CATALOGUE", "设备融资项目报告-目录-段落模板"),
+    DETAIL("DETAIL", "设备融资项目报告-正文-段落模板"),
+    CONSIGNOR("CONSIGNOR", "设备融资项目报告-委托人概况-段落模板"),
+    PROPERTY_OWNER("PROPERTY_OWNER", "设备融资项目报告-产权持有人概况-段落模板");
+
+    private String code;
+
+    private String name;
+
+    EqptReportTmplCode(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String toString() {
+        return name + ":" + code;
+    }
+}

+ 5 - 0
domain/src/main/java/com/dayou/vo/AssetsCalculateEqptDataVO.java

@@ -29,6 +29,11 @@ public class AssetsCalculateEqptDataVO extends AssetsCalculateEqptData {
     private BigDecimal netValue;
 
     /**
+     * 增值率
+     */
+    private Double valueAddedRate;
+
+    /**
      * 成新率%
      */
     private Double depreciationRate;

+ 58 - 0
domain/src/main/java/com/dayou/vo/TmplAssetReportDetailVO.java

@@ -0,0 +1,58 @@
+package com.dayou.vo;
+
+import com.dayou.entity.TmplAssetReportSection;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class TmplAssetReportDetailVO {
+
+    /**
+     * 主键id
+     */
+    protected Long id;
+
+    /**
+     * 测算表名字
+     */
+    private String reportName;
+
+    /**
+     * 模板文件名字
+     */
+    private String fileName;
+
+    /**
+     * 模板文件存储位置
+     */
+    private String fileUrl;
+
+    /**
+     * 测算类型
+     */
+    private String reportType;
+
+
+    /**
+     * 是否有段落模板
+     */
+    private Boolean hasSection;
+
+    /**
+     * 模板code
+     */
+    private String tmplCode;
+
+    /**
+     * 最后更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 段落模板信息
+     */
+    List<TmplAssetReportSection> sectionList;
+
+}

+ 26 - 0
service/src/main/java/com/dayou/service/TmplAssetReportSectionService.java

@@ -0,0 +1,26 @@
+package com.dayou.service;
+import com.dayou.entity.TmplAssetReportSection;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+/**
+ * <p>
+ * 资产报告模板的段落模板信息表 服务类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+public interface TmplAssetReportSectionService extends IService<TmplAssetReportSection> {
+
+        Page<TmplAssetReportSection> selectPage(Page page,TmplAssetReportSection tmplAssetReportSection);
+
+        TmplAssetReportSection detail(Long id);
+
+        Boolean add(TmplAssetReportSection tmplAssetReportSection);
+
+        Boolean update(TmplAssetReportSection tmplAssetReportSection);
+
+        Boolean delete(Long id);
+
+}

+ 43 - 0
service/src/main/java/com/dayou/service/TmplAssetReportService.java

@@ -0,0 +1,43 @@
+package com.dayou.service;
+import com.dayou.common.DropDownBoxData;
+import com.dayou.entity.TmplAssetReport;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.entity.TmplAssetReportSection;
+import com.dayou.vo.TmplAssetReportDetailVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 资产报告模板信息表 服务类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+public interface TmplAssetReportService extends IService<TmplAssetReport> {
+
+        Page<TmplAssetReport> selectPage(Page page,TmplAssetReport tmplAssetReport);
+
+        /**
+         * 通过模板id获取报告模板详细信息
+         * @param id 模板id
+         * @return TmplAssetReportDetailVO
+         */
+        TmplAssetReportDetailVO detail(Long id);
+
+        Boolean add(TmplAssetReport tmplAssetReport);
+
+        Boolean update(TmplAssetReport tmplAssetReport);
+
+        Boolean delete(Long id);
+
+        /**
+         * 获取资产报告的下拉框数据
+         * @return List<DropDownBoxData>
+         */
+        List<DropDownBoxData> getDropDownBoxData();
+
+}

+ 7 - 12
service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java

@@ -8,9 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.dayou.common.BaseEntity;
 import com.dayou.common.CalculateFormula;
 import com.dayou.config.FileNetConfig;
-import com.dayou.dto.calculate.equipment.EquipmentBaseInfoDTO;
+import com.dayou.dto.calculate.equipment.EqptCalculateBaseInfoDTO;
 import com.dayou.entity.*;
-import com.dayou.enums.BusinessEnum;
 import com.dayou.mapper.AssetsCalculateMapper;
 import com.dayou.mapper.TmplAssetCalculateMapper;
 import com.dayou.mapper.TmplAssetCalculateSectionMapper;
@@ -23,13 +22,10 @@ import com.dayou.vo.AssetsCalculateEqptImpDataVO;
 import com.dayou.vo.AssetsCalculateEqptNonsDataVO;
 import com.dayou.vo.AssetsCalculateVO;
 import com.dayou.vo.calculate.AssetsCalculateProgressVO;
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -40,12 +36,11 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.MessageFormat;
 import java.time.LocalDate;
-import java.util.ArrayList;
 import java.util.List;
 
 import static com.dayou.common.CalculateFormula.*;
 import static com.dayou.enums.DocumentType.EQPT_CALCULATE;
-import static com.dayou.enums.EquipmentTmplCode.*;
+import static com.dayou.enums.EqptCalculateTmplCode.*;
 
 /**
  * <p>
@@ -201,7 +196,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
         String mainTmplPath = fileNetConfig.getBaseDir() + main.getFileUrl() + main.getFileName();
         // 获取基础测算信息
         ObjectMapper objectMapper = new ObjectMapper();
-        EquipmentBaseInfoDTO baseInfoDTO = objectMapper.readValue(getCalculateBaseInfo(calculateId), EquipmentBaseInfoDTO.class);
+        EqptCalculateBaseInfoDTO baseInfoDTO = objectMapper.readValue(getCalculateBaseInfo(calculateId), EqptCalculateBaseInfoDTO.class);
         // 利息、前期费用率、建设单位管理费率采用百分比,需要除100
         baseInfoDTO.setInterest(baseInfoDTO.getInterest() / 100);
         baseInfoDTO.setPreConstructionCostRatio(baseInfoDTO.getPreConstructionCostRatio() / 100);
@@ -271,9 +266,9 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
             // 将主表sheet中进口设备数据的单价改为引用对应的进口设备表的设备原价
             for (Row row : sheet) {
-                Cell cell = row.getCell(25); // Z列(设备类型)的索引是25(从0开始计数)
+                Cell cell = row.getCell(26); // AA列(设备类型)的索引是26(从0开始计数)
                 if (cell != null && cell.getStringCellValue().equals("进口设备")) {
-                    Cell priceCell = row.getCell(29); // 单价单元格
+                    Cell priceCell = row.getCell(30); // 单价单元格
                     int importedRowNum;
                     // 循环进口设备sheet
                     for (int i = 2; i <= importedSheet.getLastRowNum(); i++) { // 跳过前两行
@@ -324,9 +319,9 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
             // 将主表sheet中进口设备数据的单价改为引用对应的进口设备表的设备原价
             for (Row row : sheet) {
-                Cell cell = row.getCell(25); // Z列(设备类型)的索引是25(从0开始计数)
+                Cell cell = row.getCell(26); // AA列(设备类型)的索引是26(从0开始计数)
                 if (cell != null && cell.getStringCellValue().equals("非标设备")) {
-                    Cell priceCell = row.getCell(29); // 单价单元格
+                    Cell priceCell = row.getCell(30); // 单价单元格
                     int importedRowNum;
                     // 循环进口设备sheet
                     for (int i = 2; i <= nonstandardSheet.getLastRowNum(); i++) { // 跳过前两行

+ 58 - 0
service/src/main/java/com/dayou/service/impl/TmplAssetReportSectionServiceImpl.java

@@ -0,0 +1,58 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.TmplAssetReportSection;
+import com.dayou.mapper.TmplAssetReportSectionMapper;
+import com.dayou.service.TmplAssetReportSectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 资产报告模板的段落模板信息表 服务实现类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@Service
+public class TmplAssetReportSectionServiceImpl extends ServiceImpl<TmplAssetReportSectionMapper, TmplAssetReportSection> implements TmplAssetReportSectionService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<TmplAssetReportSection> selectPage(Page page,TmplAssetReportSection tmplAssetReportSection){
+        return this.page(page, new QueryWrapper<TmplAssetReportSection>(tmplAssetReportSection));
+    }
+
+
+    @Override
+    public TmplAssetReportSection detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(TmplAssetReportSection tmplAssetReportSection){
+        return  this.save(tmplAssetReportSection);
+    }
+
+    @Override
+    public Boolean update(TmplAssetReportSection tmplAssetReportSection){
+        return  this.updateById(tmplAssetReportSection);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 81 - 0
service/src/main/java/com/dayou/service/impl/TmplAssetReportServiceImpl.java

@@ -0,0 +1,81 @@
+package com.dayou.service.impl;
+
+import com.dayou.common.DropDownBoxData;
+import com.dayou.entity.TmplAssetCalculateSection;
+import com.dayou.entity.TmplAssetReport;
+import com.dayou.entity.TmplAssetReportSection;
+import com.dayou.mapper.TmplAssetReportMapper;
+import com.dayou.mapper.TmplAssetReportSectionMapper;
+import com.dayou.service.TmplAssetReportService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.TmplAssetReportDetailVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 资产报告模板信息表 服务实现类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-12-05
+ */
+@Service
+public class TmplAssetReportServiceImpl extends ServiceImpl<TmplAssetReportMapper, TmplAssetReport> implements TmplAssetReportService {
+
+    @Autowired
+    private TmplAssetReportMapper tmplAssetReportMapper;
+
+    @Autowired
+    private TmplAssetReportSectionMapper tmplAssetReportSectionMapper;
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<TmplAssetReport> selectPage(Page page,TmplAssetReport tmplAssetReport){
+        return this.page(page, new QueryWrapper<TmplAssetReport>(tmplAssetReport));
+    }
+
+    /**
+     * 通过模板id获取报告模板详细信息
+     * @param id 模板id
+     * @return TmplAssetReportDetailVO
+     */
+    @Override
+    public TmplAssetReportDetailVO detail(Long id){
+        TmplAssetReportDetailVO detail = tmplAssetReportMapper.getTmplAssetReportDetailById(id);
+        detail.setSectionList(tmplAssetReportSectionMapper.selectList(new LambdaQueryWrapper<TmplAssetReportSection>().eq(TmplAssetReportSection::getTemplateReportId, id)));
+        return detail;
+    }
+
+    @Override
+    public Boolean add(TmplAssetReport tmplAssetReport){
+        return  this.save(tmplAssetReport);
+    }
+
+    @Override
+    public Boolean update(TmplAssetReport tmplAssetReport){
+        return  this.updateById(tmplAssetReport);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        tmplAssetReportSectionMapper.updateDeleteStatusByTRId(id);
+        //逻辑删除
+        return this.removeById(id);
+    }
+
+    @Override
+    public List<DropDownBoxData> getDropDownBoxData() {
+        return tmplAssetReportMapper.getDropDownBoxData();
+    }
+}

+ 9 - 0
sql/update_sql.sql

@@ -587,3 +587,12 @@ CREATE TABLE `assets_report` (
                                  KEY `project_id` (`project_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产项目报告信息表';
 
+/**
+  日期:2024-12-05
+  修改人:苟耕铨
+  未更新到test-env
+ */
+ALTER TABLE tmpl_asset_report ADD COLUMN tmpl_code VARCHAR(50) NOT NULL COMMENT '模板code';
+ALTER TABLE tmpl_asset_report_section ADD COLUMN section_name VARCHAR(50) NOT NULL COMMENT '测算表段落模板名称';
+ALTER TABLE tmpl_asset_report_section ADD COLUMN tmpl_code VARCHAR(50) NOT NULL COMMENT '模板code';
+