diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java index 7f227999c..f6fba2f10 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java @@ -9,6 +9,7 @@ import com.jero.common.util.oConvertUtils; import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.ota.entity.OtaManageApplyEO; +import com.jero.modules.ota.entity.OtaManagePermission; import com.jero.modules.ota.entity.OtaManageReceive; import com.jero.modules.ota.entity.OtaManageReceiveNsdpEO; import com.jero.modules.ota.enums.OtaCarEnum; @@ -17,6 +18,7 @@ import com.jero.modules.ota.enums.OtaStatusEnum; import com.jero.modules.ota.mapper.OtaManageApplyEOMapper; import com.jero.modules.ota.service.IOtaManageApplyEOService; import com.jero.modules.ota.service.IOtaManageHistoryService; +import com.jero.modules.ota.service.IOtaManagePermissionService; import com.jero.modules.ota.vo.AllCarExportCnVO; import com.jero.modules.ota.vo.AllCarExportEnVO; import com.jero.modules.ota.vo.OneCarExportCnVO; @@ -83,6 +85,8 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl omrList = otaManageReceiveService.getReceiveByplanned(id); - List appliedVehicleProjectList = omrList.stream() - .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject())) - .map(OtaManageReceive::getAppliedVehicleProject).distinct().collect(Collectors.toList()); - Map appMap = new HashMap<>(); - for (String appStr : appliedVehicleProjectList) { - if(StringUtils.isNotEmpty(appStr)){ - String[] appStrs = appStr.split(" "); + if (StringUtils.isNotEmpty(id)) { + //根据版本查出所有vdr + List omrList = otaManageReceiveService.getReceiveByplanned(id); + List appliedVehicleProjectList = omrList.stream() + .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject())) + .map(OtaManageReceive::getAppliedVehicleProject).distinct().collect(Collectors.toList()); + Map appMap = new HashMap<>(); + for (String appStr : appliedVehicleProjectList) { + if (StringUtils.isNotEmpty(appStr)) { + String[] appStrs = appStr.split(","); + for (String str : appStrs) { + String[] s = str.split(" "); + if (appStrs.length == 1) { + if (!appMap.containsKey(s[0])) { + appMap.put(s[0], null); + } + } else if (s.length == 2) { + String projectName = s[0].toUpperCase(Locale.ROOT); + Set appSet = appMap.get(projectName); + if (ObjectUtils.isEmpty(appSet)) { + appSet = new HashSet(); + } + if(s[1].equals("CN")){ + appSet.add("China"); + }else if(s[1].equals("RHD")){ + appSet.add("UK"); + }else{ + appSet.add(s[1]); + } + appMap.put(projectName, appSet); + } else if (s.length == 3) { + String projectName = s[0].toUpperCase(Locale.ROOT); + Set appSet = appMap.get(projectName); + if (ObjectUtils.isEmpty(appSet)) { + appSet = new HashSet(); + } + if(s[2].equals("CN")){ + appSet.add("China"); + }else if(s[2].equals("RHD")){ + appSet.add("UK"); + }else{ + appSet.add(s[2]); + } + appMap.put(projectName, appSet); + } + } + } } + //查询所有NT2平台的项目 + ProjectLibraryBase plbSearch = new ProjectLibraryBase(); + plbSearch.setDigitalPlatform("NT2"); + List plbList = projectLibraryBaseService.getList(plbSearch); + //存储符合条件的项目中Studio的用户ID + Set matchStudioSet = new HashSet(); + for (ProjectLibraryBase plb : plbList) { + boolean flag = false; + if (appMap.containsKey("All")) { + matchStudioSet.add(plb.getStudioEngineer()); + continue; + } + String targetMarket = plb.getTargetMarket(); + String projectName = plb.getProjectName().toUpperCase(Locale.ROOT); + String[] targetMarkets = targetMarket.split(","); + for (String tm : targetMarkets) { + if ((appMap.containsKey("CN") && tm.equals("China")) + || (appMap.containsKey("EU") && tm.equals("EU")) + || (appMap.containsKey("RHD") && tm.equals("UK"))) { + //三个ALL的市场类型 + matchStudioSet.add(plb.getStudioEngineer()); + continue; + } + if(appMap.containsKey(projectName)){ + Set appSet = appMap.get(projectName); + if(appSet.contains(tm)){ + matchStudioSet.add(plb.getStudioEngineer()); + continue; + } + } + } + } + //TODO 给studio发消息 + List ompList = new ArrayList<>(); + for (String studioId : matchStudioSet) { + OtaManagePermission omp = new OtaManagePermission(); + omp.setApplyId(id); + omp.setUserId(studioId); + ompList.add(omp); + } + otaManagePermissionService.saveBatch(ompList); } - //查询所有NT2平台的项目 - ProjectLibraryBase plb = new ProjectLibraryBase(); - plb.setDigitalPlatform("NT2"); - List plbList = projectLibraryBaseService.getList(plb); - - }