Browse Source

Merge branch 'refs/heads/feature-lihb-bug' into test-merge-02

# Conflicts:
#	blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ServicePlanServiceImpl.java
LHB 3 tháng trước cách đây
mục cha
commit
8c5d8dc28d

+ 47 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/trans/ArchiveReq.java

@@ -22,6 +22,21 @@ public class ArchiveReq {
 
     String remoteId;
 
+    /**
+     * 默认0,用nodeId去找
+     * 为1时,用contractName,nodeName找
+     */
+    Integer transType= 0;
+
+    //合同段名称
+    String contractName;
+
+    //节点名称
+    String nodeName;
+
+    //0 施工,1 监理
+    Integer nodeType;
+
     //归档树
     List<ArchiveTreeVo> trees=new ArrayList<>();
     //案卷
@@ -102,4 +117,36 @@ public class ArchiveReq {
     public void setProjectName(String projectName) {
         this.projectName = projectName;
     }
+
+    public Integer getTransType() {
+        return transType;
+    }
+
+    public void setTransType(Integer transType) {
+        this.transType = transType;
+    }
+
+    public String getContractName() {
+        return contractName;
+    }
+
+    public void setContractName(String contractName) {
+        this.contractName = contractName;
+    }
+
+    public String getNodeName() {
+        return nodeName;
+    }
+
+    public void setNodeName(String nodeName) {
+        this.nodeName = nodeName;
+    }
+
+    public Integer getNodeType() {
+        return nodeType;
+    }
+
+    public void setNodeType(Integer nodeType) {
+        this.nodeType = nodeType;
+    }
 }

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -82,4 +82,10 @@ public interface ArchiveTreeContractClient {
     @PostMapping(API_PREFIX+"/adsArchiveTreeContract")
     public void addArchiveTreeContract(@RequestBody List<ArchiveTreeContract> archiveTreeContracts,@RequestParam Long rootId);
 
+
+    @PostMapping(API_PREFIX + "/getNodeIdByName")
+    Long getNodeIdByName(@RequestParam("projectName") String projectName,
+                         @RequestParam("contractName") String contractName,
+                         @RequestParam("nodeName") String nodeName);
+
 }

+ 37 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/external/impl/ExternalDataArchiveBuildService.java

@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.archive.external.bean.ExternalDataInfo;
 import org.springblade.archive.external.utils.TransUtil;
 import org.springblade.archive.trans.ArchiveReq;
+import org.springblade.manager.feign.ArchiveTreeContractClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -18,8 +19,11 @@ public class ExternalDataArchiveBuildService {
     @Autowired
     private  ExternalDataArchiveTreeService externalTreeService;
 
+
     private ExternalDataArchiveMetaService externalMetaService;
 
+    private final ArchiveTreeContractClient archiveTreeContractClient;
+
 
     /**
      *
@@ -31,7 +35,39 @@ public class ExternalDataArchiveBuildService {
             throw new IllegalArgumentException("请求参数不能为空");
         }
 
-        ExternalDataInfo externalDataInfo = externalTreeService.getDataByIds(req.getNodeId(),req.getRemoteId());
+        // 当 transType 为 1 时,使用新方式获取 remoteId, 并且在传输开始时设置
+        if (req.getTransType() != null && req.getTransType() == 1 && req.getType()== 0) {
+            // 获取节点ID
+            Long remoteIdLong = archiveTreeContractClient.getNodeIdByName(
+                    req.getProjectName(),
+                    req.getContractName(),
+                    req.getNodeName()
+            );
+
+            if (remoteIdLong == null) {
+                throw new RuntimeException("无法找到匹配的节点: " +
+                        req.getProjectName() + "/" +
+                        req.getContractName() + "/" +
+                        req.getNodeName());
+            }
+
+            // 将 Long 转换为 String
+            req.setRemoteId(String.valueOf(remoteIdLong));
+        }
+
+        // 调用获取数据的方法
+        ExternalDataInfo externalDataInfo = externalTreeService.getDataByIds(
+                req.getNodeId(),
+                req.getRemoteId(),
+                req.getProjectName(),
+                req.getContractName(),
+                req.getNodeName(),
+                req.getTransType()
+        );
+
+        if (externalDataInfo == null) {
+            return;
+        }
 
         switch (req.getType()) {
             case 0:

+ 21 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/external/impl/ExternalDataArchiveTreeService.java

@@ -26,7 +26,27 @@ public class ExternalDataArchiveTreeService {
     private ArchivesAutoMapper autoMapper;
     private final MetadataClassificationClient metadataClassificationClient;
 
-    public  ExternalDataInfo getDataByIds(String nodeId, String remoteId){
+    public ExternalDataInfo getDataByIds(String nodeId, String remoteId,
+                                         String projectName, String contractName,
+                                         String nodeName, Integer transType) {
+
+        // 当 transType 为 1 时,重新获取 remoteId
+        if (transType != null && transType == 1) {
+            // 获取节点ID
+            Long remoteIdLong = archiveTreeContractClient.getNodeIdByName(
+                    projectName,
+                    contractName,
+                    nodeName
+            );
+
+            if (remoteIdLong == null) {
+                throw new RuntimeException("无法找到匹配的节点: " +
+                        projectName + "/" + contractName + "/" + nodeName);
+            }
+
+            // 将 Long 转换为 String
+            remoteId = String.valueOf(remoteIdLong);
+        }
         ExternalDataInfo externalDataInfo = TransUtil.getDataByIds(nodeId, remoteId);
 
         if (externalDataInfo.getParent() == null) {

+ 1 - 1
blade-service/blade-manager/pom.xml

@@ -240,7 +240,7 @@
                     <target>${java.version}</target>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <compilerArguments>
-                        <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar:${java.home}/lib/jsse.jar
+                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar;${java.home}/lib/jsse.jar
                         </bootclasspath>
                     </compilerArguments>
                 </configuration>

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -177,5 +177,12 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
         return archiveTreeContractMapper.getTopAutoTypeNodeByProjectID(projectId);
     }
 
+    @Override
+    public Long getNodeIdByName( String projectName,
+                         String contractName,
+                          String nodeName){
+        return  archiveTreeContractService.getNodeIdByName(projectName,contractName,nodeName);
+    }
+
 
 }

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

@@ -114,8 +114,8 @@ public class FormulaMileage implements FormulaStrategy {
                     e.setUpdate(1);
                     e.setFinished(Boolean.TRUE);
                 });
-                forG10(mileageList, tec);
             }
+            forG10(mileageList, tec);
 
         }
         cur.setFinished(Boolean.TRUE);

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

@@ -143,4 +143,6 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
     List<ArchiveTreeContractDTO> getArchiveTreeContractDto(List<JiLinQueryDto>dtos,Long projectId);
 
     void addArchiveTreeContract(List<ArchiveTreeContract> archiveTreeContracts, Long rootId);
+
+    Long getNodeIdByName(String projectName, String contractName, String nodeName);
 }

+ 32 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -52,6 +52,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -1789,5 +1790,36 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		this.saveOrUpdateBatch(changeArchiveList);
 	}
 
+	public Long getNodeIdByName(String projectName, String contractName, String nodeName) {
+		// 1. 获取合同ID
+		Long contractId = projectInfoService.getContractIdbyName(projectName, contractName);
+
+		// 2. 检查合同ID有效性
+		if (contractId == null) {
+			System.out.println("Contract not found with projectName: " + projectName + ", contractName: " + contractName);
+			return null;
+		}
+
+		// 3. 根据合同ID和节点名称查询节点
+		List<ArchiveTreeContract> nodes = baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getContractId, contractId)
+				.like(ArchiveTreeContract::getNodeName, nodeName)
+				.eq(ArchiveTreeContract::getIsDeleted, 0));
+
+		// 4. 处理查询结果
+		if (nodes == null || nodes.isEmpty()) {
+			System.out.println("No node found for contractId: " + contractId + ", nodeName: " + nodeName);
+			return null;
+		}
+
+		// 打印找到的节点数
+		System.out.println("Found " + nodes.size() + " nodes matching the criteria");
+
+		// 返回第一个匹配节点的ID
+		Long nodeId = nodes.get(0).getId();
+		System.out.println("Returning nodeId: " + nodeId);
+		return nodeId;
+	}
+
 
 }

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

@@ -2061,7 +2061,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         for (int i = 0; i < xle; i++) {
             CellRangeAddress mergedCell = sheet.getMergedRegion(i);
-            int xx = mergedCell.getNumberOfCells();
+            int xx = mergedCell.getLastColumn();
             if (xx >= all) {
                 all = xx;
             }
@@ -2069,7 +2069,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
         for (int i = 0; i < xle; i++) {
             CellRangeAddress mergedCell = sheet.getMergedRegion(i);
-            int xx = mergedCell.getNumberOfCells() + 2;
+            int xx = mergedCell.getLastColumn() + 2;
             if (xx >= all) {
                 int fisRow = mergedCell.getFirstRow();
                 int firsrCol = mergedCell.getFirstColumn();
@@ -2087,7 +2087,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 newStyle.cloneStyleFrom(cell.getCellStyle());
 
                 short fontHeightInPoints = redFont.getFontHeightInPoints();
-                if (fontHeightInPoints >= isWater && StringUtils.isEmpty(cell.getStringCellValue()) && fisRow <= 8) {
+                if (fontHeightInPoints >= isWater && StringUtils.isBlank(cell.getStringCellValue()) && fisRow <= 8) {
 
                     String title = projectInfo.getProjectName();
                     if (title.length() >= 30) {
@@ -3209,7 +3209,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         int mergedCellCnt = sheet.getNumMergedRegions();
         for (int i = 0; i < mergedCellCnt - 1; i++) {
             CellRangeAddress mergedCell = sheet.getMergedRegion(i);
-            int xx = mergedCell.getNumberOfCells();
+            int xx = mergedCell.getLastColumn();
             if (xx <= all) {
                 int fisRow = mergedCell.getFirstRow();
                 int firstCol = mergedCell.getFirstColumn();
@@ -4308,7 +4308,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 int i = 0;
                 i < mergedCellCnt - 1; i++) {
             CellRangeAddress mergedCell = sheet.getMergedRegion(i);
-            int xx = mergedCell.getNumberOfCells();
+            int xx = mergedCell.getLastColumn();
             if (xx <= all) {
                 int fisRow = mergedCell.getFirstRow();
                 int firstCol = mergedCell.getFirstColumn();

+ 24 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ServicePlanServiceImpl.java

@@ -643,6 +643,30 @@ public class ServicePlanServiceImpl extends BaseServiceImpl<ServicePlanMapper, S
                 plan.setPlanEndTime(LocalDate.parse(endDate));
             }
         }
+        if(dataInfo.containsKey("key_42__3_4")){
+            Object o = dataInfo.get("key_42__3_4");
+            String startDate = null;
+            String endDate = null;
+            if (o instanceof List<?>) {
+                List<?> list = (List<?>) o;
+                if (list.size() >= 2 && list.get(0) instanceof String && list.get(1) instanceof String) {
+                    startDate = formatDate((String) list.get(0));
+                    endDate = formatDate((String) list.get(1));
+                }
+            } else if (o != null && o.getClass().isArray()) {
+                Object[] array = (Object[]) o;
+                if (array.length >= 2 && array[0] instanceof String && array[1] instanceof String) {
+                    startDate = formatDate((String) array[0]);
+                    endDate = formatDate((String) array[1]);
+                }
+            }
+            if (startDate != null) {
+                plan.setPlanStartTime(LocalDate.parse(startDate));
+            }
+            if (endDate != null) {
+                plan.setPlanEndTime(LocalDate.parse(endDate));
+            }
+        }
         if(groupId1 != null){
             plan.setId(groupId1);
             ServicePlan plan1 = this.getById(plan.getId());