Browse Source

Merge branch 'master' of http://39.108.216.210:3000/zhuwei/bladex

huangtf 5 months ago
parent
commit
8bfc1e9cb2

+ 18 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/ImportTreeDto.java

@@ -1,5 +1,6 @@
 package org.springblade.business.dto;
 
+import io.swagger.models.auth.In;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -10,14 +11,31 @@ import lombok.NoArgsConstructor;
 public class ImportTreeDto {
     private String unitName;//单位工程名称
     private String unitCode; // 单位工程编号
+    private Integer unitType;//单位工程类型
+    private Boolean isUnit;//是否已处理单位工程;
+
     private String subUnitName; // 子单位工程名称
     private String subUnitCode; // 子单位工程编号
+    private Integer subUnitType; // 子单位工程类型
+    private Boolean isSubUnit;//是否已处理子单位工程;
+
     private String divisionName; // 分部工程名称
     private String divisionCode; // 分部工程编号
+    private Integer divisionType; // 分部工程类型
+    private Boolean isDivision;//是否已处理分部工程;
+
     private String subDivisionName; // 子分部工程名称
     private String subDivisionCode; // 子分部工程编号
+    private Integer subDivisionType; // 子分部工程类型
+    private Boolean isSubDivision;//是否已处理子分部工程;
+
     private String itemName; // 分项工程名称
     private String itemCode; // 分项工程编号
+    private Integer itemType;// 分项工程类型
+    private Boolean isItem;//是否已处理分项工程;
+
     private String subItemName;  // 子分项工程名称
     private String subItemCode;// 子分项工程编号
+    private Integer subItemType;// 子分项工程类型
+    private Boolean isSubItem;//是否已处理子分项工程;
 }

+ 4 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/ReSigningEntrustDto.java

@@ -1,8 +1,12 @@
 package org.springblade.business.dto;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 public class ReSigningEntrustDto {
     /**
      * 委托id

+ 7 - 61
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1089,24 +1089,24 @@ public R<String> batchDownloadFileToZip(String ids, HttpServletResponse response
                     String url_link = "";
                     List<TaskApprovalVO.ApprovalFile> files = jdbcTemplate.query("select name as fileName,domain_url as fileUrl from m_table_file where is_deleted = 0 and type in(10,11,12)and tab_id = ?", new BeanPropertyRowMapper<>(TaskApprovalVO.ApprovalFile.class), result.get(i).getWbsId());
                     List<String> url = new ArrayList();
-                    if (ObjectUtil.isNotEmpty(files)) {
-                        for (TaskApprovalVO.ApprovalFile da : files) {
-                            url.add(da.getFileUrl());
-                        }
-                    }
-
                     if (result.get(i) != null && result.get(i).getEVisaPdfUrl()!=null) {
                         url.add(result.get(i).getEVisaPdfUrl());
                     } else {
                         url.add(result.get(i).getPdfUrl());
                     }
 
+                    if (ObjectUtil.isNotEmpty(files)) {
+                        for (TaskApprovalVO.ApprovalFile da : files) {
+                            url.add(da.getFileUrl());
+                        }
+                    }
+
                     if (url != null && url.size() > 1) {
                         String localUrl = FileUtils.getSysLocalFileUrl() + "\\" + result.get(i).getId() + ".pdf";
                         FileUtils.mergePdfPublicMethods(url, localUrl);
                         BladeFile bladeFile = newIOSSClient.uploadFile(result.get(i).getId() + ".pdf", localUrl);
                         if (bladeFile != null && ObjectUtils.isNotEmpty(bladeFile.getLink())) {
-                            url.add(bladeFile.getLink());
+                            url_link=bladeFile.getLink();
                         }
 
                     } else if (url != null && url.size() == 1) {
@@ -4156,59 +4156,5 @@ public R<Object> customAddContractNode(@RequestBody CustomAddContractNodeDTO dto
     return R.fail("未获取到当前选择节点信息");
 }
 
-    @PostMapping("/importTree")
-    @ApiOperationSupport(order = 31)
-    @ApiOperation(value = "导入工程划分树", notes = "传入MultipartFile")
-    public R importTree(@RequestParam("file") MultipartFile file, @RequestParam Long pkeyId) throws IOException {
-        InputStream inputStream = file.getInputStream();
-        Workbook workbook = new XSSFWorkbook(inputStream);
-        Sheet sheet = workbook.getSheetAt(0);
-        List<ImportTreeDto>list=new ArrayList<>();
-        for (int i = 2; i <= sheet.getLastRowNum(); i++){
-            Row row = sheet.getRow(i);
-            if (row == null) continue;
-            // 获取每一列的值
-            String unitName = getCellValue(row.getCell(0)); // A列:单位工程名称
-            String unitCode = getCellValue(row.getCell(1)); // B列:单位工程编号
-            String subUnitName = getCellValue(row.getCell(2)); // C列:子单位工程名称
-            String subUnitCode = getCellValue(row.getCell(3)); // D列:子单位工程编号
-            String divisionName = getCellValue(row.getCell(4)); // E列:分部工程名称
-            String divisionCode = getCellValue(row.getCell(5)); // F列:分部工程编号
-            String subDivisionName = getCellValue(row.getCell(6)); // G列:子分部工程名称
-            String subDivisionCode = getCellValue(row.getCell(7)); // H列:子分部工程编号
-            String itemName = getCellValue(row.getCell(8)); // I列:分项工程名称
-            String itemCode = getCellValue(row.getCell(9)); // J列:分项工程编号
-            String subItemName = getCellValue(row.getCell(10)); // K列:子分项工程名称
-            String subItemCode = getCellValue(row.getCell(11));// L列:子分项工程编号
-
-            ImportTreeDto dto=new ImportTreeDto(unitName,unitCode,subUnitName,subUnitCode,divisionName,divisionCode, subDivisionName,subDivisionCode,itemName,itemCode,subItemName,subItemCode);
-            list.add(dto);
-        }
-        String sql="select * from m_wbs_tree_private where p_key_id="+pkeyId;
-        WbsTreePrivate wbsTreePrivate = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
-
-        //先查出这个节点下所有的树
-
-        return R.success("操作成功");
-    }
 
-    /**
-     * 获取单元格的值
-     *
-     * @param cell 单元格
-     * @return 单元格的值(字符串)
-     */
-    private static String getCellValue(Cell cell) {
-        if (cell == null) {
-            return "";
-        }
-        switch (cell.getCellType()) {
-            case 1:
-                return cell.getStringCellValue();
-            case 0:
-                return String.valueOf((int) cell.getNumericCellValue());
-            default:
-                return "";
-        }
-    }
 }

