فهرست منبع

原生电子文件

huangtf 1 سال پیش
والد
کامیت
8326c52a05

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveAutoRuleWbs.java

@@ -58,5 +58,10 @@ public class ArchiveAutoRuleWbs extends BaseEntity {
      */
     private Long projectId;
 
+    /**
+     * 合同段id 系统级的为0
+     */
+    private Long contractId;
+
 
 }

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

@@ -190,7 +190,8 @@ public class ArchiveAutoRuleSyncImpl {
             //archiveAutoGroupSelect  与系统级一致 不用处理
             //archiveAutoGroupId 与系统级一致 不用处理
 
-            //TODO 挂载WBS节点的系统级规则同步  用当前项目级的wbs节点-》找出对应系统级WBS节点-》找出m_archive_auto_rule_wbs里系统级的规则-》最后在m_archive_auto_rule_wbs添加对应的项目级规则
+            //TODO 挂载WBS节点的系统级规则同步  用当前项目级的wbs节点-》找出对应系统级WBS节点-》找出m_archive_auto_rule_wbs里系统级的规则-》
+            // 最后在m_archive_auto_rule_wbs添加对应的项目级规则
             //TODO 挂载WBS节点是否在vo2Map.values()中待验证
         }
     }

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

@@ -1203,5 +1203,54 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return periodNode;
 	}
 
+	/**
+	 * 刷新配置节点的组卷给则
+	 * @param archiveTreeContracts
+	 */
+	private void  updateArchiveContractAutoRule(List<ArchiveTreeContract> archiveTreeContracts) {
+		for (ArchiveTreeContract ar: archiveTreeContracts) {
+			updateArchiveContractAutoRule(ar.getArchiveAutoType(),ar);
+		}
+	}
+
+	/**
+	 *
+	 * @param archiveAutoType
+	 * @param ar
+	 * @return
+	 */
+	private Boolean updateArchiveContractAutoRule(Integer archiveAutoType, ArchiveTreeContract ar) {
+		try {
+
+			ar.setArchiveAutoType(archiveAutoType);
+			if(archiveAutoType==2){
+				//客户级的group用19位,在同步的时候方便判断是值是客户级还是项目级
+				double v = Math.random();
+				if (v < 0.1) {
+					v = v + 0.1;
+				}
+				v = v * 1000000;
+				long ran = (long) v;
+				Long contractGroupId = Long.parseLong(System.currentTimeMillis() + "" + ran);
+				ar.setArchiveAutoGroupId(contractGroupId);
+				ar.setArchiveAutoGroupSelect(1);
+			}
+			if (archiveAutoType == 1) {
+				//最高并卷规则 选择节点的ID
+				ar.setArchiveAutoNodeId(ar.getId());
+			}
+
+			boolean b = this.updateById(ar);
+			//更新下级节点为同一规则
+
+			this.updateAllSonNodeIdsForArchiveAutoRule(ar);
+
+			return true;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
 
 }