Browse Source

中期支付证书

yangyj 11 months ago
parent
commit
3e3643464a

+ 15 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -862,7 +862,6 @@ public class ExecutorMeter extends FormulaExecutor {
                    v1.setQuantity(addFc.apply(v1.getQuantity(),v2.getQuantity()));
                    return v1;
                },LinkedHashMap::new)).values());*/
-                AtomicInteger sn= new AtomicInteger(1);
                 LinkedHashMap<String,List<MaterialsArrival>> group= list.stream().collect(Collectors.groupingBy(MaterialsArrival::getName, LinkedHashMap::new,Collectors.toList()));
                int rowSize= capacity-1;
                group.forEach((k,v)->{
@@ -870,9 +869,10 @@ public class ExecutorMeter extends FormulaExecutor {
                    List<MaterialsArrival> tmp = new ArrayList<>();
                    for(int i=0;i<pages.size();i++){
                        List<MaterialsArrival> data = pages.get(i);
+                       AtomicInteger sn= new AtomicInteger(1);
                        data.forEach(ma->{
                            /*排序*/
-                           ma.setSn( String.valueOf(sn.getAndIncrement()));
+                           ma.setSn( String.valueOf( sn.getAndIncrement()));
                        });
                        tmp.addAll(data);
                        int over= rowSize-data.size();
@@ -1290,9 +1290,20 @@ public class ExecutorMeter extends FormulaExecutor {
                      fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
                      InterimPaymentCertificate finalBlj = blj;
                      dataList.stream().filter(e-> "合计".equals(e.getChapterSeq())).findFirst().ifPresent(t->{
-                         finalBlj.setCurrentPeriodPay(StringUtils.number2String(multiFc.apply(t.getCurrentPeriodPay(),"0.1"),0));
+                         AtomicReference<String> currentPay= new AtomicReference<>("0");
+                         AtomicReference<String> previousPay= new AtomicReference<>("0");
+                         if(StringUtils.isEquals(tec.getPeriodId(),1808289109825830914L)){
+                             /*甬台温5标003期中间计量,2-6保留金的计算规则为:合计+材料预付款金额之和 * 0.1,仅这个合同段这一期的保留金计算规则改变,其余保留金计算还是按照合计的10%来计算--王博念 2024-8-27*/
+                             dataList.stream().filter(e-> "材料设备垫付款".equals(e.getChapterSeq())).findFirst().ifPresent(c->{
+                                 currentPay.set(addFc.apply(c.getCurrentPeriodPay(), String.valueOf(currentPay.get())));
+                                 previousPay.set(addFc.apply(c.getPreviousPeriodEndPay(), String.valueOf(previousPay.get())));
+                             });
+                         }
+                         currentPay.set(addFc.apply(t.getCurrentPeriodPay(), String.valueOf(currentPay.get())));
+                         previousPay.set(addFc.apply(t.getPreviousPeriodEndPay(), String.valueOf(previousPay.get())));
+                         finalBlj.setCurrentPeriodPay(StringUtils.number2String(multiFc.apply(currentPay.get(),"0.1"),0));
                          if(BaseUtils.obj2DoubleZero(t.getPreviousPeriodEndPay())>0) {
-                             finalBlj.setPreviousPeriodEndPay(StringUtils.number2String(multiFc.apply(t.getPreviousPeriodEndPay(), "0.1"),0));
+                             finalBlj.setPreviousPeriodEndPay(StringUtils.number2String(multiFc.apply(previousPay.get(), "0.1"),0));
                          }
                          finalBlj.setCurrentPeriodEndPay(addFc.apply(finalBlj.getCurrentPeriodPay(),finalBlj.getPreviousPeriodEndPay()));
                          dataList.stream().filter(e-> "实际支付".equals(e.getChapterSeq())).findFirst().ifPresent(w->{