소스 검색

项目分配WBS时,同步表单默认信息(并未调用)

qianxb 1 년 전
부모
커밋
4b4d583925

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

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

@@ -1737,6 +1737,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));