فهرست منبع

Merge branch 'mazq-0228-resourceaccept' into 'develop'

feature(应用服务资源接收代码移到appservice): 应用服务资源接收代码移到appservice

See merge request dcuc/app-service!18
黄资权 4 سال پیش
والد
کامیت
f491d26e90

+ 16 - 0
dcuc-app-api/src/main/java/com/dragoninfo/dcuc/app/facade/IResourceFacade.java

@@ -102,4 +102,20 @@ public interface IResourceFacade {
      */
     @PostMapping(value = "getResourceRemote")
     List<ResourceRequestResultDTO> getResourceRequestResults(@RequestBody ResourceRequestParamDTO requestParam);
+
+    /**
+     * 应用资源推送接收
+     * @param acceptDTO
+     * @return
+     */
+    @PostMapping(value = "appAccept")
+    boolean acceptAppResource(@RequestBody AppResourceAcceptDTO acceptDTO);
+
+    /**
+     * 服务资源推送接收
+     * @param acceptDTO
+     * @return
+     */
+    @PostMapping(value = "serviceAccept")
+    boolean acceptServiceResource(@RequestBody ServiceResourceAcceptDTO acceptDTO);
 }

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

@@ -0,0 +1,95 @@
+package com.dragoninfo.dcuc.app.dto;
+
+import lombok.Data;
+
+/**
+ * 推送应用DTO
+ * @author mazq
+ * @date 2021/2/19
+ */
+@Data
+public class AppInfoAcceptDTO {
+
+    private String id;
+    /**
+     * 应用系统编号
+     */
+    private String yyxtbh;
+    /**
+     *应用系统名称
+     */
+    private String yyxtmc;
+    /**
+     * 应用系统说明
+     */
+    private String yyxtsm;
+    /**
+     * 应用系统事权单位代码
+     */
+    private String yyxtsqdwdm;
+    /**
+     * 应用系统管理单位代码
+     */
+    private String yyxtgldwdm;
+    /**
+     * 应用系统承建单位名称
+     */
+    private String yyxtcjdwmc;
+    /**
+     * 应用系统承建单位代码
+     */
+    private String yyxtcjdwdm;
+    /**
+     * 应用系统承建单位名称
+     */
+    private String yyxtywdwmc;
+    /**
+     * 上线日期
+     */
+    private String sxrq;
+    /**
+     * 下线日期
+     */
+    private String xxrq;
+    /**
+     * 应用系统分类代码
+     */
+    private String yyxtfldm;
+    /**
+     * 公安警种分类代码
+     */
+    private String gajzfldm;
+    /**
+     * 公安业务职责分类代码
+     */
+    private String gazzfldm;
+    /**
+     * 系统在用标识
+     */
+    private String xtzybs;
+    /**
+     * 系统注销标识
+     */
+    private String xtzxbs;
+    /**
+     * 系统建设标识
+     */
+    private String xtjsbs;
+    /**
+     * 系统架构类型
+     */
+    private String xtjglx;
+    /**
+     * 应用系统访问地址
+     */
+    private String yyxtfwdz;
+    /**
+     * 业务使用场景代码
+     */
+    private String ywsycjdm;
+    /**
+     * 应用系统图标
+     */
+    private String yyxttb;
+
+}

+ 30 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/AppResourceAcceptDTO.java

@@ -0,0 +1,30 @@
+package com.dragoninfo.dcuc.app.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 推送应用和菜单数据DTO
+ * @author mazq
+ * @date 2021/2/19
+ */
+@Data
+public class AppResourceAcceptDTO {
+
+    /**
+     * 推送过来的应用实体类Vo
+     */
+    @ApiModelProperty(value = "推送应用资源vo")
+    private AppInfoAcceptDTO tAppSystem;
+    /**
+     * 推送过来的应用对应的菜单实体类Vo
+     */
+    @ApiModelProperty(value = "推送菜单资源vo")
+    private List<MenuResourceAcceptDTO> tAppFunctionList;
+
+
+}

+ 44 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/MenuResourceAcceptDTO.java

@@ -0,0 +1,44 @@
+package com.dragoninfo.dcuc.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 推送菜单DTO
+ * @author mazq
+ * @date 2021/2/18
+ */
+@Data
+public class MenuResourceAcceptDTO {
+
+    private String id;
+    /**
+     * 功能编号
+     */
+    private String gnbh;
+    /**
+     * 功能说明
+     */
+    private String gnsm;
+    /**
+     * 上级功能编号
+     */
+    private String sjgnbh;
+    /**
+     * 功能使用场景代码
+     */
+    private String gnsycjdm;
+    /**
+     * 设计安全隐私类别
+     */
+    private String sjaqyslb;
+    /**
+     * 在用状态
+     */
+    private String zyzt;
+    /**
+     * 功能名称
+     */
+    private String gnmc;
+}

+ 55 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/ServiceResourceAcceptDTO.java

