Prechádzať zdrojové kódy

Merge branch 'develop' of http://192.168.0.144/dcuc-tjdsj/app-service into feature/v2.3.0-sub-obj

# Conflicts:
#	dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java
#	dcuc-app-service/src/main/resources/application-base.yml
#	dcuc-app-service/src/main/resources/config/mysql/V4_1_0005__alert_column.sql
#	dcuc-app-service/src/main/resources/config/sql/V4_1_0005__ALERT_COLUMN_init.sql
mazq 4 rokov pred
rodič
commit
aa39fa8114

+ 8 - 1
README.md

@@ -1,4 +1,11 @@
 # 应用服务组件
 # 应用服务组件
 ## 简介
 ## 简介
 1. 提供对应用、厂商的增删改查
 1. 提供对应用、厂商的增删改查
-2. 当厂商、应用状态发生变更时,会发送相应消息到消息中心
+2. 当厂商、应用状态发生变更时,会发送相应消息到消息中心
+## 更新日志
+### 2.1.0
+  - 新增同步应用资源目录、服务资源目录、数据资源目录
+### 2.1.1
+  - 合并数据域代码
+### 2.1.2
+  - 新增服务资源目录相关字段 

+ 2 - 2
dcuc-app-api/pom.xml

@@ -5,7 +5,7 @@
     <parent>
     <parent>
         <artifactId>dcuc-app</artifactId>
         <artifactId>dcuc-app</artifactId>
         <groupId>com.dragoninfo</groupId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.0.0-tjdsj-SNAPSHOT</version>
+        <version>2.1.2-tjdsj-SNAPSHOT</version>
     </parent>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
 
 
@@ -31,4 +31,4 @@
 
 
     </dependencies>
     </dependencies>
 
 
-</project>
+</project>

+ 2 - 2
dcuc-app-model/pom.xml

@@ -5,7 +5,7 @@
     <parent>
     <parent>
         <artifactId>dcuc-app</artifactId>
         <artifactId>dcuc-app</artifactId>
         <groupId>com.dragoninfo</groupId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.0.0-tjdsj-SNAPSHOT</version>
+        <version>2.1.2-tjdsj-SNAPSHOT</version>
     </parent>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
 
 
@@ -40,4 +40,4 @@
         </dependency>
         </dependency>
 
 
     </dependencies>
     </dependencies>
-</project>
+</project>

+ 46 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/BusSendReqVO.java

@@ -0,0 +1,46 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * 请求总线参数
+ *
+ * @author huangzqa
+ * @date 2021/4/27
+ **/
+@Builder
+@Data
+public class BusSendReqVO {
+
+    /**
+     * 应用代码
+     */
+    private String busSraId;
+
+    /**
+     * 服务代码
+     */
+    private String busServiceId;
+
+    /**
+     * 接口方法
+     */
+    private String busServiceFunc;
+
+    /**
+     * 身份证号
+     */
+    private String busSreIdcard;
+
+    /**
+     * 用户令牌
+     */
+    private String userToken;
+
+    /**
+     * 应用令牌
+     */
+    private String appToken;
+
+}

+ 6 - 11
dcuc-app-service/pom.xml

@@ -5,7 +5,7 @@
     <parent>
     <parent>
         <artifactId>dcuc-app</artifactId>
         <artifactId>dcuc-app</artifactId>
         <groupId>com.dragoninfo</groupId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.0.0-tjdsj-SNAPSHOT</version>
+        <version>2.1.2-tjdsj-SNAPSHOT</version>
     </parent>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
 
 
@@ -94,19 +94,19 @@
         <dependency>
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-duceap-api</artifactId>
             <artifactId>dcuc-duceap-api</artifactId>
-            <version>${project.version}</version>
+            <version>2.0.0-SNAPSHOT</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-org-api</artifactId>
             <artifactId>dcuc-org-api</artifactId>
-            <version>${project.version}</version>
+            <version>2.0.0-tjdsj-SNAPSHOT</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-user-api</artifactId>
             <artifactId>dcuc-user-api</artifactId>
-            <version>2.0.1-SNAPSHOT</version>
+            <version>2.0.1-tjdsj-SNAPSHOT</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
@@ -127,12 +127,7 @@
             <groupId>mysql</groupId>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         </dependency>
-        <!--redis-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-redis</artifactId>
-            <version>2.1.8.RELEASE</version>
-        </dependency>
+
         <dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <artifactId>lombok</artifactId>
@@ -310,4 +305,4 @@
             </build>
             </build>
         </profile>
         </profile>
     </profiles>
     </profiles>
-</project>
+</project>

+ 217 - 92
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java

@@ -1,14 +1,16 @@
 package com.dragoninfo.dcuc.app.business.impl;
 package com.dragoninfo.dcuc.app.business.impl;
 
 
 import cn.hutool.core.thread.ThreadFactoryBuilder;
 import cn.hutool.core.thread.ThreadFactoryBuilder;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.dragoninfo.dcuc.app.business.IResourceBusiness;
 import com.dragoninfo.dcuc.app.business.IResourceBusiness;
-import com.dragoninfo.dcuc.app.dto.dataresource.BaseResp;
 import com.dragoninfo.dcuc.app.config.DcucResourceConfig;
 import com.dragoninfo.dcuc.app.config.DcucResourceConfig;
 import com.dragoninfo.dcuc.app.cons.ServiceStatusCons;
 import com.dragoninfo.dcuc.app.cons.ServiceStatusCons;
 import com.dragoninfo.dcuc.app.dto.*;
 import com.dragoninfo.dcuc.app.dto.*;
