Browse Source

feature(应用服务资源新增管理单位字段): 应用服务资源新增管理单位字段

应用服务资源新增管理单位字段
mazq 4 years ago
parent
commit
decff9f0ff

+ 17 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/ResourceDTO.java

@@ -70,6 +70,23 @@ public class ResourceDTO implements Serializable {
      */
     private String contractUnit;
 
+
+    /**
+     * 管理单位id
+     */
+    private String managerUnitId;
+
+    /**
+     * 管理单位name
+     */
+    private String managerUnit;
+
+    /**
+     * 管理单位code
+     */
+    private String managerUnitCode;
+
+
     /**
      * 承建单位负责人
      */

+ 6 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/entity/ApplyInfo.java

@@ -45,6 +45,12 @@ public class ApplyInfo implements Serializable {
     @ApiModelProperty(value = "所属单位名称")
     private String orgName;
 
+    @ApiModelProperty(value = "管理单位id")
+    private String managerOrgId;
+
+    @ApiModelProperty(value = "管理单位名称")
+    private String managerOrgName;
+
     @ApiModelProperty(value = "排序号")
     private String sort;
 

+ 16 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/entity/ServiceResource.java

@@ -82,6 +82,22 @@ public class ServiceResource implements Serializable {
      */
     private String buildPrincipalPhone;
 
+
+    /**
+     * 管理单位id
+     */
+    private String managerUnitId;
+
+    /**
+     * 管理单位name
+     */
+    private String managerUnit;
+
+    /**
+     * 管理单位code
+     */
+    private String managerUnitCode;
+
     /**
      * 承建单位id(ManufacturerId)
      */

+ 4 - 3
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java

@@ -313,7 +313,8 @@ public class ResourceBusiness implements IResourceBusiness {
         }
         dto.setAppStatus(xtzybs);
         dto.setAppUrl(appInfoAcceptDTO.getYyxtfwdz());
-        dto.setBuildUnitCode(appInfoAcceptDTO.getYyxtgldwdm());
+        dto.setBuildUnitCode(appInfoAcceptDTO.getYyxtsqdwdm());
+        dto.setManagerUnitCode(appInfoAcceptDTO.getYyxtgldwdm());
         dto.setContractUnit(appInfoAcceptDTO.getYyxtcjdwmc());
         dto.setResourceId(ResourceTypeEnum.TJ_APP.getResourceId());
         dto.setResourceType(ResourceTypeEnum.TJ_APP.getResourceType());
@@ -375,8 +376,8 @@ public class ResourceBusiness implements IResourceBusiness {
         ServiceResourceDTO dto = new ServiceResourceDTO();
         dto.setServiceCode(acceptDTO.getFWZYBSF());
         dto.setServiceName(acceptDTO.getFWZYMC());
-        dto.setBuildUnitCode(acceptDTO.getFWZYGLDW_GAJGJGDM());
-        dto.setContractUnitCode(acceptDTO.getFWZYSQDW_JGDM());
+        dto.setManagerUnitCode(acceptDTO.getFWZYGLDW_GAJGJGDM());
+        dto.setBuildUnitCode(acceptDTO.getFWZYSQDW_JGDM());
         dto.setServiceUrl(acceptDTO.getFWFWDZ());
         String fwzyztdm = acceptDTO.getFWZYZTDM();
         dto.setServiceStatus(fwzyztdm);

+ 54 - 31
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/impl/ResourceServiceImpl.java

@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author mazq
@@ -107,7 +108,7 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         if(CollectionUtils.isEmpty(list)){
             return apps;
         }
-        setOrgIdsAndManIds(list);
+        setOrgsInfo(list);
         List<Object> objects = batchInsertResource(list);
         for (Object object : objects) {
             ApplyInfo applyInfo = (ApplyInfo) object;
@@ -131,7 +132,7 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         if(CollectionUtils.isEmpty(list)){
             return services;
         }
-        setOrgIdsAndManIds(list);
+        setOrgsInfo(list);
         List<Object> objects = batchInsertResource(list);
         for (Object object : objects) {
             ServiceResource service = (ServiceResource) object;
@@ -150,37 +151,41 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
     }
 
     /**
-     * 根据对方提供机构编码,承建单位编码,批量获取orgId和manufacturerId
+     * 根据对方提供机构编码,管理单位编码,批量获取id和name
      * @param list
      * @param <T> ResourceDTO
      * @return
      */
-    private <T extends ResourceDTO> List<T> setOrgIdsAndManIds(List<T> list) {
-        //根据对方提供机构编码,承建单位编码,批量获取orgId和manufacturerId
-        List<String> orgCodes = new ArrayList<>();
-        for (ResourceDTO resourceDTO : list) {
-            String buildUnitCode = resourceDTO.getBuildUnitCode();
-            if(!StringUtils.isEmpty(buildUnitCode)){
-                orgCodes.add(buildUnitCode);
-            }
-        }
-        Map<String, String> orgIds = getOrgIds(orgCodes);
-        for (ResourceDTO dto : list) {
-            String orgId = orgIds.get(dto.getBuildUnitCode());
-            dto.setBuildUnitId(orgId);
+    private <T extends ResourceDTO> List<T> setOrgsInfo(List<T> list) {
+        //根据对方提供机构编码,设置事权单位、管理单位信息
+        List<String> codes = list.stream()
+                .flatMap(item -> Stream.of(item.getManagerUnitCode(), item.getBuildUnitCode()))
+                .filter(s->StringUtils.isNotBlank(s))
+                .distinct()
+                .collect(Collectors.toList());
+        Map<String, OrgInfo> orgInfoMap = getOrgInfos(codes);
+        for (T resource : list) {
+            String buildUnitCode = resource.getBuildUnitCode();
+            String managerUnitCode = resource.getManagerUnitCode();
+            setOrgIdAndName(resource, buildUnitCode, managerUnitCode, orgInfoMap);
         }
         return list;
     }
 
-    private Map<String, String> getOrgIds(List<String> list) {
+    private Map<String, OrgInfo> getOrgInfos(List<String> list) {
         if(CollectionUtils.isEmpty(list)){
             return new HashMap<>();
         }
+        list = list
+                .stream()
+                .filter(s->StringUtils.isNotBlank(s))
+                .distinct()
+                .collect(Collectors.toList());
         logger.info("get OrgIds by OrgCodes>> orgCodeList:{}",JSON.toJSONString(list));
         List<OrgInfo> orgInfos = orgInfoFacade.getOrgsByCodes(list);
-        Map<String, String> collect = orgInfos
+        Map<String, OrgInfo> collect = orgInfos
                 .stream()
-                .collect(Collectors.toMap(OrgInfo::getCode, OrgInfo::getId,(old,last)->last));
+                .collect(Collectors.toMap(item->item.getCode(), item->item,(old,last)->last));
         logger.info("get OrgIds by OrgCodes>> orgIdsList:{}",collect.values());
         return collect;
     }
@@ -300,7 +305,8 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         dto.setResourceProvider(resourceEnum.getResouProvider());
         dto.setServiceCode(acceptDTO.getFWZYBSF());
         dto.setServiceName(acceptDTO.getFWZYMC());
-        dto.setBuildUnitCode(acceptDTO.getXXCZDW_GAJGJGDM());
+        dto.setBuildUnitCode(acceptDTO.getFWZYSQDW_JGDM());
+        dto.setManagerUnitCode(acceptDTO.getXXCZDW_GAJGJGDM());
         dto.setServiceUrl(acceptDTO.getFWFWDZ());
         String fwzyztdm = acceptDTO.getFWZYZTDM();
         dto.setServiceStatus(fwzyztdm);
@@ -337,7 +343,8 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
         }
         dto.setAppStatus(xtzybs);
         dto.setAppUrl(acceptDTO.getYyxtfwdz());
-        dto.setBuildUnitCode(acceptDTO.getYyxtgldwdm());
+        dto.setBuildUnitCode(acceptDTO.getYyxtsqdwdm());
+        dto.setManagerUnitCode(acceptDTO.getYyxtgldwdm());
         dto.setContractUnit(acceptDTO.getYyxtcjdwmc());
         dto.setDeleted(acceptDTO.getXtzxbs());
         String sxrq = acceptDTO.getSxrq();
@@ -363,28 +370,44 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
      */
     private <T extends ResourceDTO> Object insertResource(T dto) {
         //根据对方提供机构编码,承建单位编码,获取orgId和manufacturerId
-        setOrgIdAndManId(dto);
+        setOrgInfo(dto);
         Object resource = doInsert(dto);
         return resource;
     }
 
     /**
-     * 根据对方提供机构编码,承建单位编码,获取orgId和manufacturerId
+     * 根据对方提供机构编码,管理单位单位编码,获取id和name
      * @param dto ResourceDTO的子类
      * @param <T>
      * @return
      */
-    private <T extends ResourceDTO> T setOrgIdAndManId(T dto) {
+    private <T extends ResourceDTO> T setOrgInfo(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());
+        String managerUnitCode = dto.getManagerUnitCode();
+        logger.info("get OrgInfo by OrgCode>>orgCode:{}, managerUnitCode:{}",buildUnitCode,managerUnitCode);
+        List<String> list = new ArrayList<>();
+        list.add(buildUnitCode);
+        list.add(managerUnitCode);
+        Map<String, OrgInfo> orgInfoMap = getOrgInfos(list);
+        setOrgIdAndName(dto, buildUnitCode, managerUnitCode, orgInfoMap);
+        return dto;
+    }
+
+    private <T extends ResourceDTO> void setOrgIdAndName(T dto, String buildUnitCode, String managerUnitCode, Map<String, OrgInfo> orgInfoMap) {
+        if (StringUtils.isNotBlank(buildUnitCode)) {
+            OrgInfo buildOrg = orgInfoMap.get(buildUnitCode);
+            if (null != buildOrg) {
+                dto.setBuildUnit(buildOrg.getFullName());
+                dto.setBuildUnitId(buildOrg.getId());
+            }
+        }
+        if (StringUtils.isNotBlank(buildUnitCode)) {
+            OrgInfo manageOrg = orgInfoMap.get(managerUnitCode);
+            if (null != manageOrg) {
+                dto.setManagerUnit(manageOrg.getFullName());
+                dto.setManagerUnitId(manageOrg.getId());
             }
         }
-        return dto;
     }
 
     /**

+ 3 - 1
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/strategy/AppResourceStrategy.java

@@ -67,7 +67,10 @@ public class AppResourceStrategy implements ResourceOperateStrategy<ApplyInfo> {
         ApplyInfo applyInfo = new ApplyInfo();
         applyInfo.setApplyCode(appCode);
         applyInfo.setApplyName(dto.getAppName());
+        applyInfo.setOrgId(dto.getBuildUnitId());
         applyInfo.setOrgName(dto.getBuildUnit());
+        applyInfo.setManagerOrgId(dto.getManagerUnitId());
+        applyInfo.setManagerOrgName(dto.getManagerUnit());
         applyInfo.setJgFzr(dto.getBuildPrincipal());
         applyInfo.setJgFzrPhone(dto.getBuildPrincipalPhone());
         applyInfo.setFzr(dto.getContractPrincipal());
@@ -78,7 +81,6 @@ public class AppResourceStrategy implements ResourceOperateStrategy<ApplyInfo> {
         applyInfo.setApplyCategory(dto.getApplyCategory());
         applyInfo.setPoliceSpecies(dto.getPoliceSpecies());
         applyInfo.setManufacturerId(dto.getContractUnitId());
-        applyInfo.setOrgId(dto.getBuildUnitId());
         applyInfo.setRegistrationTime(dto.getRegistrationTime());
         applyInfo.setApplyStatus(dto.getAppStatus());
         return applyInfo;

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

@@ -0,0 +1,7 @@
+-- 更新应用表
+ALTER TABLE `t_apply_info` ADD `managerOrgId` VARCHAR(100) DEFAULT NULL;
+ALTER TABLE `t_apply_info` ADD `managerOrgName` VARCHAR(255) DEFAULT NULL;
+-- 更新服务表
+ALTER TABLE `t_service_resource` ADD `managerUnitId` VARCHAR(100) DEFAULT NULL;
+ALTER TABLE `t_service_resource` ADD `managerUnit` VARCHAR(255) DEFAULT NULL;
+ALTER TABLE `t_service_resource` ADD `managerUnitCode` VARCHAR(100) DEFAULT NULL;

+ 7 - 0
dcuc-app-service/src/main/resources/config/sql/V4_1_0003__Update_Table.sql

@@ -0,0 +1,7 @@
+-- 更新应用表
+ALTER TABLE "T_APPLY_INFO" ADD "managerOrgId" VARCHAR2(300 BYTE)  NULL;
+ALTER TABLE "T_APPLY_INFO" ADD "managerOrgName" VARCHAR2(765 BYTE)  NULL;
+-- 更新服务表
+ALTER TABLE "T_SERVICE_RESOURCE" ADD "managerUnitId" VARCHAR2(765 BYTE)  NULL;
+ALTER TABLE "T_SERVICE_RESOURCE" ADD "managerUnit" VARCHAR2(765 BYTE)  NULL;
+ALTER TABLE "T_SERVICE_RESOURCE" ADD "managerUnitCode" VARCHAR2(300 BYTE)  NULL;