Explorar o código

中期支付证书bug

yangyj hai 1 ano
pai
achega
98ea7f3657

+ 12 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -281,7 +281,7 @@ public class ExecutorMeter extends FormulaExecutor {
                     /*支付期限*/
                     dataMap.put("key_8",one.getPayDate());
                     /*业务日期*/
-                    dataMap.put("key_9",one.getPayDate());
+                    dataMap.put("key_9",BaseUtils.toDateStr(one.getBusDate()));
                     /*上一期*/
                   Optional<Integer> op=startPayForms.stream().map(StartPayForm::getPeriodSort).filter(s->s<one.getPeriodSort()).max(Comparator.comparingInt(s->s));
                   if(op.isPresent()){
@@ -938,7 +938,7 @@ public class ExecutorMeter extends FormulaExecutor {
             LinkedHashMap<String,InterimPayCertificateItem> currentMap = interimPayCertificateItemGroup.getOrDefault(tec.periodInfo.getReportId(),new LinkedHashMap<>());
              List<InterimPayCertificateItem> itemList = tec.meterInfo.getInterimPayCertificateItems();
              itemList.clear();
-            InterimPaymentCertificate thblj=null;
+            InterimPaymentCertificate blj=null;
              if(Func.isNotEmpty(midPayItemList)){
                  /*暂定金编号,纠正*/
                  chapters.stream().filter(e->e.getFormName().contains("暂")).findFirst().ifPresent(t->{
@@ -1000,8 +1000,10 @@ public class ExecutorMeter extends FormulaExecutor {
                      payItemZj.add(new InterimPaymentCertificate("扣回动员预付款"));
                      payItemZj.add(new InterimPaymentCertificate("材料设备垫付款"));
                      payItemZj.add(new InterimPaymentCertificate("扣回材料设备垫付款"));
-                     payItemZj.add(new InterimPaymentCertificate("保留金"));
-                      thblj=new InterimPaymentCertificate("退还保证金",true);
+                      blj=new InterimPaymentCertificate("保留金");
+                     payItemZj.add(blj);
+                     InterimPaymentCertificate thblj=new InterimPaymentCertificate("退还保证金",true);
+                     thblj.setNoApply(1);
                      payItemZj.add(thblj);
                      InterimPaymentCertificate sjzf=new InterimPaymentCertificate("实际支付",true);
                      addGetSetConfig(sjzf,InterimPaymentCertificate::getCurrentPeriodEndPay,sjzf::setCurrentPeriodEndPay);
@@ -1076,7 +1078,7 @@ public class ExecutorMeter extends FormulaExecutor {
                              certificate.setCurrentPeriodEndPay(rebateIncentiveAdvPay.getEndPay());
                              certificate.setCurrentPeriodPay(rebateIncentiveAdvPay.getCurrentPay());
                              certificate.setPreviousPeriodEndPay(rebateIncentiveAdvPay.getPreviousPay());
-                         }else if("保留金".equals(certificate.getChapterSeq())){
+                         }else if("退还保证金".equals(certificate.getChapterSeq())){
                              certificate.setCurrentPeriodPay(ic.getCurrentPeriodPay());
                          }
                          BeanUtils.copyProperties(certificate,ic);
@@ -1100,11 +1102,13 @@ public class ExecutorMeter extends FormulaExecutor {
                              item.setCurrentPeriodEndPay(sc.getCurrentPeriodEndPay());
                          });
                      }
-                     InterimPaymentCertificate finalThblj = thblj;
+                     InterimPaymentCertificate finalBlj = blj;
                      dataList.stream().filter(e->e.getChapterSeq().equals("合计")).findFirst().ifPresent(t->{
-                         finalThblj.setCurrentPeriodPay(multiFc.apply(t.getCurrentPeriodPay(),"0.1"));
+                         finalBlj.setCurrentPeriodPay(multiFc.apply(t.getCurrentPeriodPay(),"0.1"));
+                         itemList.stream().filter(e->e.getChapterSeq().equals("保留金")).findFirst().ifPresent(k->{
+                             k.setCurrentPeriodPay(finalBlj.getCurrentPeriodPay());
+                         });
                      });
-
                      /*排序*/
                      List<String> indexSort =dataList.stream().map(InterimPaymentCertificate::getChapterSeq).collect(Collectors.toList());
                      itemList.forEach(e->{

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaDaoImpl.java

@@ -133,7 +133,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, List<StartPayForm>> getStayPayFormFc() {
         return  contractId->{
-            String sql="select  a.file_names file_name,a.calculate_formula,a.apply_cause,a.pay_date, a.meter_money meterMoney ,b.id meterPeriodId,b.sort periodSort from s_start_pay_meter_form a join s_meter_period b on a.meter_period_id =b.id  where  a.is_deleted =0  and a.contract_id="+contractId;
+            String sql="select  a.file_names file_name,a.calculate_formula,a.apply_cause,a.pay_date, a.meter_money meterMoney,a.business_date bus_date ,b.id meterPeriodId,b.sort periodSort from s_start_pay_meter_form a join s_meter_period b on a.meter_period_id =b.id  where  a.is_deleted =0  and a.contract_id="+contractId;
             return getEntityList(sql,StartPayForm.class);
         };
     }

+ 5 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -53,6 +53,7 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.BiFunction;
@@ -2914,11 +2915,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         });
         tec.after();
         executionTime.info("公式计算");
-        saveInterimPayCertificateItems(tec.meterInfo.getInterimPayCertificateItems());
+        CompletableFuture.runAsync(() -> {
+            /*支付项*/
+            saveInterimPayCertificateItems(tec.meterInfo.getInterimPayCertificateItems());
+        });
         return tec.getReportResults();
     }
 
-    @Async
     public void saveInterimPayCertificateItems(List<InterimPayCertificateItem> items){
         if(items!=null&&items.size()>0){
               this.certificateItemClient.saveOrUpdate(items);