+import com.dragoninfo.dcuc.app.dto.dataresource.BaseResp;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.entity.ResourceSync;
 import com.dragoninfo.dcuc.app.entity.ResourceSync;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
@@ -17,7 +19,9 @@ import com.dragoninfo.dcuc.app.service.IApplyInfoService;
 import com.dragoninfo.dcuc.app.service.IResourceService;
 import com.dragoninfo.dcuc.app.service.IResourceService;
 import com.dragoninfo.dcuc.app.service.IResourceSyncService;
 import com.dragoninfo.dcuc.app.service.IResourceSyncService;
 import com.dragoninfo.dcuc.app.service.IServiceResourceService;
 import com.dragoninfo.dcuc.app.service.IServiceResourceService;
-import com.dragoninfo.dcuc.auth.auth.enumresources.YesNotEnum;
+import com.dragoninfo.dcuc.app.vo.BusSendReqVO;
+import com.dragoninfo.dcuc.auth.auth.facade.IBimBusinessFacade;
+import com.dragoninfo.dcuc.common.Constants;
 import com.dragoninfo.dcuc.common.http.HttpUtil;
 import com.dragoninfo.dcuc.common.http.HttpUtil;
 import com.dragoninfo.duceap.core.response.Result;
 import com.dragoninfo.duceap.core.response.Result;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
@@ -25,6 +29,8 @@ import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.ObjectUtils;
 import com.dragonsoft.duceap.commons.util.ObjectUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
+import com.dragonsoft.duceap.commons.util.date.DateConst;
+import com.dragonsoft.duceap.commons.util.date.DateUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.google.common.reflect.TypeToken;
 import com.google.common.reflect.TypeToken;
 import org.apache.http.Header;
 import org.apache.http.Header;
@@ -34,10 +40,12 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
 
-import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.Type;
 import java.lang.reflect.Type;
-import java.text.SimpleDateFormat;
+import java.text.ParseException;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -54,29 +62,33 @@ public class ResourceBusiness implements IResourceBusiness {
 
 
     Logger logger = LoggerFactory.getLogger(ResourceBusiness.class);
     Logger logger = LoggerFactory.getLogger(ResourceBusiness.class);
 
 
+    /**
+     * 应用令牌错误信息
+     */
+    public static final String APP_TOKEN_ERROR_MESSAGE = "0302 令牌验证执行失败";
     @Autowired
     @Autowired
-    IResourceService resourceService;
-
+    private IResourceService resourceService;
     @Autowired
     @Autowired
-    IResourceSyncService syncService;
-
+    private IResourceSyncService syncService;
     @Autowired
     @Autowired
-    DcucResourceConfig resourceConfig;
-
+    private DcucResourceConfig resourceConfig;
     @Autowired
     @Autowired
-    IApplyInfoService applyInfoService;
-
+    private IApplyInfoService applyInfoService;
     @Autowired
     @Autowired
-    IServiceResourceService serviceResourceService;
-
+    private IServiceResourceService serviceResourceService;
+    @Autowired
+    private IBimBusinessFacade bimBusinessFacade;
     /**
     /**
      * 使用线程池异步获取应用菜单
      * 使用线程池异步获取应用菜单
      */
      */
     private ExecutorService executor = new ThreadPoolExecutor(1, 1,
     private ExecutorService executor = new ThreadPoolExecutor(1, 1,
             0L, TimeUnit.MILLISECONDS,
             0L, TimeUnit.MILLISECONDS,
-            new LinkedBlockingQueue<Runnable>(),
+            new LinkedBlockingQueue<>(),
             new ThreadFactoryBuilder().setNamePrefix("menu-resource").build());
             new ThreadFactoryBuilder().setNamePrefix("menu-resource").build());
-
+    /**
+     * 重试次数
+     */
+    public static final int RETRY_NUMBER = 3;
 
 
     @Override
     @Override
     public void resourceSync() {
     public void resourceSync() {
@@ -93,7 +105,7 @@ public class ResourceBusiness implements IResourceBusiness {
             }
             }
             resourceService.resourceSync(resourceSyncs);
             resourceService.resourceSync(resourceSyncs);
             //更新sync字段
             //更新sync字段
-            resourceSyncs.stream().forEach(item -> item.setSync(BooleanEnum.TRUE.getValue()));
+            resourceSyncs.forEach(item -> item.setSync(BooleanEnum.TRUE.getValue()));
             syncService.batchUpdate(resourceSyncs);
             syncService.batchUpdate(resourceSyncs);
         }
         }
     }
     }
