|
@@ -531,7 +531,13 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
mpd.setPrice(mad.getCurrentPrice().toPlainString());
|
|
mpd.setPrice(mad.getCurrentPrice().toPlainString());
|
|
mpd.setAmount(StringUtils.number2String(multiFc.apply(mpd.getPrice(),mpd.getQuantity()),0));
|
|
mpd.setAmount(StringUtils.number2String(multiFc.apply(mpd.getPrice(),mpd.getQuantity()),0));
|
|
mpd.setAmountBase(StringUtils.number2String(multiFc.apply(mpd.getPriceBase(),mpd.getQuantity()),0));
|
|
mpd.setAmountBase(StringUtils.number2String(multiFc.apply(mpd.getPriceBase(),mpd.getQuantity()),0));
|
|
- mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),mpd.getPriceBase()));
|
|
|
|
|
|
+ String base=mpd.getPriceBase();
|
|
|
|
+ if(mad.getCurrentPrice().compareTo(mad.getMaterialPrice())>0){
|
|
|
|
+ base=multiFc.apply(base,addFc.apply("1",mad.getQuotaRatio()));
|
|
|
|
+ }else{
|
|
|
|
+ base=multiFc.apply(base,subtractFc.apply("1",mad.getQuotaRatio()));
|
|
|
|
+ }
|
|
|
|
+ mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),base));
|
|
mpd.setTotal(StringUtils.number2String(multiFc.apply("0.91",mad.getAdjustMoney().toPlainString()),0));
|
|
mpd.setTotal(StringUtils.number2String(multiFc.apply("0.91",mad.getAdjustMoney().toPlainString()),0));
|
|
mpd.setMaterialArriveNumber(tec.periodInfo.getPayNumber());
|
|
mpd.setMaterialArriveNumber(tec.periodInfo.getPayNumber());
|
|
dataList.add(mpd);
|
|
dataList.add(mpd);
|
|
@@ -543,8 +549,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
String diffSum=dataList.stream().map(MaterialPriceDifferential::getTotal).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO,BigDecimal::add).setScale(0,RoundingMode.HALF_UP).toPlainString();
|
|
String diffSum=dataList.stream().map(MaterialPriceDifferential::getTotal).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO,BigDecimal::add).setScale(0,RoundingMode.HALF_UP).toPlainString();
|
|
elementWriter.write(fd,diffSum);
|
|
elementWriter.write(fd,diffSum);
|
|
/*税金*/
|
|
/*税金*/
|
|
- BigDecimal sum= materialAdjustList.stream().map(m->BaseUtils.str2BigDecimal(m.getAdjustMoney()).setScale(0,RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
|
- String tax=BaseUtils.str2BigDecimal(multiFc.apply(sum.toPlainString(),"0.09")).setScale(0,RoundingMode.HALF_UP).toPlainString();
|
|
|
|
|
|
+ String tax=BaseUtils.str2BigDecimal(multiFc.apply(diffSum,"0.09")).setScale(0,RoundingMode.HALF_UP).toPlainString();
|
|
FormulaUtils.elementFindByKey(fdm,"key_16").ifPresent(t->{
|
|
FormulaUtils.elementFindByKey(fdm,"key_16").ifPresent(t->{
|
|
elementWriter.write(t,tax);
|
|
elementWriter.write(t,tax);
|
|
});
|
|
});
|