Kaynağa Gözat

合同段树缓存

Signed-off-by: liuyc <56808083@qq.com>
liuyc 1 yıl önce
ebeveyn
işleme
8d49a23a44

+ 4 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -181,4 +181,8 @@ public interface IUserClient {
     @GetMapping(API_PREFIX + "/deleteContractLocalCache")
     void deleteContractLocalCache(@RequestParam String contractId);
 
+    /*删除本地缓存*/
+    @GetMapping(API_PREFIX + "/clearContractLocalCacheAndRedisCache")
+    void clearContractLocalCacheAndRedisCache();
+
 }

+ 6 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -52,6 +52,7 @@ import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.cache.ParamCache;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -122,6 +123,8 @@ public class InformationWriteQueryController extends BladeController {
 
     private final FormulaClient formulaClient;
 
+    private final IUserClient iUserClient;
+
     @Autowired
     StringRedisTemplate RedisTemplate;
 
@@ -3238,8 +3241,9 @@ public class InformationWriteQueryController extends BladeController {
         List<WbsTreeContract> nowTabs = saveList.stream().filter(f -> new Integer(2).equals(f.getType())).collect(Collectors.toList());
         this.updateTextDictInfos(nowTabs, oldTabIds, vo.getProjectId());
 
-        //更新redis
-        informationQueryService.delAsyncWbsTree(treeContract.getContractId());
+        //更新缓存
+        /*informationQueryService.delAsyncWbsTree(treeContract.getContractId());*/
+        iUserClient.clearContractLocalCacheAndRedisCache();
 
         return booleanR;
     }

+ 11 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TreeContractFirstController.java

@@ -17,6 +17,7 @@ import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springblade.business.entity.TreeContractFirst;
@@ -46,6 +47,8 @@ public class TreeContractFirstController extends BladeController {
 
     private final ContractClient contractClient;
 
+    private final IUserClient iUserClient;
+
     /**
      * 获取合同段划分树中被标记为首件的节点
      *
@@ -174,7 +177,12 @@ public class TreeContractFirstController extends BladeController {
             List<String> result = JSONArray.parseArray(JSONObject.toJSONString(parentIds.toString().split(",")), String.class);
             //删掉为空的数据
             result.removeIf(StringUtils::isEmpty);
+
+            /*清理缓存*/
+            iUserClient.clearContractLocalCacheAndRedisCache();
+
             return R.data(result);
+
         } else {
             //删除自身
             this.treeContractFirstService.update(Wrappers.<TreeContractFirst>lambdaUpdate().set(TreeContractFirst::getIsDeleted, 1).eq(TreeContractFirst::getWbsNodeId, primaryKeyId));
@@ -214,6 +222,9 @@ public class TreeContractFirstController extends BladeController {
             //删掉为空的数据
             result.removeIf(StringUtils::isEmpty);
 
+            /*清理缓存*/
+            iUserClient.clearContractLocalCacheAndRedisCache();
+
             return R.data(result);
         }
     }

+ 4 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -134,7 +134,7 @@ public class UserClient implements IUserClient {
     public R<Boolean> saveUserDTO(UserDTO user) {
         try {
             service.submit2(user);
-        }catch (Exception e){
+        } catch (Exception e) {
             return R.data(false);
         }
         return R.data(true);
@@ -145,5 +145,8 @@ public class UserClient implements IUserClient {
         service.deleteContractLocalCache(contractId);
     }
 
+    public void clearContractLocalCacheAndRedisCache() {
+        service.clearContractLocalCacheAndRedisCache();
+    }
 
 }

+ 2 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java

@@ -231,4 +231,6 @@ public interface IUserService extends BaseService<User> {
 
     IPage<InformationQueryVO> informationWriteQueryPage(InformationQueryVO vo);
 
+    void clearContractLocalCacheAndRedisCache();
+
 }

+ 5 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -39,6 +39,7 @@ import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.*;
 import org.springblade.manager.dto.SaveUserInfoByProjectDTO;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.vo.WbsTreeContractLazyQueryInfoVO;
@@ -818,7 +819,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
                         contractIds.add(contractIdRelation);
                     } else {
                         //根节点时默认加载所有施工合同段的树
-                        contractIds = this.contractClient.getProcessContractByJLContractId(contractId);
+                        List<ContractRelationJlyz> query = jdbcTemplate.query("SELECT contract_id_sg FROM m_contract_relation_jlyz WHERE contract_id_jlyz = " + contractId, new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
+                        if (query.size() > 0) {
+                            contractIds = query.stream().map(ContractRelationJlyz::getContractIdSg).map(String::valueOf).collect(Collectors.toList());
+                        }
                     }
                     if (cn.hutool.core.util.ObjectUtil.isEmpty(contractIds) || contractIds.size() <= 0) {
                         return null;