@@ -0,0 +1,55 @@
+package com.dragoninfo.dcuc.app.dto;
+
+import lombok.Data;
+
+/**
+ * 服务资源推送接收DTO
+ * @author mazq
+ * @date 2021/2/19
+ */
+@Data
+public class ServiceResourceAcceptDTO {
+
+    private String id;
+    /**
+     * 服务资源编码
+     */
+    private String FWZYBSF;
+    /**
+     * 服务资源名称
+     */
+    private String FWZYMC;
+    /**
+     * 服务资源类型
+     */
+    private String FWLXDM;
+    /**
+     * 事权单位编号
+     */
+    private String FWZYSQDW_JGDM;
+    /**
+     * 管理单位
+     */
+    private String FWZYGLDW_GAJGJGDM;
+    /**
+     * 应用资源标识符
+     */
+    private String TGFWZYD_YYZYBS;
+    /**
+     * 服务资源描述
+     */
+    private String FWZYMS;
+    /**
+     * 服务访问地址
+     */
+    private String FWFWDZ;
+    /**
+     * 服务资源状态代码 0:未激活;1:启用;2:停止;3:撤销;
+     */
+    private String FWZYZTDM;
+
+    /**
+     * 信息创建单位——GA机构机构代码
+     */
+    private String XXCZDW_GAJGJGDM;
+}

+ 16 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/IResourceBusiness.java

@@ -1,7 +1,9 @@
 package com.dragoninfo.dcuc.app.business;
 
+import com.dragoninfo.dcuc.app.dto.AppResourceAcceptDTO;
 import com.dragoninfo.dcuc.app.dto.ResourceRequestParamDTO;
 import com.dragoninfo.dcuc.app.dto.ResourceRequestResultDTO;
+import com.dragoninfo.dcuc.app.dto.ServiceResourceAcceptDTO;
 
 import java.util.List;
 
@@ -22,4 +24,18 @@ public interface IResourceBusiness {
      * 资源同步到应用和服务表
      */
     void resourceSync();
+
+    /**
+     * 应用资源推送接收
+     * @param acceptDTO
+     * @return
+     */
+    boolean acceptAppResource(AppResourceAcceptDTO acceptDTO);
+
+    /**
+     * 服务资源推送接收
+     * @param acceptDTO
+     * @return
+     */
+    boolean acceptServiceResource(ServiceResourceAcceptDTO acceptDTO);
 }

+ 105 - 5
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java

@@ -1,5 +1,6 @@
 package com.dragoninfo.dcuc.app.business.impl;
 
+import cn.hutool.core.thread.ThreadFactoryBuilder;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -25,10 +26,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
@@ -55,7 +54,8 @@ public class ResourceBusiness implements IResourceBusiness {
      */
     private ExecutorService executor = new ThreadPoolExecutor(1, 1,
                     0L, TimeUnit.MILLISECONDS,
-                    new LinkedBlockingQueue<Runnable>());
+                    new LinkedBlockingQueue<Runnable>(),
+                    new ThreadFactoryBuilder().setNamePrefix("menu-resource").build());
 
 
     @Override
@@ -78,6 +78,106 @@ public class ResourceBusiness implements IResourceBusiness {
         }
     }
 