+ 8 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1880,10 +1880,15 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                             ContractLog contractLog = jdbcTemplate.queryForObject("select * from u_contract_log where id =" + task.getFormDataId(), new BeanPropertyRowMapper<>(ContractLog.class));
                             result = excelTabClient.getTheContractLogBusinessData(contractLog.getTableId().toString(), contractLog.getWbsNodeId().toString(), contractLog.getRecordTime(), contractId,contractLog.getCreateUser());
                         }
+                        //委托单重签
+                        if(task.getApprovalType()==8){
+                            String sql="SELECT * from u_entrust_info where id=(select wbs_id from u_information_query where id="+task.getFormDataId()+")";
+                            EntrustInfo info = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(EntrustInfo.class));
+                            ReSigningEntrustDto dto=new ReSigningEntrustDto(info.getId().toString(),task.getId().toString(),contractId,info.getNodeId(),2,1);
+                            result=excelTabClient.saveReEntrustTabData(dto,header);
+                        }
 
 
-                        result = this.saveNodePdf(typeMap.get(task.getFormDataId()), queryMap.get(task.getFormDataId()), contractId, projectId, header);
-
                         long endTime_1 = System.currentTimeMillis();
                         long executionTime_1 = endTime_1 - startTime_1;
                         log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
@@ -1894,7 +1899,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         result.setData("成功");
                     }
                     //重新电签
-                    if (result != null && "成功".equals(result.getData())) {
+                    if (result != null && ("成功".equals(result.getData())||200==result.getCode())) {
                         List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
                         List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
                         for (TaskParallel taskParallel : taskParallelList) {

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -25,6 +25,7 @@ import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.business.dto.ImportTreeDto;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
@@ -136,6 +137,15 @@ public class WbsTreeContractController extends BladeController {
         }
         return R.fail(400, "导入失败");
     }
+    @PostMapping("/importTree")
+    @ApiOperationSupport(order = 31)
+    @ApiOperation(value = "导入工程划分树", notes = "传入MultipartFile")
+    public R importTree(@RequestParam("file") MultipartFile file, @RequestParam Long pkeyId) throws IOException {
+        iWbsTreeContractService.importTree(file,pkeyId);
+        return R.success("操作成功");
+    }
+
+
 
     @PostMapping("/import-relation")
     @ApiOperationSupport(order = 4)

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -80,4 +80,6 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     //递归修改pid和ancestors
     void diGuiWbs(int i);
+
+    void importTree(MultipartFile file, Long pkeyId) throws IOException;
 }

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

@@ -2515,7 +2515,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                         dataMap2.put(k, lastStr.toString());
                     } else {
                         String dataVal = dataInfo2.getString(dataMap.get(k).get(0));
-                        dataMap2.put(k, dataVal + "_^_" + dataMap.get(k).get(0).split("__")[1]);
+                        if(StringUtils.isNotEmpty(dataVal)){
+                            dataMap2.put(k, dataVal + "_^_" + dataMap.get(k).get(0).split("__")[1]);
+                        }
                     }
                 }
                 dataMap2.put("p_key_id", tableInfo.getPkeyId());

