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

模板更改,财务复核

turujie пре 1 година
родитељ
комит
ec6903876d
16 измењених фајлова са 662 додато и 17 уклоњено
  1. 23 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ComMetalProductDao.java
  2. 3 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ComMetalFinanceItemService.java
  3. 20 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ComMetalProductService.java
  4. 165 6
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ComMetalFinanceItemServiceImpl.java
  5. 36 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ComMetalProductServiceImpl.java
  6. 2 2
      business-common/src/main/java/com/rongwei/bscommon/sys/utils/CodeGeneration.java
  7. 4 4
      business-entity/src/main/java/com/bsentity/domin/ComCustomerDo.java
  8. 2 0
      business-entity/src/main/java/com/bsentity/domin/ComMetalFinanceRecheckItemDo.java
  9. 209 0
      business-entity/src/main/java/com/bsentity/domin/ComMetalProductDo.java
  10. 39 0
      business-entity/src/main/java/com/bsentity/dto/MetalProductDto.java
  11. 26 4
      business-entity/src/main/java/com/bsentity/vo/CopyFinanceVo.java
  12. 25 0
      business-entity/src/main/java/com/bsentity/vo/GetFinalWeightRequest.java
  13. 30 0
      business-entity/src/main/java/com/bsentity/vo/GetFinalWeightVo.java
  14. 63 0
      business-entity/src/main/resources/mybatis/ComMetalProductDao.xml
  15. 15 1
      business-server/src/main/java/com/rongwei/controller/ComCustomerController.java
  16. BIN
      business-server/src/main/resources/template/comProductlistTemp.docx

+ 23 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ComMetalProductDao.java

@@ -0,0 +1,23 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.bsentity.domin.ComMetalProductDo;
+import com.bsentity.dto.MetalProductDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 客诉产品 Mapper 接口
+ * </p>
+ *
+ * @author trj
+ * @since 2023-08-24
+ */
+@Mapper
+public interface ComMetalProductDao extends BaseMapper<ComMetalProductDo> {
+    List<MetalProductDto> getMetalProduct(@Param("productIds") List<String> productIds ,
+                                          @Param("customerId") String customerId);
+}

+ 3 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ComMetalFinanceItemService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.bsentity.domin.ComMetalFinanceItemDo;
 import com.bsentity.vo.CopyFinanceRequest;
 import com.bsentity.vo.CopyFinanceVo;
+import com.bsentity.vo.GetFinalWeightRequest;
 import com.rongwei.rwcommon.base.R;
 
 import java.util.List;
@@ -21,4 +22,6 @@ import java.util.List;
 public interface ComMetalFinanceItemService extends IService<ComMetalFinanceItemDo> {
 
     R copyFinance(CopyFinanceRequest request);
+
+    R getFinalWeight(GetFinalWeightRequest request);
 }

+ 20 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ComMetalProductService.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.bsentity.domin.ComMetalProductDo;
+import com.bsentity.dto.MetalProductDto;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 客诉产品 服务类
+ * </p>
+ *
+ * @author trj
+ * @since 2023-08-24
+ */
+public interface ComMetalProductService extends IService<ComMetalProductDo> {
+    Map< String , MetalProductDto> getMetalProduct(List<String> productIds, String customerId);
+}

+ 165 - 6
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ComMetalFinanceItemServiceImpl.java

@@ -5,18 +5,27 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.bsentity.domin.ComCustomerDo;
 import com.bsentity.domin.ComMetalFinanceItemDo;
 import com.bsentity.domin.ComMetalFinanceRecheckItemDo;
+import com.bsentity.dto.MetalProductDto;
 import com.bsentity.vo.CopyFinanceRequest;
 import com.bsentity.vo.CopyFinanceVo;
+import com.bsentity.vo.GetFinalWeightRequest;
+import com.bsentity.vo.GetFinalWeightVo;
 import com.rongwei.bscommon.sys.dao.ComMetalFinanceItemDao;
 import com.rongwei.bscommon.sys.dao.ComMetalFinanceRecheckItemDao;
+import com.rongwei.bscommon.sys.service.ComCustomerService;
 import com.rongwei.bscommon.sys.service.ComMetalFinanceItemService;
 import com.rongwei.bscommon.sys.service.ComMetalFinanceRecheckItemService;
