|
@@ -63,14 +63,16 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
|
|
|
/**根据清单编号获取支付项目章节编号*/
|
|
|
public String getPrefix(String fn){
|
|
|
- for(InventoryForm itf:chapters){
|
|
|
- String prefix=itf.getFormNumber();
|
|
|
+ if(fn!=null) {
|
|
|
fn= fn.split("-")[0];
|
|
|
- if(BaseUtils.isNumber(fn)){
|
|
|
- fn=String.valueOf(100*(Integer.parseInt(fn)/100));
|
|
|
- }
|
|
|
- if(fn.equals(prefix)){
|
|
|
- return prefix;
|
|
|
+ for (InventoryForm itf : chapters) {
|
|
|
+ String prefix = itf.getFormNumber();
|
|
|
+ if (BaseUtils.isNumber(fn)) {
|
|
|
+ fn = String.valueOf(100 * (Integer.parseInt(fn) / 100));
|
|
|
+ }
|
|
|
+ if (fn.startsWith(prefix)) {
|
|
|
+ return prefix;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return fn;
|
|
@@ -289,6 +291,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
)
|
|
|
));
|
|
|
|
|
|
+
|
|
|
private Function<List<Payment>, Map<String, BigDecimal>> moneySum= data-> data.stream()
|
|
|
.collect(Collectors.groupingBy(
|
|
|
payment -> getPrefix(payment.getNumber()),
|
|
@@ -336,18 +339,20 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
for(Map.Entry<String,BigDecimal[]> cm:contractMoney.entrySet()){
|
|
|
if(Func.isEmpty(cm.getKey()))continue;
|
|
|
InventoryForm inventoryForm=dictMap.get(cm.getKey());
|
|
|
- InterimPaymentCertificate ipc = new InterimPaymentCertificate(inventoryForm.getFormName());
|
|
|
- /*中期支付汇总的章次*/
|
|
|
- String ch=inventoryForm.getFormNumber();
|
|
|
- ipc.setChapterSeq(ch+(BaseUtils.isNumber(ch)?"章":""));
|
|
|
- BigDecimal[] bmMoney =cm.getValue();
|
|
|
- ipc.setContractAmount(bmMoney[0].toString());
|
|
|
- ipc.setRevisedAmount(bmMoney[1].toString());
|
|
|
- ipc.setPreviousPeriodEndPay(StringUtils.handleNull(previousMoney.get(cm.getKey())));
|
|
|
- ipc.setCurrentPeriodPay(StringUtils.handleNull(currentMoney.get(cm.getKey())));
|
|
|
- /*由已知求未知*/
|
|
|
- ipc.calculate();
|
|
|
- dataList.add(ipc);
|
|
|
+ if(inventoryForm!=null) {
|
|
|
+ InterimPaymentCertificate ipc = new InterimPaymentCertificate(inventoryForm.getFormName());
|
|
|
+ /*中期支付汇总的章次*/
|
|
|
+ String ch = inventoryForm.getFormNumber();
|
|
|
+ ipc.setChapterSeq(ch + (BaseUtils.isNumber(ch) ? "章" : ""));
|
|
|
+ BigDecimal[] bmMoney = cm.getValue();
|
|
|
+ ipc.setContractAmount(bmMoney[0].toString());
|
|
|
+ ipc.setRevisedAmount(bmMoney[1].toString());
|
|
|
+ ipc.setPreviousPeriodEndPay(StringUtils.handleNull(previousMoney.get(cm.getKey())));
|
|
|
+ ipc.setCurrentPeriodPay(StringUtils.handleNull(currentMoney.get(cm.getKey())));
|
|
|
+ /*由已知求未知*/
|
|
|
+ ipc.calculate();
|
|
|
+ dataList.add(ipc);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
/*数据获取end*/
|