+ 82 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -13,12 +13,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.business.dto.ImportTreeDto;
 import org.springblade.business.entity.ConstructionLedger;
 import org.springblade.business.feign.ConstructionLedgerFeignClient;
 import org.springblade.business.feign.InformationQueryClient;
@@ -66,6 +71,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.*;
@@ -2168,6 +2174,79 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         }
         return null;
     }
+    @Override
+    public void importTree(MultipartFile file, Long pkeyId) throws IOException {
+        InputStream inputStream = file.getInputStream();
+        org.apache.poi.ss.usermodel.Workbook workbook = new XSSFWorkbook(inputStream);
+        Sheet sheet = workbook.getSheetAt(0);
+        List<ImportTreeDto>list=new ArrayList<>();
+        for (int i = 2; i <= sheet.getLastRowNum(); i++){
+            Row row = sheet.getRow(i);
+            if (row == null) continue;
+            // 获取每一列的值
+            String unitName = getCellValue(row.getCell(0)); // A列:单位工程名称
+            String unitCode = getCellValue(row.getCell(1)); // B列:单位工程编号
+            String subUnitName = getCellValue(row.getCell(2)); // C列:子单位工程名称
+            String subUnitCode = getCellValue(row.getCell(3)); // D列:子单位工程编号
+            String divisionName = getCellValue(row.getCell(4)); // E列:分部工程名称
+            String divisionCode = getCellValue(row.getCell(5)); // F列:分部工程编号
+            String subDivisionName = getCellValue(row.getCell(6)); // G列:子分部工程名称
+            String subDivisionCode = getCellValue(row.getCell(7)); // H列:子分部工程编号
+            String itemName = getCellValue(row.getCell(8)); // I列:分项工程名称
+            String itemCode = getCellValue(row.getCell(9)); // J列:分项工程编号
+            String subItemName = getCellValue(row.getCell(10)); // K列:子分项工程名称
+            String subItemCode = getCellValue(row.getCell(11));// L列:子分项工程编号
+            ImportTreeDto dto=new ImportTreeDto(unitName,unitCode,1,false,subUnitName,subUnitCode,18,false,divisionName,divisionCode,2,false, subDivisionName,subDivisionCode,3,false,itemName,itemCode,4,false,subItemName,subItemCode,5,false);
+                list.add(dto);
+        }
+        if(list.isEmpty()){
+            throw new ServiceException("导入模版为空,请先填写数据");
+        }
+        //最高节点
+        WbsTreeContract wbsTreeContractRoot = baseMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getPKeyId, pkeyId));
+        //获取当前节点下所有子节点
+        List<WbsTreeContractVO> wbsTreeContractVOS = contractInfoMapper.tree4(wbsTreeContractRoot.getContractId(), String.valueOf(wbsTreeContractRoot.getId()));
+        if (wbsTreeContractVOS.size() <= 0) {
+            throw new ServiceException("未查询到当前合同段的wbs树,请先分配该合同的合同段wsb树");
+        }
+        //本次新增的节点
+        List<String>insertList=new ArrayList<>();
+        //本次修改的节点
+        List<String> updateList=new ArrayList<>();
+
+        //新增和修改
+        for (ImportTreeDto dto : list) {
+            for (WbsTreeContractVO vo : wbsTreeContractVOS) {
+                //wbs节点的名称和单位工程的名称类型能对应上,并且编号不一,就修改编号
+                if(vo.getNodeName().equals(dto.getUnitName())&&vo.getNodeType()==1){
+                    baseMapper.update(null,Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getPartitionCode,dto.getUnitCode()).eq(WbsTreeContract::getPKeyId,vo.getPrimaryKeyId()));
+                    continue;
+                }
+
+            }
+        }
+
+    }
+
+    /**
+     * 获取单元格的值
+     *
+     * @param cell 单元格
+     * @return 单元格的值(字符串)
+     */
+    private static String getCellValue(Cell cell) {
+        if (cell == null) {
+            return "";
+        }
+        switch (cell.getCellType()) {
+            case 1:
+                return cell.getStringCellValue();
+            case 0:
+                return String.valueOf((int) cell.getNumericCellValue());
+            default:
+                return "";
+        }
+    }
 
     private WbsTreeContractVO4 importSubmitWbsContractNodes(ArrayList<Map<String, String>> result, String
             primaryKeyId, Integer isSplicingNumber) {
@@ -2725,6 +2804,9 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
 
     }
+
+
+
     public  List<WbsTreeContract> findAllContract(WbsTreeContract wbsTreeContract){
         QueryWrapper<WbsTreeContract> wbsTreeContractQueryWrapper = new QueryWrapper<>();
         wbsTreeContractQueryWrapper.select("p_key_id","id","p_id","wbs_id","contract_id","parent_id","ancestors");