|
@@ -532,16 +532,32 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
mpd.setAmount(StringUtils.number2String(multiFc.apply(mpd.getPrice(),mpd.getQuantity()),0));
|
|
|
mpd.setAmountBase(StringUtils.number2String(multiFc.apply(mpd.getPriceBase(),mpd.getQuantity()),0));
|
|
|
mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),mpd.getPriceBase()));
|
|
|
- mpd.setTotal(StringUtils.number2String(mad.getAdjustMoney().toPlainString(),0));
|
|
|
+ mpd.setTotal(StringUtils.number2String(addFc.apply("0.91",mad.getAdjustMoney().toPlainString()),0));
|
|
|
mpd.setMaterialArriveNumber(tec.periodInfo.getPayNumber());
|
|
|
dataList.add(mpd);
|
|
|
}
|
|
|
+
|
|
|
+ /*List< List<MaterialPriceDifferential> > list =BaseUtils.splitList(dataList,capacity);*/
|
|
|
+ /*调差金额合计*/
|
|
|
+ FormulaUtils.elementFindByKey(fdm,"key_15").ifPresent(fd->{
|
|
|
+ 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);
|
|
|
+ /*税金*/
|
|
|
+ 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();
|
|
|
+ FormulaUtils.elementFindByKey(fdm,"key_16").ifPresent(t->{
|
|
|
+ elementWriter.write(t,tax);
|
|
|
+ });
|
|
|
+ /*合计*/
|
|
|
+ FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(t->{
|
|
|
+ elementWriter.write(t,addFc.apply(tax,diffSum));
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
}
|
|
|
- /*每页合计*/
|
|
|
- FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(fd->{
|
|
|
- List< List<MaterialPriceDifferential> > list =BaseUtils.splitList(dataList,capacity);
|
|
|
- elementWriter.write(fd,list.stream().map(l->l.stream().map(MaterialPriceDifferential::getTotal).mapToDouble(Double::parseDouble).sum()).collect(Collectors.toList()));
|
|
|
- });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
putOut(MaterialPriceDifferential.class);
|
|
|
}
|
|
|
}
|