瀏覽代碼

fix(菜单资源同步bug修改): 菜单资源同步bug修改

1.菜单资源同步bug修改
2.审批工作流kafka日志打印
3.菜单资源同步json改为dto对象
mazq 4 年之前
父節點
當前提交
ab60efe122

+ 1 - 1
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/AppInfoAcceptDTO.java

@@ -40,7 +40,7 @@ public class AppInfoAcceptDTO {
      */
     private String yyxtcjdwdm;
     /**
-     * 应用系统承建单位名称
+     * 应用系统运维单位名称
      */
     private String yyxtywdwmc;
     /**

+ 2 - 3
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/AppResourceAcceptDTO.java

@@ -1,7 +1,6 @@
 package com.dragoninfo.dcuc.app.dto;
 
 
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -19,12 +18,12 @@ public class AppResourceAcceptDTO {
      * 推送过来的应用实体类Vo
      */
     @ApiModelProperty(value = "推送应用资源vo")
-    private AppInfoAcceptDTO tAppSystem;
+    private AppInfoAcceptDTO tappSystem;
     /**
      * 推送过来的应用对应的菜单实体类Vo
      */
     @ApiModelProperty(value = "推送菜单资源vo")
-    private List<MenuResourceAcceptDTO> tAppFunctionList;
+    private List<MenuResourceAcceptDTO> tappFunctionList;
 
 
 }

+ 40 - 23
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java

@@ -17,6 +17,7 @@ import com.dragoninfo.dcuc.common.http.HttpUtil;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import org.apache.http.Header;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.message.BasicHeader;
@@ -24,6 +25,7 @@ import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.server.PathContainer;
 import org.springframework.stereotype.Component;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
