浏览代码

Merge branch 'dev' of http://219.151.181.73:3000/zhuwei/bladex into lihb

# Conflicts:
#	blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
LHB 2 月之前
父节点
当前提交
7d21d5d1ab
共有 24 个文件被更改,包括 109 次插入38 次删除
  1. 1 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ContractLogClient.java
  2. 1 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java
  3. 3 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClient.java
  4. 5 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClientFallBack.java
  5. 5 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO2.java
  6. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java
  7. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java
  8. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ContractLogClientImpl.java
  9. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java
  10. 2 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  11. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java
  12. 9 9
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  13. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
  14. 8 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  15. 6 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java
  16. 17 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/FormulaClientImpl.java
  17. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java
  18. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveAutoRuleSyncImpl.java
  19. 7 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java
  20. 14 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java
  21. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  22. 1 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java
  23. 5 0
      blade-service/blade-repair/pom.xml
  24. 14 5
      blade-service/blade-repair/src/main/java/org/springblade/repair/controller/CheckAndRepairController.java

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ContractLogClient.java

@@ -38,7 +38,7 @@ public interface ContractLogClient {
     JSONObject queryContractLogByPrimaryKeyIdAndRecordTime(@RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId);
 
     @GetMapping(API_PREFIX + "/queryContractLogByPrimaryKeyIdAndRecordTimeList")
-    List<ContractLog> queryContractLogByPrimaryKeyIdAndRecordTimeList(@RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId);
+    List<ContractLog> queryContractLogByPrimaryKeyIdAndRecordTimeList(@RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId,@RequestParam(required = false) Long createUser);
 
     @GetMapping(API_PREFIX + "/queryContractLogByPrimaryKeyIdAndRecordTimeAndCreateUserList")
     List<ContractLog> queryContractLogByPrimaryKeyIdAndRecordTimeAndCreateUserList(@RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId, @RequestParam Long createUser);

+ 1 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java

@@ -240,5 +240,6 @@ public class ArchiveTree extends BaseEntity {
         this.archiveAutoGroupId = archiveTree.getArchiveAutoGroupId();
         this.archiveAutoGroupSelect = archiveTree.getArchiveAutoGroupSelect();
         this.isUploadFileDisplayConfigurationTree = archiveTree.getIsDisplayTree();
+        this.storageTime=archiveTree.getStorageTime();
     }
 }

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClient.java

@@ -87,4 +87,7 @@ public interface ExcelTabClient {
 
     @PostMapping(API_PREFIX + "/saveLinkTab")
     void saveLinkTab(@RequestParam Long excelId,@RequestParam Long pKeyId) throws IOException;
+
+    @PostMapping(API_PREFIX + "/getTheLogPdInfo")
+    void getTheLogPdInfo(@RequestParam String logPkeyId,  @RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId,@RequestParam Long createUser) throws Exception;
 }

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClientFallBack.java

@@ -96,5 +96,10 @@ public class ExcelTabClientFallBack implements ExcelTabClient {
 
     }
 
+    @Override
+    public void getTheLogPdInfo(String logPkeyId, String nodePrimaryKeyId, String recordTime, String contractId,Long createUser) throws Exception {
+
+    }
+
 
 }

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO2.java

