diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageApplyEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageApplyEO.java index 5408c129a..72191756b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageApplyEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageApplyEO.java @@ -211,6 +211,16 @@ public class OtaManageApplyEO implements Serializable { @ApiModelProperty(value = "导出文件名") private String exportName; + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "软件版本创建时间") + private Date createdAt; + + @TableField(exist = false) + @ApiModelProperty(value = "发布类型") + private String releaseType; + @TableField(exist = false) @ApiModelProperty(value = "中英文切换") private String cut; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageReceiveNsdp.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageReceiveNsdp.java index c4d1c3a8a..d4b581f72 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageReceiveNsdp.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaManageReceiveNsdp.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -71,6 +72,12 @@ public class OtaManageReceiveNsdp implements Serializable { @ApiModelProperty(value = "发布版本") private String releaseName; + + /**发布版本*/ + @Excel(name = "适用车型", width = 15) + @ApiModelProperty(value = "适用车型") + private String vehicle; + /**发布类型*/ @Excel(name = "发布类型", width = 15) @ApiModelProperty(value = "发布类型") @@ -93,4 +100,8 @@ public class OtaManageReceiveNsdp implements Serializable { @ApiModelProperty(value = "创建时间") private java.util.Date createdAt; + + @TableField(exist = false) + private String market; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/job/OtaDataUpdate.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/job/OtaDataUpdate.java index a8120b94c..5d25c3f37 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/job/OtaDataUpdate.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/job/OtaDataUpdate.java @@ -15,6 +15,8 @@ import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Service public class OtaDataUpdate implements Job { @@ -34,6 +36,11 @@ public class OtaDataUpdate implements Job { */ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //截取版本号中前面数字部分 + String regex = "BL\\d+\\.+\\d+\\.(\\d+)"; + Pattern pattern = Pattern.compile(regex); + + List omrSyncList = otaManageReceiveService.getReceiveSync(); List omrList = otaManageReceiveService.queryList(); @@ -66,6 +73,13 @@ public class OtaDataUpdate implements Job { } if (addFlag) { //同步数据中新增 + String plannedBpLaunchBatch = omrSync.getPlannedBpLaunchBatch(); + if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) { + Matcher matcher = pattern.matcher(plannedBpLaunchBatch); + if (matcher.find()) { + omrSync.setPlannedBpLaunchBatch(matcher.group()); + } + } addList.add(omrSync); } } @@ -115,6 +129,13 @@ public class OtaDataUpdate implements Job { } if (addFlag) { //同步数据中新增 + String releaseName = omrnSync.getReleaseName(); + if (StringUtils.isNotEmpty(releaseName)) { + Matcher matcher = pattern.matcher(releaseName); + if (matcher.find()) { + omrnSync.setReleaseName(matcher.group()); + } + } addNsdpList.add(omrnSync); } //找到最快来临的发布时间 @@ -147,7 +168,7 @@ public class OtaDataUpdate implements Job { List dateUpdateList = new ArrayList<>(); List omrListForDate = otaManageReceiveService.queryList(); for (OtaManageReceive omr : omrListForDate) { - if(releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())){ + if (releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())) { omr.setReleaseDate(sdf.format(releaceDateMap.get(omr.getPlannedBpLaunchBatch()))); dateUpdateList.add(omr); } @@ -155,15 +176,13 @@ public class OtaDataUpdate implements Job { if (CollectionUtils.isNotEmpty(dateUpdateList)) { otaManageReceiveService.updateBatchById(dateUpdateList); } + System.out.println("===============================OtaDataUpdate定时任务结束==============================="); } private boolean compareReceive(OtaManageReceiveNsdp omrn, OtaManageReceiveNsdp omrnSync) { if (!StringUtils.equals(omrn.getPlatformName(), omrnSync.getPlatformName())) { return false; } - if (!StringUtils.equals(omrn.getReleaseName(), omrnSync.getReleaseName())) { - return false; - } if (!StringUtils.equals(omrn.getReleaseType(), omrnSync.getReleaseType())) { return false; } @@ -173,13 +192,13 @@ public class OtaDataUpdate implements Job { if (!StringUtils.equals(omrn.getReleaseDate(), omrnSync.getReleaseDate())) { return false; } + if (!StringUtils.equals(omrn.getVehicle(), omrnSync.getVehicle())) { + return false; + } return true; } private boolean compareReceive(OtaManageReceive omr, OtaManageReceive omrSync) { - if (!StringUtils.equals(omr.getPlannedBpLaunchBatch(), omrSync.getPlannedBpLaunchBatch())) { - return false; - } if (!StringUtils.equals(omr.getSummary(), omrSync.getSummary())) { return false; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java index 1e4ffbc38..938e33eb9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java @@ -61,4 +61,6 @@ public interface IOtaManageReceiveNsdpService extends IService getOtaManageReceiveNsdpSync(); + + List getListByReleaseName(String releaseName); } 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 3d5ba5b49..6dae49913 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 @@ -11,18 +11,12 @@ import com.jero.common.util.oConvertUtils; import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; -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.*; import com.jero.modules.ota.enums.OtaCarEnum; import com.jero.modules.ota.enums.OtaHomoImpactEnum; 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.service.IOtaManageReceiveService; +import com.jero.modules.ota.service.*; import com.jero.modules.ota.vo.AllCarExportCnVO; import com.jero.modules.ota.vo.AllCarExportEnVO; import com.jero.modules.ota.vo.OneCarExportCnVO; @@ -63,6 +57,7 @@ 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 +103,8 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getNsdpList(OtaManageApplyEO otaManageApplyEO) { + Date today = new Date(); + List resList = new ArrayList<>(); + List dataList = otaManageReceiveNsdpService.queryList(); + Map> dataMap = dataList.stream().collect(Collectors.groupingBy(OtaManageReceiveNsdp::getReleaseName)); + + for (String rn : dataMap.keySet()) { + if(StringUtils.isNotEmpty(otaManageApplyEO.getPlannedBpLaunchBatch())&&!otaManageApplyEO.getPlannedBpLaunchBatch().equals(rn)){ + continue; + } + List valList = dataMap.get(rn); + if (CollectionUtils.isNotEmpty(valList)) { + Date releaseDate = null; + //市场 + Set marketSet = new HashSet<>(); + //车型 + Set vehicleSet = new HashSet<>(); + for (OtaManageReceiveNsdp omrn : valList) { + //找到最快来临的发布时间 + try { + Date syncDate = sdf.parse(omrn.getReleaseDate()); + if (null == releaseDate) { + releaseDate = syncDate; + } else { + if (syncDate.after(today) && syncDate.before(releaseDate)) { + releaseDate = syncDate; + } + } + } catch (ParseException e) { + e.printStackTrace(); + } + String appliedVehicleProject = omrn.getVehicle(); + if(StringUtils.isNotEmpty(appliedVehicleProject)){ + for (String s : appliedVehicleProject.split(",")) { + String[] split = s.split(" "); + if (split.length == 3) { + vehicleSet.add(split[0]+" "+split[2]); + marketSet.add(split[2]); + } + } + } + } + if(ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart()) && ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())){ + if(ObjectUtils.isEmpty(releaseDate) || otaManageApplyEO.getSoftwareIssueTimeStart().after(releaseDate) || otaManageApplyEO.getSoftwareIssueTimeEnd().before(releaseDate)){ + continue; + } + } + if (StringUtils.isNotEmpty(otaManageApplyEO.getAppliedVehicleProject()) && !vehicleSet.contains(otaManageApplyEO.getAppliedVehicleProject())) { + continue; + } + if (StringUtils.isNotEmpty(otaManageApplyEO.getMarket()) && !marketSet.contains(otaManageApplyEO.getMarket())) { + continue; + } + OtaManageReceiveNsdp omrn = valList.get(0); + if (StringUtils.isNotEmpty(otaManageApplyEO.getReleaseType()) && !otaManageApplyEO.getReleaseType().equals(omrn.getReleaseType())) { + continue; + } + OtaManageApplyEO oma = new OtaManageApplyEO(); + oma.setId(omrn.getId()); + oma.setPlannedBpLaunchBatch(omrn.getReleaseName()); + if (!marketSet.isEmpty()) { + oma.setMarket(StringUtils.join(marketSet, ",")); + } + if (!vehicleSet.isEmpty()) { + oma.setAppliedVehicleProject(StringUtils.join(vehicleSet, ",")); + } + if (ObjectUtils.isNotEmpty(releaseDate)) { + oma.setReleaseDate(sdf.format(releaseDate)); + } + oma.setCreatedAt(omrn.getCreatedAt()); + oma.setReleaseType(omrn.getReleaseType()); + resList.add(oma); + } + } + return resList; + } + + /** * OTA管理列表和全车型列表-分页列表查询 * @@ -208,7 +284,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getOtaPage(OtaManageApplyEO otaManageApplyEO) { LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); boolean otaManager = isOtaManager(); - List otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO); + List otaManageApplyEOList = this.getNsdpList(otaManageApplyEO); List dataList = new ArrayList<>(); //去跟manager和studio权限 @@ -223,80 +299,80 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl result = new ArrayList<>(); +// List result = new ArrayList<>(); +// if (!dataList.isEmpty()) { +// List otaNameList = OtaCarEnum.getOtaNameList(); +// List plannedBpLaunchBatchList = dataList.stream() +// .filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch())) +// .map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList()); +// if (!plannedBpLaunchBatchList.isEmpty()) { +// for (String plannedBpLaunchBatch : plannedBpLaunchBatchList) { +// OtaManageApplyEO manageApplyEO = new OtaManageApplyEO(); +// manageApplyEO.setPlannedBpLaunchBatch(plannedBpLaunchBatch); +// manageApplyEO.setId(plannedBpLaunchBatch); +// +// List otaManageApplyEOS = dataList.stream() +// .filter(e -> plannedBpLaunchBatch.equals(e.getPlannedBpLaunchBatch())).collect(Collectors.toList()); +// if (!otaManageApplyEOS.isEmpty()) { +// //发布时间 +// manageApplyEO.setReleaseDate(otaManageApplyEOS.get(0).getReleaseDate()); +// +// List appliedVehicleProjectList = otaManageApplyEOS.stream() +// .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject())) +// .map(OtaManageApplyEO::getAppliedVehicleProject).collect(Collectors.toList()); +// List carList = new ArrayList<>(); +// for (String appliedVehicleProject : appliedVehicleProjectList) { +// carList.addAll(Arrays.asList(appliedVehicleProject.split(","))); +// } +// if (!carList.isEmpty()) { +// //适用车型 +// carList = carList.stream().distinct().collect(Collectors.toList()); +// manageApplyEO.setAppliedVehicleProject(StringUtils.join(carList, ",")); +// //市场 +// Set marketSet = new HashSet<>(); +// for (String appliedVehicleProject : carList) { +// if(otaNameList.contains(appliedVehicleProject)){ +// marketSet.add(appliedVehicleProject); +// }else{ +// for (String s : appliedVehicleProject.split(",")) { +// String[] split = s.split(" "); +// if (split.length == 2) { +// if (!otaNameList.contains(s)) { +// marketSet.add(split[1]); +// } +// } else if (split.length == 3) { +// if (!otaNameList.contains(s)) { +// marketSet.add(split[2]); +// } +// } +// } +// } +// } +// if (!marketSet.isEmpty()) { +// manageApplyEO.setMarket(StringUtils.join(marketSet, ",")); +// } +// } +// } +// result.add(manageApplyEO); +// } +// } +// } +// if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart())) { +// result = result.stream() +// .filter(e -> StringUtils.isNotBlank(e.getReleaseDate()) +// && (e.getReleaseNameDate().after(otaManageApplyEO.getSoftwareIssueTimeStart()) +// || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeStart()))).collect(Collectors.toList()); +// } +// if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())) { +// result = result.stream().filter(e -> StringUtils.isNotBlank(e.getReleaseDate()) +// && (e.getReleaseNameDate().before(otaManageApplyEO.getSoftwareIssueTimeEnd()) +// || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeEnd()))).collect(Collectors.toList()); +// } if (!dataList.isEmpty()) { - List otaNameList = OtaCarEnum.getOtaNameList(); - List plannedBpLaunchBatchList = dataList.stream() - .filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch())) - .map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList()); - if (!plannedBpLaunchBatchList.isEmpty()) { - for (String plannedBpLaunchBatch : plannedBpLaunchBatchList) { - OtaManageApplyEO manageApplyEO = new OtaManageApplyEO(); - manageApplyEO.setPlannedBpLaunchBatch(plannedBpLaunchBatch); - manageApplyEO.setId(plannedBpLaunchBatch); - - List otaManageApplyEOS = dataList.stream() - .filter(e -> plannedBpLaunchBatch.equals(e.getPlannedBpLaunchBatch())).collect(Collectors.toList()); - if (!otaManageApplyEOS.isEmpty()) { - //发布时间 - manageApplyEO.setReleaseDate(otaManageApplyEOS.get(0).getReleaseDate()); - - List appliedVehicleProjectList = otaManageApplyEOS.stream() - .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject())) - .map(OtaManageApplyEO::getAppliedVehicleProject).collect(Collectors.toList()); - List carList = new ArrayList<>(); - for (String appliedVehicleProject : appliedVehicleProjectList) { - carList.addAll(Arrays.asList(appliedVehicleProject.split(","))); - } - if (!carList.isEmpty()) { - //适用车型 - carList = carList.stream().distinct().collect(Collectors.toList()); - manageApplyEO.setAppliedVehicleProject(StringUtils.join(carList, ",")); - //市场 - Set marketSet = new HashSet<>(); - for (String appliedVehicleProject : carList) { - if(otaNameList.contains(appliedVehicleProject)){ - marketSet.add(appliedVehicleProject); - }else{ - for (String s : appliedVehicleProject.split(",")) { - String[] split = s.split(" "); - if (split.length == 2) { - if (!otaNameList.contains(s)) { - marketSet.add(split[1]); - } - } else if (split.length == 3) { - if (!otaNameList.contains(s)) { - marketSet.add(split[2]); - } - } - } - } - } - if (!marketSet.isEmpty()) { - manageApplyEO.setMarket(StringUtils.join(marketSet, ",")); - } - } - } - result.add(manageApplyEO); - } - } - } - if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart())) { - result = result.stream() - .filter(e -> StringUtils.isNotBlank(e.getReleaseDate()) - && (e.getReleaseNameDate().after(otaManageApplyEO.getSoftwareIssueTimeStart()) - || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeStart()))).collect(Collectors.toList()); - } - if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())) { - result = result.stream().filter(e -> StringUtils.isNotBlank(e.getReleaseDate()) - && (e.getReleaseNameDate().before(otaManageApplyEO.getSoftwareIssueTimeEnd()) - || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeEnd()))).collect(Collectors.toList()); - } - if (!result.isEmpty()) { //表头排序 - heartSort(otaManageApplyEO, result); + heartSort(otaManageApplyEO, dataList); } - return result; + return dataList; } /** @@ -414,7 +490,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl { String e1ReleaseName = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : ""; @@ -669,6 +745,22 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl { + String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : ""; + String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : ""; + return comparator.compare(e1ReleaseType, e2ReleaseType); + }); + } else if (OrderEnum.REVERSE.getValue().equals(otaManageApplyEO.getOrderBy())) { + Collections.sort(otaManageApplyEOList, (e1, e2) -> { + String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : ""; + String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : ""; + return comparator.compare(e2ReleaseType, e1ReleaseType); + }); + } + } //备注 if ("remark".equals(otaManageApplyEO.getOrderByField())) { if (OrderEnum.POSITIVE.getValue().equals(otaManageApplyEO.getOrderBy())) { @@ -685,6 +777,13 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl { + Date e1CreatedAt = ObjectUtils.isNotEmpty(e1.getCreatedAt()) ? e1.getCreatedAt() : new Date(0); + Date e2CreatedAt = ObjectUtils.isNotEmpty(e2.getCreatedAt()) ? e2.getCreatedAt() : new Date(0); + return e2CreatedAt.compareTo(e1CreatedAt); + }); + } } private boolean hasPermission(String plannedBpLaunchBatch){ @@ -882,7 +981,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getPullDownList() { - List otaManageApplyEOS = this.getBaseMapper().getOtaCarList(null); + List otaManageApplyEOS = this.getNsdpList(new OtaManageApplyEO()); Map result = new HashMap<>(); if (!otaManageApplyEOS.isEmpty()) { //软件版本 planned_bp_launch_batch_ @@ -922,11 +1021,48 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getCarList(String cut, String plannedBpLaunchBatch) { + List dataList = otaManageReceiveNsdpService.getListByReleaseName(plannedBpLaunchBatch); + //车型 + Set vehicleSet = new HashSet<>(); + for (OtaManageReceiveNsdp omrn : dataList) { + String appliedVehicleProject = omrn.getVehicle(); + if(StringUtils.isNotEmpty(appliedVehicleProject)){ + for (String s : appliedVehicleProject.split(",")) { + String[] split = s.split(" "); + if (split.length == 3) { + String projectName = split[0]; + String market = split[2]; + vehicleSet.add(projectName + " " + market); + } + } + } + } + List resList = new ArrayList<>(); + if (CutEnum.CN.getValue().equals(cut)) { + resList.add("全部"); + } else { + resList.add("All"); + } + resList.addAll(vehicleSet); + return resList; + } + + + /** + * 下拉数据-全部和分车型(不含年款) + * + * @return + */ + /*. + @Override public List getCarList(String cut, String plannedBpLaunchBatch) { Set set = new HashSet<>(); @@ -1003,6 +1139,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getStudioCarList(String plannedBpLaunchBatch) { Set set = new HashSet<>(); @@ -1231,6 +1368,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl omrList = otaManageReceiveService.getReceiveByplanned(id); List appliedVehicleProjectList = omrList.stream() @@ -1278,6 +1416,34 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl dataList = otaManageReceiveNsdpService.getListByReleaseName(id); + //车型 + Set vehicleSet = new HashSet<>(); + for (OtaManageReceiveNsdp omrn : dataList) { + String appliedVehicleProject = omrn.getVehicle(); + if(StringUtils.isNotEmpty(appliedVehicleProject)){ + for (String s : appliedVehicleProject.split(",")) { + String[] split = s.split(" "); + if (split.length == 3) { + String projectName = split[0].toUpperCase(Locale.ROOT); + String market = ""; + if (split[2].equals("CN")) { + market = "China"; + } else if (split[2].equals("RHD")) { + market = "UK"; + } else { + market = split[2]; + } + vehicleSet.add(projectName + " " + market); + } + } + } + } + //查询所有NT2平台的项目 ProjectLibraryBase plbSearch = new ProjectLibraryBase(); plbSearch.setDigitalPlatform("NT2"); @@ -1285,31 +1451,18 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl 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); + boolean flag = false; + String targetMarket = plb.getTargetMarket(); 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的市场类型 + String vehicleStr =projectName + " " + tm; + if (vehicleSet.contains(vehicleStr)) { matchStudioSet.add(plb.getStudioEngineer()); - continue; - } - if (appMap.containsKey(projectName)) { - Set appSet = appMap.get(projectName); - if (appSet.contains(tm)) { - matchStudioSet.add(plb.getStudioEngineer()); - continue; - } } } } + List ompList = new ArrayList<>(); for (String studioId : matchStudioSet) { OtaManagePermission omp = new OtaManagePermission(); @@ -1328,12 +1481,12 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl 0) { - url = backUrl + "/components/detil?plannedBpLaunchBatch=" + id + "&releaseDate=" + omrList.get(0).getReleaseDate(); + if (dataList.size() > 0) { + url = backUrl + "/components/detil?plannedBpLaunchBatch=" + id + "&releaseDate=" + dataList.get(0).getReleaseDate(); } params.put("viewBtnUrlCn", url); params.put("viewBtnUrlEn", url); - params.put("appliedVehicleProject", appMap.keySet().stream().collect(Collectors.joining(","))); + params.put("appliedVehicleProject", vehicleSet.stream().collect(Collectors.joining(","))); params.put("Initiator", " " + currentUser.getUsername()); params.put("initiatorStrCn", "发起人"); params.put("initiatorStrEn", "Initiator"); @@ -1954,7 +2107,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl pageList = getOtaPage(otaManageApplyEO); + List pageList = getNsdpList(otaManageApplyEO); List exportList = null; // 过滤选中数据 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveNsdpServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveNsdpServiceImpl.java index 14a33cf93..118c9cb12 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveNsdpServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveNsdpServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.ota.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.modules.ota.entity.OtaManageReceiveNsdp; import com.jero.modules.ota.mapper.OtaManageReceiveNsdpMapper; import com.jero.modules.ota.service.IOtaManageReceiveNsdpService; @@ -91,4 +92,12 @@ public class OtaManageReceiveNsdpServiceImpl extends ServiceImpl getOtaManageReceiveNsdpSync() { return this.getBaseMapper().getOtaManageReceiveNsdpSync(); } + + + @Override + public List getListByReleaseName(String releaseName) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OtaManageReceiveNsdp::getReleaseName, releaseName); + return this.list(queryWrapper); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index 633a99b7d..d4b7de890 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -1396,7 +1396,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService List pmEos = pmEoList.stream().filter(pmEo -> { - if(pmEo.getProjectVersion().equals("00")){ + if("00".equals(pmEo.getProjectVersion())){ return StringUtils.equals(pmEo.getProjectId(), plbEo.getId()); }else{ return StringUtils.equals(pmEo.getProjectId(), plbEo.getParentId()) && StringUtils.equals(pmEo.getProjectVersion(), plbEo.getProjectVersion()); diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index cfa34b6e2..e0d6f2a7d 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1969,4 +1969,5 @@ module.exports = { Listcreationtime:'List creation time', Chinesecharacters:'The role code cannot enter Chinese characters', alreadyexistssystem:'The role encoding already exists', + releaseType:'releaseType', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index e5c490bdf..773b0e065 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -3925,4 +3925,5 @@ module.exports = { Fileupload:'文件上传', Addresslink:'地址链接', Problemanagement:'问题管理', + releaseType:'发布类型', } \ No newline at end of file diff --git a/jero-web/src/views/otamanagement/otaAuthentication/index.vue b/jero-web/src/views/otamanagement/otaAuthentication/index.vue index b9cd3711b..ef4be56fa 100644 --- a/jero-web/src/views/otamanagement/otaAuthentication/index.vue +++ b/jero-web/src/views/otamanagement/otaAuthentication/index.vue @@ -103,6 +103,30 @@