|
@@ -77,7 +77,7 @@ public class ComMetalFinanceItemServiceImpl extends ServiceImpl<ComMetalFinanceI
|
|
|
for (ComMetalFinanceRecheckItemDo cmfrItemDo : comMetalFinanceRecheckItemDos) {
|
|
|
CopyFinanceVo copyFinanceVo = copyFinVOMap.get(cmfrItemDo.getProductid());
|
|
|
if (ObjectUtil.isEmpty(copyFinanceVo)) {
|
|
|
- throw new CustomException("客诉产品在表找那个不存在,请检查。");
|
|
|
+ throw new CustomException("客诉产品在财务复核表中不存在,请检查。");
|
|
|
}
|
|
|
// 赋值
|
|
|
cmfrItemDo.setEstimatedlossdate(copyFinanceVo.getEstimatedlossdate());
|
|
@@ -199,27 +199,26 @@ public class ComMetalFinanceItemServiceImpl extends ServiceImpl<ComMetalFinanceI
|
|
|
private void ComputationalReview(ComMetalFinanceRecheckItemDo cmfrItemDo, GetFinalWeightVo requestVo, MetalProductDto metalProductDto) {
|
|
|
|
|
|
// 金属损失金额=金属价格/1.13/1000*报废损失率*最终重量
|
|
|
- BigDecimal metalpriceloss = metalProductDto.getMetakprice()
|
|
|
+ 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());
|
|
|
+ .multiply(requestVo.getFinalweight())).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
// 运费损失=运费单价*2/1.09/1000*最终重量
|
|
|
- BigDecimal freightloss = cmfrItemDo.getFreightunitprice()
|
|
|
+ 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());
|
|
|
+ .multiply(requestVo.getFinalweight())).setScale(2,RoundingMode.HALF_UP);
|
|
|
|
|
|
// 计算合计 (人民币)=加工收入单价/1.13*最终重量+加工成本单价*最终重量+金属损失金额+运费损失
|
|
|
- BigDecimal totalcostrmb = cmfrItemDo.getProcessunitprice()
|
|
|
+ BigDecimal totalcostrmb = (cmfrItemDo.getProcessunitprice()
|
|
|
.divide(new BigDecimal("1.13"),4, RoundingMode.HALF_UP)
|
|
|
- .multiply(metalProductDto.getFinalweight())
|
|
|
- .add(cmfrItemDo.getCostunitprice())
|
|
|
.multiply(requestVo.getFinalweight())
|
|
|
+ .add(cmfrItemDo.getCostunitprice().multiply(requestVo.getFinalweight()))
|
|
|
.add(metalpriceloss)
|
|
|
- .add(freightloss);
|
|
|
+ .add(freightloss)).setScale(2,RoundingMode.HALF_UP);
|
|
|
|
|
|
//计算合计美元 = 计算合计(人民币)/外汇税率
|
|
|
BigDecimal pricetotalusd = totalcostrmb.divide(cmfrItemDo.getExchangerate(), 2, RoundingMode.HALF_UP);
|