@@ -182,6 +182,9 @@ public class ArchiveTreeVO2 implements INodeEx<ArchiveTreeVO2> {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "保管期限")
+    private String storageTime;
+
     private String expDataType;
 
     /**
@@ -220,6 +223,7 @@ public class ArchiveTreeVO2 implements INodeEx<ArchiveTreeVO2> {
                 Objects.equals(this.archiveAutoNodeId, b.getArchiveAutoNodeId()) &&
                 Objects.equals(this.archiveAutoGroupId, b.getArchiveAutoGroupId()) &&
                 Objects.equals(this.archiveAutoGroupSelect, b.getArchiveAutoGroupSelect()) &&
+                Objects.equals(this.storageTime, b.getStorageTime()) &&
                 this.isDisplayTree == b.getIsDisplayTree();
     }
 
@@ -245,6 +249,7 @@ public class ArchiveTreeVO2 implements INodeEx<ArchiveTreeVO2> {
         this.archiveAutoGroupSelect = archiveTree.getArchiveAutoGroupSelect();
         this.isUploadFileDisplayConfigurationTree = archiveTree.getIsDisplayTree();
         this.isDisplayTree = archiveTree.getIsDisplayTree();
+        this.storageTime=archiveTree.getStorageTime();
         this.flag = 1;
     }
 

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -421,7 +421,7 @@ public class ArchiveFileController extends BladeController {
     @ApiOperationSupport(order = 3)
     @ApiOperation("按文件日期排序")
     public R<Boolean> sortByFileTime(@RequestParam Long nodeId){
-        return R.data(this.archiveFileService.sortByFileTime(nodeId));
+        return R.status(this.archiveFileService.sortByFileTime(nodeId));
     }
 
     /**

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -678,7 +678,7 @@ public class EVisaTaskCheckController {
         if (projectId != null && StringUtils.isNotEmpty(projectId)) {
 
             ProjectInfo projectInfo = projectClient.getById(projectId);
-            if (projectInfo.getRemarkType() == 2) {
+            if (projectInfo.getRemarkType() == 2 || projectInfo.getRemarkType() == 3) {
                 User data = userClient.userInfoById(AuthUtil.getUserId()).getData();
                 if(StringUtils.isNotEmpty(data.getAccCode())){
                     return R.data(true);

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ContractLogClientImpl.java

@@ -105,12 +105,12 @@ public class ContractLogClientImpl implements ContractLogClient {
     }
 
     @Override
-    public List<ContractLog> queryContractLogByPrimaryKeyIdAndRecordTimeList(String nodePrimaryKeyId, String recordTime, String contractId) {
+    public List<ContractLog> queryContractLogByPrimaryKeyIdAndRecordTimeList(String nodePrimaryKeyId, String recordTime, String contractId,Long createUser) {
         return this.contractLogService.getBaseMapper().selectList(Wrappers.<ContractLog>lambdaQuery()
                 .eq(ContractLog::getWbsNodeId, nodePrimaryKeyId)
                 .eq(ContractLog::getRecordTime, recordTime)
                 .eq(ContractLog::getContractId, contractId)
-                .eq(ContractLog::getCreateUser, AuthUtil.getUserId()));
+                .eq(ContractLog::getCreateUser, createUser==null?AuthUtil.getUserId():createUser));
     }
 
     @Override

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java

@@ -309,7 +309,7 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
 
     @Override
     public boolean sortByFileTime(Long nodeId) {
-     String sql="SELECT id,file_time FROM u_archive_file WHERE node_id IN (SELECT id FROM m_archive_tree_contract WHERE  FIND_IN_SET("+nodeId+",ancestors)) AND is_deleted=0";
+     String sql="SELECT id,file_time,node_id FROM u_archive_file WHERE node_id IN (SELECT id FROM m_archive_tree_contract WHERE  FIND_IN_SET("+nodeId+",ancestors)) AND is_deleted=0";
      List<ArchiveFile> list=jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(ArchiveFile.class));
      if(list.size()>0){
          Map<String, List<ArchiveFile>> group = list.stream()
@@ -322,7 +322,7 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
                  if (b.getFileTime() == null) return 1;
                  return a.getFileTime().compareTo(b.getFileTime());
              });
-             int sort = 1;
+             int sort = 0;
              for (ArchiveFile file : archiveFiles) {
                  file.setSort(sort++);
              }

+ 2 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1992,7 +1992,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 contractLogService.update(new LambdaUpdateWrapper<ContractLog>().eq(ContractLog::getId, contractLog.getId())
                     .set(ContractLog::getEVisaPdfUrl, null)
                     .set(ContractLog::getPdfUrl, null));
-                excelTabClient.getTheContractLogBusinessData(dto.getLogPkeyId(), dto.getNodePrimaryKeyId(), contractLog.getRecordTime(), dto.getContractId(), contractLog.getCreateUser());
+                //excelTabClient.getTheContractLogBusinessData(dto.getLogPkeyId(), dto.getNodePrimaryKeyId(), contractLog.getRecordTime(), dto.getContractId(), contractLog.getCreateUser());
+                excelTabClient.getTheLogPdInfo(dto.getLogPkeyId(), dto.getNodePrimaryKeyId(), contractLog.getRecordTime(), dto.getContractId(),contractLog.getCreateUser());
             }
         }
     }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -261,7 +261,7 @@ public class ArchiveTreeContractController extends BladeController {
                 newTrees.add(tree.get(0));
                 tree = newTrees;
             }
-            archiveTreeContractService.fillDefaultArchiveAutoInfo(tree, projectId);
+            archiveTreeContractService.fillDefaultArchiveAutoInfo(tree, projectId,contractId);
             return R.data(tree);
         }
         return R.fail(200, "未查询到信息");

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

@@ -2359,13 +2359,13 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "String pkeyId", value = "当前表pKeyId"),
             @ApiImplicitParam(name = "recordTime", value = "当前选择的填写日期,即右侧日期控件所选日期,格式为 yyyy-MM-dd")
     })
-    public R<String> getTheLogPdInfo(String pkeyId, String nodePrimaryKeyId, String recordTime, String contractId) throws Exception {
+    public R<String> getTheLogPdInfo(String pkeyId, String nodePrimaryKeyId, String recordTime, String contractId,Long createUser) throws Exception {
         //获取配置的路径
         String file_path = FileUtils.getSysLocalFileUrl();
         if (StringUtils.isEmpty(recordTime)) {
             recordTime = DateUtil.format(DateUtil.now(), "yyyy-MM-dd");
         }
-        List<ContractLog> contractLogList = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId);
+        List<ContractLog> contractLogList = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId,createUser);
         List<String> ids = contractLogList.stream().map(ContractLog::getId).map(String::valueOf).collect(Collectors.toList());
         if (ids.size() > 0) {
             //PDF路径
@@ -2528,10 +2528,10 @@ public class ExcelTabController extends BladeController {
                                                             myData = dataDate[0].replace("\"", "") + "-" + dataDate[1].trim().replace("\"", "");
                                                         }
                                                     } else {
-                                                        myData = Func.convert(dataDate, String.class).replaceAll(" ", "");
+                                                        myData = Func.convert(dataDate, String.class).replaceAll(" ", "").replaceAll(",","、");
                                                         if (myData.startsWith("[") && myData.endsWith("]")) {
                                                             // 去掉两端的中括号
-                                                            myData = myData.substring(1, myData.length() - 1);
+                                                            myData=myData.replaceAll("\\[","").replaceAll("]","");
                                                         }
                                                     }
 
@@ -2672,7 +2672,7 @@ public class ExcelTabController extends BladeController {
             }
             dataIds = ids.stream().filter(Objects::nonNull).collect(Collectors.joining(","));
         } else {
-            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId);
+            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId,null);
             if (contractLogs.size() == 0) {
                 logId2 = "";
             } else {
@@ -2821,7 +2821,6 @@ public class ExcelTabController extends BladeController {
                         e.printStackTrace();
                     }
                     for (Map<String, Object> mysqlData : businessDataMap) {
-
                         String querySqlx = "SELECT tree_primary_key_id as primaryKeyId,title as path from u_contract_log_wbs where  business_id ='" + dataId + "' and is_deleted = 0";
                         List<Map<String, Object>> businessDat = this.jdbcTemplate.queryForList(querySqlx);
                         reData.put("linkTabIds", businessDat);
@@ -2865,7 +2864,8 @@ public class ExcelTabController extends BladeController {
                                             reData.put(key + "__" + tabData[1], strings);
                                         } else {
                                             if (tabVal.contains("[") && tabVal.contains("]")) {
-                                                reData.put(key + "__" + tabData[1], tabData[0]);
+                                                String[] strings = new String[]{tabData[0].replaceAll("\\[","").replaceAll("]","")};
+                                                reData.put(key + "__" + tabData[1],strings);
                                             } else {
                                                 reData.put(key + "__" + tabData[1], tabData[0]);
                                             }
@@ -3110,7 +3110,7 @@ public class ExcelTabController extends BladeController {
                     return fail("没有数据可复制");
                 } else {
                     //查询当前所在日期日志记录
-                    List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, currentTime, contractId);
+                    List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, currentTime, contractId,null);
                     if (ObjectUtil.isEmpty(contractLogs)) {
                         String id = this.contractLogClient.saveContractLog(new SaveContractLogVO(
                                 dataIds,
@@ -3483,7 +3483,7 @@ public class ExcelTabController extends BladeController {
             //保存日志
             data = this.excelTabService.saveOrUpdateTheLog(tableInfoList);
         }
-        this.getTheLogPdInfo(pkeyId, nodePrimaryKeyId, recordTime, contractId);
+        this.getTheLogPdInfo(pkeyId, nodePrimaryKeyId, recordTime, contractId,null);
         return R.data(data);
     }
 

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

@@ -66,7 +66,6 @@ import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
-import org.springframework.http.ContentDisposition;
 
 @RestController
 @AllArgsConstructor

+ 8 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -860,14 +860,19 @@ public class WbsTreePrivateController extends BladeController {
     @GetMapping("/getTitleRange")
     @ApiOperationSupport(order = 33)
     @ApiOperation(value = "获取题名范围",notes = "获取题名范围")
-    public R<List<TitleRangeVo>> getTitleRange(@RequestParam String projectId){
+    public R<List<TitleRangeVo>> getTitleRange(@RequestParam String projectId,@RequestParam Long nameId){
         List<WbsTreePrivate>list=wbsTreeService.getTitleRange(projectId);
         List<WbsParam> list1 = iWbsParamService.getBaseMapper().selectList(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getK, "FILE_TITLE").eq(WbsParam::getProjectId, projectId));
         if(list1.size()>0){
-            List<Long> longs = list1.stream().filter(o->o.getNameType()!=null&&o.getNameType()==2).map(l -> l.getNodeId()).collect(Collectors.toList());
+            Map<Long, Long> map = list1.stream()
+                .filter(o -> o.getNameType() != null && o.getNameType() == 2)
+                .collect(Collectors.toMap(
+                    WbsParam::getNodeId,   // key:nodeId
+                    WbsParam::getNameId    // value:nameId
+                ));
             //判断是否已经被选中
             for (WbsTreePrivate wbsTreePrivate : list) {
-                if(longs.contains(wbsTreePrivate.getId())){
+                if(map.containsKey(wbsTreePrivate.getId())&& !Objects.equals(map.get(wbsTreePrivate.getId()), nameId)){
                     wbsTreePrivate.setStatus(11);
                 }
             }

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java

@@ -511,6 +511,11 @@ public class ExcelTabClientImpl implements ExcelTabClient {
         excelTabController.saveLinkeTab(excelId,pKeyId);
     }
 
+    @Override
+    public void getTheLogPdInfo(String logPkeyId, String nodePrimaryKeyId, String recordTime, String contractId,Long createUser) throws Exception {
+        excelTabController.getTheLogPdInfo(logPkeyId, nodePrimaryKeyId, recordTime, contractId,createUser);
+    }
+
 
     private String getHtmlString(String pkeyId) throws Exception {
         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
@@ -542,7 +547,7 @@ public class ExcelTabClientImpl implements ExcelTabClient {
             }
             dataIds = ids.stream().filter(Objects::nonNull).collect(Collectors.joining(","));
         } else {
-            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId);
+            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(nodePrimaryKeyId, recordTime, contractId,null);
             if (contractLogs.size() == 0){
                 logId2="";
             }else {

+ 17 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/FormulaClientImpl.java

@@ -49,7 +49,23 @@ public class FormulaClientImpl implements FormulaClient {
           return  "表id有误";
         }
         Map<String, String> keysMap = FormulaUtils.getElementCell(wtc.getHtmlUrl());
-        Long id = this.jdbcTemplate.queryForObject("select d.formula_id from m_wbs_tree_contract a join m_table_info b on a.init_table_name=b.tab_en_name join m_wbs_form_element c on c.f_id=b.id join m_element_formula_mapping d on c.id=d.element_id where a.p_key_id=" + pkId + " and c.e_key='" + key + "'  ORDER BY d.scope desc limit 1", Long.class);
+        String sql="SELECT d.formula_id \n" +
+            "FROM m_wbs_tree_contract a \n" +
+            "JOIN m_table_info b ON a.init_table_name = b.tab_en_name \n" +
+            "JOIN m_wbs_form_element c ON c.f_id = b.id \n" +
+            "JOIN m_element_formula_mapping d ON c.id = d.element_id \n" +
+            "WHERE a.p_key_id = "+pkId+"\n" +
+            "  AND c.e_key = '"+key+"' \n" +
+            "  AND (d.project_id = "+wtc.getProjectId()+" OR (d.project_id IS NULL))\n" +
+            "ORDER BY \n" +
+            "  CASE \n" +
+            "    WHEN d.project_id = "+wtc.getProjectId()+" THEN 0 \n" +
+            "    ELSE 1 \n" +
+            "  END,\n" +
+            "  d.scope DESC \n" +
+            "LIMIT 1";
+        // "select d.formula_id from m_wbs_tree_contract a join m_table_info b on a.init_table_name=b.tab_en_name join m_wbs_form_element c on c.f_id=b.id join m_element_formula_mapping d on c.id=d.element_id where a.p_key_id=" + pkId + " and c.e_key='" + key + "'  ORDER BY d.scope desc limit 1"
+        Long id = this.jdbcTemplate.queryForObject(sql, Long.class);
         if (Func.isNotEmpty(id)) {
             Formula formula = this.service.getById(id);
             if (Func.isNotEmpty(formula)) {

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

@@ -99,7 +99,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
     boolean deleteTree(Long id);
 
-    void fillDefaultArchiveAutoInfo(List<ArchiveTreeContractVO2> tree, Long projectId);
+    void fillDefaultArchiveAutoInfo(List<ArchiveTreeContractVO2> tree, Long projectId,Long contractId);
 
     void fillDefaultArchiveAutoInfo(List<ArchiveTreeContract> archiveTreeContracts);
 

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

@@ -253,7 +253,7 @@ public class ArchiveAutoRuleSyncImpl {
             if (contractVO2.getExtType() == null && fromId != null && archiveAutoType != null && archiveAutoType == 2) {
                 Long contract_groupId = contractVO2.getArchiveAutoGroupId();
                 //如果当前contractVO2的groupID是客户级(19位数),需要先保存关联集合
-                if (contract_groupId.toString().length() == 19) {
+                if (contract_groupId!=null&&contract_groupId.toString().length() == 19) {
                     //1.通过fromid找出项目级
                     ArchiveTreeVO2 proTreeVO2 = proMap.get(fromId);
                     //2.获取项目级groupID
@@ -332,7 +332,7 @@ public class ArchiveAutoRuleSyncImpl {
                         //分合同段的 给archiveAutoGroupId
                         Long groupId = contractVO2.getArchiveAutoGroupId();
                         //客户级的groupID用19位数字  系统级和项目级用16位数字
-                        if (groupId.toString().length() == 16) {
+                        if (groupId!=null&&groupId.toString().length() == 16) {
                             String key = "";
                             if (contractId == null) {
                                 key = groupId + "";

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

@@ -820,7 +820,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	 * @param trees
 	 * @param projectId
 	 */
