yangyj hai 1 ano
pai
achega
0a586087d1

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/BaseInfo.java

@@ -43,6 +43,10 @@ public class BaseInfo  implements  DataModel{
      */
     @JSONField(name = "key_6",label="监理单位名称",ordinal = 6)
     private String supervisionUnitName=UNKNOWN;
+    @JSONField(name = "key_29",label="总监办合同段名称",ordinal = 6)
+    private String supervision;
+    @JSONField(name = "key_30",label="总监办合同段编号",ordinal = 6)
+    private String supervisionNumber;
     /**合同段金额*/
     @JSONField(name = "key_7",label="合同段金额",ordinal = 7)
     private BigDecimal contractAmount;

+ 30 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/RebateIncentiveAdvPay.java

@@ -0,0 +1,30 @@
+package org.springblade.manager.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+/**
+ * @author yangyj
+ * @Date 2024/6/18 17:18
+ * @description 回扣动员预付款一览表
+ */
+@Data
+public class RebateIncentiveAdvPay implements  DataModel{
+    public static final String ID="20360000000";
+    public static final String TBN="RIAdvPay";
+    public static final String TBN_CH="回扣动员预付款一览表";
+    @JSONField(name = "key_1",label="中期支付证书小计",ordinal = 1)
+    private String subtotal;
+    @JSONField(name = "key_2",label="扣完动员预付款时的累计计量金额合同占比",ordinal = 2)
+    private String ratio;
+    @JSONField(name = "key_3",label="扣完动员预付款时的累计计量金额",ordinal = 2)
+    private String meterAmount;
+    @JSONField(name = "key_4",label="计量支付扣回开工预付款",ordinal = 5)
+    private String retained ;
+    @JSONField(name = "key_4",label="累计扣回开工预付款金额",ordinal = 5)
+    private String endPay ;
+    @JSONField(name = "key_4",label="扣除金额-上期末累计扣回金额",ordinal = 5)
+    private String previousPay ;
+    @JSONField(name = "key_4",label="本期扣回金额",ordinal = 10)
+    private String currentPay ;
+}

+ 17 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -148,7 +148,13 @@ public class ExecutorMeter extends FormulaExecutor {
             /*开工预付款支付证书处理*/
             this.specialList.add(new StayPayCalc());
         }
-        this.specialList.stream().filter(Special::ready).forEach(Special::parse);
+        this.specialList.stream().filter(Special::ready).forEach(special->{
+            try{
+                special.parse();
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        });
         /**把队列中的DataModel全部转换为FormData(元素)*/
         tec.meterInfo.getDelay().forEach(this::dataModel2FormData);
     }
@@ -408,7 +414,10 @@ public class ExecutorMeter extends FormulaExecutor {
                     current.setChapterSeq(sc.getItemName());
                     itemList.add(current);
                 }else if(v.equals("-100")||v.equals("-101")){
-                    InterimPayCertificateItem previous = finalPreviousMap.get(k);
+                    InterimPayCertificateItem previous =null;
+                    if(finalPreviousMap!=null) {
+                        previous = finalPreviousMap.get(k);
+                    }
                     InterimPayCertificateItem current =  currentMap.computeIfAbsent(k,w->new InterimPayCertificateItem());
                     sc.setCurrentAmount(current.getCurrentPeriodPay());
                     if(previous!=null) {
@@ -739,6 +748,10 @@ public class ExecutorMeter extends FormulaExecutor {
                               t.setCurrentPeriodChangeMoney("");
                               t.setCurrentPeriodEndChangeMoney("");
                      });
+                     RebateIncentiveAdvPay rebateIncentiveAdvPay = new RebateIncentiveAdvPay();
+                     payItemZj.stream().filter(t->t.getFormName()!=null&&t.getFormName().contains("小计")).findFirst().ifPresent(t->{
+                         rebateIncentiveAdvPay.setSubtotal(t.getCurrentPeriodEndPay());
+                     });
                      dataList.addAll(payItemZj);
                      /*分行合计列,合计的时候需要计入手填部分*/
                      fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
@@ -750,6 +763,7 @@ public class ExecutorMeter extends FormulaExecutor {
                              item.setCurrentPeriodEndPay(sc.getCurrentPeriodEndPay());
                          });
                      }
+                     FormulaUtils.toFormDataMap(rebateIncentiveAdvPay);
                  }
              }
             /*数据获取end*/
@@ -1049,7 +1063,7 @@ public class ExecutorMeter extends FormulaExecutor {
                     }
                     if(m>2){
                         /*所有章合计*/
-                        subtotal(new SubprojectInterimPaymentSummary("所有章合计"),tmp,totalList,tec.getScale());
+                        subtotal(new SubprojectInterimPaymentSummary("合计(元)"),tmp,totalList,tec.getScale());
                     }
                     dataList.addAll(tmp);
                     tmp.clear();

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

@@ -41,9 +41,15 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, BaseInfo> getBaseInfoFc() {
         return contractId->{
+            BaseInfo baseInfo= new BaseInfo();
             ContractInfo info=  this.contractInfoService.getById(contractId);
             ProjectInfo projectInfo= projectInfoService.getById(info.getPId());
-            BaseInfo baseInfo= new BaseInfo();
+            List<ContractInfo> list=getEntityList("select b.* from m_contract_relation_jlyz a join m_contract_info b on a.contract_id_jlyz=b.id   where contract_id_sg ="+info.getId(),ContractInfo.class);
+            if(list!=null&&list.size()>0){
+                ContractInfo infoJL=list.get(0);
+                baseInfo.setSupervision(infoJL.getContractName());
+                baseInfo.setSupervisionNumber(infoJL.getContractNumber());
+            }
             if(info.getPlanStartTime()!=null) {
                 baseInfo.setStartDatePlan(info.getPlanStartTime().format(chineseDateFm));
             }