Explorar el Código

监理中期支付证书

yangyj hace 1 año
padre
commit
619c8687e2

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ExecutionTime.java

@@ -1,5 +1,7 @@
 package org.springblade.manager.vo;
 
+import cn.hutool.json.JSONUtil;
+
 /**
  * @author yangyj
  * @Date 2024/1/23 16:14
@@ -9,6 +11,7 @@ public class ExecutionTime {
     public static final String template="耗时:$1\n 总耗时:$2";
     private final Long start;
     private Long last;
+    private final StringBuffer summary= new StringBuffer();
 
     public ExecutionTime() {
         this.start=System.currentTimeMillis();
@@ -21,6 +24,10 @@ public class ExecutionTime {
         long part= cur-last;
         last=cur;
         String s = str+template.replace("$1",String.valueOf(part)).replace("$2",String.valueOf(total));
+        summary.append(s).append("\n");
         System.out.println(s);
     }
+    public void brief(){
+        System.out.println(summary);
+    }
 }

+ 33 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/SupervisionCertificate.java

@@ -0,0 +1,33 @@
+package org.springblade.manager.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+
+/**
+ * @author yangyj
+ * @Date 2024/5/23 17:47
+ * @description 监理服务费期中支付证书
+ */
+public class SupervisionCertificate implements  DataModel{
+    public static final String ID="20350000000";
+    public static final String TBN="SCert";
+    public static final String TBN_CH="监理服务费期中支付证书";
+    @JSONField(name = "key_1",label="合同金额月数",ordinal = 1)
+    private String month;
+    @JSONField(name = "key_1",label="合同金额单价",ordinal = 1)
+    private String price;
+    @JSONField(name = "key_1",label="合同金额",ordinal = 1)
+    private String contractAmount;
+    @JSONField(name = "key_1",label="本期末完成金额",ordinal = 1)
+    private String periodEndAmount;
+    @JSONField(name = "key_1",label="本期末完成比例",ordinal = 1)
+    private String periodEndRatio;
+    @JSONField(name = "key_1",label="上期末完成金额",ordinal = 1)
+    private String previousEndAmount;
+    @JSONField(name = "key_1",label="上期末完成比例",ordinal = 1)
+    private String previousEndRatio;
+    @JSONField(name = "key_1",label="本期完成金额",ordinal = 1)
+    private String currentAmount;
+    @JSONField(name = "key_1",label="本期完成比例",ordinal = 1)
+    private String currentRatio;
+
+}

+ 8 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -1904,6 +1904,7 @@ public class ExcelTabController extends BladeController {
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
     public R saveBussData2(@Valid @RequestBody JSONObject dataInfo) throws Exception {
+        ExecutionTime executionTime = new ExecutionTime();
         JSONArray dataArray = new JSONArray();
         if (dataInfo.containsKey("dataInfo")) { //节点保存
             JSONObject jsonObject = dataInfo.getJSONObject("dataInfo");
@@ -1928,20 +1929,21 @@ public class ExcelTabController extends BladeController {
             doForTableIst(tableAll,tableInfoList);
         }
         System.out.println("加载所有表单数据耗时:"+(System.currentTimeMillis()-start));*/
+        executionTime.info("公式前");
         //公式填充
         this.excelTabService.formulaFillData(tableInfoList, Long.parseLong(nodeId), ExecuteType.INSPECTION);
         assert tableInfoList != null;
         if(tableInfoList.size()==0){
             R.success("数据未发生变化");
         }
+        executionTime.info("公式耗时");
         //保存数据到数据库
         R<Object> result = this.excelTabService.saveOrUpdateInfo(tableInfoList);
         if (!result.isSuccess()) {
             return R.fail(result.getMsg());
         }
+        executionTime.info("表单保存耗时");
 
-
-        long start2= System.currentTimeMillis();
         List<String> errorPKeyIds = new ArrayList<>();
         //单个pdf加载
         if (tableInfoList != null) {
@@ -1958,8 +1960,7 @@ public class ExcelTabController extends BladeController {
                 }
             });
         }
-
-        System.out.println("PDF刷新耗时:"+(System.currentTimeMillis()-start2));
+        executionTime.info("PDF刷新耗时");
         //发生异常后直接返回,不进行合并
         if (errorPKeyIds.size() > 0) {
             List<AppWbsTreeContractVO> errorTabs = new LinkedList<>();
@@ -1976,10 +1977,11 @@ public class ExcelTabController extends BladeController {
 
         //合并pdf加载
         excelTabService.getBussPdfs(nodeId, classify, contractId, projectId);
-
+        executionTime.info("PDF合并耗时");
         //更新缓存
         informationQueryClient.delAsyncWbsTree(contractId);
-
+        executionTime.info("缓存删除耗时");
+        executionTime.brief();
         return R.data("操作成功");
     }
 

+ 16 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -136,6 +136,9 @@ public class ExecutorMeter extends FormulaExecutor {
             this.specialList.add(new IMeterPaySummary());
             /*中间计量表*/
             this.specialList.add(new IMeter());
+        }else if(MeterType.INTERIM_JL.equals(tec.getMeterType())){
+            /*监理*/
+            this.specialList.add(new SupervisionCertificateSp());
         }else if(MeterType.START.equals(tec.getMeterType())){
             /*开工预付款支付证书处理*/
             this.specialList.add(new StayPayCalc());
@@ -340,7 +343,20 @@ public class ExecutorMeter extends FormulaExecutor {
             putOut(MaterialPriceDifferential.class);
         }
     }
+    @Data
+    @EqualsAndHashCode(callSuper = true)
+    public  class SupervisionCertificateSp extends   BaseSpecial<SupervisionCertificate> implements Special{
+
+        @Override
+        public boolean ready() {
+            return true;
+        }
+
+        @Override
+        public void parse() {
 
+        }
+    }
     @Data
     @EqualsAndHashCode(callSuper = true)
     public  class MaterialsArrivalSp extends   BaseSpecial<MaterialsArrival> implements Special{