@@ -103,9 +115,12 @@ public class ResourceBusiness implements IResourceBusiness {
         //调用总线接口根据appCode获取应用详情
         //调用总线接口根据appCode获取应用详情
         AppResourceAcceptDTO appMenuDTO;
         AppResourceAcceptDTO appMenuDTO;
         String appStr = null;
         String appStr = null;
+        String userToken = bimBusinessFacade.getUserToken(false);
+
+        String appToken = bimBusinessFacade.getAppToken(userToken, false);
         try {
         try {
             logger.info("-------getAppRemoteDetailByCode STATR---------------");
             logger.info("-------getAppRemoteDetailByCode STATR---------------");
-            appStr = getAppRemoteDetailByCode(appCode);
+            appStr = getAppRemoteDetailByCode(appCode, userToken, appToken, 0);
             logger.info("-------getAppRemoteDetailByCode END---------------");
             logger.info("-------getAppRemoteDetailByCode END---------------");
             appMenuDTO = JSON.parseObject(appStr, AppResourceAcceptDTO.class);
             appMenuDTO = JSON.parseObject(appStr, AppResourceAcceptDTO.class);
         } catch (Exception e) {
         } catch (Exception e) {
@@ -227,20 +242,26 @@ public class ResourceBusiness implements IResourceBusiness {
         // 构建header
         // 构建header
         String busSraId = resourceConfig.getBusSraId();
         String busSraId = resourceConfig.getBusSraId();
 
 
-        //busSreIdcard需要从用户信息中获取
-//        String busSreIdcard = resourceConfig.getBusSreIdcard();
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
 
 
         String busServiceId = resourceConfig.getDataResource().getBusServiceId();
         String busServiceId = resourceConfig.getDataResource().getBusServiceId();
         String busServiceFunc = resourceConfig.getDataResource().getBusServiceFunc();
         String busServiceFunc = resourceConfig.getDataResource().getBusServiceFunc();
-        List<Header> heards = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
+
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(busSreIdcard)
+                .build();
+
+        List<Header> headerList = getHeaders(busSendReqVO);
         String url = resourceConfig.getResourceUrl();
         String url = resourceConfig.getResourceUrl();
         logger.info("getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
         logger.info("getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
                 url, busSraId, busServiceId, busServiceFunc, busSreIdcard);
                 url, busSraId, busServiceId, busServiceFunc, busSreIdcard);
-        String response = HttpUtil.postJSON(url, JSON.toJSONString(paramMap), heards, null);
+        String response = HttpUtil.postJSON(url, JSON.toJSONString(paramMap), headerList, null);
         BaseResp<String> baseResp = JSON.parseObject(response, new TypeToken<BaseResp<String>>() {
         BaseResp<String> baseResp = JSON.parseObject(response, new TypeToken<BaseResp<String>>() {
         }.getType());
         }.getType());
-        if (baseResp.getCode().equals("000")) {
+        if ("000".equals(baseResp.getCode())) {
             return JSON.parseObject(baseResp.getResultData(), type);
             return JSON.parseObject(baseResp.getResultData(), type);
         }
         }
         logger.error("调用数据失败:getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
         logger.error("调用数据失败:getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
@@ -249,24 +270,19 @@ public class ResourceBusiness implements IResourceBusiness {
     }
     }
 
 
     private String getServiceRemoteDetailByCode(String serviceCode) {
     private String getServiceRemoteDetailByCode(String serviceCode) {
-        String busSraId = resourceConfig.getBusSraId();
-        String busSreIdcard = resourceConfig.getBusSreIdcard();
-        String busServiceId = resourceConfig.getServiceModifyResource().getBusServiceId();
-        String busServiceFunc = resourceConfig.getServiceModifyResource().getBusServiceFunc();
-        List<Header> heards = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
-        String url = resourceConfig.getResourceUrl();
-        Map<String, String> param = new HashMap<>();
-        param.put("Condition", "FWZYBSF = '" + serviceCode + "'");
-        param.put("page", "1");
-        param.put("pageSize", "1");
-        logger.info("getServiceRemoteDetailByCode >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}, serviceCode:{}",
-                url, busSraId, busServiceId, busServiceFunc, busSreIdcard, serviceCode);
-        String response = HttpUtil.postJSON(url, JSON.toJSONString(param), heards, null);
+
+        String userToken = bimBusinessFacade.getUserToken(false);
+
+        String appToken = bimBusinessFacade.getAppToken(userToken, false);
+
+        String response = getAppResource(serviceCode, userToken, appToken, 0);
+
         logger.info("getServiceRemoteDetailByCode result:{}", response);
         logger.info("getServiceRemoteDetailByCode result:{}", response);
         if (StringUtils.isBlank(response)) {
         if (StringUtils.isBlank(response)) {
             logger.info("getServiceRemoteDetailByCode response is null");
             logger.info("getServiceRemoteDetailByCode response is null");
             return "";
             return "";
         }
         }
+
         JSONObject jsonObject = JSONObject.parseObject(response);
         JSONObject jsonObject = JSONObject.parseObject(response);
         String status = jsonObject.getString("status");
         String status = jsonObject.getString("status");
         if (!ResponseStatus.SUCCESS_CODE.equals(status)) {
         if (!ResponseStatus.SUCCESS_CODE.equals(status)) {
@@ -286,6 +302,53 @@ public class ResourceBusiness implements IResourceBusiness {
         return JSON.toJSONString(dataInfo);
         return JSON.toJSONString(dataInfo);
     }
     }
 
 
+    /**
+     * 获取应用资源
+     *
+     * @param serviceCode 服务代码
+     * @param userToken   用户令牌
+     * @param appToken    应用令牌
+     * @param retry       重试次数
+     * @return 返回结果
+     */
+    private String getAppResource(String serviceCode, String userToken, String appToken, int retry) {
+        String busSraId = resourceConfig.getBusSraId();
+        String busSreIdcard = resourceConfig.getBusSreIdcard();
+        String busServiceId = resourceConfig.getServiceModifyResource().getBusServiceId();
+        String busServiceFunc = resourceConfig.getServiceModifyResource().getBusServiceFunc();
+
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(busSreIdcard)
+                .userToken(userToken)
+                .appToken(appToken)
+                .build();
+
+        List<Header> headerList = getHeaders(busSendReqVO);
+
+        String url = resourceConfig.getResourceUrl();
+        Map<String, String> param = new HashMap<>();
+        param.put("Condition", "FWZYBSF = '" + serviceCode + "'");
+        param.put("page", "1");
+        param.put("pageSize", "1");
+
+        logger.info("getServiceRemoteDetailByCode >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}, serviceCode:{}",
+                url, busSraId, busServiceId, busServiceFunc, busSreIdcard, serviceCode);
+
+        String response = HttpUtil.postJSON(url, JSON.toJSONString(param), headerList, null);
+
+        if ((retry <= RETRY_NUMBER) && (!JSONUtil.isJson(response))) {
+            retry++;
+            String retryUserToken = bimBusinessFacade.getUserToken(true);
+            String retryAppToken = bimBusinessFacade.getAppToken(userToken, true);
+            return getAppResource(serviceCode, retryUserToken, retryAppToken, retry);
+        }
+
+        return response;
+    }
+
     /**
     /**
      * 增量新增/更新应用资源和应用相关的菜单资源
      * 增量新增/更新应用资源和应用相关的菜单资源
      *
      *
@@ -335,7 +398,7 @@ public class ResourceBusiness implements IResourceBusiness {
         dto.setAppCode(appInfoAcceptDTO.getYyxtbh());
         dto.setAppCode(appInfoAcceptDTO.getYyxtbh());
         dto.setAppName(appInfoAcceptDTO.getYyxtmc());
         dto.setAppName(appInfoAcceptDTO.getYyxtmc());
         String xtzybs = appInfoAcceptDTO.getXtzybs();
         String xtzybs = appInfoAcceptDTO.getXtzybs();
-        if (StringUtils.isNotBlank(xtzybs)) {
+        if (StrUtil.isNotBlank(xtzybs)) {
             if (BooleanEnum.TRUE.getValue().equals(xtzybs)) {
             if (BooleanEnum.TRUE.getValue().equals(xtzybs)) {
                 xtzybs = BooleanEnum.FALSE.getValue();
                 xtzybs = BooleanEnum.FALSE.getValue();
             } else {
             } else {
@@ -351,37 +414,30 @@ public class ResourceBusiness implements IResourceBusiness {
         dto.setResourceType(ResourceTypeEnum.TJ_APP.getResourceType());
         dto.setResourceType(ResourceTypeEnum.TJ_APP.getResourceType());
         dto.setResourceProvider(ResourceTypeEnum.TJ_APP.getResouProvider());
         dto.setResourceProvider(ResourceTypeEnum.TJ_APP.getResouProvider());
         String sxrq = appInfoAcceptDTO.getSxrq();
         String sxrq = appInfoAcceptDTO.getSxrq();
-        if (!org.springframework.util.StringUtils.isEmpty(sxrq)) {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (StrUtil.isNotBlank(sxrq)) {
+            Date date = null;
             try {
             try {
-                Date parse = format.parse(sxrq);
-                dto.setRegistrationTime(parse);
-            } catch (Exception e) {
-
+                date = DateUtils.getDate(sxrq, DateConst.HYPHEN_DISPLAY_TIME);
+                dto.setRegistrationTime(date);
+            } catch (ParseException e) {
+                logger.error("Parse error", e);
             }
             }
         }
         }
         dto.setApplyCategory(appInfoAcceptDTO.getYyxtfldm());
         dto.setApplyCategory(appInfoAcceptDTO.getYyxtfldm());
         dto.setPoliceSpecies(appInfoAcceptDTO.getGajzfldm());
         dto.setPoliceSpecies(appInfoAcceptDTO.getGajzfldm());
-        dto.setAppOpsDepName(appInfoAcceptDTO.getYyxtywdwmc());
-        dto.setManagerOrgCode(appInfoAcceptDTO.getYyxtsqdwdm());
-        dto.setLineTime(appInfoAcceptDTO.getSxrq());
-        //TODO 资源目录未返回应用英文名,所以先注释
-//        dto.setAppEnglishName();
         //设置菜单资源
         //设置菜单资源
         List<MenuResourceAcceptDTO> tAppFunctionList = acceptDTO.getTappFunctionList();
         List<MenuResourceAcceptDTO> tAppFunctionList = acceptDTO.getTappFunctionList();
-        List<MenuResourceDTO> menusDTOs = new ArrayList<>();
-        for (MenuResourceAcceptDTO mADTO : tAppFunctionList) {
+        List<MenuResourceDTO> dtoArrayList = new ArrayList<>();
+        for (MenuResourceAcceptDTO menuResourceAcceptDTO : tAppFunctionList) {
             MenuResourceDTO menuDTO = new MenuResourceDTO();
             MenuResourceDTO menuDTO = new MenuResourceDTO();
-            menuDTO.setFunCode(mADTO.getGnbh());
-            menuDTO.setPFunCode(mADTO.getSjgnbh());
-            menuDTO.setFunName(mADTO.getGnmc());
+            menuDTO.setFunCode(menuResourceAcceptDTO.getGnbh());
+            menuDTO.setPFunCode(menuResourceAcceptDTO.getSjgnbh());
+            menuDTO.setFunName(menuResourceAcceptDTO.getGnmc());
             menuDTO.setAppCode(appInfoAcceptDTO.getYyxtbh());
             menuDTO.setAppCode(appInfoAcceptDTO.getYyxtbh());
-            menuDTO.setStatus(mADTO.getZyzt());
-            menuDTO.setDesignSecureType(mADTO.getSjaqyslb());
-            menuDTO.setFunctionUsageScenarios(mADTO.getGnsycjdm());
-            menusDTOs.add(menuDTO);
+            menuDTO.setStatus(menuResourceAcceptDTO.getZyzt());
+            dtoArrayList.add(menuDTO);
         }
         }
-        dto.setMenusResources(menusDTOs);
+        dto.setMenusResources(dtoArrayList);
         return dto;
         return dto;
     }
     }
 
 
@@ -424,7 +480,6 @@ public class ResourceBusiness implements IResourceBusiness {
         if (ServiceStatusCons.STATUS_DELETED.equals(fwzyztdm)) {
         if (ServiceStatusCons.STATUS_DELETED.equals(fwzyztdm)) {
             dto.setDeleted(BooleanEnum.TRUE.getValue());
             dto.setDeleted(BooleanEnum.TRUE.getValue());
         }
         }
-        dto.setRemark(acceptDTO.getFWZYMS());
         dto.setServiceType(acceptDTO.getFWLXDM());
         dto.setServiceType(acceptDTO.getFWLXDM());
         dto.setServiceProvideWay(acceptDTO.getFWTGFSDM());
         dto.setServiceProvideWay(acceptDTO.getFWTGFSDM());
         //是否自用服务,服务资源未返回
         //是否自用服务,服务资源未返回
@@ -480,7 +535,7 @@ public class ResourceBusiness implements IResourceBusiness {
         String resourceId = listingParam.getResourceId();
         String resourceId = listingParam.getResourceId();
         List<Integer> pageNos = listingParam.getPageNo();
         List<Integer> pageNos = listingParam.getPageNo();
         ResourceRequestResultDTO resourceListResult = new ResourceRequestResultDTO(resourceId, new ArrayList<Integer>());
         ResourceRequestResultDTO resourceListResult = new ResourceRequestResultDTO(resourceId, new ArrayList<Integer>());
-        resourceListResult.setSuccess(YesNotEnum.YES.getValue());
+        resourceListResult.setSuccess(BooleanEnum.TRUE.getValue());
         for (Integer pageNo : pageNos) {
         for (Integer pageNo : pageNos) {
             Result<Map<String, Object>> result = getRemoteResource(resourceId, pageNo, pageSize);
             Result<Map<String, Object>> result = getRemoteResource(resourceId, pageNo, pageSize);
             //只收集未同步成功的资源id和页码
             //只收集未同步成功的资源id和页码
@@ -488,7 +543,7 @@ public class ResourceBusiness implements IResourceBusiness {
                 Map<String, Object> resultMap = result.getContent();
                 Map<String, Object> resultMap = result.getContent();
                 Integer ePageNo = (Integer) resultMap.get("pageNo");
                 Integer ePageNo = (Integer) resultMap.get("pageNo");
                 resourceListResult.getPageNos().add(ePageNo);
                 resourceListResult.getPageNos().add(ePageNo);
-                resourceListResult.setSuccess(YesNotEnum.NO.getValue());
+                resourceListResult.setSuccess(BooleanEnum.FALSE.getValue());
             }
             }
         }
         }
         //不记录总页数,这里不是全量获取
         //不记录总页数,这里不是全量获取
@@ -506,8 +561,8 @@ public class ResourceBusiness implements IResourceBusiness {
         Integer pageNo = currentPageNo;
         Integer pageNo = currentPageNo;
         Integer pages = currentPageNo;
         Integer pages = currentPageNo;
         String resourceId = resourceTypeEnum.getResourceId();
         String resourceId = resourceTypeEnum.getResourceId();
-        ResourceRequestResultDTO resourceListResult = new ResourceRequestResultDTO(resourceId, new ArrayList<Integer>());
-        resourceListResult.setSuccess(YesNotEnum.YES.getValue());
+        ResourceRequestResultDTO resourceListResult = new ResourceRequestResultDTO(resourceId, new ArrayList<>());
+        resourceListResult.setSuccess(BooleanEnum.TRUE.getValue());
         do {
         do {
             Result<Map<String, Object>> result = getRemoteResource(resourceId, pageNo, pageSize);
             Result<Map<String, Object>> result = getRemoteResource(resourceId, pageNo, pageSize);
             Map<String, Object> resultMap = result.getContent();
             Map<String, Object> resultMap = result.getContent();
@@ -515,7 +570,7 @@ public class ResourceBusiness implements IResourceBusiness {
             if (!ResponseStatus.SUCCESS_CODE.equals(result.getResult())) {
             if (!ResponseStatus.SUCCESS_CODE.equals(result.getResult())) {
                 Integer ePageNo = (Integer) resultMap.get("pageNo");
                 Integer ePageNo = (Integer) resultMap.get("pageNo");
                 resourceListResult.getPageNos().add(ePageNo);
                 resourceListResult.getPageNos().add(ePageNo);
-                resourceListResult.setSuccess(YesNotEnum.NO.getValue());
+                resourceListResult.setSuccess(BooleanEnum.FALSE.getValue());
             }
             }
             Integer allPages = (Integer) resultMap.get("pages");
             Integer allPages = (Integer) resultMap.get("pages");
             if (null != allPages) {
             if (null != allPages) {
@@ -543,16 +598,23 @@ public class ResourceBusiness implements IResourceBusiness {
      *
      *
      * @param appId 资源提供方应用id
      * @param appId 资源提供方应用id
      * @return
      * @return
-     * @throws IOException
      */
      */
-    private String getAppRemoteDetailById(String appId, String idcard) throws IOException {
+    private String getAppRemoteDetailById(String appId, String idcard) {
         String busSraId = resourceConfig.getBusSraId();
         String busSraId = resourceConfig.getBusSraId();
         String busServiceId = resourceConfig.getMenuResource().getBusServiceId();
         String busServiceId = resourceConfig.getMenuResource().getBusServiceId();
         String busServiceFunc = resourceConfig.getMenuResource().getBusServiceFunc();
         String busServiceFunc = resourceConfig.getMenuResource().getBusServiceFunc();
-        List<Header> heards = getHeaders(busSraId, idcard, busServiceId, busServiceFunc);
+
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(idcard)
+                .build();
+
+        List<Header> headerList = getHeaders(busSendReqVO);
         String url = resourceConfig.getResourceUrl() + "/" + appId;
         String url = resourceConfig.getResourceUrl() + "/" + appId;
         logger.info("getAppRemoteDetailById >> url:{}", url);
         logger.info("getAppRemoteDetailById >> url:{}", url);
-        String result = HttpUtil.get(url, null, heards);
+        String result = HttpUtil.get(url, null, headerList);
         if (StringUtils.isBlank(result)) {
         if (StringUtils.isBlank(result)) {
             logger.info("getAppRemoteDetailById response is null");
             logger.info("getAppRemoteDetailById response is null");
             return "";
             return "";
@@ -564,27 +626,47 @@ public class ResourceBusiness implements IResourceBusiness {
     /**
     /**
      * 从总线获取应用详细信息
      * 从总线获取应用详细信息
      *
      *
-     * @param appCode 应用code
-     * @return
+     * @param appCode   应用code
+     * @param userToken 用户令牌
+     * @param appToken  应用令牌
+     * @return 结果
      */
      */
-    private String getAppRemoteDetailByCode(String appCode) throws IOException {
+    private String getAppRemoteDetailByCode(String appCode, String userToken, String appToken, int retry) {
         String busSraId = resourceConfig.getBusSraId();
         String busSraId = resourceConfig.getBusSraId();
         String busSreIdcard = resourceConfig.getBusSreIdcard();
         String busSreIdcard = resourceConfig.getBusSreIdcard();
         String busServiceId = resourceConfig.getAppModifyResource().getBusServiceId();
         String busServiceId = resourceConfig.getAppModifyResource().getBusServiceId();
         String busServiceFunc = resourceConfig.getAppModifyResource().getBusServiceFunc();
         String busServiceFunc = resourceConfig.getAppModifyResource().getBusServiceFunc();
-        List<Header> heards = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(busSreIdcard)
+                .userToken(userToken)
+                .appToken(appToken)
+                .build();
+
+        List<Header> headerList = getHeaders(busSendReqVO);
+
         String url = resourceConfig.getResourceUrl();
         String url = resourceConfig.getResourceUrl();
         Map<String, String> param = new HashMap<>();
         Map<String, String> param = new HashMap<>();
         param.put("yyxtbh", appCode);
         param.put("yyxtbh", appCode);
         logger.info("getAppRemoteDetailByCode >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}, appCode:{}",
         logger.info("getAppRemoteDetailByCode >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}, appCode:{}",
                 url, busSraId, busServiceId, busServiceFunc, busSreIdcard, appCode);
                 url, busSraId, busServiceId, busServiceFunc, busSreIdcard, appCode);
-        String result = HttpUtil.get(url, param, heards);
-        if (StringUtils.isBlank(result)) {
+        String response = HttpUtil.get(url, param, headerList);
+        if (StringUtils.isBlank(response)) {
             logger.info("getAppRemoteDetailByCode response is null");
             logger.info("getAppRemoteDetailByCode response is null");
             return "";
             return "";
         }
         }
-        logger.info("getAppRemoteDetailByCode result:{}", result);
-        return result;
+        logger.info("getAppRemoteDetailByCode result:{}", response);
+
+        if ((retry <= RETRY_NUMBER) && (!JSONUtil.isJson(response))) {
+            retry++;
+            String retryUserToken = bimBusinessFacade.getUserToken(true);
+            String retryAppToken = bimBusinessFacade.getAppToken(userToken, true);
+            return getAppRemoteDetailByCode(appCode, retryUserToken, retryAppToken, retry);
+        }
+
+        return response;
     }
     }
 
 
     /**
     /**
@@ -606,7 +688,14 @@ public class ResourceBusiness implements IResourceBusiness {
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
         String busServiceId = resourceConfig.getServiceResource().getBusServiceId();
         String busServiceId = resourceConfig.getServiceResource().getBusServiceId();
         String busServiceFunc = resourceConfig.getServiceResource().getBusServiceFunc();
         String busServiceFunc = resourceConfig.getServiceResource().getBusServiceFunc();
-        List<Header> headerList = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
+
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(busSreIdcard)
+                .build();
+        List<Header> headerList = getHeaders(busSendReqVO);
         logger.info("getServiceResource url:{}", url);
         logger.info("getServiceResource url:{}", url);
         String response = HttpUtil.postJSON(url, param, headerList, null);
         String response = HttpUtil.postJSON(url, param, headerList, null);
         if (null == response) {
         if (null == response) {
@@ -657,7 +746,7 @@ public class ResourceBusiness implements IResourceBusiness {
             if (resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)) {
             if (resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)) {
                 List<String> ids = dtos.stream()
                 List<String> ids = dtos.stream()
                         .filter(item -> StringUtils.isNotBlank(item.getExtId()))
                         .filter(item -> StringUtils.isNotBlank(item.getExtId()))
-                        .map(item -> item.getExtId())
+                        .map(ResourceSyncDTO::getExtId)
                         .collect(Collectors.toList());
                         .collect(Collectors.toList());
                 getAppMenus(ids);
                 getAppMenus(ids);
             }
             }
@@ -678,7 +767,7 @@ public class ResourceBusiness implements IResourceBusiness {
      *
      *
      * @return
      * @return
      */
      */
-    private HttpResult getResourceFromRemote(ResourceTypeEnum resourceTypeEnum, Integer pageNo, Integer pageSize) throws IOException {
+    private HttpResult getResourceFromRemote(ResourceTypeEnum resourceTypeEnum, Integer pageNo, Integer pageSize) {
         HttpResult httpResult;
         HttpResult httpResult;
         String url = resourceConfig.getResourceUrl();
         String url = resourceConfig.getResourceUrl();
         //获取应用资源
         //获取应用资源
@@ -714,7 +803,15 @@ public class ResourceBusiness implements IResourceBusiness {
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
         String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
         String busServiceId = resourceConfig.getAppResource().getBusServiceId();
         String busServiceId = resourceConfig.getAppResource().getBusServiceId();
         String busServiceFunc = resourceConfig.getAppResource().getBusServiceFunc();
         String busServiceFunc = resourceConfig.getAppResource().getBusServiceFunc();
-        List<Header> headerList = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
+
+        BusSendReqVO busSendReqVO = BusSendReqVO.builder()
+                .busSraId(busSraId)
+                .busServiceId(busServiceId)
+                .busServiceFunc(busServiceFunc)
+                .busSreIdcard(busSreIdcard)
+                .build();
+
+        List<Header> headerList = getHeaders(busSendReqVO);
         logger.info("getAppResource url:{}", url);
         logger.info("getAppResource url:{}", url);
         String response = HttpUtil.postForm(url, param, headerList, null);
         String response = HttpUtil.postForm(url, param, headerList, null);
         if (null == response) {
         if (null == response) {
@@ -734,24 +831,52 @@ public class ResourceBusiness implements IResourceBusiness {
     /**
     /**
      * 总线调用设置请求头
      * 总线调用设置请求头
      *
      *
-     * @param busSraId
-     * @param busSreIdcard
-     * @param busServiceId
-     * @param busServiceFunc
-     * @return
+     * @param busSendReqVO 请求参数
+     * @return Header
      */
      */
-    private List<Header> getHeaders(String busSraId, String busSreIdcard, String busServiceId, String busServiceFunc) {
-        logger.info("getHeaders >>> busSraId:{},busSreIdcard:{},busServiceId:{},busServiceFunc:{}",
-                busSraId, busSreIdcard, busServiceId, busServiceFunc);
+    private List<Header> getHeaders(BusSendReqVO busSendReqVO) {
+        logger.info("getHeaders >>> {}", busSendReqVO);
+
+        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
+        HttpServletRequest request = servletRequestAttributes.getRequest();
+
         List<Header> heardList = new ArrayList<>();
         List<Header> heardList = new ArrayList<>();
-        Header busSraIdHeader = new BasicHeader("bus_sra_id", busSraId);
-        Header busSreIdHeader = new BasicHeader("bus_sre_idcard", busSreIdcard);
-        Header serviceIdHeader = new BasicHeader("bus_service_id", busServiceId);
-        Header busServiceFuncHeader = new BasicHeader("bus_service_func", busServiceFunc);
+
+        Header busSraIdHeader = new BasicHeader("bus_sra_id", busSendReqVO.getBusSraId());
+        Header serviceIdHeader = new BasicHeader("bus_service_id", busSendReqVO.getBusServiceId());
+        Header busServiceFuncHeader = new BasicHeader("bus_service_func", busSendReqVO.getBusServiceFunc());
+        Header busSreIdHeader = new BasicHeader("bus_sre_idcard", busSendReqVO.getBusSreIdcard());
+
         heardList.add(busSraIdHeader);
         heardList.add(busSraIdHeader);
         heardList.add(busSreIdHeader);
         heardList.add(busSreIdHeader);
         heardList.add(serviceIdHeader);
         heardList.add(serviceIdHeader);
         heardList.add(busServiceFuncHeader);
         heardList.add(busServiceFuncHeader);
+
+        String voUserToken = busSendReqVO.getUserToken();
+        String voAppToken = busSendReqVO.getAppToken();
+        if (StrUtil.isBlank(voUserToken) && StrUtil.isBlank(voAppToken)) {
+            String userToken = request.getHeader(Constants.USER_TOKEN);
+            String appToken = request.getHeader(Constants.APP_TOKEN);
+
+            logger.info("getHeaders >>> request userToken:{},appToken:{}", userToken, appToken);
+            if (StrUtil.isNotBlank(userToken)) {
+                Header busSreTokenHeader = new BasicHeader("bus_sre_token", userToken);
+                heardList.add(busSreTokenHeader);
+            }
+
+            if (StrUtil.isNotBlank(appToken)) {
+                Header busSraTokenHeader = new BasicHeader("bus_sra_token", appToken);
+                heardList.add(busSraTokenHeader);
+            }
+        } else {
+            logger.info("getHeaders >>> request voUserToken:{}, voAppToken {}", voUserToken, voAppToken);
+            Header busSraTokenHeader = new BasicHeader("bus_sra_token", voAppToken);
+            heardList.add(busSraTokenHeader);
+
+            Header busSreTokenHeader = new BasicHeader("bus_sre_token", voUserToken);
+            heardList.add(busSreTokenHeader);
+        }
+
         return heardList;
         return heardList;
     }
     }
 
 

+ 1 - 0
dcuc-app-service/src/main/resources/config/mysql/V4_1_0002__Add_Index.sql

@@ -0,0 +1 @@
+-- mysql not need add index

+ 0 - 0
dcuc-app-service/src/main/resources/config/mysql/V4_1_0002__Init_Tables.sql → dcuc-app-service/src/main/resources/config/mysql/V4_1_0003__Init_Tables.sql


+ 0 - 0
dcuc-app-service/src/main/resources/config/mysql/V4_1_0003__Update_Tables.sql → dcuc-app-service/src/main/resources/config/mysql/V4_1_0004__Update_Tables.sql


+ 5 - 0
dcuc-app-service/src/main/resources/config/mysql/V4_1_0005__alert_column.sql

@@ -0,0 +1,5 @@
+ALTER TABLE `t_service_resource`
+ADD COLUMN `service_type`  varchar(20) NULL COMMENT '服务类型' AFTER `manager_unit_code`,
+ADD COLUMN `service_provide_way`  varchar(20) NULL COMMENT '服务提供方式' AFTER `service_type`,
+ADD COLUMN `must_self`  varchar(1) NULL COMMENT '是否自用服务' AFTER `service_provide_way`,
+ADD COLUMN `app_code`  varchar(100) NULL COMMENT '服务提供应用系统code' AFTER `must_self`;

+ 1 - 18
dcuc-app-service/src/main/resources/config/sql/V4_1_0005__ALERT_COLUMN_init.sql

@@ -1,9 +1,8 @@
 ALTER TABLE "T_SERVICE_RESOURCE"
 ALTER TABLE "T_SERVICE_RESOURCE"
 ADD ( "SERVICE_TYPE" VARCHAR2(20) NULL  ) 
 ADD ( "SERVICE_TYPE" VARCHAR2(20) NULL  ) 
 ADD ( "SERVICE_PROVIDE_WAY" VARCHAR2(20) NULL  ) 
 ADD ( "SERVICE_PROVIDE_WAY" VARCHAR2(20) NULL  ) 
-ADD ( "MUST_SELF" VARCHAR2(5) NULL  )
+ADD ( "MUST_SELF" VARCHAR2(1) NULL  ) 
 ADD ( "APP_CODE" VARCHAR2(100) NULL  ) ;
 ADD ( "APP_CODE" VARCHAR2(100) NULL  ) ;
-ADD ( "REMARK" VARCHAR2(255) NULL  ) ;
 
 
 COMMENT ON COLUMN "T_SERVICE_RESOURCE"."SERVICE_TYPE" IS ''服务类型'';
 COMMENT ON COLUMN "T_SERVICE_RESOURCE"."SERVICE_TYPE" IS ''服务类型'';
 
 
@@ -13,19 +12,3 @@ COMMENT ON COLUMN "T_SERVICE_RESOURCE"."MUST_SELF" IS ''是否自用服务'';
 
 
 COMMENT ON COLUMN "T_SERVICE_RESOURCE"."APP_CODE" IS ''服务提供应用系统code'';
 COMMENT ON COLUMN "T_SERVICE_RESOURCE"."APP_CODE" IS ''服务提供应用系统code'';
 
 
-COMMENT ON COLUMN "T_SERVICE_RESOURCE"."REMARK" IS ''服务资源描述'';
-
-
-ALTER TABLE "T_APPLY_INFO"
-ADD ( "APP_OPS_DEP_NAME" VARCHAR2(255) NULL  )
-ADD ( "MANAGER_ORG_CODE" VARCHAR2(255) NULL  )
-ADD ( "APP_ENGLISH_NAME" VARCHAR2(100) NULL  )
-ADD ( "LINE_TIME" VARCHAR2(100) NULL  ) ;
-
-COMMENT ON COLUMN "T_APPLY_INFO"."APP_OPS_DEP_NAME" IS '应用系统运维单位名称';
-
-COMMENT ON COLUMN "T_APPLY_INFO"."MANAGER_ORG_CODE" IS '应用系统事权单位代码';
-
-COMMENT ON COLUMN "T_APPLY_INFO"."APP_ENGLISH_NAME" IS '应用英文名称';
-
-COMMENT ON COLUMN "T_APPLY_INFO"."LINE_TIME" IS '上线日期';

+ 2 - 2
pom.xml

@@ -5,7 +5,7 @@
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.dragoninfo</groupId>
     <groupId>com.dragoninfo</groupId>
     <artifactId>dcuc-app</artifactId>
     <artifactId>dcuc-app</artifactId>
-    <version>2.0.0-tjdsj-SNAPSHOT</version>
+    <version>2.1.2-tjdsj-SNAPSHOT</version>
     <packaging>pom</packaging>
     <packaging>pom</packaging>
     <modules>
     <modules>
         <module>dcuc-app-api</module>
         <module>dcuc-app-api</module>
@@ -129,4 +129,4 @@
         </snapshotRepository>
         </snapshotRepository>
     </distributionManagement>
     </distributionManagement>
 
 
-</project>
+</project>