|
@@ -271,6 +271,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
dataMap.put("key_2",currentD.toPlainString());
|
|
|
/*累计*/
|
|
|
dataMap.put("key_3",sum.toPlainString());
|
|
|
+ /*附件名*/
|
|
|
dataMap.put("key_5",one.getFileName());
|
|
|
/*计算式*/
|
|
|
dataMap.put("key_6",one.getCalculateFormula());
|
|
@@ -493,7 +494,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
List<Payment> pre=tec.meterInfo.getPaymentListMap().get(MeterInfo.PRE);
|
|
|
List<Payment> cur=tec.meterInfo.getPaymentListMap().get(MeterInfo.CUR);
|
|
|
List<Payment> end=tec.meterInfo.getPaymentListMap().get(MeterInfo.END);
|
|
|
- Map<SupervisionCertificate,Map<Function<SupervisionCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
|
|
|
+ /* Map<SupervisionCertificate,Map<Function<SupervisionCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();*/
|
|
|
Map<Long,LinkedHashMap<String,InterimPayCertificateItem>>interimPayCertificateItemGroup=tec.meterInfo.getInterimPayCertificateItemGroup();
|
|
|
LinkedHashMap<String,InterimPayCertificateItem> previousMap = null;
|
|
|
if(tec.meterInfo.getPreviousPeriodInfo()!=null){
|
|
@@ -511,10 +512,10 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
sc.setMonth(tec.periodInfo.getMonth());
|
|
|
if(v.equals("-1")){
|
|
|
sc.setIsSummary(true);
|
|
|
- addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getContractAmount,sc::setContractAmount);
|
|
|
- addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getPeriodEndAmount,sc::setPeriodEndAmount);
|
|
|
- addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getPreviousEndAmount,sc::setPreviousEndAmount);
|
|
|
- addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getCurrentAmount,sc::setCurrentAmount);
|
|
|
+ addGetSetConfig(sc,SupervisionCertificate::getContractAmount,sc::setContractAmount);
|
|
|
+ addGetSetConfig(sc,SupervisionCertificate::getPeriodEndAmount,sc::setPeriodEndAmount);
|
|
|
+ addGetSetConfig(sc,SupervisionCertificate::getPreviousEndAmount,sc::setPreviousEndAmount);
|
|
|
+ addGetSetConfig(sc,SupervisionCertificate::getCurrentAmount,sc::setCurrentAmount);
|
|
|
InterimPayCertificateItem current = currentMap.computeIfAbsent(k,w->new InterimPayCertificateItem());
|
|
|
peerMap.put(sc,current);
|
|
|
current.setChapterSeq(sc.getItemName());
|
|
@@ -575,7 +576,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
dataList.add(sc);
|
|
|
});
|
|
|
/*分行合计列*/
|
|
|
- fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
|
|
|
+ fieldGetSet(x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
|
|
|
if(peerMap.size()>0) {
|
|
|
/*等合计项目计算完毕,再赋值*/
|
|
|
peerMap.forEach((sc, item) -> {
|
|
@@ -627,7 +628,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
Map<String, BigDecimal[]> contractMoney = contractMoneySum.apply(inventoryForms);
|
|
|
Map<String,List<InventoryForm>> group=inventoryForms.stream().filter(e->StringUtils.isNotEmpty(e.getContractMoney())).collect(Collectors.groupingBy(ExecutorMeter.this::getPrefix,Collectors.toList()));
|
|
|
// LinkedHashMap<String, InventoryForm> dictMap = chapters.stream().sorted(Comparator.comparingInt(toIntFc)).collect(Collectors.toMap(e->chapterPreFixFc.apply(e),e -> e, (v1, v2) -> v1,LinkedHashMap::new));
|
|
|
- Map<SupervisionCertificate, Map<Function<SupervisionCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();
|
|
|
+ /*Map<SupervisionCertificate, Map<Function<SupervisionCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();*/
|
|
|
itemNamesMap.forEach((k,v)->{
|
|
|
SupervisionCertificate sc= new SupervisionCertificate(k);
|
|
|
BigDecimal[] arr = contractMoney.get(v);
|
|
@@ -638,6 +639,16 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
arr[0] = arr[0].add(chapter200[0]);
|
|
|
arr[1] = arr[1].add(chapter200[1]);
|
|
|
}
|
|
|
+ List<InventoryForm> a= group.get(v);
|
|
|
+ List<InventoryForm> b= group.get("200");
|
|
|
+ List<InventoryForm> list = new ArrayList<>();
|
|
|
+ if(Func.isNotEmpty(a)){
|
|
|
+ list.addAll(a);
|
|
|
+ }
|
|
|
+ if(Func.isNotEmpty(b)){
|
|
|
+ list.addAll(b);
|
|
|
+ }
|
|
|
+ sc.setMonth(list.stream().mapToInt(e->BaseUtils.handleObj2Integer(e.getUnit())).sum()+"");
|
|
|
}
|
|
|
sc.setContractAmount(arr[0].toPlainString());
|
|
|
}
|
|
@@ -646,30 +657,59 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
if(Func.isNotEmpty(list)) {
|
|
|
InventoryForm one = list.get(0);
|
|
|
sc.setPrice(one.getCurrentPrice());
|
|
|
- sc.setMonth(one.getUnit());
|
|
|
+ if (!"100".equals(v)) {
|
|
|
+ sc.setMonth(one.getUnit());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- if("小计".equals(k)){
|
|
|
- addGetSetConfig(sc, summaryConfigMap, SupervisionCertificate::getContractAmount, sc::setContractAmount);
|
|
|
- }
|
|
|
- if("合计".equals(k)){
|
|
|
- addGetSetConfig(sc, summaryConfigMap, SupervisionCertificate::getContractAmount, sc::setContractAmount);
|
|
|
+ if("小计".equals(k)||"合计".equals(k)){
|
|
|
+ sc.setIsSummary(true);
|
|
|
+ addGetSetConfig(sc, SupervisionCertificate::getContractAmount, sc::setContractAmount);
|
|
|
+ addGetSetConfig(sc, SupervisionCertificate::getMonth, sc::setMonth);
|
|
|
}
|
|
|
- if("动员预付款".equals(k)){
|
|
|
- sc.setContractAmount(StringUtils.handleNull(tec.meterInfo.getBaseInfo().getDyTotalAmount()));
|
|
|
+ BigDecimal dy= BaseUtils.str2BigDecimal(tec.meterInfo.getBaseInfo().getDyTotalAmount());
|
|
|
+ if("动员预付款".equals(k)||"实际支付金额".equals(k)){
|
|
|
+ if("动员预付款".equals(k)) {
|
|
|
+ sc.setContractAmount(StringUtils.handleNull(tec.meterInfo.getBaseInfo().getDyTotalAmount()));
|
|
|
+ }
|
|
|
sc.setCurrentAmount(currentStart);
|
|
|
sc.setPeriodEndAmount(sumStart);
|
|
|
- sc.setPreviousEndAmount(subtractFc.apply(sumStart,currentStart));
|
|
|
+ if(dy.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ if(StringUtils.isNotEmpty(currentStart)&&!currentStart.contains("-")) {
|
|
|
+ String preStart=subtractFc.apply(sumStart, currentStart);
|
|
|
+ if(!preStart.contains("-1")){
|
|
|
+ sc.setPreviousEndAmount(preStart);
|
|
|
+ sc.setPreviousEndRatio(ratioFc.apply(preStart,dy.toPlainString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(currentStart)) {
|
|
|
+ sc.setCurrentRatio(ratioFc.apply(currentStart,dy.toPlainString()));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(sumStart)) {
|
|
|
+ sc.setPeriodEndRatio(ratioFc.apply(sumStart,dy.toPlainString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if("实际支付金额".equals(k)){
|
|
|
+ /* if("实际支付金额".equals(k)){
|
|
|
sc.setCurrentAmount(currentStart);
|
|
|
sc.setPeriodEndAmount(sumStart);
|
|
|
- sc.setPreviousEndAmount(subtractFc.apply(sumStart,currentStart));
|
|
|
- }
|
|
|
+ if(dy.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ if(StringUtils.isNotEmpty(currentStart)&&!currentStart.contains("-")) {
|
|
|
+ sc.setPreviousEndAmount(subtractFc.apply(sumStart, currentStart));
|
|
|
+ sc.setPreviousEndRatio(ratioFc.apply(sc.getPreviousEndAmount(),dy.toPlainString()));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(currentStart)) {
|
|
|
+ sc.setCurrentRatio(ratioFc.apply(currentStart,dy.toPlainString()));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(sumStart)) {
|
|
|
+ sc.setPeriodEndRatio(ratioFc.apply(sumStart,dy.toPlainString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
dataList.add(sc);
|
|
|
});
|
|
|
/*分行合计列,合计的时候需要计入手填部分*/
|
|
|
- fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
|
|
|
+ fieldGetSet(x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
|
|
|
/*占位行*/
|
|
|
dataList.stream().filter(t->t.getItemName().equals("小计")).findFirst().ifPresent(t->{
|
|
|
int over= capacity-dataList.size();
|
|
@@ -766,17 +806,17 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
t.setFormName("");
|
|
|
t.setChapterSeq("暂定金额");
|
|
|
});
|
|
|
- Map<InterimPaymentCertificate, Map<Function<InterimPaymentCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();
|
|
|
+ /*Map<InterimPaymentCertificate, Map<Function<InterimPaymentCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();*/
|
|
|
InterimPaymentCertificate xj = new InterimPaymentCertificate("小计", true);
|
|
|
- addGetSetConfig(xj, summaryConfigMap, InterimPaymentCertificate::getContractAmount, xj::setContractAmount);
|
|
|
- addGetSetConfig(xj, summaryConfigMap, InterimPaymentCertificate::getRevisedAmount, xj::setRevisedAmount);
|
|
|
+ addGetSetConfig(xj, InterimPaymentCertificate::getContractAmount, xj::setContractAmount);
|
|
|
+ addGetSetConfig(xj, InterimPaymentCertificate::getRevisedAmount, xj::setRevisedAmount);
|
|
|
dataList.add(xj);
|
|
|
InterimPaymentCertificate jgtz = new InterimPaymentCertificate("价格调整");
|
|
|
LinkedHashMap<Integer, List<MaterialAdjust>> materialAdjustMap = tec.meterInfo.getMaterialAdjustListMap();
|
|
|
dataList.add(jgtz);
|
|
|
InterimPaymentCertificate hj = new InterimPaymentCertificate("合计", true);
|
|
|
- addGetSetConfig(hj, summaryConfigMap, InterimPaymentCertificate::getContractAmount, hj::setContractAmount);
|
|
|
- addGetSetConfig(hj, summaryConfigMap, InterimPaymentCertificate::getRevisedAmount, hj::setRevisedAmount);
|
|
|
+ addGetSetConfig(hj, InterimPaymentCertificate::getContractAmount, hj::setContractAmount);
|
|
|
+ addGetSetConfig(hj, InterimPaymentCertificate::getRevisedAmount, hj::setRevisedAmount);
|
|
|
dataList.add(hj);
|
|
|
dataList.add(new InterimPaymentCertificate("索赔金额", MINUS_ONE));
|
|
|
dataList.add(new InterimPaymentCertificate("违约罚金", MINUS_ONE));
|
|
@@ -792,12 +832,12 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
dataList.add(new InterimPaymentCertificate("扣回材料设备垫付款"));
|
|
|
dataList.add(new InterimPaymentCertificate("保留金"));
|
|
|
InterimPaymentCertificate sjzf = new InterimPaymentCertificate("实际支付");
|
|
|
- addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getCurrentPeriodEndPay, sjzf::setCurrentPeriodEndPay);
|
|
|
- addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getPreviousPeriodEndPay, sjzf::setPreviousPeriodEndPay);
|
|
|
- addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getCurrentPeriodPay, sjzf::setCurrentPeriodPay);
|
|
|
+ addGetSetConfig(sjzf, InterimPaymentCertificate::getCurrentPeriodEndPay, sjzf::setCurrentPeriodEndPay);
|
|
|
+ addGetSetConfig(sjzf, InterimPaymentCertificate::getPreviousPeriodEndPay, sjzf::setPreviousPeriodEndPay);
|
|
|
+ addGetSetConfig(sjzf, InterimPaymentCertificate::getCurrentPeriodPay, sjzf::setCurrentPeriodPay);
|
|
|
dataList.add(sjzf);
|
|
|
/*分行合计列,合计的时候需要计入手填部分*/
|
|
|
- fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
|
|
|
+ fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
|
|
|
dataList.stream().filter(t->t.getChapterSeq()!=null&&t.getChapterSeq().contains("小计")).findFirst().ifPresent(t->{
|
|
|
int over= capacity-dataList.size();
|
|
|
if(over>0){
|
|
@@ -886,7 +926,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
interimPaymentCertificates= new ArrayList<>(paymentCertificateMap.values());
|
|
|
/*合同段支付项*/
|
|
|
List<MidPayItem> midPayItemList=tec.meterInfo.getMidPayItemList();
|
|
|
- Map<InterimPaymentCertificate,Map<Function<InterimPaymentCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
|
|
|
+ /*Map<InterimPaymentCertificate,Map<Function<InterimPaymentCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();*/
|
|
|
Map<Long,LinkedHashMap<String,InterimPayCertificateItem>>interimPayCertificateItemGroup=tec.meterInfo.getInterimPayCertificateItemGroup();
|
|
|
LinkedHashMap<String,InterimPayCertificateItem> previousMap = new LinkedHashMap<>();
|
|
|
if(tec.meterInfo.getPreviousPeriodInfo()!=null){
|
|
@@ -902,15 +942,15 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
if(MeterInfo.MB_ZJ.equals(tec.meterInfo.getTemplate())){
|
|
|
/*假如章节*/
|
|
|
InterimPaymentCertificate xj=new InterimPaymentCertificate("小计",true);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getContractAmount,xj::setContractAmount);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getRevisedTotal,xj::setRevisedTotal);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getRevisedAmount,xj::setRevisedAmount);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,xj::setCurrentPeriodEndPay);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndChangeMoney,xj::setCurrentPeriodEndChangeMoney);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,xj::setPreviousPeriodEndPay);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndChangeMoney,xj::setPreviousPeriodEndChangeMoney);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,xj::setCurrentPeriodPay);
|
|
|
- addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodChangeMoney,xj::setCurrentPeriodChangeMoney);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getContractAmount,xj::setContractAmount);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getRevisedTotal,xj::setRevisedTotal);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getRevisedAmount,xj::setRevisedAmount);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodEndPay,xj::setCurrentPeriodEndPay);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodEndChangeMoney,xj::setCurrentPeriodEndChangeMoney);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getPreviousPeriodEndPay,xj::setPreviousPeriodEndPay);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getPreviousPeriodEndChangeMoney,xj::setPreviousPeriodEndChangeMoney);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodPay,xj::setCurrentPeriodPay);
|
|
|
+ addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodChangeMoney,xj::setCurrentPeriodChangeMoney);
|
|
|
payItemZj.add(xj);
|
|
|
InterimPaymentCertificate jgtz= new InterimPaymentCertificate("价格调整");
|
|
|
LinkedHashMap<Integer,List<MaterialAdjust>> materialAdjustMap= tec.meterInfo.getMaterialAdjustListMap();
|
|
@@ -923,9 +963,9 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
}
|
|
|
payItemZj.add(jgtz);
|
|
|
InterimPaymentCertificate hj = new InterimPaymentCertificate("合计",true);
|
|
|
- addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,hj::setCurrentPeriodEndPay);
|
|
|
- addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,hj::setPreviousPeriodEndPay);
|
|
|
- addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,hj::setCurrentPeriodPay);
|
|
|
+ addGetSetConfig(hj,InterimPaymentCertificate::getCurrentPeriodEndPay,hj::setCurrentPeriodEndPay);
|
|
|
+ addGetSetConfig(hj,InterimPaymentCertificate::getPreviousPeriodEndPay,hj::setPreviousPeriodEndPay);
|
|
|
+ addGetSetConfig(hj,InterimPaymentCertificate::getCurrentPeriodPay,hj::setCurrentPeriodPay);
|
|
|
payItemZj.add(hj);
|
|
|
payItemZj.add(new InterimPaymentCertificate("索赔金额",MINUS_ONE));
|
|
|
payItemZj.add(new InterimPaymentCertificate("违约罚金",MINUS_ONE));
|
|
@@ -935,11 +975,15 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
if(tec.meterInfo.getStartPayFormAll()!=null){
|
|
|
List<StartPayForm> startPayForm = tec.getMeterInfo().getStartPayFormAll();
|
|
|
if(startPayForm.size()>0){
|
|
|
- String current= startPayForm.stream().filter(s->s.getPeriodSort()<=tec.periodInfo.getSort()).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
|
|
|
- String end= startPayForm.stream().filter(s-> s.getPeriodSort().equals(tec.periodInfo.getSort())).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
|
|
|
- startPay.setCurrentPeriodPay(current);
|
|
|
- startPay.setCurrentPeriodEndPay(end);
|
|
|
- startPay.setPreviousPeriodEndPay(subtractFc.apply(end,current));
|
|
|
+ BigDecimal current= startPayForm.stream().filter(s->s.getPeriodSort()<=tec.periodInfo.getSort()).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
+ BigDecimal end= startPayForm.stream().filter(s-> s.getPeriodSort().equals(tec.periodInfo.getSort())).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
+ startPay.setCurrentPeriodPay(current.toPlainString());
|
|
|
+ startPay.setCurrentPeriodEndPay(end.toPlainString());
|
|
|
+ String pre=subtractFc.apply(end.toPlainString(),current.toPlainString());
|
|
|
+ if(!pre.contains("-")) {
|
|
|
+ /*非负数*/
|
|
|
+ startPay.setPreviousPeriodEndPay(pre);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
payItemZj.add(startPay);
|
|
@@ -948,9 +992,9 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
payItemZj.add(new InterimPaymentCertificate("扣回材料设备垫付款"));
|
|
|
payItemZj.add(new InterimPaymentCertificate("保留金"));
|
|
|
InterimPaymentCertificate sjzf=new InterimPaymentCertificate("实际支付",true);
|
|
|
- addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,sjzf::setCurrentPeriodEndPay);
|
|
|
- addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,sjzf::setPreviousPeriodEndPay);
|
|
|
- addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,sjzf::setCurrentPeriodPay);
|
|
|
+ addGetSetConfig(sjzf,InterimPaymentCertificate::getCurrentPeriodEndPay,sjzf::setCurrentPeriodEndPay);
|
|
|
+ addGetSetConfig(sjzf,InterimPaymentCertificate::getPreviousPeriodEndPay,sjzf::setPreviousPeriodEndPay);
|
|
|
+ addGetSetConfig(sjzf,InterimPaymentCertificate::getCurrentPeriodPay,sjzf::setCurrentPeriodPay);
|
|
|
payItemZj.add(sjzf);
|
|
|
}
|
|
|
midPayItemList.forEach(e->{
|
|
@@ -1021,7 +1065,7 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
itemList.add(ic);
|
|
|
}
|
|
|
/*分行合计列,合计的时候需要计入手填部分*/
|
|
|
- fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
|
|
|
+ fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
|
|
|
if(peerMap.size()>0) {
|
|
|
/*等合计项目计算完毕,再赋值*/
|
|
|
peerMap.forEach((sc, item) -> {
|
|
@@ -2097,6 +2141,8 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
public Integer capacity;
|
|
|
/*输出值*/
|
|
|
List<T> dataList;
|
|
|
+ /*按列计算,配置*/
|
|
|
+ Map<T,Map<Function<T,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
|
|
|
/*用实例去构建带有初始化数据的元素*/
|
|
|
public void builderFormDatas(T bean){
|
|
|
fdm = FormulaUtils.toFormDataMap(bean);
|
|
@@ -2157,12 +2203,14 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
}
|
|
|
};
|
|
|
/*批量计算列表中之前的字段和,并赋值到当前字段*/
|
|
|
- public void fieldGetSet(Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p){
|
|
|
- fieldGetSet(gsMap,p,bean->BigDecimal.ONE);
|
|
|
+ /*Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p*/
|
|
|
+ public void fieldGetSet( Predicate<T> p){
|
|
|
+ fieldGetSet(p,bean->BigDecimal.ONE);
|
|
|
}
|
|
|
- public void fieldGetSet(Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p,Function<T,BigDecimal> sign){
|
|
|
+ /*Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p,Function<T,BigDecimal> sign*/
|
|
|
+ public void fieldGetSet( Predicate<T> p,Function<T,BigDecimal> sign){
|
|
|
if(dataList.size()>0) {
|
|
|
- gsMap.forEach((b, m) -> {
|
|
|
+ summaryConfigMap.forEach((b, m) -> {
|
|
|
List<T> dl = dataList.stream().limit(dataList.indexOf(b)).collect(Collectors.toList());
|
|
|
m.forEach((f, c) -> {
|
|
|
/* c.accept(dl.stream().filter(p).map(f).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO, BigDecimal::add).toString());*/
|
|
@@ -2174,8 +2222,9 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void addGetSetConfig(T b,Map<T,Map<Function<T,String>,Consumer<String>>> gsMap,Function<T,String>f,Consumer<String> c){
|
|
|
- Map<Function<T,String>,Consumer<String>> configMap = gsMap.computeIfAbsent(b,k->new HashMap<>());
|
|
|
+ /*T b,Map<T,Map<Function<T,String>,Consumer<String>>> gsMap,Function<T,String>f,Consumer<String> c*/
|
|
|
+ public void addGetSetConfig(T b,Function<T,String>f,Consumer<String> c){
|
|
|
+ Map<Function<T,String>,Consumer<String>> configMap = summaryConfigMap.computeIfAbsent(b,k->new HashMap<>());
|
|
|
configMap.put(f,c);
|
|
|
}
|
|
|
|