Forráskód Böngészése

同步项目底层节点表单顺序功能修改--需要同步更新前端

LHB 3 hónapja
szülő
commit
33adf7baa2

+ 5 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -293,8 +293,11 @@ public class WbsTreeContractController extends BladeController {
     @GetMapping("/syncContractTabSort")
     @ApiOperationSupport(order = 10)
     @ApiOperation(value = "同步项目到合同段所有表单排序", notes = "传入projectId")
-    public R<Object> syncContractTabSort(@RequestParam String projectId) {
-        return R.status(iWbsTreeContractService.syncContractTabSort(projectId));
+    public R<Object> syncContractTabSort(@RequestParam String projectId,@RequestParam Long pKeyId) {
+        if(pKeyId == null){
+            return R.fail("未指定节点");
+        }
+        return R.status(iWbsTreeContractService.syncContractTabSort(projectId,pKeyId));
     }
 
 

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

@@ -134,4 +134,11 @@ public interface WbsTreeContractMapper extends EasyBaseMapper<WbsTreeContract> {
     List<WbsTreeContract> getNodeTyp6(@Param("pKeyId") Long pkeyId);
 
     EKeyDto getEKey(@Param("contractId") String contractId, @Param("pKeyId") Long pKeyId, @Param("wbsId") String wbsId);
+
+    /**
+     * 同步项目排序到合同段
+     * @param pKeyId
+     */
+    void updateSortNotIsUseSort(@Param("projectId") Long projectId,
+                                @Param("pKeyId") Long pKeyId);
 }

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -790,6 +790,16 @@
             where p_key_id = #{item.pKeyId}
         </foreach>
     </update>
+    <update id="updateSortNotIsUseSort">
+        UPDATE m_wbs_tree_contract a
+            INNER JOIN ( SELECT * FROM m_wbs_tree_private WHERE p_id = #{pKeyId} AND is_deleted = 0 ) b ON a.is_type_private_pid = b.p_key_id
+            SET a.sort = b.sort
+        WHERE
+            a.project_id = #{projectId}
+          AND a.is_use_sort IS NULL
+           OR a.is_use_sort != 1
+          AND a.is_deleted = 0
+    </update>
 
     <select id="selectQueryValueLikeNodeName" resultMap="ResultMap">
         select *

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -65,7 +65,7 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     List<WbsTreeContractLazyVO> imageLazyQueryContractWbsTree(String parentId, String contractId, String contractIdRelation, String classId);
 
-    boolean syncContractTabSort(String projectId);
+    boolean syncContractTabSort(String projectId,Long pKeyId);
 
     List<AppWbsTreeContractVO> searchNodeAllTableAndFile(String primaryKeyId, String type, String contractId, String projectId,Integer classify);
 

+ 7 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -1104,23 +1104,14 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     }
 
     @Override
-    public boolean syncContractTabSort(String projectId) {
-        if (ObjectUtil.isNotEmpty(projectId)) {
-            List<WbsTreePrivate> tabs = jdbcTemplate.query("select id,p_key_id,sort from m_wbs_tree_private where is_deleted = 0 and sort is not null and wbs_type = 1 and project_id = " + projectId, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
-            List<ContractInfo> contractInfos = jdbcTemplate.query("select id from m_contract_info where is_deleted = 0 and contract_type = 1 and p_id = " + projectId, new BeanPropertyRowMapper<>(ContractInfo.class));
-            for (ContractInfo contractInfo : contractInfos) {
-                for (List<WbsTreePrivate> wbsTreePrivates : Lists.partition(tabs, 1000)) {
-                    try {
-                        this.batchUpdateData(wbsTreePrivates, contractInfo.getId());
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        throw new ServiceException("保存数据异常,请联系管理员");
-                    }
-                }
-            }
-            return true;
+    public boolean syncContractTabSort(String projectId,Long pKeyId) {
+        //1、获取指定项目指定节点下的表单信息
+        Long count = wbsTreePrivateMapper.selectCount(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPId, pKeyId).eq(WbsTreePrivate::getType, 1));
+        if(count > 0){
+            throw new RuntimeException("请选择底层节点");
         }
-        return false;
+        baseMapper.updateSortNotIsUseSort(Long.valueOf(projectId),pKeyId);
+        return true;
     }
 
     @Override