-	public  void  fillDefaultArchiveAutoInfo(List<ArchiveTreeContractVO2> trees,Long projectId){
+	public  void  fillDefaultArchiveAutoInfo(List<ArchiveTreeContractVO2> trees,Long projectId,Long contractId){
 
 		List<ContractInfo> contractInfos = contractInfoService.selectContractInfoPageByPid(projectId.toString());
 		if (contractInfos == null || contractInfos.size() == 0) {
@@ -835,11 +835,13 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		}
 
 		for (ArchiveTreeContractVO2 child: trees) {
-			Long contractId = 0L;
+			Long contractId1 = 0L;
 			if (child.getContractId() != null ) {
-				contractId = child.getContractId();
-			}
-			ContractInfo contractInfo = contractMap.get(contractId);
+				contractId1 = child.getContractId();
+			}else {
+                contractId1 = contractId;
+            }
+			ContractInfo contractInfo = contractMap.get(contractId1);
 			if (contractInfo != null) {
 				fillDefaultArchiveAutoInfo(child,contractInfo);
 			}

+ 14 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -17,6 +18,7 @@ import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.dto.ArchiveTreeSortDTO;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.ArchiveAutoRuleWbsMapper;
+import org.springblade.manager.mapper.ArchiveTreeContractMapper;
 import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.service.IWbsTreePrivateService;
 import org.springblade.manager.service.IWbsTreeService;
@@ -27,6 +29,10 @@ import org.springblade.manager.vo.*;
 import org.springblade.manager.mapper.ArchiveTreeMapper;
 import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -1167,6 +1173,14 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
 
         this.saveBatch(saveList);
         this.updateBatchById(upList);
+//        for (ArchiveTree archiveTree : upList) {
+//            String sql="select * from m_archive_tree_contract where from_id="+archiveTree.getId()+" and project_id="+archiveTree.getProjectId()+" and is_deleted=0";
+//            List<ArchiveTreeContract> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ArchiveTreeContract.class));
+//            for (ArchiveTreeContract archiveTreeContract : list) {
+//                archiveTreeContract.sync(archiveTree);
+//                archiveTreeContractMapper.update(archiveTreeContract,new LambdaQueryWrapper<>(ArchiveTreeContract.class).eq(ArchiveTreeContract::getId,archiveTreeContract.getId()));
+//            }
+//        }
         return true;
     }
 

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

@@ -665,7 +665,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         String ids = "";
         if (StringUtils.isEmpty(businessIds)) {
             //检查是否存在原本的数据
-            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(parentNode.getPKeyId().toString(), recordTime, tableInfoList.get(0).getContractId());
+            List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(parentNode.getPKeyId().toString(), recordTime, tableInfoList.get(0).getContractId(),null);
             if (contractLogs.size() > 0) {
                 businessIds = contractLogs.stream().map(ContractLog::getDataId).filter(ObjectUtils::isNotEmpty).map(String::valueOf).collect(Collectors.joining(","));
                 ids = contractLogs.stream().map(ContractLog::getId).map(String::valueOf).collect(Collectors.joining(","));

+ 1 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -3949,6 +3949,7 @@ public class TaskController extends BladeController {
             }
             //查询出当前计量期对应的任务
             String selectTask = "SELECT * from u_task WHERE approval_type =? and form_data_id = ? and is_deleted = 0 and status in (1,2)";
+
             List<Task> list = jdbcTemplate.query(selectTask, new BeanPropertyRowMapper<>(Task.class), type1,periodId);
             System.out.println("wewecq"+selectTask);
             if (list.size() == 0){

+ 5 - 0
blade-service/blade-repair/pom.xml

@@ -76,5 +76,10 @@
             <groupId>org.jsoup</groupId>
             <artifactId>jsoup</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.11.0</version>
+        </dependency>
     </dependencies>
 </project>

+ 14 - 5
blade-service/blade-repair/src/main/java/org/springblade/repair/controller/CheckAndRepairController.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.SystemUtils;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.oss.model.BladeFile;
@@ -16,6 +17,7 @@ import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.repair.util.ExcelInfoUtils;
 import org.springblade.repair.util.FileUtils;
 import org.springblade.resource.feign.NewIOSSClient;
+import org.springblade.system.cache.ParamCache;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -318,12 +320,19 @@ public class CheckAndRepairController {
     public void checkPrivateHtmlIsCopy(){
         String sql="select p_key_id,project_id,html_url from m_wbs_tree_private where is_deleted=0 and html_url  NOT LIKE '%privateUrlCopy%' AND type=2";
         List<WbsTreePrivate> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
+        String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
+        String projectUrl="";
+        if(sys_isonline.equals("20")){
+            projectUrl="/home/www/wwwroot/Users/hongchuangyanfa/Desktop/privateUrlCopy";
+        }else {
+            projectUrl="/mnt/sdc/Users/hongchuangyanfa/Desktop/privateUrlCopy/";
+        }
         for (WbsTreePrivate wbsTreePrivate : list) {
             if(StringUtils.isNotEmpty(wbsTreePrivate.getHtmlUrl())){
                 String url=wbsTreePrivate.getHtmlUrl();
                 File html = new File(wbsTreePrivate.getHtmlUrl());
                 if(html.exists()){
-                    String project = "/mnt/sdc/Users/hongchuangyanfa/Desktop/privateUrlCopy/"+wbsTreePrivate.getProjectId()+"/";
+                    String project = projectUrl+wbsTreePrivate.getProjectId()+"/";
                     File projectFile = new File(project);
                     if(!projectFile.exists()){
                         projectFile.mkdir();
@@ -359,7 +368,7 @@ public class CheckAndRepairController {
      * 检查private html文件是否存在
      */
     @GetMapping("/checkPrivateHtmlIsExist")
-    @Scheduled(cron = "0  30  1 * * ?")
+    @Scheduled(cron = "0  0  3 * * ?")
     public void checkPrivateHtmlIsExist() throws Exception {
         String sql="select p_key_id, excel_id,html_url from m_wbs_tree_private where html_url IS NOT NULL  and is_deleted=0";
         List<WbsTreePrivate> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
@@ -376,8 +385,9 @@ public class CheckAndRepairController {
             boolean flag=true;
             //判断文件是否存在
             if(!html.exists()){
+                System.out.println("文件不存在:"+htmlUrl+":"+wbsTreePrivate.getPKeyId());
                 List<WbsTreePrivate> list1;
-                Path sourcePath = Paths.get(htmlUrl);
+                Path targetPath = Paths.get(htmlUrl);
                 String sql1="select html_url from m_wbs_tree_private where excel_id="+wbsTreePrivate.getExcelId()+" and is_deleted=0"+" and init_table_name= '"+wbsTreePrivate.getInitTableName()+"' and html_url like '%"+result+"' ";
                 list1= jdbcTemplate.query(sql1, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
                 if(list1.isEmpty()){
@@ -389,7 +399,7 @@ public class CheckAndRepairController {
                 for (String htmlUrlSet : htmlSets) {
                     File htmlSet = new File(htmlUrlSet);
                     if(htmlSet.exists()){
-                        Path targetPath = Paths.get(htmlUrlSet);
+                        Path sourcePath = Paths.get(htmlUrlSet);
                         Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
                         System.out.println("文件复制成功!"+wbsTreePrivate.getPKeyId());
                         flag=false;
@@ -408,5 +418,4 @@ public class CheckAndRepairController {
         }
         System.out.println("检查完毕,更新了"+i+"条记录");
     }
-
 }