Преглед изворни кода

1.机器设备-进口设备作价开发

GouGengquan пре 8 месеци
родитељ
комит
9c080c8bfe

+ 23 - 0
biz-base/src/main/java/com/dayou/controller/AssetsCalculateEqptDataController.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.calculate.equipment.EqptQueryDTO;
 import com.dayou.entity.AssetsCalculate;
 import com.dayou.entity.AssetsCalculateEqptData;
+import com.dayou.entity.AssetsCalculateEqptImpData;
 import com.dayou.result.Result;
 import com.dayou.service.AssetsCalculateEqptDataService;
+import com.dayou.vo.AssetsCalculateEqptImpDataVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -58,4 +60,25 @@ public class AssetsCalculateEqptDataController {
         return Result.build(dataService.updateData(assetsCalculateEqptData));
     }
 
+    /**
+     * 分页查询进口设备信息
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsCalculateEqptImpData>
+     */
+    @GetMapping("/getImpDataPage")
+    public Result<Page<AssetsCalculateEqptImpDataVO>> getImpDataPage(Page page, EqptQueryDTO dto) {
+        return Result.build(dataService.getImpDataPage(page, dto));
+    }
+
+    /**
+     * 更新机器设备进口设备数据
+     * @param assetsCalculateEqptImpData 进口设备信息
+     * @return Boolean
+     */
+    @PutMapping("/updateImpData")
+    public Result<Boolean> updateImpData(@RequestBody AssetsCalculateEqptImpData assetsCalculateEqptImpData) {
+       return Result.build(dataService.updateImpData(assetsCalculateEqptImpData));
+    }
+
 }

+ 32 - 0
dao/src/main/java/com/dayou/mapper/AssetsCalculateEqptDataMapper.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.calculate.equipment.EqptQueryDTO;
 import com.dayou.entity.AssetsCalculateEqptData;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dayou.entity.AssetsCalculateEqptImpData;
+import com.dayou.vo.AssetsCalculateEqptImpDataVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -48,4 +51,33 @@ public interface AssetsCalculateEqptDataMapper extends BaseMapper<AssetsCalculat
      */
     Boolean deleteDataByCalculateId(@Param("calculateId") Long calculateId);
 
+    /**
+     * 分页查询进口设备信息
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsCalculateEqptImpData>
+     */
+    Page<AssetsCalculateEqptImpDataVO> getImpDataPage(@Param("page") Page page, @Param("dto") EqptQueryDTO dto);
+
+    /**
+     * 根据id更新机器设备测算数据单价
+     * @param id id
+     * @param price 单价
+     */
+    void updateDataPrice(@Param("id") Long id, @Param("price") BigDecimal price);
+
+    /**
+     * 更新机器设备进口设备数据
+     * @param assetsCalculateEqptImpData 进口设备信息
+     * @return Boolean
+     */
+    Boolean updateImpData(@Param("data") AssetsCalculateEqptImpData assetsCalculateEqptImpData);
+
+    /**
+     * 新增机器设备进口设备数据
+     * @param assetsCalculateEqptImpData 进口设备信息
+     * @return Boolean
+     */
+    Boolean addImpData(@Param("data") AssetsCalculateEqptImpData assetsCalculateEqptImpData);
+
 }

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

@@ -86,4 +86,82 @@
         AND assets_calculate_id = #{calculateId}
     </delete>
 
