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 afaf8ba55..9d06a74a2 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 @@ -13,7 +13,6 @@ import com.jero.modules.ota.entity.OtaManageApplyEO; import com.jero.modules.ota.entity.OtaManageHistory; 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; import com.jero.modules.ota.enums.OtaHomoImpactEnum; import com.jero.modules.ota.enums.OtaStatusEnum; @@ -30,10 +29,12 @@ import com.jero.modules.ota.vo.OtaExportCnVO; import com.jero.modules.ota.vo.OtaExportEnVO; import com.jero.modules.ota.vo.VersionVO; import com.jero.modules.project.entity.ProjectLibraryBase; +import com.jero.modules.project.entity.ProjectNameInfoEO; import com.jero.modules.project.entity.ProjectTaskPlanning; import com.jero.modules.project.enums.CertificationProgressEnum; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; import com.jero.modules.project.service.IProjectLibraryBaseService; +import com.jero.modules.project.service.impl.ProjectNameInfoEOServiceImpl; import com.jero.modules.project.service.impl.ProjectTaskPlanningServiceImpl; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; @@ -60,7 +61,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.text.Collator; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -108,6 +108,8 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getAllCarPage(OtaManageApplyEO otaManageApplyEO) { List otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO); + //studio数据权限 + if(isStudio()) { + otaManageApplyEOList = getStudioData(otaManageApplyEO, otaManageApplyEOList); + } if (!otaManageApplyEOList.isEmpty()) { for (OtaManageApplyEO manageApplyEO : otaManageApplyEOList) { manageApplyEO.setVdr(manageApplyEO.getId()); @@ -306,6 +312,42 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getStudioData(OtaManageApplyEO otaManageApplyEO, List otaManageApplyEOList) { + List list = new ArrayList<>(); + List studioCarList = getStudioCarList(otaManageApplyEO.getPlannedBpLaunchBatch()); + for (String carMarket : studioCarList) { + String[] conditionSplit = carMarket.split(" "); + + for (OtaManageApplyEO manageApplyEO : otaManageApplyEOList) { + String appliedVehicleProject = manageApplyEO.getAppliedVehicleProject(); + if (StringUtils.isNotBlank(appliedVehicleProject)) { + String[] appliedVehicleProjectArr = appliedVehicleProject.split(","); + for (String appliedVehicleProjectTemp : appliedVehicleProjectArr) { + String[] split = appliedVehicleProjectTemp.split(" "); + if (split.length == 1) { + list.add(manageApplyEO); + break; + } else if (split.length == 2) { + if (Arrays.equals(conditionSplit, split)) { + list.add(manageApplyEO); + break; + } + } else if (split.length == 3) { + List listTemp = Arrays.asList(split); + List conditionList = Arrays.asList(conditionSplit); + if (listTemp.containsAll(conditionList)) { + list.add(manageApplyEO); + break; + } + } + } + } + } + } + otaManageApplyEOList= list; + return otaManageApplyEOList; + } + private void heartSort(OtaManageApplyEO otaManageApplyEO, List otaManageApplyEOList) { Collator comparator = Collator.getInstance(Locale.CHINESE); // 软件版本, @@ -646,8 +688,14 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getCarList(String cut, String plannedBpLaunchBatch) { + Set set = new HashSet<>(); + if(isStudio()){ + List nameInfoEOList = projectNameInfoEOService.list(); + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //studio在项目库所拥有的权限的项目 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getStudioEngineer,currentUser.getId()); + List libraryBaseList = projectLibraryBaseService.list(wrapper); + + for (ProjectLibraryBase projectLibraryBase : libraryBaseList) { + String carId = projectLibraryBase.getProjectNameId(); + String marketId = projectLibraryBase.getTargetMarket(); + List projectNameInfoEOList = nameInfoEOList.stream().filter(e -> e.getId().equals(carId)).collect(Collectors.toList()); + String finalMarket = marketId; + List dictModelList = targetMarketList.stream().filter(e -> e.getValue().equals(finalMarket)).collect(Collectors.toList()); + if(!projectNameInfoEOList.isEmpty() && !dictModelList.isEmpty()){ + String market = dictModelList.get(0).getTextEn(); + if ("China".equals(market)) { + //项目库里市场存的是China 不是CN + market = "CN"; + } else if ("UK".equals(market)) { + //RHD目前代表UK + market = "RHD"; + } + String car = projectNameInfoEOList.get(0).getProjectName(); + if("FORCE".equals(car)){ + car = "Force"; + } + set.add(car + " " + market); + } + } + } List otaManageApplyEOS = this.getBaseMapper().getOtaCarList(plannedBpLaunchBatch); List result = new LinkedList<>(); if (CutEnum.CN.getValue().equals(cut)) { @@ -862,6 +944,75 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getStudioCarList(String plannedBpLaunchBatch) { + Set set = new HashSet<>(); + List nameInfoEOList = projectNameInfoEOService.list(); + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //studio在项目库所拥有的权限的项目 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getStudioEngineer, currentUser.getId()); + List libraryBaseList = projectLibraryBaseService.list(wrapper); + + for (ProjectLibraryBase projectLibraryBase : libraryBaseList) { + String carId = projectLibraryBase.getProjectNameId(); + String marketId = projectLibraryBase.getTargetMarket(); + List projectNameInfoEOList = nameInfoEOList.stream().filter(e -> e.getId().equals(carId)).collect(Collectors.toList()); + String finalMarket = marketId; + List dictModelList = targetMarketList.stream().filter(e -> e.getValue().equals(finalMarket)).collect(Collectors.toList()); + if (!projectNameInfoEOList.isEmpty() && !dictModelList.isEmpty()) { + String market = dictModelList.get(0).getTextEn(); + if ("China".equals(market)) { + //项目库里市场存的是China 不是CN + market = "CN"; + } else if ("UK".equals(market)) { + //RHD目前代表UK + market = "RHD"; + } + String car = projectNameInfoEOList.get(0).getProjectName(); + if("FORCE".equals(car)){ + car = "Force"; + } + set.add(car + " " + market); + } + } + List otaManageApplyEOS = this.getBaseMapper().getOtaCarList(plannedBpLaunchBatch); + List result = new LinkedList<>(); + if (!otaManageApplyEOS.isEmpty()) { + + //适用车型 appliedVehicleProject + List appliedVehicleProjectList = otaManageApplyEOS.stream() + .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject())) + .map(OtaManageApplyEO::getAppliedVehicleProject).distinct().collect(Collectors.toList()); + //过滤掉特殊的适用车型 + List otaNameList = OtaCarEnum.getOtaNameList(); + + for (String appliedVehicleProject : appliedVehicleProjectList) { + for (String s : appliedVehicleProject.split(",")) { + String[] split = s.split(" "); + if (split.length == 2) { + if (!otaNameList.contains(s)) { + result.add(s); + } + } else if (split.length == 3) { + result.add(split[0] + " " + split[2]); + } + } + } + } + result = result.stream().distinct().collect(Collectors.toList()); + result.retainAll(set); return result; } @@ -911,13 +1062,13 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getVersionInfo(String vdr, String car,String cut) { + public List getVersionInfo(String vdr, String car, String cut) { //认证进度数据字典 certification_progress List regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress"); @@ -972,12 +1123,12 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl list = new LinkedList<>(); for (String s : market.split(",")) { List collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList()); - if(!collect.isEmpty()){ + if (!collect.isEmpty()) { list.add(collect.get(0).getTextEn()); } } - if(!list.isEmpty()){ - market = StringUtils.join(list,","); + if (!list.isEmpty()) { + market = StringUtils.join(list, ","); } if (StringUtils.isBlank(versionVO.getProjectVersion())) { versionVO.setVersionName(versionVO.getCar() + "-" + market); @@ -988,9 +1139,9 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl collect = regionDictList.stream() .filter(e -> e.getItemValue().equals(versionVO.getAttestationSchedule())).collect(Collectors.toList()); - if(CutEnum.CN.getValue().equals(cut)){ + if (CutEnum.CN.getValue().equals(cut)) { versionVO.setAttestationSchedule(collect.get(0).getItemText()); - }else{ + } else { versionVO.setAttestationSchedule(collect.get(0).getEnName()); } } @@ -1142,20 +1293,48 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl queryProjectName(List list) { + public OtaManageApplyEOServiceImpl() { + super(); + } + + private Map queryProjectName(List list, String cut) { + List regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); Map res = new HashMap<>(); List idList = list.stream() .filter(e -> StringUtils.isNotBlank(e.getProjectVersion())) .map(OtaManageApplyEO::getProjectVersion).distinct().collect(Collectors.toList()); List proList = projectLibraryBaseService.getListByIds(idList); for (ProjectLibraryBase plb : proList) { + String market = plb.getTargetMarket(); + List strlist = new LinkedList<>(); + for (String s : market.split(",")) { + List collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList()); + if (!collect.isEmpty()) { + strlist.add(collect.get(0).getTextEn()); + } + } + if (!strlist.isEmpty()) { + market = StringUtils.join(strlist, ","); + } + plb.setTargetMarket(market); res.put(plb.getId(), plb.getShowName()); + } + if (CutEnum.CN.getValue().equals(cut)) { + res.put(ComplianceFlowStatusEnum.UNINVOLVED.getValue(), ComplianceFlowStatusEnum.UNINVOLVED.getCnName()); + } else { + res.put(ComplianceFlowStatusEnum.UNINVOLVED.getValue(), ComplianceFlowStatusEnum.UNINVOLVED.getEnName()); + } + return res; } @Override public void temporarySave(List list, String cut) { + temporarySave(list, false, cut); + } + + public void temporarySave(List list, boolean isSubmit, String cut) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (CollectionUtils.isNotEmpty(list)) { List idList = list.stream() @@ -1167,7 +1346,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl queryProNameList = new ArrayList<>(); queryProNameList.addAll(omaOldList); queryProNameList.addAll(list); - Map proNameMap = queryProjectName(queryProNameList); + Map proNameMap = queryProjectName(queryProNameList, cut); //历史记录 List hisList = new ArrayList<>(); List saveList = new ArrayList<>(); @@ -1190,12 +1369,16 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut,List plbEoList) { + public List> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut, List plbEoList) { List> result = new ArrayList<>(); List projectLibraryBaseList = new ArrayList<>(); - if(!plbEoList.isEmpty()){ + if (!plbEoList.isEmpty()) { projectLibraryBaseList = plbEoList.stream().filter(e -> e.getId().equals(projectId)).collect(Collectors.toList()); } List receiveList = this.getBaseMapper().getListByProjectId(projectId, plannedBpLaunchBatch); @@ -1587,7 +1771,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl