Browse Source

试验关联表单,万盛电签ID

chenr 8 months ago
parent
commit
98344ff0ec

+ 25 - 0
blade-common/src/main/java/org/springblade/common/utils/Colour.java

@@ -0,0 +1,25 @@
+package org.springblade.common.utils;
+
+import lombok.Data;
+
+public enum Colour {
+    RESET("\u001B[0m"),
+    BOLD("\u001B[1m"),
+    UNDERLINE("\u001B[4m"),
+    BLACK("\u001B[30m"),
+    RED("\u001B[31m"),
+    GREEN("\u001B[32m"),
+    YELLOW("\u001B[33m"),
+    BLUE("\u001B[34m"),
+    PURPLE("\u001B[35m"),
+    CYAN("\u001B[36m"),
+    WHITE("\u001B[37m");
+    private final String code;
+
+    Colour(String code) {
+        this.code = code;
+    }
+    public String getCode() {
+        return code;
+    }
+}

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -123,7 +123,7 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<Long> linkNodeTreeBynodeId(@Param("pkeyid") String pkeyid);
 
-    void batchUpdateIsAddConceal(@Param("private") WbsTreePrivate wbsTreePrivate);
+    void batchUpdateIsAddConceal(@Param("private") WbsTreePrivate wbsTreePrivate,@Param("pId") Long pId);
 
     List<ArchiveSyncLogVO> getContractAllLog(@Param("contractId") Long contractId);
 }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -895,7 +895,7 @@
         update m_wbs_tree_private
         set is_add_conceal = #{private.isAddConceal}
         where project_id = #{private.projectId}
-            and FIND_IN_SET(#{private.id},ancestors) > 0
+            and FIND_IN_SET(#{pId},ancestors) > 0
     </update>
 
     <select id="linkNodeTreeBynodeId" resultType="java.lang.Long" >

+ 50 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2171,7 +2171,47 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             return R.data("同步成功");
         }
     }
+   public void dianqian(String htmlUrl,Sheet sheet, Workbook workbook ) {
+       try {
+           InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(htmlUrl);
+//            InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl("C:\\Users\\泓创研发01\\Desktop\\privateUrl\\1693464012966068224.html");
+           String htmlString = IoUtil.readToString(inputStreamByUrl);
+           Document doc = Jsoup.parse(htmlString);
+           Element table = doc.select("table").first();
+           // 组装电签设置
+           Elements dqids = table.getElementsByAttribute("dqid");
+           for (Element element : dqids) {
+               String dqid = element.attr("dqid");
+               Elements x11 = element.getElementsByAttribute("x1");
+               if (x11 != null && x11.size() >= 1) {
+                   Element element1 = x11.get(x11.size() - 1);
+                   int x1 = Func.toInt(element1.attr("x1"))-1;
+                   int y1 = Func.toInt(element1.attr("y1"))-1;
+                   Row row = sheet.getRow(y1 - 1);
+                   if (row != null) {
+                       Cell cell = row.getCell(x1 - 1);
+                       if (cell != null || Func.isNotEmpty(cell)) {
+                           short fontIndex = cell.getCellStyle().getFontIndex();
+                           Font oldfontAt = workbook.getFontAt(fontIndex);
+                           Font redFont = workbook.createFont();
+                           redFont.setColor(IndexedColors.WHITE.getIndex()); //设置字体颜色
+                           redFont.setFontHeightInPoints(Short.valueOf("1"));//设置字体大小
+                           redFont.setFontName(oldfontAt.getFontName());//设置字体
+                           String CellValue = cell.getStringCellValue().trim();
+                           CellStyle newStyle = workbook.createCellStyle(); //创建单元格样式
+                           newStyle.cloneStyleFrom(cell.getCellStyle());
+                           newStyle.setFont(redFont);
+                           newStyle.setShrinkToFit(true);
+                           cell.setCellStyle(newStyle);
+                           cell.setCellValue(dqid);
+                       }
+                   }
+               }
+           }
+       } catch (Exception e) {
 
+       }
+   }
     @Override
     public List<ReportResult> execute4(Long reportId,Long contractId, Long periodId, Integer type,Long projectId) throws FileNotFoundException, IllegalAccessException {
         Long redisId = SnowFlakeUtil.getId();
@@ -2180,7 +2220,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         List<ContractMeterPeriod> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractMeterPeriod.class));
 
         //获取所有excel报表源数据
-        String sqlForExcel = "SELECT id,file_url from m_excel_tab where parent_id =1780876295486361601 and is_deleted = 0";
+        String sqlForExcel = "SELECT id,file_url,html_url from m_excel_tab where parent_id =1780876295486361601 and is_deleted = 0";
         List<ExcelTab> excelTabs = jdbcTemplate.query(sqlForExcel, new BeanPropertyRowMapper<>(ExcelTab.class));
 
         ArrayList<ReportResult> reportResults = new ArrayList<>();
@@ -2261,6 +2301,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url,sheet,workbook);
             //期号
             String periodNumber = contractMeterPeriodNow.getPeriodNumber();
             if(ObjectUtil.isNotEmpty(periodNumber) && periodNumber.contains("第")){
@@ -2353,6 +2394,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url3);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url3,sheet,workbook);
             //------------------------------------------------------------上期末累计计量金额------------------------------------------------------------
             BigDecimal allMoney = new BigDecimal(0);
             //顺便计算上期末累计支付
@@ -2473,6 +2515,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url2);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url2,sheet,workbook);
             //***************************************************************建安费*************************************************************************
             Cell a6 = getCellByAddress(sheet, "A6");
             a6.setCellValue("建安费");
@@ -2681,6 +2724,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url,sheet,workbook);
             //------------------------------------------------------------签约合同价------------------------------------------------------------
             String sql1 = "SELECT SUM(contract_money) FROM `s_contract_inventory_form` WHERE contract_id="+contractId+" and is_deleted = 0 ";
             BigDecimal totalMoney = jdbcTemplate.queryForObject(sql1, BigDecimal.class);
@@ -3004,6 +3048,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url,sheet,workbook);
             Cell c3=getCellByAddress(sheet,"C3");
             c3.setCellValue(projectName);
             //根据坐标获取单元格
@@ -3242,7 +3287,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             m13.setBeforeEndMoney(new BigDecimal(s));
         }
         m13.setNowMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY + redisId)));
-       m13.setNowEndMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM +redisId)));
+        m13.setNowEndMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM +redisId)));
         values.add(m13);
 
         MonthlyReportVo m14 = new MonthlyReportVo();
@@ -3299,6 +3344,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             modInput = CommonUtil.getOSSInputStream(url);
             workbook = WorkbookFactory.create(modInput);
             Sheet sheet = workbook.getSheetAt(0);
+            dianqian(url,sheet,workbook);
             //根据坐标获取单元格
                             // 起始行号
                             int startRow =9;
@@ -3565,6 +3611,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         modInput = CommonUtil.getOSSInputStream(url);
                         workbook = WorkbookFactory.create(modInput);
                         Sheet sheet = workbook.getSheetAt(0);
+                        dianqian(url,sheet,workbook);
                             // 起始行号
                             int startRow =8;
                             int endRow = 21;
@@ -3585,7 +3632,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                             c.setCellValue(attributeValue);
                                         }
                                     }
-
                                 }
                             }
                                 Cell a22=getCellByAddress(sheet,"A22");
@@ -3660,6 +3706,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 bladeRedis.set("periodId:"+periodId+"formNumber:"+listEntry.getKey()+"nowEndMoney",totalNowEndMoney);
                 //本期完成金额 本期ID+章节号
                 bladeRedis.set("periodId:"+periodId+"formNumber:"+listEntry.getKey()+"nowMoney",totalNowMoney);
+
             }
             collectionUtilsClient.mergePdfPublicMethods(listUrl, localImgUrl);
             //上传oss

+ 14 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialSummaryClassificationConfigurationServiceImpl.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
@@ -26,13 +27,12 @@ import org.springblade.manager.utils.WbsElementUtil;
 import org.springblade.manager.vo.TrialTreeVO;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -78,7 +78,14 @@ public class TrialSummaryClassificationConfigurationServiceImpl
         if (ObjectUtil.isNotEmpty(dto.getExcelId()) && ObjectUtil.isNotEmpty(dto.getClassId())) {
             /*上传excel清表模板后,需要元素识别并添加到元素库;
             然后调该接口关联清表,重新生成html,重构定位信息*/
-            ExcelTab excelTab = excelTabService.getById(dto.getExcelId());
+            List<String> idsList=new ArrayList<>();
+            if(dto.getExcelId().indexOf(",")>0){
+                String[] ids = dto.getExcelId().split(",");
+                idsList= Arrays.asList(ids);
+            }else {
+                idsList.add(dto.getExcelId());
+            }
+            ExcelTab excelTab = excelTabService.getOne(new LambdaQueryWrapper<>(ExcelTab.class).in(ExcelTab::getId, idsList).eq(ExcelTab::getFileType,3));
             if (ObjectUtil.isEmpty(excelTab)) {
                 throw new ServiceException("未获取到清表信息");
             }
@@ -91,14 +98,14 @@ public class TrialSummaryClassificationConfigurationServiceImpl
             }
 
             //复制模版htmlURL
-            //File file_in = ResourceUtil.getFile("C:\\Users\\泓创开发\\Desktop\\fsdownload\\1717821792510279680.html");
+            //File file_in = ResourceUtil.getFile("C:\\upload\\1866675230773084160.html");
             File file_in = ResourceUtil.getFile(excelTab.getHtmlUrl());
             String fileCode = SnowFlakeUtil.getId() + "";
+            //正式环境
             String file_path = FileUtils.getSysLocalFileUrl();
             String htmlUrl = file_path + "/privateUrl/" + fileCode + ".html";
             File file_out = ResourceUtil.getFile(htmlUrl);
             FileUtil.copy(file_in, file_out);
-
             File file1 = ResourceUtil.getFile(htmlUrl);
             String htmlString = IoUtil.readToString(new FileInputStream(file1));
             Document doc = Jsoup.parse(htmlString);
@@ -172,7 +179,7 @@ public class TrialSummaryClassificationConfigurationServiceImpl
             FileUtil.writeToFile(writeFile, doc.html(), false);
 
             String updateSql = "UPDATE m_trial_summary_classification_configuration SET excel_id = ?,html_url = ? WHERE id = ?";
-            Object[] delParams = {dto.getExcelId(), htmlUrl, dto.getClassId()};
+            Object[] delParams = {excelTab.getId(), htmlUrl, dto.getClassId()};
             jdbcTemplate.update(updateSql, delParams);
             return true;
         }

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

@@ -24,6 +24,7 @@ import org.springblade.business.feign.ConstructionLedgerFeignClient;
 import org.springblade.business.feign.InformationQueryClient;
 import org.springblade.business.vo.QueryProcessDataVO;
 import org.springblade.common.constant.CommonConstant;
+import org.springblade.common.utils.Colour;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -2628,7 +2629,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 this.update(wrapper);
             }
         }
-        System.out.println("第"+i+"次递归完成");
+        System.out.println(Colour.RED.getCode()+"第"+i+"次递归完成"+Colour.RESET.getCode());
 
 
     }

+ 5 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -141,7 +141,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 }
                 wbsTreePrivate.setIsClassifition(1);
             }
-            int row = baseMapper.updateByPKeyId(pKeyId, wbsTreePrivate);
             /** 同步当前节点下所有节点的新增是否隐藏*/
             //如果父节点为隐藏,则子节点不能修改为显示
             if (wbsTreePrivate.getIsAddConceal() == 0){
@@ -152,9 +151,9 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     throw new ServiceException("修改失败:父节点为新增隐藏,子节点不能改为显示");
                 }
             }
-            //批量修改状态-因为结构问题,可能会有漏网之鱼
-            baseMapper.batchUpdateIsAddConceal(wbsTreePrivate);
-
+            int row = baseMapper.updateByPKeyId(pKeyId, wbsTreePrivate);
+            Long pId = baseMapper.getByPKeyId(wbsTreePrivate.getPKeyId()).getPId();
+            baseMapper.batchUpdateIsAddConceal(wbsTreePrivate,pId);
             if (row > 0) {
                 WbsTreePrivate wbsTreePrivate1 = baseMapper.getByPKeyId(pKeyId);
                 wbsTreePrivate1.setFullName(wbsTreePrivate1.getNodeName());
@@ -162,7 +161,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 wbsTreeContractMapper.updateByCondition1(wbsTreePrivate1);
                 return true;
             }
-
             //新增
         } else {
             wbsTreePrivate.setIsDeleted(0);
@@ -2979,7 +2977,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
     public void diGuiWbs(int i) {
         QueryWrapper<WbsTreePrivate> wbsTreePrivateQueryWrapper = new QueryWrapper<>();
-        wbsTreePrivateQueryWrapper.select("p_key_id","id","p_id","wbs_id","parent_id","ancestors");
+        wbsTreePrivateQueryWrapper.select("p_key_id","id","p_id","wbs_id","project_id","parent_id","ancestors");
         wbsTreePrivateQueryWrapper.eq("parent_id",0);
         wbsTreePrivateQueryWrapper.eq("is_deleted",0);
         wbsTreePrivateQueryWrapper.isNotNull("project_id");
@@ -2987,7 +2985,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         List<WbsTreePrivate> list = this.list(wbsTreePrivateQueryWrapper);
         if(!list.isEmpty()){
             WbsTreePrivate wbsTreePrivate = list.get(i);
-            //通过parentID,contractID,wbsId分组,映射map
+            //通过parentID,projectID,wbsId分组,映射map
             Map<CompositeKey1, List<WbsTreePrivate>> map = findAllContract(wbsTreePrivate).stream()
                 .collect(Collectors.groupingBy(
                     item -> new CompositeKey1(item.getParentId(),item.getProjectId(),item.getWbsId())

+ 2 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InterimPayCertificateController.java

@@ -133,7 +133,7 @@ public class InterimPayCertificateController extends BladeController {
 	}
 
 
-	
+
 	/**
 	 * 删除 中期支付证书
 	 */
@@ -168,5 +168,5 @@ public class InterimPayCertificateController extends BladeController {
 		return R.success("计算完成");
 	}
 
-	
+
 }