+    <!--分页查询进口设备信息-->
+    <select id="getImpDataPage" resultType="com.dayou.vo.AssetsCalculateEqptImpDataVO">
+        SELECT data.sort_id,
+               data.equipment_name,
+               data.model,
+               data.purchase_date,
+               data.activation_date,
+               data.quantity,
+               data.unit_of_measurement,
+               data.book_original_value,
+               data.manufacturer,
+               impData.id,
+               data.id AS eqptDataId,
+               impData.ppi,
+               impData.pricing_basis,
+               impData.central_parity_rate,
+               impData.tariff_rate,
+               impData.import_vat_rate,
+               impData.bank_charges_rate,
+               impData.foreign_transaction_rate,
+               impData.product_code,
+               impData.currency,
+               impData.address,
+               impData.transaction_method,
+               impData.contract_amount,
+               impData.contract_signing_date,
+               impData.destination_port,
+               impData.original_price
+        FROM assets_calculate_eqpt_data AS data
+        LEFT JOIN assets_calculate_eqpt_imp_data AS impData ON impData.eqpt_data_id = data.id AND impData.delete_status = 0
+        WHERE data.delete_status = 0
+        AND data.equipment_type = #{dto.equipmentType}
+        AND assets_calculate_id = #{dto.calculateId}
+        <if test="dto != null and dto.sortId != null">
+            AND sort_id = #{dto.sortId}
+        </if>
+        <if test="dto != null and dto.equipmentName">
+            AND equipment_name LIKE CONCAT('%', #{dto.equipmentName}, '%')
+        </if>
+    </select>
+
+    <!--根据id更新机器设备测算数据单价-->
+    <update id="updateDataPrice">
+        UPDATE assets_calculate_eqpt_data
+        SET price = #{price}
+        WHERE delete_status = 0
+          AND id = #{id}
+    </update>
+
+    <!--更新机器设备进口设备数据-->
+    <update id="updateImpData">
+        UPDATE assets_calculate_eqpt_imp_data
+        SET ppi = #{data.ppi},
+            pricing_basis = #{data.pricingBasis},
+            central_parity_rate = #{data.centralParityRate},
+            tariff_rate = #{data.tariffRate},
+            import_VAT_rate = #{data.importVATRate},
+            bank_charges_rate = #{data.bankChargesRate},
+            foreign_transaction_rate = #{data.foreignTransactionRate},
+            product_code = #{data.productCode},
+            currency = #{data.currency},
+            address = #{data.address},
+            transaction_method = #{data.transactionMethod},
+            contract_amount = #{data.contractAmount},
+            contract_signing_date = #{data.contractSigningDate},
+            destination_port = #{data.destinationPort},
+            original_price = #{data.originalPrice}
+        WHERE delete_status = 0
+        AND id = #{data.id}
+        AND eqpt_data_id = #{data.eqptDataId}
+    </update>
+
+    <!--新增机器设备进口设备数据-->
+    <insert id="addImpData">
+        INSERT INTO assets_calculate_eqpt_imp_data(id, eqpt_data_id, ppi, pricing_basis, central_parity_rate, tariff_rate, import_VAT_rate, bank_charges_rate, foreign_transaction_rate, product_code, currency, address, transaction_method, contract_amount, contract_signing_date, destination_port, original_price)
+        VALUE (NULL,#{data.eqptDataId},#{data.ppi},#{data.pricingBasis},#{data.centralParityRate},#{data.tariffRate},#{data.importVATRate},#{data.bankChargesRate},#{data.foreignTransactionRate},#{data.productCode},#{data.currency},#{data.address},#{data.transactionMethod},#{data.contractAmount},#{data.contractSigningDate},#{data.destinationPort},#{data.originalPrice})
+    </insert>
+
 </mapper>

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

@@ -40,16 +40,4 @@ public class EquipmentBaseInfoDTO {
     @ExcelProperty("建设单位管理费率")
     private Double managementExpenseRatio;
 
-    /**
-     * 关税
-     */
-    @ExcelProperty("关税")
-    private Double tariff;
-
-    /**
-     * 进口增值税
-     */
-    @ExcelProperty("进口增值税")
-    private Double importVAT;
-
 }

+ 0 - 21
domain/src/main/java/com/dayou/dto/calculate/equipment/ImportedEquipmentBaseDTO.java

@@ -1,21 +0,0 @@
-package com.dayou.dto.calculate.equipment;
-
-import lombok.Data;
-
-/**
- * 机器设备-进口设备测算-段落模板
- */
-@Data
-public class ImportedEquipmentBaseDTO {
-
-    /**
-     * 关税
-     */
-    private Double tariff;
-
-    /**
-     * 进口增值税
-     */
-    private Double importVAT;
-
-}

+ 106 - 0
domain/src/main/java/com/dayou/entity/AssetsCalculateEqptImpData.java

@@ -0,0 +1,106 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * <p>
+ * 机器设备-进口设备测算数据表
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-11-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class AssetsCalculateEqptImpData extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 测算数据主表id
+     */
+    private Long eqptDataId;
+
+    /**
+     * 价格指数
+     */
+    private Double ppi;
+
+    /**
+     * 取价依据
+     */
+    private String pricingBasis;
+
+    /**
+     * 基准日汇率中间价
+     */
+    private Float centralParityRate;
+
+    /**
+     * 关税税率
+     */
+    private Float tariffRate;
+
+    /**
+     * 进口增值税率
+     */
+    private Float importVATRate;
+
+    /**
+     * 银行财务费率
+     */
+    private Float bankChargesRate;
+
+    /**
+     * 外贸手续费率
+     */
+    private Float foreignTransactionRate;
+
+    /**
+     * 商品编号
+     */
+    private String productCode;
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 成交方式
+     */
+    private String transactionMethod;
+
+    /**
+     * 合同金额
+     */
+    private BigDecimal contractAmount;
+
+    /**
+     * 合同签订日期
+     */
+    private LocalDate contractSigningDate;
+
+    /**
+     * 到岸港口
+     */
+    private String destinationPort;
+
+    /**
+     * 设备原价
+     */
+    private BigDecimal originalPrice;
+
+
+}

+ 186 - 0
domain/src/main/java/com/dayou/vo/AssetsCalculateEqptImpDataVO.java

@@ -0,0 +1,186 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class AssetsCalculateEqptImpDataVO {
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 序号
+     */
+    private Integer sortId;
+
+    /**
+     * 设备名称
+     */
+    private String equipmentName;
+
+    /**
+     * 生产厂家
+     */
+    private String manufacturer;
+
+    /**
+     * 型号规格
+     */
+    private String model;
+
+    /**
+     * 购买日期
+     */
+    private LocalDate purchaseDate;
+
+    /**
+     * 启用日期
+     */
+    private LocalDate activationDate;
+
+    /**
+     * 数量
+     */
+    private String quantity;
+
+    /**
+     * 计量单位
+     */
+    private String unitOfMeasurement;
+
+    /**
+     * 账面原值
+     */
+    private Float bookOriginalValue;
+
+    /**
+     * 价格指数
+     */
+    private Double ppi;
+
+    /**
+     * 测算数据主表id
+     */
+    private Long eqptDataId;
+
+    /**
+     * 取价依据
+     */
+    private String pricingBasis;
+
+    /**
+     * 基准日汇率中间价
+     */
+    private Float centralParityRate;
+
+    /**
+     * 关税税率
+     */
+    private Float tariffRate;
+
+    /**
+     * 进口增值税率
+     */
+    private Float importVATRate;
+
+    /**
+     * 银行财务费率
+     */
+    private Float bankChargesRate;
+
+    /**
+     * 外贸手续费率
+     */
+    private Float foreignTransactionRate;
+
+    /**
+     * 商品编号
+     */
+    private String productCode;
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 成交方式
+     */
+    private String transactionMethod;
+
+    /**
+     * 合同金额
+     */
+    private BigDecimal contractAmount;
+
+    /**
+     * 合同签订日期
+     */
+    private LocalDate contractSigningDate;
+
+    /**
+     * 到岸港口
+     */
+    private String destinationPort;
+
+    /**
+     * 设备原价
+     */
+    private BigDecimal originalPrice;
+
+
+    /**
+     * 以下字段返回给前端用来在table中进行计算的,实际上后端不会设置值
+     */
+
+    /**
+     * 购置价(CIF到岸价)
+     */
+    private BigDecimal purchasePrice;
+
+    /**
+     * (CIF到岸价)折人民币
+     */
+    private BigDecimal CIFLandedPrice;
+
+    /**
+     * 关税
+     */
+    private BigDecimal tariff;
+
+    /**
+     * 进口增值税
+     */
+    private BigDecimal importVAT;
+
+    /**
+     * 设备价格
+     */
+    private BigDecimal eqptPrice;
+
+    /**
+     * 银行财务费
+     */
+    private BigDecimal bankCharges;
+
+    /**
+     * 外贸手续费
+     */
+    private BigDecimal foreignTransaction;
+
+    /**
+     * 费用小计
+     */
+    private BigDecimal totalFees;
+
+}

+ 17 - 0
service/src/main/java/com/dayou/service/AssetsCalculateEqptDataService.java

@@ -4,6 +4,8 @@ import com.dayou.entity.AssetsCalculateEqptData;
 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.AssetsCalculateEqptImpData;
+import com.dayou.vo.AssetsCalculateEqptImpDataVO;
 
 import java.util.List;
 
@@ -54,4 +56,19 @@ public interface AssetsCalculateEqptDataService extends IService<AssetsCalculate
      */
     Boolean updateData(AssetsCalculateEqptData assetsCalculateEqptData);
 
+    /**
+     * 分页查询进口设备信息
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsCalculateEqptImpData>
+     */
+    Page<AssetsCalculateEqptImpDataVO> getImpDataPage(Page page, EqptQueryDTO dto);
+
+    /**
+     * 更新机器设备进口设备数据
+     * @param assetsCalculateEqptImpData 进口设备信息
+     * @return Boolean
+     */
+    Boolean updateImpData(AssetsCalculateEqptImpData assetsCalculateEqptImpData);
+
 }

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

