소스 검색

万盛计量表格表格内容更改-变更后合同价取值更改

DengLinLang 7 달 전
부모
커밋
736a4b10f3
1개의 변경된 파일46개의 추가작업 그리고 55개의 파일을 삭제
  1. 46 55
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

+ 46 - 55
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2235,6 +2235,15 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         String sqlForRatio = "select bl_reserve_funds_ratio from s_meter_contract_info where contract_id = '"+contractId+"' and is_deleted = 0";
         BigDecimal blReserveFundsRatio = jdbcTemplate.queryForObject(sqlForRatio, BigDecimal.class);
         BigDecimal blReserveFundsRatioNew = (new BigDecimal(100).subtract(blReserveFundsRatio).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
+        //获取变更后合同金额 首先获取当前合同段的合同工程清单的根节点id
+        String sqlForContractAmount = "select id from s_contract_inventory_form where contract_id = '"+contractId+"' and is_deleted = 0 and parent_id = 0";
+        Long FormId = jdbcTemplate.queryForObject(sqlForContractAmount, new SingleColumnRowMapper<>(Long.class));
+        BigDecimal changeMoneyNew = null;
+        if(ObjectUtil.isNotEmpty(FormId)){
+            InventoryFormDetailVO detail = iContractInventoryFormClient.detail(FormId);
+             changeMoneyNew = detail.getChangeMoney().setScale(0, BigDecimal.ROUND_HALF_UP);
+        }
+
         //项目名称
         String sqlForProjectName = "select project_name from m_project_info where id  = "+projectId;
         String projectName = jdbcTemplate.queryForObject(sqlForProjectName, new SingleColumnRowMapper<>(String.class));
@@ -2247,37 +2256,37 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         List<ExcelTabVo1> excelTabs = jdbcTemplate.query(sqlForExcel, new BeanPropertyRowMapper<>(ExcelTabVo1.class));
 
         ArrayList<ReportResult> reportResults = new ArrayList<>();
-        //中期支付报表封面A1
+        //中期支付报表封面
         Optional<ExcelTabVo1> excel = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876698961629186")).findFirst();
         //String url = "https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240828/3ee50ef54005c95bd724bcabae54058c.XLSX";
         String url = excel.get().getFileUrl();
         String htmlUrl=excel.get().getHtmlUrl();
-        //中间支付审核表A1
+        //中间支付审核表
         Optional<ExcelTabVo1> excel1 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876742800494593")).findFirst();
         //String url1 = "https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20241120/ea6c945827dd2990a9c7b1957fe201c4.XLSX";
         String url1 = excel1.get().getFileUrl();
         String htmlUrl1=excel1.get().getHtmlUrl();
-        //补助款申请支付审核表A2
+        //补助款申请支付审核表
         Optional<ExcelTabVo1> excel2 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876780238852097")).findFirst();
         //String url2 = "https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20241120/970eec0eb3cf3d215263a0e2f24c142e.xlsx";
         String url2 = excel2.get().getFileUrl();
         String htmlUrl2=excel2.get().getHtmlUrl();
-        //中间计量支付证书A1
+        //中间计量支付证书
         Optional<ExcelTabVo1> excel3 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876814359515138")).findFirst();
         //String url3 = "https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240828/fb1110ae6aab7295759775206e5b44b8.XLSX";
         String url3 = excel3.get().getFileUrl();
         String htmlUrl3=excel3.get().getHtmlUrl();
-        //中间计量支付申请表A1
+        //中间计量支付申请表
         Optional<ExcelTabVo1> excel4 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876859939016705")).findFirst();
         //String url4="https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240828/bff82dd0a1b7394f5fdab1322a3e6023.XLSX";
         String url4=excel4.get().getFileUrl();
         String htmlUrl4=excel4.get().getHtmlUrl();
-        //工程支付月报A1
+        //工程支付月报
         Optional<ExcelTabVo1> excel5 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876896593039362")).findFirst();
         //String url5="https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240903/c8a5b424eace6c26b2edf9b9b33f088a.XLSX";
         String url5=excel5.get().getFileUrl();
         String htmlUrl5=excel5.get().getHtmlUrl();
-        //清单支付报表A1
+        //清单支付报表
         Optional<ExcelTabVo1> excel6 = excelTabs.stream().filter(e -> e.getId().toString().equals("1780876940398350338")).findFirst();
         //String url6="https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20241120/e168f024c8055362664a276ad3721cb7.XLSX";
         String url6=excel6.get().getFileUrl();
@@ -2285,7 +2294,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         // 获取中期支付报表封面的pdfurl
         ReportResult CoverOfMidtermPaymentReportPDF = getCoverOfMidtermPaymentReportPDF(url,contractId,periodId,htmlUrl, projectName);
         //获取中间支付审核表的pdfurl
-        ReportResult intermediatePaymentPDF = getIntermediatePaymentPDF(url1,contractId,periodId,list,redisId,htmlUrl1,blReserveFundsRatioNew,projectName);
+        ReportResult intermediatePaymentPDF = getIntermediatePaymentPDF(url1,contractId,periodId,list,redisId,htmlUrl1,blReserveFundsRatioNew,projectName,changeMoneyNew);
         //获取补助款申请支付审核表pdfUrl
         ReportResult subsidyApplicationPaymentReviewPDF = getSubsidyApplicationPaymentReviewPDF(url2,contractId,periodId,list,htmlUrl2,blReserveFundsRatioNew,projectName);
         //获取中间计量支付证书pdfUrl
@@ -2331,7 +2340,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
-
+            //顶部项目名称
+            Cell a1 = getCellByAddress(sheet, "A1");
+            a1.setCellValue(projectName);
             //期号
             String periodNumber = contractMeterPeriodNow.getPeriodNumber();
             if(ObjectUtil.isNotEmpty(periodNumber) && periodNumber.contains("第")){
@@ -2341,8 +2352,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             Cell d4 = getCellByAddress(sheet, "D4");
             d4.setCellValue(periodNumber);
 
-
-
             //日期
             Cell c11 = getCellByAddress(sheet, "C11");
             c11.setCellValue(endDate.toString());
@@ -2359,11 +2368,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 Cell c10 = getCellByAddress(sheet, "C10");
                 c10.setCellStyle(cellStyle);
                 c10.setCellValue(contractInfo.getContractorUnitName());
-                //顶部项目名称
-                Cell a1 = getCellByAddress(sheet, "A1");
-                a1.setCellValue(projectName);
-                a1.setCellStyle(cellStyle);
-
             }
                dianqian(htmlUrl,sheet,workbook);
 
@@ -2481,14 +2485,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             //底部日期
             /*Cell f25 = getCellByAddress(sheet, "F25");
             f25.setCellValue(endDate.toString());*/
+            //顶部项目名称
+            Cell a1 = getCellByAddress(sheet, "A1");
+            a1.setCellValue(projectName);
 
             //工程名称
             Cell c3 = getCellByAddress(sheet, "C3");
             c3.setCellValue(projectName);
-            //顶部项目名称
-            Cell a1 = getCellByAddress(sheet, "A1");
-            a1.setCellValue(projectName);
-            a1.setCellStyle(c3.getCellStyle());
 
             dianqian(htmlUrl,sheet,workbook);
             for (Sheet sheet1 : workbook) {
@@ -2706,12 +2709,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 //填报单位
                 Cell d4 = getCellByAddress(sheet, "D4");
                 d4.setCellValue(contractInfo.getContractorUnitName());
-                //顶部项目名称
-                Cell a2 = getCellByAddress(sheet, "A2");
-                a2.setCellValue(projectName);
-                a2.setCellStyle(d4.getCellStyle());
             }
-
+            //顶部项目名称
+            Cell a2 = getCellByAddress(sheet, "A2");
+            a2.setCellValue(projectName);
             dianqian(htmlUrl,sheet,workbook);
             for (Sheet sheet1 : workbook) {
                 for (Row row : sheet1) {
@@ -2749,7 +2750,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     /**
      * 中间支付审核表获取PDFurl
      */
-    public ReportResult  getIntermediatePaymentPDF(String url,Long contractId,Long periodId,List<ContractMeterPeriod> list,Long redisId,String htmlUrl,BigDecimal blReserveFundsRatioNew,String projectName) {
+    public ReportResult  getIntermediatePaymentPDF(String url,Long contractId,Long periodId,List<ContractMeterPeriod> list,Long redisId,String htmlUrl,BigDecimal blReserveFundsRatioNew,String projectName,BigDecimal changeMoneyNew) {
         //判断当前是否是只有1期计量
         Boolean isOnePeriod = false;
         ContractMeterPeriod contractMeterPeriod1 = list.get(0);
@@ -2807,11 +2808,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 }
             }
 
-            Cell c5 = getCellByAddress(sheet, "C5");
-            c5.setCellValue(lastEndChangeMoney.toString());
+            /*Cell c5 = getCellByAddress(sheet, "C5");
+            c5.setCellValue(lastEndChangeMoney.toString());*/
             //------------------------------------------------------------本期变更------------------------------------------------------------
             //获取当前合同段的所有已审批并且已下达的变更令
-            String sql4 = "SELECT id,change_money,change_approval_date from s_change_token_form where contract_id = '"+contractId +"' and approve_status = 2 and command_status = 1 and is_deleted = 0";
+            /*String sql4 = "SELECT id,change_money,change_approval_date from s_change_token_form where contract_id = '"+contractId +"' and approve_status = 2 and command_status = 1 and is_deleted = 0";
             List<ChangeTokenForm> changeTokenForms = jdbcTemplate.query(sql4, new BeanPropertyRowMapper<>(ChangeTokenForm.class));
             //筛选出时间在本期计量开始和结束时间之内的数据
             List<ChangeTokenForm> changeTokenForms1 = changeTokenForms.stream()
@@ -2824,20 +2825,18 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     changeMoneySum = changeMoneySum.add(changeTokenForm.getChangeMoney());
                 }
             }
-            changeMoneySum = changeMoneySum.setScale(0, RoundingMode.HALF_UP);
+            changeMoneySum = changeMoneySum.setScale(0, RoundingMode.HALF_UP);*/
+            BigDecimal changemoneySum = changeMoneyNew.subtract(totalMoney).setScale(0, RoundingMode.HALF_UP);
             Cell e5 = getCellByAddress(sheet, "E5");
-            e5.setCellValue(changeMoneySum.toString());
+            e5.setCellValue(changemoneySum.toString());
             //------------------------------------------------------------本期末累计变更------------------------------------------------------------
             //上期末累计变更+本期变更
-            BigDecimal lastEndChangeMoneySum = lastEndChangeMoney.add(changeMoneySum);
+            /*BigDecimal lastEndChangeMoneySum = lastEndChangeMoney.add(changeMoneySum);
             Cell g5 = getCellByAddress(sheet, "G5");
-            g5.setCellValue(lastEndChangeMoneySum.toString());
+            g5.setCellValue(lastEndChangeMoneySum.toString());*/
             //------------------------------------------------------------变更后合同价------------------------------------------------------------
-            //签约合同价+本期末累计变更(可能是负数)
-            BigDecimal changeMoney = totalMoney.add(lastEndChangeMoneySum);
-
             Cell i5 = getCellByAddress(sheet, "I5");
-            i5.setCellValue(changeMoney.toString());
+            i5.setCellValue(changeMoneyNew.toString());
             //------------------------------------------------------------上期末累计计量-------------------------------------------------------------
             BigDecimal allMoney = new BigDecimal(0);
             //顺便计算上期末累计支付
@@ -2881,7 +2880,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             a9.setCellValue(endPay.toString());
             //------------------------------------------------------------累计支付百分数%------------------------------------------------------------
             //本期末累计支付/变更后合同价 保留两位小数
-            BigDecimal percent = endPay.divide(changeMoney,2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal percent = endPay.divide(changeMoneyNew,2, BigDecimal.ROUND_HALF_UP);
             BigDecimal multiply100 = percent.multiply(new BigDecimal(100));
             Cell c9 = getCellByAddress(sheet, "C9");
             c9.setCellValue(multiply100+"%");
@@ -2937,12 +2936,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 //施工单位
                 Cell b3 = getCellByAddress(sheet, "B3");
                 b3.setCellValue(contractInfo.getConstructionUnitName());
-                //顶部项目名称
-                Cell a1 = getCellByAddress(sheet, "A1");
-                a1.setCellValue(projectName);
-                a1.setCellStyle(b3.getCellStyle());
             }
-
+            //顶部项目名称
+            Cell a1 = getCellByAddress(sheet, "A1");
+            a1.setCellValue(projectName);
             dianqian(htmlUrl,sheet,workbook);
             for (Sheet sheet1 : workbook) {
                 for (Row row : sheet1) {
@@ -3103,7 +3100,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             //顶部项目名称
             Cell a1=getCellByAddress(sheet,"A1");
             a1.setCellValue(projectName);
-            a1.setCellStyle(d5.getCellStyle());
             //根据坐标获取单元格
             Cell c = getCellByAddress(sheet, "E6");
             //本期计量
@@ -3453,16 +3449,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             if(ObjectUtil.isNotEmpty(contractId)){
                 ContractInfo contractInfo = getContractInfo(contractId);
                 String projectName = getProjectName(contractInfo.getPId());
-
-
+                //顶部项目名称
+                Cell a1 = getCellByAddress(sheet, "A1");
+                a1.setCellValue(projectName);
                 //项目名称
                 Cell b3 = getCellByAddress(sheet, "B3");
                 b3.setCellValue(projectName);
                 CellStyle cellStyle = b3.getCellStyle();
-                //顶部项目名称
-                Cell a1 = getCellByAddress(sheet, "A1");
-                a1.setCellValue(projectName);
-                a1.setCellStyle(b3.getCellStyle());
                 //合同号
                 Cell b4 = getCellByAddress(sheet, "B4");
                 b4.setCellValue(contractInfo.getContractNumber());
@@ -3776,15 +3769,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                 if(ObjectUtil.isNotEmpty(contractId)){
                                     ContractInfo contractInfo = getContractInfo(contractId);
                                     String projectName = getProjectName(contractInfo.getPId());
-
+                                    //顶部项目名称
+                                    Cell a1 =getCellByAddress(sheet,"A1");
+                                    a1.setCellValue(projectName);
                                     //项目名称
                                     Cell b3=getCellByAddress(sheet,"B3");
                                     b3.setCellValue(projectName);
                                     CellStyle cellStyle = b3.getCellStyle();
-                                    //顶部项目名称
-                                    Cell a1 =getCellByAddress(sheet,"A1");
-                                    a1.setCellValue(projectName);
-                                    a1.setCellStyle(cellStyle);
                                     //合同号
                                     Cell b4=getCellByAddress(sheet,"B4");
                                     b4.setCellValue(contractInfo.getContractNumber());