+    @Override
+    public boolean acceptAppResource(AppResourceAcceptDTO acceptDTO) {
+        ResourceTypeEnum appEnum = ResourceTypeEnum.TJ_APP;
+        ResourceSyncDTO syncDTO = new ResourceSyncDTO(appEnum.getResourceId()
+                , appEnum.getResourceType(), appEnum.getResouProvider());
+        AppInfoAcceptDTO appAcceptDTO = acceptDTO.getTAppSystem();
+        syncDTO.setAppCode(appAcceptDTO.getYyxtbh());
+        syncDTO.setAppName(appAcceptDTO.getYyxtmc());
+        syncDTO.setExtId(appAcceptDTO.getId());
+        syncDTO.setContent(JSON.toJSONString(appAcceptDTO));
+        syncDTO.setSync(com.dragoninfo.dcuc.user.user.enumresources.YesNotEnum.YES.getValue());
+        syncService.insertRemoteResourceSync(syncDTO);
+        //同步更新应用表
+        AppResourceDTO appResourceDTO = convertToAppDTO(acceptDTO);
+        appResourceDTO.setResourceId(appEnum.getResourceId());
+        appResourceDTO.setResourceType(appEnum.getResourceType());
+        appResourceDTO.setResourceProvider(appEnum.getResouProvider());
+        resourceService.insertAppResource(appResourceDTO);
+        return true;
+    }
+
+    /**
+     * 应用资源接收类转为应用DTO
+     * @param acceptDTO
+     * @return
+     */
+    private AppResourceDTO convertToAppDTO(AppResourceAcceptDTO acceptDTO) {
+        AppInfoAcceptDTO appResourceDTO = acceptDTO.getTAppSystem();
+        AppResourceDTO dto = new AppResourceDTO();
+        dto.setAppCode(appResourceDTO.getYyxtbh());
+        dto.setAppName(appResourceDTO.getYyxtmc());
+        dto.setAppStatus(appResourceDTO.getXtzybs());
+        dto.setAppUrl(appResourceDTO.getYyxtfwdz());
+        dto.setBuildUnitCode(appResourceDTO.getYyxtgldwdm());
+        dto.setContractUnitCode(appResourceDTO.getYyxtcjdwdm());
+        String sxrq = appResourceDTO.getSxrq();
+        if(!org.springframework.util.StringUtils.isEmpty(sxrq)){
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            try {
+                Date parse = format.parse(sxrq);
+                dto.setRegistrationTime(parse);
+            }catch (Exception e){
+
+            }
+        }
+        dto.setApplyCategory(appResourceDTO.getYyxtfldm());
+        dto.setPoliceSpecies(appResourceDTO.getGajzfldm());
+        //设置菜单资源
+        List<MenuResourceAcceptDTO> tAppFunctionList = acceptDTO.getTAppFunctionList();
+        List<MenuResourceDTO> menusDTOs = new ArrayList<>();
+        for (MenuResourceAcceptDTO mADTO : tAppFunctionList) {
+            MenuResourceDTO menuDTO = new MenuResourceDTO();
+            menuDTO.setFunCode(mADTO.getGnbh());
+            menuDTO.setPFunCode(mADTO.getSjgnbh());
+            menuDTO.setFunName(mADTO.getGnmc());
+            menuDTO.setAppCode(appResourceDTO.getYyxtbh());
+            menuDTO.setStatus(mADTO.getZyzt());
+            menusDTOs.add(menuDTO);
+        }
+        dto.setMenusResources(menusDTOs);
+        return dto;
+    }
+
+    /**
+     * 应用资源接收类转为应用DTO
+     * @param acceptDTO
+     * @return
+     */
+    @Override
+    public boolean acceptServiceResource(ServiceResourceAcceptDTO acceptDTO) {
+        ResourceTypeEnum serviceEnum = ResourceTypeEnum.TJ_SERVICE;
+        ResourceSyncDTO syncDTO = new ResourceSyncDTO(serviceEnum.getResourceId()
+                , serviceEnum.getResourceType(), serviceEnum.getResouProvider());
+        syncDTO.setServiceCode(acceptDTO.getFWZYBSF());
+        syncDTO.setServiceName(acceptDTO.getFWZYMC());
+        syncDTO.setExtId(acceptDTO.getId());
+        syncDTO.setContent(JSON.toJSONString(acceptDTO));
+        syncDTO.setSync(com.dragoninfo.dcuc.user.user.enumresources.YesNotEnum.YES.getValue());
+        syncService.insertRemoteResourceSync(syncDTO);
+        //同步更新服务表
+        ServiceResourceDTO serviceResourceDTO = convertToServiceDTO(acceptDTO);
+        serviceResourceDTO.setResourceId(serviceEnum.getResourceId());
+        serviceResourceDTO.setResourceType(serviceEnum.getResourceType());
+        serviceResourceDTO.setResourceProvider(serviceEnum.getResouProvider());
+        resourceService.insertServiceResource(serviceResourceDTO);
+        return true;
+    }
+
+    private ServiceResourceDTO convertToServiceDTO(ServiceResourceAcceptDTO acceptDTO) {
+        ServiceResourceDTO dto = new ServiceResourceDTO();
+        dto.setServiceCode(acceptDTO.getFWZYBSF());
+        dto.setServiceName(acceptDTO.getFWZYMC());
+        dto.setBuildUnitCode(acceptDTO.getFWZYGLDW_GAJGJGDM());
+        dto.setContractUnitCode(acceptDTO.getFWZYSQDW_JGDM());
+        dto.setServiceUrl(acceptDTO.getFWFWDZ());
+        dto.setServiceStatus(acceptDTO.getFWZYZTDM());
+        return dto;
+    }
+
+
     @Override
     public List<ResourceRequestResultDTO> getResourceRequestResults(ResourceRequestParamDTO requestParamDTO) {
             List<ResourceRequestResultDTO> pageInfos = new ArrayList<>();

+ 10 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/ResourceFacade.java

@@ -82,6 +82,16 @@ public class ResourceFacade implements IResourceFacade {
         return iResourceBusiness.getResourceRequestResults(requestParamDTO);
     }
 
+    @Override
+    public boolean acceptAppResource(AppResourceAcceptDTO acceptDTO) {
+        return iResourceBusiness.acceptAppResource(acceptDTO);
+    }
+
+    @Override
+    public boolean acceptServiceResource(ServiceResourceAcceptDTO acceptDTO) {
+        return iResourceBusiness.acceptServiceResource(acceptDTO);
+    }
+
     @Override
     public Page<ServiceResourceDTO> serviceResourcePage(SearchDTO searchDTO) {
         Searchable searchable = Searchable.toSearchable(searchDTO);