@@ -1,10 +1,13 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.dayou.dto.calculate.equipment.EqptQueryDTO;
 import com.dayou.entity.AssetsCalculateEqptData;
+import com.dayou.entity.AssetsCalculateEqptImpData;
 import com.dayou.mapper.AssetsCalculateEqptDataMapper;
 import com.dayou.service.AssetsCalculateEqptDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.AssetsCalculateEqptImpDataVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -68,8 +71,43 @@ public class AssetsCalculateEqptDataServiceImpl extends ServiceImpl<AssetsCalcul
         return dataMapper.deleteDataByCalculateId(calculateId);
     }
 
+    /**
+     * 更新机器设备数据
+     * @param assetsCalculateEqptData 机器设备信息
+     * @return Boolean
+     */
     @Override
     public Boolean updateData(AssetsCalculateEqptData assetsCalculateEqptData) {
         return this.updateById(assetsCalculateEqptData);
     }
+
+    /**
+     * 分页查询进口设备信息
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsCalculateEqptImpData>
+     */
+    @Override
+    public Page<AssetsCalculateEqptImpDataVO> getImpDataPage(Page page, EqptQueryDTO dto) {
+        return dataMapper.getImpDataPage(page, dto);
+    }
+
+    /**
+     * 更新机器设备进口设备数据
+     * @param assetsCalculateEqptImpData 进口设备信息
+     * @return Boolean
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateImpData(AssetsCalculateEqptImpData assetsCalculateEqptImpData) {
+        // 判断是修改还是新增
+        if (ObjectUtil.isNotNull(assetsCalculateEqptImpData.getId())) {
+            dataMapper.updateDataPrice(assetsCalculateEqptImpData.getEqptDataId(), assetsCalculateEqptImpData.getOriginalPrice());
+            return dataMapper.updateImpData(assetsCalculateEqptImpData);
+        }else {
+            dataMapper.updateDataPrice(assetsCalculateEqptImpData.getEqptDataId(), assetsCalculateEqptImpData.getOriginalPrice());
+            return dataMapper.addImpData(assetsCalculateEqptImpData);
+        }
+
+    }
 }

+ 32 - 0
sql/update_sql.sql

@@ -417,6 +417,7 @@ CREATE TABLE `house_guaranty_target`  (
                                                    `delete_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '删除状态',
                                                    PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '解析后的估价对象和补充信息' ROW_FORMAT = Dynamic;
+
 /**
   日期:2024-11-26
   修改人:苟耕铨
@@ -445,3 +446,34 @@ ALTER TABLE assets_calculate_eqpt_data CHANGE COLUMN price price DECIMAL(11, 2)
 ALTER TABLE assets_calculate_eqpt_data CHANGE COLUMN freightAndMiscellaneousFeeRate freight_and_miscellaneous_fee_rate DECIMAL(11, 2) NULL COMMENT '运杂费率';
 ALTER TABLE assets_calculate_eqpt_data CHANGE COLUMN baseRate base_rate DECIMAL(11, 2) NULL COMMENT '基础费率';
 ALTER TABLE assets_calculate_eqpt_data CHANGE COLUMN installationRate installation_rate DECIMAL(11, 2) NULL COMMENT '安装费率';
+
+/**
+  日期:2024-11-28
+  修改人:苟耕铨
+  未更新到test-env
+ */
+DROP TABLE IF EXISTS `assets_calculate_eqpt_imp_data`;
+CREATE TABLE `assets_calculate_eqpt_imp_data` (
+                                                  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '机器设备测算数据id',
+                                                  `eqpt_data_id` bigint(20) DEFAULT NULL COMMENT '测算数据主表id',
+                                                  `ppi` float(11,2) DEFAULT NULL COMMENT '价格指数',
+                                                  `pricing_basis` varchar(255) DEFAULT NULL COMMENT '取价依据',
+                                                  `central_parity_rate` float(11,2) DEFAULT NULL COMMENT '基准日汇率中间价',
+                                                  `tariff_rate` float(11,4) DEFAULT NULL COMMENT '关税税率',
+                                                  `import_VAT_rate` float(11,4) DEFAULT NULL COMMENT '进口增值税率',
+                                                  `bank_charges_rate` float(11,4) DEFAULT NULL COMMENT '银行财务费率',
+                                                  `foreign_transaction_rate` float(11,4) DEFAULT NULL COMMENT '外贸手续费率',
+                                                  `product_code` varchar(255) DEFAULT NULL COMMENT '商品编号',
+                                                  `currency` varchar(50) DEFAULT NULL COMMENT '币种',
+                                                  `address` varchar(255) DEFAULT NULL COMMENT '地址',
+                                                  `transaction_method` varchar(100) DEFAULT NULL COMMENT '成交方式',
+                                                  `contract_amount` decimal(11,2) DEFAULT NULL COMMENT '合同金额',
+                                                  `contract_signing_date` date DEFAULT NULL COMMENT '合同签订日期',
+                                                  `destination_port` varchar(100) DEFAULT NULL COMMENT '到岸港口',
+                                                  `original_price` decimal(11,2) DEFAULT NULL COMMENT '设备原价',
+                                                  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                                  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
+                                                  `delete_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '删除状态',
+                                                  PRIMARY KEY (`id`),
+                                                  KEY `eqpt_data_id` (`eqpt_data_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机器设备-进口设备测算数据表';