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 0bb64a5a6..a8120b94c 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 @@ -1,27 +1,211 @@ package com.jero.modules.ota.job; +import com.jero.modules.ota.entity.OtaManageReceive; +import com.jero.modules.ota.entity.OtaManageReceiveNsdp; +import com.jero.modules.ota.service.IOtaManageReceiveNsdpService; +import com.jero.modules.ota.service.IOtaManageReceiveService; +import com.jero.modules.system.util.StringUtils; +import org.apache.commons.collections4.CollectionUtils; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + @Service public class OtaDataUpdate implements Job { + @Autowired + private IOtaManageReceiveService otaManageReceiveService; + @Autowired + private IOtaManageReceiveNsdpService otaManageReceiveNsdpService; + + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + /** * OTA数据更新 + * * @param jobExecutionContext * @throws JobExecutionException */ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + List omrSyncList = otaManageReceiveService.getReceiveSync(); + List omrList = otaManageReceiveService.queryList(); + + List addList = new ArrayList<>(); + List delList = new ArrayList<>(); + List updateList = new ArrayList<>(); + + for (OtaManageReceive omr : omrList) { + boolean delFlag = true; + for (OtaManageReceive omrSync : omrSyncList) { + if (omr.getId().equals(omrSync.getId())) { + delFlag = false; + if (!compareReceive(omr, omrSync)) { + updateList.add(omrSync); + } + } + } + if (delFlag) { + //同步数据中被删除 + delList.add(omr.getId()); + } + } + + for (OtaManageReceive omrSync : omrSyncList) { + boolean addFlag = true; + for (OtaManageReceive omr : omrList) { + if (omr.getId().equals(omrSync.getId())) { + addFlag = false; + } + } + if (addFlag) { + //同步数据中新增 + addList.add(omrSync); + } + } + if (CollectionUtils.isNotEmpty(addList)) { + otaManageReceiveService.saveBatch(addList); + } + if (CollectionUtils.isNotEmpty(addList)) { + otaManageReceiveService.deleteByIds(delList); + } + if (CollectionUtils.isNotEmpty(updateList)) { + otaManageReceiveService.updateBatchById(updateList); + } + List omrnSyncList = otaManageReceiveNsdpService.getOtaManageReceiveNsdpSync(); + List omrnList = otaManageReceiveNsdpService.queryList(); + + List addNsdpList = new ArrayList<>(); + List delNsdpList = new ArrayList<>(); + List updateNsdpList = new ArrayList<>(); + + for (OtaManageReceiveNsdp omrn : omrnList) { + boolean delFlag = true; + for (OtaManageReceiveNsdp omrnSync : omrnSyncList) { + if (omrn.getId().equals(omrnSync.getId())) { + delFlag = false; + if (!compareReceive(omrn, omrnSync)) { + updateNsdpList.add(omrnSync); + } + } + } + if (delFlag) { + //同步数据中被删除 + delNsdpList.add(omrn.getId()); + } + } + + Map releaceDateMap = new HashMap<>(); + Date today = new Date(); + + for (OtaManageReceiveNsdp omrnSync : omrnSyncList) { + boolean addFlag = true; + for (OtaManageReceiveNsdp omrn : omrnList) { + if (omrn.getId().equals(omrnSync.getId())) { + addFlag = false; + } + } + if (addFlag) { + //同步数据中新增 + addNsdpList.add(omrnSync); + } + //找到最快来临的发布时间 + Date releaceDate = releaceDateMap.get(omrnSync.getReleaseName()); + try { + Date syncDate = sdf.parse(omrnSync.getReleaseDate()); + if (null == releaceDate) { + releaceDateMap.put(omrnSync.getReleaseName(), syncDate); + } else { + if (syncDate.after(today) && syncDate.before(releaceDate)) { + releaceDateMap.put(omrnSync.getReleaseName(), syncDate); + } + } + } catch (ParseException e) { + e.printStackTrace(); + } + } + + if (CollectionUtils.isNotEmpty(addNsdpList)) { + otaManageReceiveNsdpService.saveBatch(addNsdpList); + } + if (CollectionUtils.isNotEmpty(delNsdpList)) { + otaManageReceiveNsdpService.deleteByIds(delNsdpList); + } + if (CollectionUtils.isNotEmpty(updateNsdpList)) { + otaManageReceiveNsdpService.updateBatchById(updateNsdpList); + } + List dateUpdateList = new ArrayList<>(); + List omrListForDate = otaManageReceiveService.queryList(); + for (OtaManageReceive omr : omrListForDate) { + if(releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())){ + omr.setReleaseDate(sdf.format(releaceDateMap.get(omr.getPlannedBpLaunchBatch()))); + dateUpdateList.add(omr); + } + } + if (CollectionUtils.isNotEmpty(dateUpdateList)) { + otaManageReceiveService.updateBatchById(dateUpdateList); + } + } + 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; + } + if (!StringUtils.equals(omrn.getDateName(), omrnSync.getDateName())) { + return false; + } + if (!StringUtils.equals(omrn.getReleaseDate(), omrnSync.getReleaseDate())) { + 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; + } + if (!StringUtils.equals(omr.getStatus(), omrSync.getStatus())) { + return false; + } + if (!StringUtils.equals(omr.getHomologationImpact(), omrSync.getHomologationImpact())) { + return false; + } + if (!StringUtils.equals(omr.getHomologation(), omrSync.getHomologation())) { + return false; + } + if (!StringUtils.equals(omr.getImpactCnHomo(), omrSync.getImpactCnHomo())) { + return false; + } + if (!StringUtils.equals(omr.getImpactEuHomo(), omrSync.getImpactEuHomo())) { + return false; + } + if (!StringUtils.equals(omr.getMasterDomain(), omrSync.getMasterDomain())) { + return false; + } + if (!StringUtils.equals(omr.getAppliedVehicleProject(), omrSync.getAppliedVehicleProject())) { + return false; + } + return true; } - } 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 0e0cc0753..506255e45 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 @@ -15,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface OtaManageReceiveMapper extends BaseMapper { List getReceiveByVdr(@Param("vdrList") List vdrList); + List getReceiveSync(); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveNsdpMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveNsdpMapper.java index f0d2f09e6..629945995 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveNsdpMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/OtaManageReceiveNsdpMapper.java @@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface OtaManageReceiveNsdpMapper extends BaseMapper { + List getOtaManageReceiveNsdpSync(); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveMapper.xml index b584c204f..b25eb5b52 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveMapper.xml @@ -27,4 +27,9 @@ #{item} + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveNsdpMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveNsdpMapper.xml index f851c7c25..56fe71093 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveNsdpMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/mapper/xml/OtaManageReceiveNsdpMapper.xml @@ -15,4 +15,7 @@ + \ No newline at end of file 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 47c5574b6..1e4ffbc38 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 @@ -58,4 +58,7 @@ public interface IOtaManageReceiveNsdpService extends IService queryList(); + + + List getOtaManageReceiveNsdpSync(); } 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 540fbbd68..765eb5aed 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 @@ -63,4 +63,8 @@ public interface IOtaManageReceiveService extends IService { List getReceiveByVdr(List vdrList); List getReceiveByplanned(String plannedBpLaunchBatch); + + List getReceiveSync(); + + } 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 536e516dc..14a33cf93 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 @@ -86,4 +86,9 @@ public class OtaManageReceiveNsdpServiceImpl extends ServiceImpl queryList() { return list(); } + + @Override + public List getOtaManageReceiveNsdpSync() { + return this.getBaseMapper().getOtaManageReceiveNsdpSync(); + } } 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 700cfc038..9bf7730e6 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 @@ -99,4 +99,10 @@ public class OtaManageReceiveServiceImpl extends ServiceImpl getReceiveSync() { + return this.getBaseMapper().getReceiveSync(); + } + }