Jelajahi Sumber

Merge remote-tracking branch 'origin/master' into master

yangyj 1 tahun lalu
induk
melakukan
1e84db7946

+ 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;
+
 
 }

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

@@ -1141,7 +1141,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     informationQueryService.delAsyncWbsTree(queryinfo.getContractId().toString());
                 }
 
-                //修改试验业务状态
+                //修改试验业务状态(已审批的情况下修改)
                 if (new Integer(2).equals(queryinfo.getType()) && ObjectUtil.isNotEmpty(queryinfo.getWbsId()) && status != 3) {
                     jdbcTemplate.execute("update u_trial_self_inspection_record set task_status = '已审批' where id = " + queryinfo.getWbsId());
                 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveAutoRuleWbsMapper.xml

@@ -14,6 +14,7 @@
         <result column="archive_auto_type" property="archiveAutoType"/>
         <result column="archive_auto_group_id" property="archiveAutoGroupId"/>
         <result column="project_id" property="projectId"/>
+        <result column="contract_id" property="projectId"/>
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 

+ 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;
+		}
+	}
+
 
 }

+ 19 - 17
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -525,23 +525,25 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         Map<Long, WbsTreePrivate> maps = wbsTreePrivatesAllNow.stream().filter(f -> Objects.nonNull(f.getId())).collect(Collectors.toMap(WbsTreePrivate::getId, wbsTreePrivate -> wbsTreePrivate, (obj1, obj2) -> obj1));
 
         for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
-            WbsTreePrivate treePrivateNow = maps.get(wbsTreePrivate.getId());
-            //判断相同节点基础信息、元素表类型、元素表所属方是否发生改变
-            if (treePrivateNow != null && this.fieldsNotEqualPrivateWbs(wbsTreePrivate, treePrivateNow)) {
-                //修改项目wbs信息
-                WbsTreePrivate wbsPrivate = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
-                if (wbsPrivate != null) {
-                    wbsPrivate.setWbsId(wbsId);
-                    wbsPrivate.setProjectId(projectId);
-                    listPrivate.add(wbsPrivate);
-                }
-                for (Long id : contractInfosIds) {
-                    //修改合同段wbs信息
-                    WbsTreeContract wbsContract = BeanUtil.copyProperties(wbsTreePrivate, WbsTreeContract.class);
-                    if (wbsContract != null) {
-                        wbsContract.setContractId(id.toString());
-                        wbsContract.setProjectId(projectId);
-                        listContract.add(wbsContract);
+            if (ObjectUtil.isNotEmpty(wbsTreePrivate)) {
+                WbsTreePrivate treePrivateNow = maps.getOrDefault(wbsTreePrivate.getId(), null);
+                //判断相同节点基础信息、元素表类型、元素表所属方是否发生改变
+                if (treePrivateNow != null && this.fieldsNotEqualPrivateWbs(wbsTreePrivate, treePrivateNow)) {
+                    //修改项目wbs信息
+                    WbsTreePrivate wbsPrivate = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
+                    if (wbsPrivate != null) {
+                        wbsPrivate.setWbsId(wbsId);
+                        wbsPrivate.setProjectId(projectId);
+                        listPrivate.add(wbsPrivate);
+                    }
+                    for (Long id : contractInfosIds) {
+                        //修改合同段wbs信息
+                        WbsTreeContract wbsContract = BeanUtil.copyProperties(wbsTreePrivate, WbsTreeContract.class);
+                        if (wbsContract != null) {
+                            wbsContract.setContractId(id.toString());
+                            wbsContract.setProjectId(projectId);
+                            listContract.add(wbsContract);
+                        }
                     }
                 }
             }