|
@@ -1535,9 +1535,9 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
/**计量单位*/
|
|
|
private String unit;
|
|
|
/**合同数量*/
|
|
|
- private Integer contractTotal=0;
|
|
|
+ private BigDecimal contractTotal=BigDecimal.ZERO;
|
|
|
/**变更数量*/
|
|
|
- private Integer changeTotal =0;
|
|
|
+ private BigDecimal changeTotal =BigDecimal.ZERO;
|
|
|
/**完成数量*/
|
|
|
private BigDecimal completed=BigDecimal.ZERO;
|
|
|
/**单价*/
|
|
@@ -1562,8 +1562,8 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
this.formNumber=p.getNumber();
|
|
|
this.itemName=p.getName();
|
|
|
this.unit = p.getUnit();
|
|
|
- this.contractTotal=p.getContractTotal();
|
|
|
- this.changeTotal = p.getChangeTotal();
|
|
|
+ this.contractTotal=BaseUtils.str2BigDecimal(p.getContractTotal());
|
|
|
+ this.changeTotal = BaseUtils.str2BigDecimal(p.getChangeTotal());
|
|
|
this.completed =BaseUtils.str2BigDecimal(p.getCompleted());
|
|
|
this.contractMoney =new BigDecimal(p.getContractMoney());
|
|
|
this.changeMoney =new BigDecimal(p.getChangeMoney());
|
|
@@ -2280,6 +2280,9 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
private Function<Payment,String> chapterPreFixFc=payment -> {
|
|
|
String pnb= payment.getNumber().split("-")[0];
|
|
|
if(BaseUtils.isNumber(pnb)){
|
|
|
+ if(payment.getNumber().contains(BTDL)){
|
|
|
+ return 100 * (Integer.parseInt(pnb) / 100)+BTDL;
|
|
|
+ }
|
|
|
return 100 * (Integer.parseInt(pnb) / 100)+"";
|
|
|
}
|
|
|
return pnb;
|
|
@@ -2300,6 +2303,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
List<MeterApply> meterApplyList=tec.meterInfo.getMeterApplyList();
|
|
|
Map<Long,MeterApply> meterApplyGroup = meterApplyList.stream().collect(Collectors.toMap(MeterApply::getId,m->m,(v1,v2)->v1));
|
|
|
LinkedHashMap<String,List<Payment>> group= current.stream().collect(Collectors.groupingBy(chapterPreFixFc,LinkedHashMap::new,Collectors.toList()));
|
|
|
+ String last= new LinkedList<>(group.keySet()).getLast();
|
|
|
group.forEach((k,v)->{
|
|
|
List<InterimMeterPaySummary> addList= new ArrayList<>();
|
|
|
/*先按编号分组,再归集*/
|
|
@@ -2327,7 +2331,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
InterimMeterPaySummary part = new InterimMeterPaySummary();
|
|
|
part.setItemName(meterApply.getEngineerDivide());
|
|
|
part.setMeterNumber(meterApply.getMeterNumber());
|
|
|
- part.setCompleted(pay.getCompleted().toString());
|
|
|
+ part.setCompleted(pay.getCompleted());
|
|
|
partList.add(part);
|
|
|
}
|
|
|
partList.removeIf(e->BaseUtils.obj2DoubleZero(e.getCompleted())<=0);
|
|
@@ -2339,6 +2343,8 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
});
|
|
|
dataList.addAll(addList);
|
|
|
int add= capacity-addList.size()%capacity-1;
|
|
|
+ boolean isLast= last.equals(k);
|
|
|
+ if(isLast) add--;
|
|
|
if(add>0){
|
|
|
dataList.addAll(Collections.nCopies(add,new InterimMeterPaySummary()));
|
|
|
}
|
|
@@ -2346,6 +2352,12 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
String sum=addList.stream().map(InterimMeterPaySummary::getMoney).map(p->BaseUtils.str2BigDecimal(p).setScale(0,RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
|
|
|
chapter.setMoney(sum);
|
|
|
dataList.add(chapter);
|
|
|
+ if(isLast){
|
|
|
+ InterimMeterPaySummary total = new InterimMeterPaySummary("合计");
|
|
|
+ String st=dataList.stream().filter(s->"章小计".equals(s.getItemName())).map(InterimMeterPaySummary::getMoney).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
|
|
|
+ total.setMoney(st);
|
|
|
+ dataList.add(total);
|
|
|
+ }
|
|
|
});
|
|
|
tec.periodInfo.setSummaryNumber(String.valueOf(BaseUtils.sliceNumber(dataList.size(),capacity)));
|
|
|
putOut(InterimMeterPaySummary.class);
|