|
@@ -550,12 +550,12 @@ public class ExecutorSpecial extends FormulaExecutor {
|
|
|
smps.setItemName(payment.getName());
|
|
|
smps.setFormNumber(payment.getNumber());
|
|
|
smps.setUnit(payment.getUnit());
|
|
|
- smps.setRevisedTotal(payment.getChangeTotal());
|
|
|
- smps.setCurrentPeriodCompleted(payment.getCompleted());
|
|
|
- smps.setCompleted(payment.getCompleted()+prePayment.getCompleted());
|
|
|
+ smps.setRevisedTotal(StringUtils.handleNull(payment.getChangeTotal()));
|
|
|
+ smps.setCurrentPeriodCompleted(StringUtils.handleNull(payment.getCompleted()));
|
|
|
+ smps.setCompleted(StringUtils.handleNull(payment.getCompleted()+prePayment.getCompleted()));
|
|
|
smps.setRevisedAmount(payment.getChangeMoney());
|
|
|
smps.setCurrentPeriodPay(payment.getMoney());
|
|
|
- smps.setCurrentPeriodEndPay(new BigDecimal(payment.getMoney()).add(new BigDecimal(prePayment.getMoney())));
|
|
|
+ smps.setCurrentPeriodEndPay(StringUtils.handleNull(new BigDecimal(payment.getMoney()).add(new BigDecimal(prePayment.getMoney()))));
|
|
|
return smps;
|
|
|
};
|
|
|
|
|
@@ -596,7 +596,7 @@ public class ExecutorSpecial extends FormulaExecutor {
|
|
|
int size = (int)Math.ceil(tmp.size()/(double)this.capacity);
|
|
|
/*每一章需要留一行做小计,其他要填充空白行*/
|
|
|
SubInterimMeterPaySummary summary= new SubInterimMeterPaySummary("小计");
|
|
|
- summary.setCurrentPeriodEndPay(tmp.stream().map(SubInterimMeterPaySummary::getCurrentPeriodEndPay).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ summary.setCurrentPeriodEndPay(tmp.stream().map(SubInterimMeterPaySummary::getCurrentPeriodEndPay).filter(BaseUtils::isNumber).map(BigDecimal::new).reduce(BigDecimal.ZERO,BigDecimal::add).toString());
|
|
|
int over = size*capacity-1-tmp.size();
|
|
|
if(over>0){
|
|
|
/*填充空白行*/
|
|
@@ -636,7 +636,7 @@ public class ExecutorSpecial extends FormulaExecutor {
|
|
|
tmpTree.peer=ss;
|
|
|
}else{
|
|
|
/*已存在则相加*/
|
|
|
- ss.setCurrentPeriodEndPay(ss.getCurrentPeriodEndPay().add(sp.getCurrentPeriodEndPay()));
|
|
|
+ ss.currentPeriodEndPayAdd(sp.getCurrentPeriodEndPay());
|
|
|
}
|
|
|
node=node.getParent();
|
|
|
}
|
|
@@ -719,7 +719,34 @@ public class ExecutorSpecial extends FormulaExecutor {
|
|
|
this.capacity=getLineSize(new ArrayList<>(fdm.keySet()));
|
|
|
Map<String,Function<List<InterimMeter>,List<Object>>> functionMap =FormulaUtils.fieldDataFcMap(InterimMeter.class);
|
|
|
tec.getFormDataMap().putAll(fdm);
|
|
|
+ List<MeterApply> meterApplyList=meterApplyFc.apply(tec.getPeriodId());
|
|
|
+ Map<Long,List<Payment>> paymentGroup = current.stream().collect(Collectors.groupingBy(Payment::getMiddleMeterId));
|
|
|
List<InterimMeter> dataList = new ArrayList<>();
|
|
|
+ for(MeterApply meterApply:meterApplyList){
|
|
|
+ List<Payment> paymentList = paymentGroup.get(meterApply.getId());
|
|
|
+ List<List<Payment>> pageData = BaseUtils.splitList(paymentList,this.capacity);
|
|
|
+ for(List<Payment> payments:pageData){
|
|
|
+ /*根据清单数量决定一条中间计量申请显示多少页*/
|
|
|
+ InterimMeter iim = new InterimMeter();
|
|
|
+ BeanUtils.copyProperties(meterApply,iim);
|
|
|
+ int over = this.capacity-payments.size();
|
|
|
+ List<String> formNumberList= payments.stream().map(Payment::getNumber).collect(Collectors.toList());
|
|
|
+ List<String> itemNameList= payments.stream().map(Payment::getName).collect(Collectors.toList());
|
|
|
+ List<String> unitList= payments.stream().map(Payment::getUnit).collect(Collectors.toList());
|
|
|
+ List<String> completedList= payments.stream().map(p->StringUtils.handleNull(p.getCompleted())).collect(Collectors.toList());
|
|
|
+ if(over>0){
|
|
|
+ formNumberList.addAll(Collections.nCopies(over,StringPool.EMPTY));
|
|
|
+ itemNameList.addAll(Collections.nCopies(over,StringPool.EMPTY));
|
|
|
+ unitList.addAll(Collections.nCopies(over,StringPool.EMPTY));
|
|
|
+ completedList.addAll(Collections.nCopies(over,StringPool.EMPTY));
|
|
|
+ }
|
|
|
+ iim.setFormNumberList(formNumberList);
|
|
|
+ iim.setItemNameList(itemNameList);
|
|
|
+ iim.setUnitList(unitList);
|
|
|
+ iim.setCompletedList(completedList);
|
|
|
+ dataList.add(iim);
|
|
|
+ }
|
|
|
+ }
|
|
|
FormulaUtils.put2FormData(fdm,functionMap,dataList);
|
|
|
}
|
|
|
}
|