diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageApplyEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageApplyEOController.java index d208101fd..a3a05f161 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageApplyEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageApplyEOController.java @@ -9,6 +9,7 @@ import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; import com.jero.common.util.PageUtil; import com.jero.modules.ota.entity.OtaManageApplyEO; +import com.jero.modules.ota.entity.OtaManageReceive; import com.jero.modules.ota.service.IOtaManageApplyEOService; import com.jero.modules.ota.vo.VersionVO; import io.swagger.annotations.Api; @@ -72,8 +73,9 @@ public class OtaManageApplyEOController extends JeroController pageList = otaManageApplyEOService.getOtaCarPage(otaManageApplyEO,pageNo,pageSize,cut); - return Result.OK(pageList); + List list = otaManageApplyEOService.getOtaCarPage(otaManageApplyEO, cut); + Page pages = PageUtil.getPages(pageNo, pageSize, list); + return Result.OK(pages); } /** * 下拉数据-软件版本,适用车型,市场 @@ -278,11 +280,10 @@ public class OtaManageApplyEOController extends JeroController getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut) { - List resList = otaManageApplyEOService.getStatisticalStatus(projectId, plannedBpLaunchBatch, cut); - return Result.OK("操作成功!", resList); + Map res = otaManageApplyEOService.getStatisticalStatus(projectId, plannedBpLaunchBatch, cut); + return Result.OK("操作成功!", res); } - /** * OTA管理导出excel * @@ -294,6 +295,28 @@ public class OtaManageApplyEOController extends JeroController { */ List getOtaCarPage(@Param("otaManageApplyEO") OtaManageApplyEO otaManageApplyEO); - List getReceiveByVdr(@Param("vdrList") List vdrList); - - List getByAppliedVehicleProject(@Param("appliedVehicleProject") String appliedVehicleProject); List getOtaCarList(); @@ -42,4 +39,5 @@ public interface OtaManageApplyEOMapper extends BaseMapper { List getVersionInfo(@Param("vdr") String vdr); + List getListByProjectId(@Param("projectId") String projectId,@Param("plannedBpLaunchBatch") String plannedBpLaunchBatch); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveMapper.java index d3ef85bfd..0e0cc0753 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveMapper.java @@ -13,5 +13,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @Version: V1.0 */ public interface OtaManageReceiveMapper extends BaseMapper { + List getReceiveByVdr(@Param("vdrList") List vdrList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageApplyEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageApplyEOMapper.xml index afccc9060..a4ed5c8e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageApplyEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageApplyEOMapper.xml @@ -15,6 +15,18 @@ + + - + + select * from ota_manage_receive + where id in + + #{item} + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageApplyEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageApplyEOService.java index 2c5b1e4e0..efaa5daa8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageApplyEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageApplyEOService.java @@ -1,8 +1,8 @@ package com.jero.modules.ota.service; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.ota.entity.OtaManageApplyEO; +import com.jero.modules.ota.entity.OtaManageReceive; import com.jero.modules.ota.vo.VersionVO; import org.springframework.web.servlet.ModelAndView; @@ -75,11 +75,9 @@ public interface IOtaManageApplyEOService extends IService { /** * 分车型列表-分页列表查询 * @param otaManageApplyEO - * @param pageNo - * @param pageSize * @return */ - IPage getOtaCarPage(OtaManageApplyEO otaManageApplyEO,Integer pageNo,Integer pageSize,String cut); + List getOtaCarPage(OtaManageApplyEO otaManageApplyEO,String cut); /** * 下拉数据-软件版本,适用车型,市场 * @return @@ -122,7 +120,11 @@ public interface IOtaManageApplyEOService extends IService { List getVdrListByProject(String projectId, String cut); - List getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut); + Map getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut); ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO); + + ModelAndView allCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO); + + ModelAndView oneCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveService.java index 414355008..9fb151488 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveService.java @@ -1,5 +1,6 @@ package com.jero.modules.ota.service; +import com.jero.modules.ota.entity.OtaManageApplyEO; import com.jero.modules.ota.entity.OtaManageReceive; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -58,4 +59,6 @@ public interface IOtaManageReceiveService extends IService { * @return */ List queryList(); + + List getReceiveByVdr(List vdrList); } 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 b805645f6..878544786 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 @@ -1,16 +1,15 @@ package com.jero.modules.ota.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; -import com.jero.common.util.PageUtil; 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.OtaManageReceive; import com.jero.modules.ota.entity.OtaManageReceiveNsdpEO; import com.jero.modules.ota.enums.OtaCarEnum; import com.jero.modules.ota.enums.OtaHomoImpactEnum; @@ -18,10 +17,17 @@ 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.vo.OtaExportVO; +import com.jero.modules.ota.vo.AllCarExportCnVO; +import com.jero.modules.ota.vo.AllCarExportEnVO; +import com.jero.modules.ota.vo.OneCarExportCnVO; +import com.jero.modules.ota.vo.OneCarExportEnVO; +import com.jero.modules.ota.vo.OtaExportCnVO; +import com.jero.modules.ota.vo.OtaExportEnVO; +import com.jero.modules.ota.service.IOtaManageReceiveService; import com.jero.modules.ota.vo.VersionVO; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectTaskPlanning; +import com.jero.modules.project.enums.CertificationProgressEnum; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.impl.ProjectTaskPlanningServiceImpl; import com.jero.modules.system.entity.SysDictItem; @@ -49,19 +55,7 @@ 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; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -73,8 +67,6 @@ import java.util.stream.Collectors; @Service public class OtaManageApplyEOServiceImpl extends ServiceImpl implements IOtaManageApplyEOService { - @Autowired - private OtaManageApplyEOMapper otaManageApplyEOMapper; @Autowired private ProjectTaskPlanningServiceImpl projectTaskPlanningService; @Autowired @@ -89,16 +81,15 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getByAppliedVehicleProject(String appliedVehicleProject) { - otaManageApplyEOMapper.getByAppliedVehicleProject(appliedVehicleProject); + this.getBaseMapper().getByAppliedVehicleProject(appliedVehicleProject); return new ArrayList<>(); @@ -179,14 +170,14 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getOtaPage(OtaManageApplyEO otaManageApplyEO) { - List otaManageApplyEOList = otaManageApplyEOMapper.getOtaList(otaManageApplyEO); + List otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO); if(!otaManageApplyEOList.isEmpty()){ List otaNameList = OtaCarEnum.getOtaNameList(); List plannedBpLaunchBatchList = otaManageApplyEOList.stream() .filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch())) .map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList()); if(!plannedBpLaunchBatchList.isEmpty()){ - List manageReceiveNsdpEOList = otaManageApplyEOMapper.getReleaseDate(plannedBpLaunchBatchList); + List manageReceiveNsdpEOList = this.getBaseMapper().getReleaseDate(plannedBpLaunchBatchList); for (OtaManageApplyEO manageApplyEO : otaManageApplyEOList) { manageApplyEO.setVdr(manageApplyEO.getId()); List collect = manageReceiveNsdpEOList.stream() @@ -575,13 +566,11 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getOtaCarPage(OtaManageApplyEO otaManageApplyEO, Integer pageNo, Integer pageSize,String cut) { - List otaManageApplyEOList = otaManageApplyEOMapper.getOtaCarPage(otaManageApplyEO); + public List getOtaCarPage(OtaManageApplyEO otaManageApplyEO,String cut) { + List otaManageApplyEOList = this.getBaseMapper().getOtaCarPage(otaManageApplyEO); List list = new ArrayList<>(); String carMarket = otaManageApplyEO.getAppliedVehicleProject(); if(StringUtils.isNotBlank(carMarket) && !"全部".equals(carMarket) && !otaManageApplyEOList.isEmpty()){ @@ -697,8 +686,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getPullDownList() { - List otaManageApplyEOS = otaManageApplyEOMapper.getOtaCarList(); + List otaManageApplyEOS = this.getBaseMapper().getOtaCarList(); Map result = new HashMap<>(); if(!otaManageApplyEOS.isEmpty()){ //软件版本 planned_bp_launch_batch_ @@ -753,7 +741,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getCarList() { - List otaManageApplyEOS = otaManageApplyEOMapper.getOtaCarList(); + List otaManageApplyEOS = this.getBaseMapper().getOtaCarList(); List result = new LinkedList<>(); result.add("全部"); if(!otaManageApplyEOS.isEmpty()){ @@ -804,7 +792,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl oneList = versionVOList.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList()); List twoList = versionVOList.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList()); @@ -837,7 +825,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress"); - List versionVOList = otaManageApplyEOMapper.getVersionInfo(vdr); + List versionVOList = this.getBaseMapper().getVersionInfo(vdr); List result = new LinkedList<>(); if(!versionVOList.isEmpty()){ List oneList = versionVOList.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList()); @@ -1019,60 +1007,101 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl getVdrListByProject(String projectId, String cut) { - List res = new ArrayList<>(); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(OtaManageApplyEO::getProjectVersion, projectId); - List otaManageApplyEOS = this.list(queryWrapper); - List vdrList = otaManageApplyEOS.stream() - .filter(e -> StringUtils.isNotBlank(e.getVdr())) - .map(OtaManageApplyEO::getVdr).distinct().collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(vdrList)) { - res = otaManageApplyEOMapper.getReceiveByVdr(vdrList); - List plannedBpLaunchBatchList = res.stream() - .filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch())) - .map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList()); - List manageReceiveNsdpEOList = otaManageApplyEOMapper.getReleaseDate(plannedBpLaunchBatchList); - for (OtaManageApplyEO manageApplyEO : res) { - manageApplyEO.setVdr(manageApplyEO.getId()); - List collect = manageReceiveNsdpEOList.stream() - .filter(e -> StringUtils.isNotBlank(e.getReleaseName()) - && e.getReleaseName().equals(manageApplyEO.getPlannedBpLaunchBatch())).collect(Collectors.toList()); - if (!collect.isEmpty()) { - List releaseDateList = collect.stream().map(OtaManageReceiveNsdpEO::getReleaseDate).distinct().collect(Collectors.toList()); - List list = new ArrayList<>(); - for (String s : releaseDateList) { - list.add(Integer.parseInt(s.replaceAll("-", ""))); - } - Integer max = Collections.max(list); - try { - //发布时间 - manageApplyEO.setReleaseName(sdf.format(dateFormat.parse(max.toString()))); - manageApplyEO.setReleaseNameDate(dateFormat.parse(max.toString())); - } catch (ParseException e) { - log.error(e.getMessage(), e); - } + List receiveList = this.getBaseMapper().getListByProjectId(projectId, ""); + if (CollectionUtils.isNotEmpty(receiveList)) { + receiveList = receiveList.stream() + .collect(Collectors.collectingAndThen(Collectors + .toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getPlannedBpLaunchBatch()))), ArrayList::new)); + for (OtaManageApplyEO rec : receiveList) { + if (CutEnum.CN.getValue().equals(cut)) { + rec.setAppliedVehicleProject("全部"); + } else { + rec.setAppliedVehicleProject("All"); } } } - - return res; + return receiveList; } @Override - public List getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut) { - List plannedBpLaunchBatchList = new ArrayList<>(); - plannedBpLaunchBatchList.add(plannedBpLaunchBatch); -// List receiveList = otaManageApplyEOMapper.getReceiveByplannedBpLaunchBatch(plannedBpLaunchBatchList); -// List vdrList = receiveList.stream() -// .filter(e -> StringUtils.isNotBlank(e.getId())) -// .map(OtaManageApplyEO::getId).distinct().collect(Collectors.toList()); -// QueryWrapper queryWrapper = new QueryWrapper<>(); -// queryWrapper.lambda().eq(OtaManageApplyEO::getProjectVersion, projectId); -// queryWrapper.lambda().in(OtaManageApplyEO::getVdr, vdrList); -// List otaManageApplyEOS = this.list(queryWrapper); + public Map getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut) { + List receiveList = this.getBaseMapper().getListByProjectId(projectId, plannedBpLaunchBatch); + int total = receiveList.size(); + //匹配状态 + int toBeMatched = 0;//待匹配 + int toBeApproved = 0;//待审批 + int locked = 0;//锁定 + int rejected = 0;//退回 + int toBeRematched = 0;//待重新匹配 + //认证进度 + int notStart = 0;//未开始 + int inProgress = 0;//进行中 + int testPassed = 0;//实验通过 + int testFailed = 0;//实验失败 + int notSubmitted = 0;//部件报告未提交 + int submitted = 0;//部件报告已提交 + int stored = 0;//部件报告已入库 + for (OtaManageApplyEO oma : receiveList) { + if (StringUtils.isBlank(oma.getMatchStatus()) || oma.getMatchStatus().equals(OtaStatusEnum.TO_BE_MATCHED.getKey())) { + toBeMatched++; + } else if (oma.getMatchStatus().equals(OtaStatusEnum.TO_BE_APPROVED.getKey())) { + toBeApproved++; + } else if (oma.getMatchStatus().equals(OtaStatusEnum.LOCKED.getKey())) { + locked++; + } else if (oma.getMatchStatus().equals(OtaStatusEnum.REJECTED.getKey())) { + rejected++; + } else if (oma.getMatchStatus().equals(OtaStatusEnum.TO_BE_REMATCHED.getKey())) { + toBeRematched++; + } else { + toBeMatched++; + } + if (StringUtils.isBlank(oma.getAttestationSchedule()) || oma.getAttestationSchedule().equals(CertificationProgressEnum.NOT_START.getValue())) { + notStart++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.IN_PROGRESS.getValue())) { + inProgress++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.TEST_PASSED.getValue())) { + testPassed++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.TEST_FAILED.getValue())) { + testFailed++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue())) { + notSubmitted++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue())) { + submitted++; + } else if (oma.getAttestationSchedule().equals(CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue())) { + stored++; + } else { + notStart++; + } + } - return null; + Map statisticalMap = new HashMap<>(); + statisticalMap.put("allCount", total); + List> matchStatusMapList = new ArrayList<>(); + matchStatusMapList.add(wrapStatMap("matchStatus", "matchStatusCount", OtaStatusEnum.TO_BE_MATCHED.getKey(), toBeMatched + toBeRematched)); + matchStatusMapList.add(wrapStatMap("matchStatus", "matchStatusCount", OtaStatusEnum.TO_BE_APPROVED.getKey(), toBeApproved)); + matchStatusMapList.add(wrapStatMap("matchStatus", "matchStatusCount", OtaStatusEnum.LOCKED.getKey(), locked)); + matchStatusMapList.add(wrapStatMap("matchStatus", "matchStatusCount", OtaStatusEnum.REJECTED.getKey(), rejected)); + statisticalMap.put("matchStatusMapList", matchStatusMapList); + + Map attestationScheduleMap = new HashMap<>(); + List> attestationScheduleMapList = new ArrayList<>(); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.NOT_START.getValue(), notStart)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.IN_PROGRESS.getValue(), inProgress)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.TEST_PASSED.getValue(), testPassed)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.TEST_FAILED.getValue(), testFailed)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue(), notSubmitted)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue(), submitted)); + attestationScheduleMapList.add(wrapStatMap("attestationSchedule", "attestationScheduleCount", CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue(), stored)); + statisticalMap.put("attestationScheduleMapList", attestationScheduleMapList); + + return statisticalMap; + } + private Map wrapStatMap(String key,String val,String keyStr,Object valObj) { + Map map = new HashMap<>(); + map.put(key,keyStr); + map.put(val,valObj); + return map; } private List getListByIds(List idList) { @@ -1083,8 +1112,6 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl pageList = getOtaPage(otaManageApplyEO); List exportList = null; @@ -1098,22 +1125,118 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl dataList = new ArrayList<>(); - for (OtaManageApplyEO manageApplyEO : exportList) { - OtaExportVO otaExportVO = new OtaExportVO(); - BeanUtils.copyProperties(manageApplyEO, otaExportVO); - dataList.add(otaExportVO); + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + if(CutEnum.CN.getValue().equals(otaManageApplyEO.getCut())){ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + OtaExportCnVO otaExportCnVO = new OtaExportCnVO(); + BeanUtils.copyProperties(manageApplyEO, otaExportCnVO); + dataList.add(otaExportCnVO); + } + mv.addObject(NormalExcelConstants.CLASS, OtaExportCnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + ExportParams exportParams=new ExportParams("OTA软件版本", null, "OTA软件版本"); + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + }else{ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + OtaExportEnVO otaExportEnVO = new OtaExportEnVO(); + BeanUtils.copyProperties(manageApplyEO, otaExportEnVO); + dataList.add(otaExportEnVO); + } + mv.addObject(NormalExcelConstants.CLASS, OtaExportEnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + ExportParams exportParams=new ExportParams("OTA Software version", null, "OTA Software version"); + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + } + return mv; + } + + @Override + public ModelAndView allCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) { + // Step.2 获取导出数据 + List pageList = getOtaPage(otaManageApplyEO); + List exportList = null; + + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + exportList = pageList.stream().filter(e -> selectionList.contains(e.getId())).collect(Collectors.toList()); + } else { + exportList = pageList; + } + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + + if(CutEnum.CN.getValue().equals(otaManageApplyEO.getCut())){ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + AllCarExportCnVO allCarExportVO = new AllCarExportCnVO(); + BeanUtils.copyProperties(manageApplyEO, allCarExportVO); + dataList.add(allCarExportVO); + } + mv.addObject(NormalExcelConstants.CLASS, AllCarExportCnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + }else{ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + AllCarExportEnVO allCarExportEnVO = new AllCarExportEnVO(); + BeanUtils.copyProperties(manageApplyEO, allCarExportEnVO); + dataList.add(allCarExportEnVO); + } + mv.addObject(NormalExcelConstants.CLASS, AllCarExportEnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + } + + ExportParams exportParams=new ExportParams(otaManageApplyEO.getExportName(), null, otaManageApplyEO.getExportName()); + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + return mv; + } + + @Override + public ModelAndView oneCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) { + // Step.2 获取导出数据 + List pageList = getOtaCarPage(otaManageApplyEO,otaManageApplyEO.getCut()); + List exportList = null; + + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + exportList = pageList.stream().filter(e -> selectionList.contains(e.getId())).collect(Collectors.toList()); + } else { + exportList = pageList; } // Step.3 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); - mv.addObject(NormalExcelConstants.FILE_NAME, "OTA列表"); //此处设置的filename无效 ,前端会重更新设置一下 - mv.addObject(NormalExcelConstants.CLASS, OtaExportVO.class); - ExportParams exportParams=new ExportParams("OTA软件版本", null, "OTA软件版本"); - mv.addObject(NormalExcelConstants.PARAMS,exportParams); - mv.addObject(NormalExcelConstants.DATA_LIST, dataList); - return mv; + if(CutEnum.CN.getValue().equals(otaManageApplyEO.getCut())){ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + OneCarExportCnVO oneCarExportCnVO = new OneCarExportCnVO(); + BeanUtils.copyProperties(manageApplyEO, oneCarExportCnVO); + dataList.add(oneCarExportCnVO); + } + mv.addObject(NormalExcelConstants.CLASS, OneCarExportCnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + }else{ + List dataList = new ArrayList<>(); + for (OtaManageApplyEO manageApplyEO : exportList) { + OneCarExportEnVO oneCarExportEnVO = new OneCarExportEnVO(); + BeanUtils.copyProperties(manageApplyEO, oneCarExportEnVO); + dataList.add(oneCarExportEnVO); + } + mv.addObject(NormalExcelConstants.CLASS, OneCarExportEnVO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + } + + ExportParams exportParams=new ExportParams(otaManageApplyEO.getExportName(), null, otaManageApplyEO.getExportName()); + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + + return mv; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveServiceImpl.java index b26af5976..3460e8ef2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageReceiveServiceImpl.java @@ -86,4 +86,9 @@ public class OtaManageReceiveServiceImpl extends ServiceImpl queryList() { return list(); } + + @Override + public List getReceiveByVdr(List vdrList) { + return this.getBaseMapper().getReceiveByVdr(vdrList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportCnVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportCnVO.java new file mode 100644 index 000000000..6aafe915a --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportCnVO.java @@ -0,0 +1,52 @@ +package com.jero.modules.ota.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @description + * @date 2023/8/9 11:28 + * @auth zhn + */ +@Data +public class AllCarExportCnVO { + + @Excel(name = "VDR", width = 15) + @ApiModelProperty(value = "VDR") + private java.lang.String vdr; + + @Excel(name = "主题", width = 15) + @ApiModelProperty(value = "主题") + private java.lang.String summary; + + @Excel(name = "VDR状态", width = 15) + @ApiModelProperty(value = "VDR状态") + private java.lang.String status; + + @Excel(name = "认证影响", width = 15) + @ApiModelProperty(value = "认证影响") + private java.lang.String homologationImpact; + + @Excel(name = "影响描述", width = 30) + @ApiModelProperty(value = "影响描述") + private java.lang.String homologation; + + @Excel(name = "影响法规-CN", width = 15) + @ApiModelProperty(value = "影响法规-CN") + private java.lang.String impactCnHomo; + + @Excel(name = "影响法规-EU", width = 15) + @ApiModelProperty(value = "影响法规-EU") + private java.lang.String impactEuHomo; + + @Excel(name = "责任部门", width = 15) + @ApiModelProperty(value = "责任部门") + private java.lang.String masterDomain; + + @Excel(name = "适用车型", width = 50) + @ApiModelProperty(value = "适用车型") + private java.lang.String appliedVehicleProject; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportEnVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportEnVO.java new file mode 100644 index 000000000..d0a6c4057 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/AllCarExportEnVO.java @@ -0,0 +1,51 @@ +package com.jero.modules.ota.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @description + * @date 2023/8/9 11:28 + * @auth zhn + */ +@Data +public class AllCarExportEnVO { + + @Excel(name = "VDR", width = 15) + @ApiModelProperty(value = "VDR") + private String vdr; + + @Excel(name = "theme", width = 15) + @ApiModelProperty(value = "主题") + private String summary; + + @Excel(name = "VDR status", width = 15) + @ApiModelProperty(value = "VDR状态") + private String status; + + @Excel(name = "Authentication impact", width = 15) + @ApiModelProperty(value = "认证影响") + private String homologationImpact; + + @Excel(name = "Impact statement", width = 30) + @ApiModelProperty(value = "影响描述") + private String homologation; + + @Excel(name = "Influence statute-CN", width = 15) + @ApiModelProperty(value = "影响法规-CN") + private String impactCnHomo; + + @Excel(name = "Influence statute-EU", width = 15) + @ApiModelProperty(value = "影响法规-EU") + private String impactEuHomo; + + @Excel(name = "Duty Department", width = 15) + @ApiModelProperty(value = "责任部门") + private String masterDomain; + + @Excel(name = "Vehicle Type", width = 50) + @ApiModelProperty(value = "适用车型") + private String appliedVehicleProject; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportCnVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportCnVO.java new file mode 100644 index 000000000..16de02882 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportCnVO.java @@ -0,0 +1,91 @@ +package com.jero.modules.ota.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @description + * @date 2023/8/9 11:28 + * @auth zhn + */ +@Data +public class OneCarExportCnVO { + + @Excel(name = "VDR", width = 15) + @ApiModelProperty(value = "VDR") + private java.lang.String vdr; + + @Excel(name = "主题", width = 15) + @ApiModelProperty(value = "主题") + private java.lang.String summary; + + @Excel(name = "VDR状态", width = 15) + @ApiModelProperty(value = "VDR状态") + private java.lang.String status; + + @Excel(name = "认证影响", width = 15) + @ApiModelProperty(value = "认证影响") + private java.lang.String homologationImpact; + + @Excel(name = "影响说明", width = 30) + @ApiModelProperty(value = "影响说明") + private java.lang.String homologation; + + @Excel(name = "影响法规-CN", width = 15) + @ApiModelProperty(value = "影响法规-CN") + private java.lang.String impactCnHomo; + + @Excel(name = "影响法规-EU", width = 15) + @ApiModelProperty(value = "影响法规-EU") + private java.lang.String impactEuHomo; + + @Excel(name = "责任部门", width = 15) + @ApiModelProperty(value = "责任部门") + private java.lang.String masterDomain; + + @Excel(name = "R&H Studio", width = 15) + @ApiModelProperty(value = "R&H Studio") + private java.lang.String studioText; + + @Excel(name = "项目版本", width = 15) + @ApiModelProperty(value = "项目版本") + private java.lang.String projectVersionText; + + @Excel(name = "认证开始", width = 15) + @ApiModelProperty(value = "认证开始") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date attestationStartTime; + + @Excel(name = "认证申报", width = 15) + @ApiModelProperty(value = "认证申报") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date certificationSubmission; + + @Excel(name = "认证批准", width = 15) + @ApiModelProperty(value = "认证批准") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date attestationEndTime; + + @Excel(name = "认证进度", width = 15) + @ApiModelProperty(value = "认证进度") + private java.lang.String attestationSchedule; + + @Excel(name = "匹配状态", width = 15) + @ApiModelProperty(value = "匹配状态") + private java.lang.String matchStatusText; + + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private java.lang.String remark; + + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportEnVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportEnVO.java new file mode 100644 index 000000000..ed6af67df --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OneCarExportEnVO.java @@ -0,0 +1,90 @@ +package com.jero.modules.ota.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @description + * @date 2023/8/9 11:28 + * @auth zhn + */ +@Data +public class OneCarExportEnVO { + + @Excel(name = "VDR", width = 15) + @ApiModelProperty(value = "VDR") + private String vdr; + + @Excel(name = "theme", width = 15) + @ApiModelProperty(value = "主题") + private String summary; + + @Excel(name = "VDR status", width = 15) + @ApiModelProperty(value = "VDR状态") + private String status; + + @Excel(name = "Authentication impact", width = 15) + @ApiModelProperty(value = "认证影响") + private String homologationImpact; + + @Excel(name = "Impact statement", width = 30) + @ApiModelProperty(value = "影响说明") + private String homologation; + + @Excel(name = "Influence statute-CN", width = 15) + @ApiModelProperty(value = "影响法规-CN") + private String impactCnHomo; + + @Excel(name = "Influence statute-EU", width = 15) + @ApiModelProperty(value = "影响法规-EU") + private String impactEuHomo; + + @Excel(name = "Duty Department", width = 15) + @ApiModelProperty(value = "责任部门") + private String masterDomain; + + @Excel(name = "R&H Studio", width = 15) + @ApiModelProperty(value = "R&H Studio") + private String studioText; + + @Excel(name = "Project Version", width = 15) + @ApiModelProperty(value = "项目版本") + private String projectVersionText; + + @Excel(name = "Homo Starts", width = 15) + @ApiModelProperty(value = "认证开始") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date attestationStartTime; + + @Excel(name = "Certification declaration", width = 15) + @ApiModelProperty(value = "认证申报") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date certificationSubmission; + + @Excel(name = "Homo Approved", width = 15) + @ApiModelProperty(value = "认证批准") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date attestationEndTime; + + @Excel(name = "Homologation Progress", width = 15) + @ApiModelProperty(value = "认证进度") + private String attestationSchedule; + + @Excel(name = "Matching state", width = 15) + @ApiModelProperty(value = "匹配状态") + private String matchStatusText; + + @Excel(name = "remarks", width = 15) + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportCnVO.java similarity index 96% rename from jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportVO.java rename to jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportCnVO.java index 66adf94c2..8595e804e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportCnVO.java @@ -13,7 +13,7 @@ import java.util.Date; * @auth zhn */ @Data -public class OtaExportVO { +public class OtaExportCnVO { @Excel(name = "软件版本", width = 15) @ApiModelProperty(value = "软件版本") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportEnVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportEnVO.java new file mode 100644 index 000000000..b1539b2f5 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/vo/OtaExportEnVO.java @@ -0,0 +1,31 @@ +package com.jero.modules.ota.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @description + * @date 2023/8/9 11:28 + * @auth zhn + */ +@Data +public class OtaExportEnVO { + + @Excel(name = "Software version", width = 15) + @ApiModelProperty(value = "软件版本") + private String plannedBpLaunchBatch; + + @Excel(name = "Market", width = 15) + @ApiModelProperty(value = "市场") + private String market; + + @Excel(name = "Vehicle Type", width = 50) + @ApiModelProperty(value = "适用车型") + private String appliedVehicleProject; + + @Excel(name = "Software release time", width = 15) + @ApiModelProperty(value = "软件发布时间") + private String releaseName; + +}