瀏覽代碼

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

yangyj 1 年之前
父節點
當前提交
e410b1485e

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.TableInfo;
+import org.springblade.manager.entity.TextdictInfo;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.injector.EasyBaseMapper;
@@ -98,4 +99,6 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     void syncCurrentFormInProject(@Param("wbsTreePrivate") WbsTreePrivate wbsTreePrivate);
 
     Set<Long> getAllPrivateTableByIds(@Param("projectId") Long projectId,@Param("ids") List<Long> ids);
+
+    List<TextdictInfo> getALLTableConfig(@Param("ids") Set<Long> ids);
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -792,6 +792,12 @@
             #{id}
         </foreach>
     </select>
+    <select id="getALLTableConfig" resultType="org.springblade.manager.entity.TextdictInfo">
+        select * from m_textdict_info where is_deleted = 0 and tab_id in
+        <foreach collection="ids" item="id"  open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 
     <delete id="delTabProjectById">
         delete

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

@@ -86,6 +86,8 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     //批量重新保存文件htmlUrl
     void batchResetHtmlUrl(List<WbsTreePrivate> wbsTreePrivateList) throws IOException, InterruptedException;
 
+    void batchSynTableConfig(Map<Long,Long> mapList);
+
     List<WbsTreePrivateVO> getMixRatioTestTree(String pKeyId);
 
     Map<String, List<Object>> treeRecordTrial(String wbsId, String projectId, String pKeyId);

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

@@ -615,7 +615,13 @@ public class ArchiveTreeContractSyncImpl {
             if (current == null) {
                 return null; // 如果没有找到对应的节点,则返回 null
             }
-            if (current.getNodeType() <= nodeType && !current.getNodeName().contains("中间交工")) {
+            if (current.getNodeType() <= nodeType &&
+                    ! (current.getNodeName().contains("中间交工")
+                            || current.getNodeName().contains("质量评定")
+                            || current.getNodeName().contains("开工报告")
+                            || current.getNodeName().contains("质量检验评定")
+                            || current.getNodeName().contains("质量验收评定"))
+                          ) {
                 return current.getPKeyId(); // 如果找到了符合要求的节点,则返回其 pKeyId 属性值
             }
             id = current.getParentId(); // 取出当前节点的父节点 ID,准备进行下一轮循环操作

+ 30 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1761,6 +1761,36 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         }
     }
 
+    /**
+     * 批量同步表单配置信息
+     * @param map
+     */
+    @Async
+    @Override
+    public void batchSynTableConfig(Map<Long,Long> map) {
+        System.out.println("异步同步表单配置:map大小:"+map.size());
+        //获取所有表单配置
+        List<TextdictInfo> list = baseMapper.getALLTableConfig(map.keySet());
+        if (list != null && list.size() > 0){
+            System.out.println("异步同步表单配置:配置总条数:"+list.size());
+            //id设置为null,替换调tableId
+            for (TextdictInfo info : list) {
+                info.setId(null);
+                info.setTabId(map.get(Long.parseLong(info.getTabId()))+"");
+            }
+            //批量保存
+            if (list.size() > 1000) {
+                List<List<TextdictInfo>> splitList = CommonUtil.splitList(list, 800);
+                for (List<TextdictInfo> infos : splitList) {
+                    textDictInfoService.saveBatch(infos);
+                }
+            } else if (list.size() > 0) {
+                textDictInfoService.saveBatch(list);
+            }
+        }
+
+    }
+
     @Override
     public List<WbsTreePrivateVO> getMixRatioTestTree(String pKeyId) {
         WbsTreePrivate wbsTreePrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, pKeyId));