|
@@ -4,6 +4,8 @@ package com.dragoninfo.dcuc.app.service.impl;
|
|
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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.dragoninfo.dcuc.app.dto.AppResourceDTO;
|
|
import com.dragoninfo.dcuc.app.dto.AppResourceDTO;
|
|
import com.dragoninfo.dcuc.app.dto.MenuResourceDTO;
|
|
import com.dragoninfo.dcuc.app.dto.MenuResourceDTO;
|
|
import com.dragoninfo.dcuc.app.dto.ResourceDTO;
|
|
import com.dragoninfo.dcuc.app.dto.ResourceDTO;
|
|
@@ -25,9 +27,8 @@ import com.dragonsoft.duceap.base.exception.ApplicationException;
|
|
import com.dragonsoft.duceap.core.entity.page.PageImpl;
|
|
import com.dragonsoft.duceap.core.entity.page.PageImpl;
|
|
import com.dragonsoft.duceap.core.entity.page.PageRequest;
|
|
import com.dragonsoft.duceap.core.entity.page.PageRequest;
|
|
import com.dragonsoft.duceap.core.search.Searchable;
|
|
import com.dragonsoft.duceap.core.search.Searchable;
|
|
-import com.dragonsoft.duceap.core.search.enums.SearchOperator;
|
|
|
|
import com.dragonsoft.duceap.mybaitsplus.core.services.BaseMybatisService;
|
|
import com.dragonsoft.duceap.mybaitsplus.core.services.BaseMybatisService;
|
|
-import org.apache.commons.collections.map.HashedMap;
|
|
|
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
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.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
@@ -84,7 +85,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ApplyInfo insertAppResource(AppResourceDTO dto) {
|
|
public ApplyInfo insertAppResource(AppResourceDTO dto) {
|
|
- return (ApplyInfo) insertResource(dto);
|
|
|
|
|
|
+ ApplyInfo applyInfo = (ApplyInfo) insertResource(dto);
|
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
|
+ map.put(applyInfo.getApplyCode(),applyInfo.getId());
|
|
|
|
+ batchInsertMenu(dto.getMenusResources(),map);
|
|
|
|
+ return applyInfo;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -101,6 +106,12 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
ApplyInfo applyInfo = (ApplyInfo) object;
|
|
ApplyInfo applyInfo = (ApplyInfo) object;
|
|
apps.add(applyInfo);
|
|
apps.add(applyInfo);
|
|
}
|
|
}
|
|
|
|
+ List<MenuResourceDTO> menuDTOList = list.stream()
|
|
|
|
+ .map(AppResourceDTO::getMenusResources)
|
|
|
|
+ .flatMap(List::stream)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ Map<String, String> codeToIdMap = apps.stream().collect(Collectors.toMap(item -> item.getApplyCode(), item -> item.getId()));
|
|
|
|
+ batchInsertMenu(menuDTOList,codeToIdMap);
|
|
return apps;
|
|
return apps;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -125,6 +136,12 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return objects;
|
|
return objects;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据对方提供机构编码,承建单位编码,批量获取orgId和manufacturerId
|
|
|
|
+ * @param list
|
|
|
|
+ * @param <T> ResourceDTO
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private <T extends ResourceDTO> List<T> setOrgIdsAndManIds(List<T> list) {
|
|
private <T extends ResourceDTO> List<T> setOrgIdsAndManIds(List<T> list) {
|
|
//根据对方提供机构编码,承建单位编码,批量获取orgId和manufacturerId
|
|
//根据对方提供机构编码,承建单位编码,批量获取orgId和manufacturerId
|
|
List<String> unitCodes = new ArrayList<>();
|
|
List<String> unitCodes = new ArrayList<>();
|
|
@@ -134,7 +151,7 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
unitCodes.add(unitCode);
|
|
unitCodes.add(unitCode);
|
|
orgCodes.add(resourceDTO.getBuildUnitCode());
|
|
orgCodes.add(resourceDTO.getBuildUnitCode());
|
|
}
|
|
}
|
|
- Map<String, String> orgIds = getOrgorgIds(orgCodes);
|
|
|
|
|
|
+ Map<String, String> orgIds = getOrgIds(orgCodes);
|
|
Map<String, String> manufacturerIds = getManufacturerIds(unitCodes);
|
|
Map<String, String> manufacturerIds = getManufacturerIds(unitCodes);
|
|
for (ResourceDTO dto : list) {
|
|
for (ResourceDTO dto : list) {
|
|
String orgId = orgIds.get(dto.getBuildUnitCode());
|
|
String orgId = orgIds.get(dto.getBuildUnitCode());
|
|
@@ -146,30 +163,21 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
}
|
|
}
|
|
|
|
|
|
private Map<String, String> getManufacturerIds(List<String> list) {
|
|
private Map<String, String> getManufacturerIds(List<String> list) {
|
|
- Map<String, String> codeMaps = new HashedMap();
|
|
|
|
- Searchable searchable = Searchable.newSearchable();
|
|
|
|
- searchable.addSearchFilter("code", SearchOperator.in, list);
|
|
|
|
- List<ManufacturerInfo> manufacturerInfos = manufacturerInfoService.findAll(searchable);
|
|
|
|
- for (ManufacturerInfo info : manufacturerInfos) {
|
|
|
|
- codeMaps.put(info.getCode(), info.getId());
|
|
|
|
- }
|
|
|
|
- return codeMaps;
|
|
|
|
|
|
+ List<ManufacturerInfo> manufacturerInfos = manufacturerInfoService.getByCodes(list);
|
|
|
|
+ return manufacturerInfos.stream().collect(Collectors.toMap(ManufacturerInfo::getCode, ManufacturerInfo::getId));
|
|
}
|
|
}
|
|
|
|
|
|
- private Map<String, String> getOrgorgIds(List<String> list) {
|
|
|
|
- Map<String, String> codeMaps = new HashMap<>();
|
|
|
|
- Searchable searchable = Searchable.newSearchable();
|
|
|
|
- searchable.addSearchFilter("code", SearchOperator.in, list);
|
|
|
|
- List<OrgInfo> orgInfos = orgInfoFacade.findDeletedOrg(searchable.toSearchDTO());
|
|
|
|
- for (OrgInfo info : orgInfos) {
|
|
|
|
- codeMaps.put(info.getCode(), info.getId());
|
|
|
|
- }
|
|
|
|
- return codeMaps;
|
|
|
|
|
|
+ private Map<String, String> getOrgIds(List<String> list) {
|
|
|
|
+ List<OrgInfo> orgInfos = orgInfoFacade.getOrgsByCodes(list);
|
|
|
|
+ return orgInfos.stream().collect(Collectors.toMap(OrgInfo::getCode, OrgInfo::getId));
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<ServiceResource> getServiceByServiceCodes(List<String> list) {
|
|
public List<ServiceResource> getServiceByServiceCodes(List<String> list) {
|
|
- return null;
|
|
|
|
|
|
+ LambdaQueryWrapper<ServiceResource> query = Wrappers.lambdaQuery();
|
|
|
|
+ query.select()
|
|
|
|
+ .in(ServiceResource::getServiceCode,list);
|
|
|
|
+ return serviceResourceMapper.selectList(query);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -194,6 +202,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 批量插入应用的菜单数据
|
|
|
|
+ * @param menus MenuResourceDTO 菜单DTOs
|
|
|
|
+ * @param codeToIdMap appCode-appId 键值对Map
|
|
|
|
+ */
|
|
private void batchInsertMenu(List<MenuResourceDTO> menus, Map<String, String> codeToIdMap) {
|
|
private void batchInsertMenu(List<MenuResourceDTO> menus, Map<String, String> codeToIdMap) {
|
|
List<AppFunInfo> funList = new ArrayList<>();
|
|
List<AppFunInfo> funList = new ArrayList<>();
|
|
for (MenuResourceDTO dto : menus) {
|
|
for (MenuResourceDTO dto : menus) {
|
|
@@ -207,9 +220,16 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
}
|
|
}
|
|
funList.add(appFunInfo);
|
|
funList.add(appFunInfo);
|
|
}
|
|
}
|
|
- iAppFunInfoFacade.batchSave(funList);
|
|
|
|
|
|
+ if(CollectionUtils.isNotEmpty(funList)){
|
|
|
|
+ iAppFunInfoFacade.batchSave(funList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 将资源同步对象转为菜单DTO
|
|
|
|
+ * @param resourceSync ResourceSync 资源同步数据
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private List<MenuResourceDTO> getMenuResourceDTOs(ResourceSync resourceSync) {
|
|
private List<MenuResourceDTO> getMenuResourceDTOs(ResourceSync resourceSync) {
|
|
List<MenuResourceDTO> list = new ArrayList<>();
|
|
List<MenuResourceDTO> list = new ArrayList<>();
|
|
String content = resourceSync.getContent();
|
|
String content = resourceSync.getContent();
|
|
@@ -227,6 +247,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 将资源同步对象转为服务资源DTO
|
|
|
|
+ * @param resourceSync ResourceSync 资源同步数据
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private ServiceResourceDTO getServiceResourceDTO(ResourceSync resourceSync) {
|
|
private ServiceResourceDTO getServiceResourceDTO(ResourceSync resourceSync) {
|
|
String content = resourceSync.getContent();
|
|
String content = resourceSync.getContent();
|
|
JSONObject ctj = JSON.parseObject(content);
|
|
JSONObject ctj = JSON.parseObject(content);
|
|
@@ -244,6 +269,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return dto;
|
|
return dto;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 将资源同步对象转为应用资源DTO
|
|
|
|
+ * @param resourceSync ResourceSync 资源同步数据
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private AppResourceDTO getAppResourceDTO(ResourceSync resourceSync) {
|
|
private AppResourceDTO getAppResourceDTO(ResourceSync resourceSync) {
|
|
String content = resourceSync.getContent();
|
|
String content = resourceSync.getContent();
|
|
AppResourceDTO dto = new AppResourceDTO();
|
|
AppResourceDTO dto = new AppResourceDTO();
|
|
@@ -275,7 +305,7 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
|
|
|
|
/**
|
|
/**
|
|
* 保存应用、服务资源
|
|
* 保存应用、服务资源
|
|
- * @param <T>
|
|
|
|
|
|
+ * @param <T> ResourceDTO
|
|
* @param
|
|
* @param
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -286,6 +316,12 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return resource;
|
|
return resource;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据对方提供机构编码,承建单位编码,获取orgId和manufacturerId
|
|
|
|
+ * @param dto ResourceDTO的子类
|
|
|
|
+ * @param <T>
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private <T extends ResourceDTO> T setOrgIdAndManId(T dto) {
|
|
private <T extends ResourceDTO> T setOrgIdAndManId(T dto) {
|
|
String buildUnitCode = dto.getBuildUnitCode();
|
|
String buildUnitCode = dto.getBuildUnitCode();
|
|
String contractUnitCode = dto.getContractUnitCode();
|
|
String contractUnitCode = dto.getContractUnitCode();
|
|
@@ -304,6 +340,11 @@ public class ResourceServiceImpl extends BaseMybatisService<ServiceResource,Stri
|
|
return dto;
|
|
return dto;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据各自的策略保存资源数据
|
|
|
|
+ * @param dto ResourceDTO
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private Object doInsert(ResourceDTO dto) {
|
|
private Object doInsert(ResourceDTO dto) {
|
|
Object obj;
|
|
Object obj;
|
|
String resourceType = dto.getResourceId();
|
|
String resourceType = dto.getResourceId();
|