ソースを参照

Merge branch 'lk20230619'

luok 2 年 前
コミット
7170dcf9cd

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

@@ -333,6 +333,7 @@ public class ArchiveTreeContractController extends BladeController {
             return R.fail(200, "节点错误");
         }
         boolean b = archiveTreeContractService.syncProjectTree(archiveTree);
+        //
         if (b) {
             return R.success("同步成功");
         }

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -96,4 +96,9 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
     ArchiveTreeContract getFirstNodeByTreeCode(@Param("projectId") Long projectId);
 
     ArchiveTreeContract getFirstNodeByTreeCode2(@Param("projectId") Long projectId,@Param("type") String type);
+
+    List<ArchiveTreeContract> getSelectRuleNode(@Param("projectId")Long projectId);
+
+    Integer getCountfromIdIsNull(@Param("id") Long id);
+
 }

+ 11 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -450,4 +450,15 @@
         WHERE parent_id = (select id from m_archive_tree_contract WHERE parent_id = 0 and project_id = #{projectId})
           and is_deleted = 0 and tree_code = #{type}
     </select>
+
+    <select id="getSelectRuleNode" resultType="org.springblade.manager.entity.ArchiveTreeContract">
+        select * from m_archive_tree_contract
+        WHERE project_id = #{projectId}) and is_deleted = 0 and archive_auto_group_select = 1
+    </select>
+
+    <select id="getCountfromIdIsNull" resultType="java.lang.Integer">
+        select count(*) from m_archive_tree_contract
+        WHERE project_id = #{projectId}) and is_deleted = 0 and from_id is null and like concat('%',#{id},'%')
+    </select>
+
 </mapper>

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

@@ -88,6 +88,13 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
     boolean syncProjectTree(ArchiveTreeContract dstNode);
 
+    /**
+     * 更新在客户级新加的节点的组卷规则 这些节点没有对应的项目级节点
+     * @param projectId
+     * @return
+     */
+    void syncArchiveTreeContractForAddNodeRule(Long projectId);
+
     boolean UpdateByArchiveTree(ArchiveTree archiveTree);
 
     boolean deleteTree(Long id);

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

@@ -471,6 +471,28 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return true;
 	}
 
+	/**
+	 * 更新在客户级新加的节点的组卷规则 这些节点没有对应的项目级节点
+	 * @param projectId
+	 * @return
+	 */
+	@Override
+	public void syncArchiveTreeContractForAddNodeRule(Long projectId) {
+
+		//找出客户级select=1的节点,把规则覆盖到下级所有节点,
+		List<ArchiveTreeContract> selectRuleNode = archiveTreeContractMapper.getSelectRuleNode(projectId);
+		for(ArchiveTreeContract treeContract:selectRuleNode){
+			//查看下面节点是否有新加的节点
+			Integer countfromIdIsNull = archiveTreeContractMapper.getCountfromIdIsNull(treeContract.getId());
+			if(countfromIdIsNull>0){
+				// 下级节点存在有对应项目级节点的(formId不为空)默认规则不能覆盖 单独和分类;
+
+				// 下级节点formId为空的,默认规则可以覆盖 单独和分类,但是先执行顺序是 默认规则同步必须先执行。
+			}
+		}
+
+	}
+
 	/**
 	 * 新增合同段时,要复制一份合同段的分支出来
 	 * @param contractInfos