@@ -83,7 +85,7 @@ public class ResourceBusiness implements IResourceBusiness {
         ResourceTypeEnum appEnum = ResourceTypeEnum.TJ_APP;
         ResourceSyncDTO syncDTO = new ResourceSyncDTO(appEnum.getResourceId()
                 , appEnum.getResourceType(), appEnum.getResouProvider());
-        AppInfoAcceptDTO appAcceptDTO = acceptDTO.getTAppSystem();
+        AppInfoAcceptDTO appAcceptDTO = acceptDTO.getTappSystem();
         syncDTO.setAppCode(appAcceptDTO.getYyxtbh());
         syncDTO.setAppName(appAcceptDTO.getYyxtmc());
         syncDTO.setExtId(appAcceptDTO.getId());
@@ -105,7 +107,7 @@ public class ResourceBusiness implements IResourceBusiness {
      * @return
      */
     private AppResourceDTO convertToAppDTO(AppResourceAcceptDTO acceptDTO) {
-        AppInfoAcceptDTO appResourceDTO = acceptDTO.getTAppSystem();
+        AppInfoAcceptDTO appResourceDTO = acceptDTO.getTappSystem();
         AppResourceDTO dto = new AppResourceDTO();
         dto.setAppCode(appResourceDTO.getYyxtbh());
         dto.setAppName(appResourceDTO.getYyxtmc());
@@ -126,7 +128,7 @@ public class ResourceBusiness implements IResourceBusiness {
         dto.setApplyCategory(appResourceDTO.getYyxtfldm());
         dto.setPoliceSpecies(appResourceDTO.getGajzfldm());
         //设置菜单资源
-        List<MenuResourceAcceptDTO> tAppFunctionList = acceptDTO.getTAppFunctionList();
+        List<MenuResourceAcceptDTO> tAppFunctionList = acceptDTO.getTappFunctionList();
         List<MenuResourceDTO> menusDTOs = new ArrayList<>();
         for (MenuResourceAcceptDTO mADTO : tAppFunctionList) {
             MenuResourceDTO menuDTO = new MenuResourceDTO();
@@ -195,7 +197,7 @@ public class ResourceBusiness implements IResourceBusiness {
                     //暂时手动输入currentPage
                     //没有就从第一页开始获获取
                     if (null == currentPageNo) {
-                        currentPageNo = 0;
+                        currentPageNo = 1;
                     }
                     ResourceRequestResultDTO listingInfo = getAllResourceListing(currentPageNo, pageSize, resourceEnum);
                     pageInfos.add(listingInfo);
@@ -291,25 +293,27 @@ public class ResourceBusiness implements IResourceBusiness {
 
         @Override
         public void run() {
+            logger.info("get menu resource start");
             ArrayList<ResourceSyncDTO> list = new ArrayList<>();
             try {
                 for (String appId : appIds) {
                     String menuStr = getAppMenuFromRemote(appId);
-                    JSONObject menuJSON = JSON.parseObject(menuStr);
-                    JSONObject appInfo = menuJSON.getJSONObject("tAppSystem");
+                    AppResourceAcceptDTO resourceAcceptDTO = JSON.parseObject(menuStr, AppResourceAcceptDTO.class);
+                    AppInfoAcceptDTO appInfo = resourceAcceptDTO.getTappSystem();
                     ResourceSyncDTO dto = new ResourceSyncDTO();
                     dto.setResourceId(ResourceTypeEnum.TJ_APP_MENU.getResourceId());
                     dto.setResourceType(ResourceTypeEnum.TJ_APP_MENU.getResourceType());
                     dto.setResourceProvider(ResourceTypeEnum.TJ_APP_MENU.getResouProvider());
                     dto.setSync(BooleanEnum.FALSE.getValue());
                     dto.setExtId(appId);
-                    dto.setAppCode(appInfo.getString("yyxtbh"));
-                    dto.setAppName(appInfo.getString("yyxtmc"));
-                    dto.setContent(menuJSON.getJSONArray("tAppFunctionList").toJSONString());
+                    dto.setAppCode(appInfo.getYyxtbh());
+                    dto.setAppName(appInfo.getYyxtmc());
+                    dto.setContent(JSON.toJSONString(resourceAcceptDTO.getTappFunctionList()));
                     list.add(dto);
                 }
                 syncService.batchInsertResourceSync(list);
-            }catch (Exception e){
+            } catch (Exception e){
+                logger.info("get MenuResource wrong in appIds:{}",JSON.toJSONString(appIds));
                 logger.error("get MenuResource exception.",e);
             }
         }
@@ -319,7 +323,7 @@ public class ResourceBusiness implements IResourceBusiness {
             String busServiceId = resourceConfig.getMenuResource().getBusServiceId();
             String busServiceFunc = resourceConfig.getMenuResource().getBusServiceFunc();
             List<Header> heards = getHeaders(busSraId,busServiceId,busServiceFunc);
-            String url = resourceConfig.getResourceUrl() + appId;
+            String url = resourceConfig.getResourceUrl()+ "/" + appId;
             CloseableHttpResponse response = HttpUtil.get(url,null,heards);
             return  EntityUtils.toString(response.getEntity());
         }
@@ -341,7 +345,7 @@ public class ResourceBusiness implements IResourceBusiness {
             resultMap.put("pageNo", pageNo);
             resultMap.put("pageSize", pageSize);
             resultMap.put("resourceId", resouceId);
-            return Result.fail("400", "get remote resource error", resultMap);
+            return Result.fail(ResponseStatus.FAIL_CODE, "get remote resource error", resultMap);
         }
         if (!ResponseStatus.SUCCESS_CODE.equals(resultFromRemote.getCode())) {
             logger.info("get remote resource error from pageNo:{},pageSize:{},resourceId:{}", pageNo, pageSize, resouceId);
@@ -349,14 +353,17 @@ public class ResourceBusiness implements IResourceBusiness {
             resultMap.put("pageNo", pageNo);
             resultMap.put("pageSize", pageSize);
             resultMap.put("resourceId", resouceId);
-            return Result.fail("400", "get remote resource failed", resultMap);
+            return Result.fail(ResponseStatus.FAIL_CODE, "get remote resource failed", resultMap);
         }
         JSONArray records = resultFromRemote.getRecords();
         //插入资源数据同步表
-        List<ResourceSyncDTO> dtos = insertRemoteResourceSync(resourceEnum, records);
-        if(resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)){
-            List<String> ids = dtos.stream().map(item -> item.getExtId()).collect(Collectors.toList());
-            if(CollectionUtils.isNotEmpty(ids)){
+        if(CollectionUtils.isNotEmpty(records)){
+            List<ResourceSyncDTO> dtos = insertRemoteResourceSync(resourceEnum, records);
+            if(resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)){
+                List<String> ids = dtos.stream()
+                        .filter(item-> StringUtils.isNotBlank(item.getExtId()))
+                        .map(item -> item.getExtId())
+                        .collect(Collectors.toList());
                 getAppMenus(ids);
             }
         }
@@ -376,18 +383,24 @@ public class ResourceBusiness implements IResourceBusiness {
      * @return
      */
     private HttpResult getResourceFromRemote(ResourceTypeEnum resourceTypeEnum, Integer pageNo, Integer pageSize) throws IOException {
-        HttpResult httpResult = new HttpResult();
+        HttpResult httpResult;
         String url = resourceConfig.getResourceUrl();
         //获取应用资源
         if(ResourceTypeEnum.TJ_APP.equals(resourceTypeEnum)){
-            getAppResource(pageNo, pageSize, httpResult, url);
+            httpResult = getAppResource(pageNo, pageSize, url);
         }else if(ResourceTypeEnum.TJ_SERVICE.equals(resourceTypeEnum)){
-            getServiceResource(pageNo, httpResult, url);
+            httpResult = getServiceResource(pageNo, pageSize, url);
+        }else {
+            httpResult = new HttpResult();
+            httpResult.setCode(ResponseStatus.SUCCESS_CODE);
+            httpResult.setPages(pageNo);
+            httpResult.setTotals(0);
         }
         return httpResult;
     }
 
-    private void getServiceResource(Integer pageNo, HttpResult httpResult, String url) {
+    private HttpResult getServiceResource(Integer pageNo, Integer pageSize,String url) {
+        HttpResult httpResult = new HttpResult();
         Map<String, Object> map = new HashMap<>();
         map.put("page",String.valueOf(pageNo));
         String param = JSON.toJSONString(map);
@@ -408,11 +421,14 @@ public class ResourceBusiness implements IResourceBusiness {
             httpResult.setPages(data.getInteger("totalPages"));
             httpResult.setTotals(data.getInteger("totalElements"));
         }
+        return httpResult;
     }
 
-    private void getAppResource(Integer pageNo, Integer pageSize, HttpResult httpResult, String url) {
+    private HttpResult getAppResource(Integer pageNo, Integer pageSize, String url) {
+        HttpResult httpResult = new HttpResult();
         Map<String, Object> map = new HashMap<>();
-        map.put("page",pageNo);
+        //应用目录从0页开始查
+        map.put("page",pageNo-1);
         map.put("size",pageSize);
         String param = JSON.toJSONString(map);
         String busSraId = resourceConfig.getAppResource().getBusSraId();
@@ -429,6 +445,7 @@ public class ResourceBusiness implements IResourceBusiness {
             httpResult.setTotals(parse.getInteger("total"));
             httpResult.setRecords(parse.getJSONArray("content"));
         }
+        return httpResult;
     }
 
     private List<Header> getHeaders(String busSraId,String busServiceId,String busServiceFunc) {

+ 17 - 8
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/impl/ResourceServiceImpl.java

@@ -3,7 +3,6 @@ package com.dragoninfo.dcuc.app.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragoninfo.dcuc.app.config.DcucResourceConfig;
@@ -26,6 +25,8 @@ import com.dragonsoft.duceap.core.entity.page.PageRequest;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.mybaitsplus.core.services.BaseMybatisService;
 import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -46,6 +47,8 @@ import java.util.stream.Collectors;
 @Service
 public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,String> implements IResourceService {
 
+    private static final Logger logger = LoggerFactory.getLogger(ResourceServiceImpl.class);
+
     private final ServiceResourceMapper serviceResourceMapper;
 
     @Autowired
@@ -170,8 +173,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         if(CollectionUtils.isEmpty(list)){
             return new HashMap<>();
         }
+        logger.info("get OrgIds by OrgCodes>> orgCodeList:{}",JSON.toJSONString(list));
         List<OrgInfo> orgInfos = orgInfoFacade.getOrgsByCodes(list);
-        return orgInfos.stream().collect(Collectors.toMap(OrgInfo::getCode, OrgInfo::getId));
+        Map<String, String> collect = orgInfos.stream().collect(Collectors.toMap(OrgInfo::getCode, OrgInfo::getId));
+        logger.info("get OrgIds by OrgCodes>> orgIdsList:{}",collect.values());
+        return collect;
     }
 
     @Override
@@ -214,7 +220,7 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
      * @param menus MenuResourceDTO 菜单DTOs
      */
     private void batchInsertMenu(List<MenuResourceDTO> menus) {
-        if(CollectionUtils.isNotEmpty(menus)){
+        if(CollectionUtils.isEmpty(menus)){
             return;
         }
         List<String> appCodes = menus.stream().map(MenuResourceDTO::getAppCode).collect(Collectors.toList());
@@ -263,13 +269,14 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         String content = resourceSync.getContent();
         JSONArray array = JSON.parseArray(content);
         for (int i = 0; i < array.size(); i++) {
-            JSONObject ctj = array.getJSONObject(i);
+            String menuStr = array.getJSONObject(i).toJSONString();
             MenuResourceDTO dto = new MenuResourceDTO();
+            MenuResourceAcceptDTO acceptDTO = JSON.parseObject(menuStr, MenuResourceAcceptDTO.class);
+            dto.setFunCode(acceptDTO.getGnbh());
+            dto.setPFunCode(acceptDTO.getSjgnbh());
+            dto.setFunName(acceptDTO.getGnmc());
+            dto.setStatus(acceptDTO.getZyzt());
             dto.setAppCode(resourceSync.getAppCode());
-            dto.setFunCode(ctj.getString("gnbh"));
-            dto.setPFunCode(ctj.getString("sjgnbh"));
-            dto.setFunName(ctj.getString("gnmc"));
-            dto.setStatus(ctj.getString("zyzt"));
             list.add(dto);
         }
         return list;
@@ -350,10 +357,12 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
      */
     private <T extends ResourceDTO> T setOrgIdAndManId(T dto) {
         String buildUnitCode = dto.getBuildUnitCode();
+        logger.info("get OrgInfo by OrgCode>>orgCode:{}",buildUnitCode);
         if (!StringUtils.isEmpty(buildUnitCode) && StringUtils.isEmpty(dto.getBuildUnitId())) {
             OrgInfo orgInfo = orgInfoFacade.getOrgInfoByCode(buildUnitCode);
             if (null != orgInfo) {
                 dto.setBuildUnitId(orgInfo.getId());
+                logger.info("get OrgInfo by OrgCode>>orgCode:{}",orgInfo.getId());
             }
         }
         return dto;

+ 1 - 1
dcuc-app-service/src/main/resources/application-app.yml

@@ -24,5 +24,5 @@ dcuc:
         bus-sra-id: B0100000001
         bus-service-id: S-120000000000-0700-00006
         bus-service-func: findApp
-        menu-enbaled: true
+        menu-enabled: true
       resource-url: http://10.201.7.31:8585/bus/send