+import com.rongwei.bscommon.sys.service.ComMetalProductService;
 import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.base.exception.CustomException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -39,19 +48,25 @@ public class ComMetalFinanceItemServiceImpl extends ServiceImpl<ComMetalFinanceI
     ComMetalFinanceRecheckItemDao financeRecheckItemDao;
     @Autowired
     ComMetalFinanceRecheckItemService financeRecheckItemService;
+    @Autowired
+    ComCustomerService customerService;
+    @Autowired
+    ComMetalProductService comMetalProductService;
 
     @Override
     public R copyFinance(CopyFinanceRequest request) {
 
-        if (StrUtil.isEmpty(request.getCustomerId()) && ArrayUtil.isEmpty(request.getCopyFinanceVos())){
+        if (StrUtil.isEmpty(request.getCustomerId()) && ArrayUtil.isEmpty(request.getCopyFinanceVos())) {
             return R.error("数据不存在");
         }
 
+
+        // 获取客诉产品信息
         // 获取复核信息
         List<ComMetalFinanceRecheckItemDo> comMetalFinanceRecheckItemDos = financeRecheckItemDao.selectList(
                 new LambdaQueryWrapper<ComMetalFinanceRecheckItemDo>()
-                .eq(ComMetalFinanceRecheckItemDo::getCustomerid, request.getCustomerId())
-                .eq(ComMetalFinanceRecheckItemDo::getDeleted, "0"));
+                        .eq(ComMetalFinanceRecheckItemDo::getCustomerid, request.getCustomerId())
+                        .eq(ComMetalFinanceRecheckItemDo::getDeleted, "0"));
 
         // 预估信息转成Map
         Map<String, CopyFinanceVo> copyFinVOMap = Optional.of(request.getCopyFinanceVos()).orElse(new ArrayList<>())
@@ -61,8 +76,8 @@ public class ComMetalFinanceItemServiceImpl extends ServiceImpl<ComMetalFinanceI
 
         for (ComMetalFinanceRecheckItemDo cmfrItemDo : comMetalFinanceRecheckItemDos) {
             CopyFinanceVo copyFinanceVo = copyFinVOMap.get(cmfrItemDo.getProductid());
-            if (ObjectUtil.isEmpty(copyFinanceVo)){
-                break;
+            if (ObjectUtil.isEmpty(copyFinanceVo)) {
+                throw new CustomException("客诉产品在表找那个不存在,请检查。");
             }
             // 赋值
             cmfrItemDo.setEstimatedlossdate(copyFinanceVo.getEstimatedlossdate());
@@ -71,11 +86,155 @@ public class ComMetalFinanceItemServiceImpl extends ServiceImpl<ComMetalFinanceI
             cmfrItemDo.setFreightunitprice(copyFinanceVo.getFreightunitprice());
             cmfrItemDo.setExchangerate(copyFinanceVo.getExchangerate());
             cmfrItemDo.setOthercostrmb(copyFinanceVo.getOthercostrmb());
-            cmfrItemDo.setUnitkgpricelossusd(copyFinanceVo.getUnitkgpricelossusd());
             cmfrItemDo.setMetalconfigid(copyFinanceVo.getMetalconfigid());
+            cmfrItemDo.setRemark(copyFinanceVo.getRemark() == null ? "" : copyFinanceVo.getRemark());
+
+
         }
 
         financeRecheckItemService.saveOrUpdateBatch(comMetalFinanceRecheckItemDos);
         return R.ok();
     }
+
+    @Override
+    public R getFinalWeight(GetFinalWeightRequest request) {
+        if (StrUtil.isEmpty(request.getCustomerId()) && ArrayUtil.isEmpty(request.getFinalWeightVos())) {
+            return R.error("数据不存在");
+        }
+        //获取客诉单信息
+        ComCustomerDo customer = customerService.getById(request.getCustomerId());
+
+
+        List<String> productIds = request.getFinalWeightVos().stream().map(GetFinalWeightVo::getProductId).collect(Collectors.toList());
+
+        // 通过 商品ID ,金属配置ID 查询 客诉产品信息 和 金属价格信息
+        Map< String , MetalProductDto> metalProductIdMap = comMetalProductService.getMetalProduct(productIds , request.getCustomerId());
+
+        // 获取客诉产品信息财务复核信息
+        List<ComMetalFinanceRecheckItemDo> comMetalFinanceRecheckItemDos = financeRecheckItemDao.selectList(
+                new LambdaQueryWrapper<ComMetalFinanceRecheckItemDo>()
+                        .eq(ComMetalFinanceRecheckItemDo::getCustomerid, request.getCustomerId())
+                        .eq(ComMetalFinanceRecheckItemDo::getDeleted, "0"));
+
+        // 预估信息转成Map
+        Map<String, GetFinalWeightVo> finalWeightVoMap = Optional.of(request.getFinalWeightVos()).orElse(new ArrayList<>())
+                .stream()
+                .collect(Collectors.toMap(GetFinalWeightVo::getProductId, Function.identity()));
+
+
+        for (ComMetalFinanceRecheckItemDo cmfrItemDo : comMetalFinanceRecheckItemDos) {
+            GetFinalWeightVo finalWeightVo = finalWeightVoMap.get(cmfrItemDo.getProductid());
+            MetalProductDto metalProductDto = metalProductIdMap.get(cmfrItemDo.getProductid() + "#" + cmfrItemDo.getMetalconfigid());
+            if (ObjectUtil.isEmpty(finalWeightVo) && ObjectUtil.isEmpty(metalProductDto)) {
+                throw new CustomException("当前客诉产品客诉产品表中不存在,请检查。 -> "+cmfrItemDo.getProductid() +" ;金属配置ID ->"+cmfrItemDo.getMetalconfigid());
+            }
+            // 财务复核字段计算
+            ComputationalReview(cmfrItemDo, finalWeightVo ,metalProductDto);
+        }
+
+        // 获取合计数据
+        ComputationalReviewTotal(comMetalFinanceRecheckItemDos, customer);
+
+        customerService.saveOrUpdate(customer);
+
+        financeRecheckItemService.saveOrUpdateBatch(comMetalFinanceRecheckItemDos);
+
+
+        return R.ok();
+    }
+
+
+    /**
+     * 计算财务复核合计数据
+     *
+     * @param comMetalFinanceRecheckItemDos
+     * @param customer
+     */
+    private void ComputationalReviewTotal(List<ComMetalFinanceRecheckItemDo> comMetalFinanceRecheckItemDos, ComCustomerDo customer) {
+
+        // 计算合计(人民币) =  所有计算合计数据总和
+        BigDecimal totalcostrmb = comMetalFinanceRecheckItemDos.stream()
+                .map(ComMetalFinanceRecheckItemDo::getTotalcostrmb)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        // 计算合计(美元) =  所有计算合计(美元)总和
+        BigDecimal pricetotalusd = comMetalFinanceRecheckItemDos.stream()
+                .map(ComMetalFinanceRecheckItemDo::getPricetotalusd)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        // 其他费用(人民币)
+        BigDecimal othercostrmb = comMetalFinanceRecheckItemDos.stream()
+                .map(ComMetalFinanceRecheckItemDo::getOthercostrmb)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+
+        // 其他费用 (美元)
+        BigDecimal othercostusd = comMetalFinanceRecheckItemDos.stream()
+                .map(ComMetalFinanceRecheckItemDo::getOthercostusd)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+
+        // 金额总计 (人民币) = 计算合计(人民币)  + 其他费用(人民币)
+        BigDecimal rechecktotalcostrmb = totalcostrmb.add(othercostrmb);
+
+        // 金额总计 (美元) = 计算合计(美元)  + 其他费用(美元)
+        BigDecimal recheckpricetotalusd = pricetotalusd.add(othercostusd);
+
+        customer.setRecheckcomputecostrmb(totalcostrmb);
+        customer.setRecheckcomputecostusd(pricetotalusd);
+        customer.setRecheckothercostrmb(othercostrmb);
+        customer.setRecheckothercostusd(othercostusd);
+        customer.setRechecktotalcostrmb(rechecktotalcostrmb);
+        customer.setRecheckpricetotalusd(recheckpricetotalusd);
+
+    }
+
+    /**
+     * 计算复核
+     *
+     * @param cmfrItemDo      财务复核实体
+     * @param requestVo       前端请求信息
+     * @param metalProductDto 客诉产品金属价格信息
+     */
+    private void ComputationalReview(ComMetalFinanceRecheckItemDo cmfrItemDo, GetFinalWeightVo requestVo, MetalProductDto metalProductDto) {
+
+        // 金属损失金额=金属价格/1.13/1000*报废损失率*最终重量
+        BigDecimal metalpriceloss = metalProductDto.getMetakprice()
+                .divide(new BigDecimal("1.13"),4,RoundingMode.HALF_UP)
+                .divide(new BigDecimal("1000"),4,RoundingMode.HALF_UP)
+                .multiply(metalProductDto.getLossrate().divide(new BigDecimal("100.00"),2,RoundingMode.HALF_UP))
+                .multiply(requestVo.getFinalweight());
+
+        // 运费损失=运费单价*2/1.09/1000*最终重量
+        BigDecimal freightloss = cmfrItemDo.getFreightunitprice()
+                .multiply(new BigDecimal("2"))
+                .divide(new BigDecimal("1.09"),4, RoundingMode.HALF_UP)
+                .divide(new BigDecimal("1000"), 4,RoundingMode.HALF_UP)
+                .multiply(requestVo.getFinalweight());
+
+        // 计算合计 (人民币)=加工收入单价/1.13*最终重量+加工成本单价*最终重量+金属损失金额+运费损失
+        BigDecimal totalcostrmb = cmfrItemDo.getProcessunitprice()
+                .divide(new BigDecimal("1.13"),4, RoundingMode.HALF_UP)
+                .multiply(metalProductDto.getFinalweight())
+                .add(cmfrItemDo.getCostunitprice())
+                .multiply(requestVo.getFinalweight())
+                .add(metalpriceloss)
+                .add(freightloss);
+
+        //计算合计美元 = 计算合计(人民币)/外汇税率
+        BigDecimal pricetotalusd = totalcostrmb.divide(cmfrItemDo.getExchangerate(), 2, RoundingMode.HALF_UP);
+
+        //单kg损失金额(美元) = 计算合计美元 / 最终重量
+        BigDecimal unitkgpricelossusd = pricetotalusd.divide(requestVo.getFinalweight(),2, RoundingMode.HALF_UP);
+
+        BigDecimal othercostusd = cmfrItemDo.getOthercostrmb().divide(cmfrItemDo.getExchangerate(), 2, RoundingMode.HALF_UP);
+
+        // 赋值
+        cmfrItemDo.setMetalpriceloss(metalpriceloss);
+        cmfrItemDo.setFreightloss(freightloss);
+        cmfrItemDo.setTotalcostrmb(totalcostrmb);
+        cmfrItemDo.setPricetotalusd(pricetotalusd);
+        cmfrItemDo.setUnitkgpricelossusd(unitkgpricelossusd);
+        cmfrItemDo.setOthercostusd(othercostusd);
+    }
 }

+ 36 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ComMetalProductServiceImpl.java

@@ -0,0 +1,36 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.bsentity.domin.ComMetalProductDo;
+import com.bsentity.dto.MetalProductDto;
+import com.rongwei.bscommon.sys.dao.ComMetalProductDao;
+import com.rongwei.bscommon.sys.service.ComMetalProductService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 客诉产品 服务实现类
+ * </p>
+ *
+ * @author trj
+ * @since 2023-08-24
+ */
+@Service
+public class ComMetalProductServiceImpl extends ServiceImpl<ComMetalProductDao, ComMetalProductDo> implements ComMetalProductService {
+    @Override
+    public Map< String , MetalProductDto> getMetalProduct(List<String> productIds, String customerId) {
+         List<MetalProductDto> metalProductDtos =  baseMapper.getMetalProduct(productIds , customerId);
+        return Optional.of(metalProductDtos).orElse(new ArrayList<>()).stream()
+                .collect(Collectors.toMap(mp -> {
+                     return mp.getProductId() + "#" + mp.getMetalId();
+                }, Function.identity()));
+    }
+}

+ 2 - 2
business-common/src/main/java/com/rongwei/bscommon/sys/utils/CodeGeneration.java

@@ -48,7 +48,7 @@ public class CodeGeneration {
         dsc.setDbType(DbType.MYSQL);   //设置数据库类型,我是postgresql
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("root123456");
+        dsc.setPassword("incontrol@rongwei!2023");
         dsc.setUrl("jdbc:mysql://58.209.81.25:3306/incontrol_question_pre?characterEncoding=utf8&failOverReadOnly=false&autoReconnect=true&roundRobinLoadBalance=true&serverTimezone=GMT%2B8&useSSL=false");  //指定数据库
         autoGenerator.setDataSource(dsc);
 
@@ -65,7 +65,7 @@ public class CodeGeneration {
         // 4、策略配置
         StrategyConfig strategy = new StrategyConfig();
         // 设置要映射的表名(重要,需要修改的地方)
-        strategy.setInclude("com_metal_config");
+        strategy.setInclude("com_metal_product");
         strategy.setNaming(NamingStrategy.underline_to_camel); // 自动转换表名的驼峰命名法
         strategy.setColumnNaming(NamingStrategy.no_change); // 自动转换列名的驼峰命名法
         strategy.setEntityLombokModel(true); // 是否使用lombox

+ 4 - 4
business-entity/src/main/java/com/bsentity/domin/ComCustomerDo.java

@@ -355,14 +355,14 @@ public class ComCustomerDo extends BaseDo implements Serializable {
     /**
      * 总计投诉重量
      */
-    @TableField("COMWEIGHT")
-    private BigDecimal comweight;
+    @TableField("TOLCOMWEIGHT")
+    private BigDecimal tolcomweight;
 
     /**
      * 总计最终重量
      */
-    @TableField("FINALWEIGHT")
-    private BigDecimal finalweight;
+    @TableField("TOLFINALWEIGHT")
+    private BigDecimal tolfinalweight;
 
     /**
      * 投诉类型

+ 2 - 0
business-entity/src/main/java/com/bsentity/domin/ComMetalFinanceRecheckItemDo.java

@@ -266,4 +266,6 @@ public class ComMetalFinanceRecheckItemDo implements Serializable {
      */
     @TableField("SERIALNO")
     private Integer serialno;
+
+
 }

+ 209 - 0
business-entity/src/main/java/com/bsentity/domin/ComMetalProductDo.java

@@ -0,0 +1,209 @@
+package com.bsentity.domin;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 客诉产品
+ * </p>
+ *
+ * @author trj
+ * @since 2023-08-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("com_metal_product")
+public class ComMetalProductDo  implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId("ID")
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField("ROPTION")
+    private String roption;
+
+    /**
+     * 是否删除Y/N
+     */
+    @TableField("DELETED")
+    private String deleted;
+
+    /**
+     * 备注
+     */
+    @TableField("REMARK")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+    /**
+     * 创建用户ID
+     */
+    @TableField("CREATEUSERID")
+    private String createuserid;
+
+    /**
+     * 修改日期
+     */
+    @TableField("MODIFYDATE")
+    private Date modifydate;
+
+    /**
+     * 修改用户ID
+     */
+    @TableField("MODIFYUSERID")
+    private String modifyuserid;
+
+    /**
+     * 创建人
+     */
+    @TableField("CREATEUSERNAME")
+    private String createusername;
+
+    /**
+     * 修改人
+     */
+    @TableField("MODIFYUSERNAME")
+    private String modifyusername;
+
+    /**
+     * 编号
+     */
+    @TableField("PRODUCTNO")
+    private String productno;
+
+    /**
+     * 交货编号
+     */
+    @TableField("DELIVERYNO")
+    private String deliveryno;
+
+    /**
+     * 原订单号
+     */
+    @TableField("ORIORDERNO")
+    private String oriorderno;
+
+    /**
+     * 合金
+     */
+    @TableField("ALLOY")
+    private String alloy;
+
+    /**
+     * 状态
+     */
+    @TableField("ISSTATUS")
+    private String isstatus;
+
+    /**
+     * 规格(厚)
+     */
+    @TableField("THICK")
+    private BigDecimal thick;
+
+    /**
+     * 规格(宽)
+     */
+    @TableField("WIDE")
+    private BigDecimal wide;
+
+    /**
+     * 规格(长)
+     */
+    @TableField("LONGS")
+    private BigDecimal longs;
+
+    /**
+     * 卷号
+     */
+    @TableField("VOLUMENO")
+    private String volumeno;
+
+    /**
+     * 投诉重量
+     */
+    @TableField("COMWEIGHT")
+    private BigDecimal comweight;
+
+    /**
+     * MRA重量
+     */
+    @TableField("MRAWEIGHT")
+    private BigDecimal mraweight;
+
+    /**
+     * 缺陷
+     */
+    @TableField("DEFECT")
+    private String defect;
+
+    /**
+     * 其他费用
+     */
+    @TableField("OTHERPRICE")
+    private BigDecimal otherprice;
+
+    /**
+     * 类型
+     */
+    @TableField("TYPE")
+    private String type;
+
+    /**
+     * 新订单号
+     */
+    @TableField("NEWORDERNO")
+    private String neworderno;
+
+    /**
+     * 最终重量
+     */
+    @TableField("FINALWEIGHT")
+    private BigDecimal finalweight;
+
+    /**
+     * 金属配置ID
+     */
+    @TableField("METALCONFIGID")
+    private String metalconfigid;
+
+    /**
+     * 主表ID
+     */
+    @TableField("CUSTOMERID")
+    private String customerid;
+
+    /**
+     * 序号
+     */
+    @TableField("SERIALNO")
+    private Integer serialno;
+}

+ 39 - 0
business-entity/src/main/java/com/bsentity/dto/MetalProductDto.java

@@ -0,0 +1,39 @@
+package com.bsentity.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 客诉产品 及 金属价格信息
+ */
+@Data
+public class MetalProductDto {
+
+    /**
+     * 商品ID
+     */
+    private String productId;
+
+    /**
+     * 金属价格信息
+     */
+    private String metalId;
+
+    /**
+     * 金属价格
+     */
+    private BigDecimal metakprice;
+
+    /**
+     * 报废损失率
+     */
+    private BigDecimal lossrate;
+
+
+    /**
+     * 最终重量
+     */
+    private BigDecimal finalweight;
+
+}

+ 26 - 4
business-entity/src/main/java/com/bsentity/vo/CopyFinanceVo.java

@@ -1,9 +1,12 @@
 package com.bsentity.vo;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.NavigableMap;
 
 /**
  *  财务预估数据 非必填 - 前端
@@ -17,56 +20,75 @@ public class CopyFinanceVo {
     /**
      * 财务预估ID
      */
+    @JSONField(name = "ID")
     private String ID;
 
     /**
      * 产品id
      */
+    @JSONField(name = "productId")
     private String productId;
 
     /**
      * 预估损失日期
      */
+    @JSONField(name = "estimatedlossdate" ,format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date estimatedlossdate;
 
     /**
      * 加工收入单价
      */
+    @JSONField(name = "processunitprice")
     private BigDecimal processunitprice;
 
     /**
      * 加工成本单价
      */
+    @JSONField(name = "costunitprice")
     private BigDecimal costunitprice;
 
 
     /**
      * 运费单价
      */
+    @JSONField(name = "freightunitprice")
     private BigDecimal freightunitprice;
 
 
     /**
      * 外汇汇率
      */
+    @JSONField(name = "exchangerate")
     private BigDecimal exchangerate;
 
 
     /**
      * 其他费用(人民币)
      */
+    @JSONField(name = "othercostrmb")
     private BigDecimal othercostrmb;
 
 
-    /**
-     * 单kg损失金额(美元)
-     */
-    private BigDecimal unitkgpricelossusd;
 
     /**
      * 金属配置ID
      */
+    @JSONField(name = "metalconfigid")
     private String metalconfigid;
 
 
+
+    /**
+     * 其他费用 (美元)
+     */
+    @JSONField(name = "othercostusd")
+    private BigDecimal othercostusd;
+
+    /**
+     * 备注
+     */
+    @JSONField(name = "REMARK")
+    private String remark;
+
 }

+ 25 - 0
business-entity/src/main/java/com/bsentity/vo/GetFinalWeightRequest.java

@@ -0,0 +1,25 @@
+package com.bsentity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 客诉单财务预估信息
+ *
+ * @author Trj
+ */
+@Data
+public class GetFinalWeightRequest {
+    /**
+     * 客诉产品Id
+     */
+    private String customerId;
+
+
+    /**
+     * 财务预估信息
+     */
+    private List<GetFinalWeightVo> finalWeightVos;
+
+}

+ 30 - 0
business-entity/src/main/java/com/bsentity/vo/GetFinalWeightVo.java

@@ -0,0 +1,30 @@
+package com.bsentity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *  财务预估数据 非必填 - 前端
+ *
+ * @author Trj
+ */
+
+@Data
+public class GetFinalWeightVo {
+
+    /**
+     * 产品id
+     */
+    @JSONField(name = "productId")
+    private String productId;
+
+
+    /**
+     * 最终重量
+     */
+    @JSONField(name = "finalweight")
+    private BigDecimal finalweight;
+
+}

+ 63 - 0
business-entity/src/main/resources/mybatis/ComMetalProductDao.xml

@@ -0,0 +1,63 @@
+<?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.rongwei.bscommon.sys.dao.ComMetalProductDao">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bsentity.domin.ComMetalProductDo">
+        <id column="ID" property="id" />
+        <result column="TENANTID" property="tenantid" />
+        <result column="ROPTION" property="roption" />
+        <result column="DELETED" property="deleted" />
+        <result column="REMARK" property="remark" />
+        <result column="CREATEDATE" property="createdate" />
+        <result column="CREATEUSERID" property="createuserid" />
+        <result column="MODIFYDATE" property="modifydate" />
+        <result column="MODIFYUSERID" property="modifyuserid" />
+        <result column="CREATEUSERNAME" property="createusername" />
+        <result column="MODIFYUSERNAME" property="modifyusername" />
+        <result column="PRODUCTNO" property="productno" />
+        <result column="DELIVERYNO" property="deliveryno" />
+        <result column="ORIORDERNO" property="oriorderno" />
+        <result column="ALLOY" property="alloy" />
+        <result column="ISSTATUS" property="isstatus" />
+        <result column="THICK" property="thick" />
+        <result column="WIDE" property="wide" />
+        <result column="LONGS" property="longs" />
+        <result column="VOLUMENO" property="volumeno" />
+        <result column="COMWEIGHT" property="comweight" />
+        <result column="MRAWEIGHT" property="mraweight" />
+        <result column="DEFECT" property="defect" />
+        <result column="OTHERPRICE" property="otherprice" />
+        <result column="TYPE" property="type" />
+        <result column="NEWORDERNO" property="neworderno" />
+        <result column="FINALWEIGHT" property="finalweight" />
+        <result column="METALCONFIGID" property="metalconfigid" />
+        <result column="CUSTOMERID" property="customerid" />
+        <result column="SERIALNO" property="serialno" />
+    </resultMap>
+
+    <select id="getMetalProduct" resultType="com.bsentity.dto.MetalProductDto">
+        SELECT
+            p.ID as productId,
+            p.FINALWEIGHT as finalweight,
+            m.ID as metalId,
+            m.LOSSRATE as lossrate,
+            m.METALPRICE as metakprice
+        FROM
+            com_metal_product p
+                LEFT JOIN com_metal_finance_item fi ON fi.PRODUCTID = p.ID
+                LEFT JOIN com_metal_config m ON fi.METALCONFIGID = m.ID
+        WHERE
+            p.DELETED = '0' AND m.DELETED = '0' AND p.FINALWEIGHT IS NOT NULL
+           <if test="customerId !=null and customerId != ''">
+               AND p.CUSTOMERID = #{customerId}
+           </if>
+            <if test="productIds != null and productIds.size > 0">
+                  AND  p.ID IN
+                <foreach collection="productIds" item="pId" open="(" separator="," close=")">
+                    #{pId}
+                </foreach>
+            </if>
+    </select>
+
+</mapper>

+ 15 - 1
business-server/src/main/java/com/rongwei/controller/ComCustomerController.java

@@ -1,7 +1,9 @@
 package com.rongwei.controller;
 
+
 import com.bsentity.vo.ComProductVo;
 import com.bsentity.vo.CopyFinanceRequest;
+import com.bsentity.vo.GetFinalWeightRequest;
 import com.rongwei.bscommon.sys.service.ComCustomerService;
 import com.rongwei.bscommon.sys.service.ComMetalFinanceItemService;
 import com.rongwei.rwcommon.base.R;
@@ -47,7 +49,19 @@ public class ComCustomerController {
      */
     @PostMapping("/copyFinance")
     public R copyFinance(@RequestBody CopyFinanceRequest request){
-
         return comMetalFinanceItemService.copyFinance(request);
     }
+
+
+    /**
+     *  索赔管理员最终确认节点。 前端传回 表单ID、产品表id、金属配置id、财务表id、最终重量
+     */
+    /**
+     *  财务初审 , 将非计算必填字段给到财务复核表中
+     */
+    @PostMapping("/getFinalWeight")
+    public R getFinalWeight(@RequestBody GetFinalWeightRequest request){
+        return comMetalFinanceItemService.getFinalWeight(request);
+    }
+
 }

BIN
business-server/src/main/resources/template/comProductlistTemp.docx