From 728146607ccd056bff2000097edd87964d38c748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=B5=A9?= Date: Sun, 26 Mar 2023 12:06:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91OTA=E5=A4=87=E6=A1=88?= =?UTF-8?q?=E5=B7=A5=E5=85=B7-=E5=A1=AB=E5=86=99=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/modules/ota/enums/OtaTitleEnum.java | 14 ++--- .../service/impl/OtaBaCxAqcsServiceImpl.java | 7 ++- .../service/impl/OtaBaCxJbxxServiceImpl.java | 6 ++- .../impl/OtaBaCxJsfzbacsServiceImpl.java | 22 +++++--- .../impl/OtaBaCxKsjjsmccsServiceImpl.java | 6 ++- .../impl/OtaBaCxKsjxtmccsServiceImpl.java | 6 ++- .../service/impl/OtaBaCxQtServiceImpl.java | 8 ++- .../impl/OtaBaCxZxsjyqServiceImpl.java | 7 ++- .../modules/ota/utils/ComparisonUtil.java | 52 ++++++++++--------- 9 files changed, 84 insertions(+), 44 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/enums/OtaTitleEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/enums/OtaTitleEnum.java index d114a3063..9b4429f93 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/enums/OtaTitleEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/enums/OtaTitleEnum.java @@ -8,7 +8,7 @@ public enum OtaTitleEnum { CPSB("cpsb", "产品商标", "0"), CPMC("cpmc", "产品名称", "0"), CPXH("cpxh", "产品型号", "0"), - BAZT("bazt", "备案状态", "1"), + BAZT("bazt", "备案状态", "recordstatus"), BATJSJ("batjsj", "备案提交时间", "0"), CJSJ("cjsj", "创建时间", "0"), BZ("bz", "备注", "0"), @@ -19,7 +19,7 @@ public enum OtaTitleEnum { CPLB("cplb", "产品类别", "0"), DLLX1("dllx1", "车辆动力类型", "0"), DLLX2("dllx2", "车辆动力类型", "0"), - TXZD("txzd", "通信终端", "1"), + TXZD("txzd", "通信终端", "communication_terminal"), CDOTASJ("cdotasj", "车端OTA升级管理系统", "0"), BHSJB("bhsjb", "保护升级包", "2"), @@ -34,10 +34,10 @@ public enum OtaTitleEnum { SJZT("sjzt", "升级结果状态", "2"), ZMCL("zmcl", "证明材料", "0"), - BHJZ("bhjz", "保护机制", "1"), - FSXJZ("fsxjz", "防失效机制", "1"), - SJSBCS("sjsbcs", "升级失败措施", "1"), - XXAQJZ("xxaqjz", "信息安全机制", "1"), + BHJZ("bhjz", "保护机制", "protection_mechanism"), + FSXJZ("fsxjz", "防失效机制", "fail_safe_mechanism"), + SJSBCS("sjsbcs", "升级失败措施", "upgrade_failure"), + XXAQJZ("xxaqjz", "信息安全机制", "Information_security_mechanism"), XTLB("xtlb", "系统类别", "0"), SFKSJ("sfksj", "是否可升级", "2"), @@ -57,7 +57,7 @@ public enum OtaTitleEnum { GNMC("gnmc", "功能名称", "0"), PZQK("pzqk", "配置情况", "2"), - JSZDHJB("jszdhjb", "驾驶自动化级别", "1"), + JSZDHJB("jszdhjb", "驾驶自动化级别", "driving_automation_level"), SJGGCS("sjggcs", "升级可能变更的《公告》技术参数", "0"), GNMS("gnms", "功能描述", "0"), SYTJ("sytj", "适用条件", "0"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java index 20cf6dc90..9e57c2d38 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java @@ -11,6 +11,7 @@ import com.jero.modules.ota.mapper.OtaBaCxAqcsMapper; import com.jero.modules.ota.service.IOtaBaCxAqcsService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -33,6 +34,10 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl reList = cu.comparisonRecord(otaBaCxAqcsOld.getOtaId(), OtaModuleEnum.CX_AQCS, otaBaCxAqcsOld, otaBaCxAqcs); + List reList = cu.comparisonRecord(otaBaCxAqcsOld.getOtaId(), OtaModuleEnum.CX_AQCS, otaBaCxAqcsOld, otaBaCxAqcs, sysDictService); otaBaCxTxjlService.saveBatch(reList); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java index f22841bdc..7dfe8bf32 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java @@ -11,6 +11,7 @@ import com.jero.modules.ota.service.IOtaBaCxJbxxService; import com.jero.modules.ota.service.IOtaBaCxListService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +36,9 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl reList = cu.comparisonRecord(otaBaCxJbxx.getOtaId(), OtaModuleEnum.CX_CXJBXX, OtaBaCxJbxxOld, otaBaCxJbxx); + List reList = cu.comparisonRecord(otaBaCxJbxx.getOtaId(), OtaModuleEnum.CX_CXJBXX, OtaBaCxJbxxOld, otaBaCxJbxx, sysDictService); otaBaCxTxjlService.saveBatch(reList); return otaBaCxJbxx; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java index 7ff8d142f..b3ed65347 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java @@ -14,6 +14,7 @@ import com.jero.modules.ota.service.IOtaBaCxJsfzbacsService; import com.jero.modules.ota.service.IOtaBaCxSjmkService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,6 +37,9 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl reList = cu.comparisonRecord(otaId, OtaModuleEnum.CX_JSFZXTJCBACS, otaBaCxJsfzbacsOld, otaBaCxJsfzbacs); + List reList = cu.comparisonRecord(otaId, OtaModuleEnum.CX_JSFZXTJCBACS, otaBaCxJsfzbacsOld, otaBaCxJsfzbacs, sysDictService); //处理控制器列表,先删除,后添加 List oldList = OtaBaCxSjmkService.queryByOtaId(otaId); OtaBaCxSjmkService.deleteByOtaId(otaId); JSONArray kzq = json.getJSONArray("kzq"); List sjmkList = parseKzqData(kzq, otaId); - OtaBaCxSjmkService.saveBatch(sjmkList); - cu.comparisonListRecord(otaId, OtaModuleEnum.CX_JSFZXTJCBACS, OtaTitleEnum.BJMC.getName(), oldList, sjmkList); + OtaBaCxSjmkService.saveOrUpdateBatch(sjmkList); + cu.comparisonListRecord(otaId, OtaModuleEnum.CX_JSFZXTJCBACS, OtaTitleEnum.BJMC.getName(), oldList, sjmkList, sysDictService); otaBaCxTxjlService.saveBatch(reList); } @@ -78,11 +82,14 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl bjMap = bj.getInnerMap(); Field[] fields = OtaBaCxJsfzbacs.class.getDeclaredFields(); for (Field field : fields) { + if (field.getName().equals("createTime") || field.getName().equals("updateTime")) { + continue; + } Object bjObj = bjMap.get(field.getName()); if (null != bjObj) { try { field.setAccessible(true); - field.set(otaBaCxJsfzbacs, bjObj); + field.set(otaBaCxJsfzbacs, bjObj.toString()); } catch (IllegalAccessException e) { e.printStackTrace(); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java index e2c2643ed..b87c37f44 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.modules.ota.service.IOtaBaCxKsjjsmccsService; import com.jero.modules.ota.service.IOtaBaCxListService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.util.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,6 +39,9 @@ public class OtaBaCxKsjjsmccsServiceImpl extends ServiceImpl reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KZXSJDJSFZGNMCYCS, OtaTitleEnum.GNMC.getName(), oldList, newList); + List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KZXSJDJSFZGNMCYCS, OtaTitleEnum.GNMC.getName(), oldList, newList, sysDictService); otaBaCxTxjlService.saveBatch(reList); String fj = (String) json.get("fj"); if (StringUtils.isNotEmpty(fj)) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java index ad9b823bb..3c968a234 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.modules.ota.service.IOtaBaCxKsjxtmccsService; import com.jero.modules.ota.service.IOtaBaCxListService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.util.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -37,6 +38,9 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KSJDXTMCYCS, OtaTitleEnum.XTLB.getName(), oldList, newList); + List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KSJDXTMCYCS, OtaTitleEnum.XTLB.getName(), oldList, newList, sysDictService); otaBaCxTxjlService.saveBatch(reList); String fj = (String) json.get("fj"); if (StringUtils.isNotEmpty(fj)) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxQtServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxQtServiceImpl.java index be3f33eb7..bf26c78ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxQtServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxQtServiceImpl.java @@ -9,6 +9,7 @@ import com.jero.modules.ota.mapper.OtaBaCxQtMapper; import com.jero.modules.ota.service.IOtaBaCxQtService; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,6 +31,9 @@ public class OtaBaCxQtServiceImpl extends ServiceImpl reList = cu.comparisonRecord(otaBaCxQt.getOtaId(), OtaModuleEnum.CX_QT, otaBaCxQtOld, otaBaCxQt); + List reList = cu.comparisonRecord(otaBaCxQt.getOtaId(), OtaModuleEnum.CX_QT, otaBaCxQtOld, otaBaCxQt, sysDictService); otaBaCxTxjlService.saveBatch(reList); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxZxsjyqServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxZxsjyqServiceImpl.java index c176fe6bf..a549e9099 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxZxsjyqServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxZxsjyqServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.modules.ota.mapper.OtaBaCxZxsjyqMapper; import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.service.IOtaBaCxZxsjyqService; import com.jero.modules.ota.utils.ComparisonUtil; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +36,10 @@ public class OtaBaCxZxsjyqServiceImpl extends ServiceImpl reList = cu.comparisonRecord(otaBaCxZxsjyq.getOtaId(), OtaModuleEnum.CX_ZXSJYQ, otaBaCxZxsjyqOld, otaBaCxZxsjyq); + List reList = cu.comparisonRecord(otaBaCxZxsjyq.getOtaId(), OtaModuleEnum.CX_ZXSJYQ, otaBaCxZxsjyqOld, otaBaCxZxsjyq, sysDictService); otaBaCxTxjlService.saveBatch(reList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java index 571bf280f..14590deba 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java @@ -3,6 +3,7 @@ package com.jero.modules.ota.utils; import com.jero.modules.ota.entity.OtaBaCxTxjl; import com.jero.modules.ota.enums.OtaModuleEnum; import com.jero.modules.ota.enums.OtaTitleEnum; +import com.jero.modules.system.service.ISysDictService; import org.apache.commons.lang3.ObjectUtils; import java.lang.reflect.Field; @@ -23,7 +24,7 @@ public class ComparisonUtil { /** * 对比字段并添加到记录 */ - public List comparisonRecord(String otaId, OtaModuleEnum otaModuleEnum, T oldClazz, T newClazz) { + public List comparisonRecord(String otaId, OtaModuleEnum otaModuleEnum, T oldClazz, T newClazz, ISysDictService sysDictService) { List resList = new ArrayList<>(); Field[] fields = newClazz.getClass().getDeclaredFields(); for (Field field : fields) { @@ -34,8 +35,8 @@ public class ComparisonUtil { } title = ote.getValue(); field.setAccessible(true); - String newStr = parseDictText(ote, field, newClazz); - String oldStr = parseDictText(ote, field, oldClazz); + String newStr = parseDictText(ote, field, newClazz, sysDictService); + String oldStr = parseDictText(ote, field, oldClazz, sysDictService); if (!newStr.equals(oldStr)) { String content = "由" + title + "的" + oldStr + "改为" + newStr; resList.add(new OtaBaCxTxjl(otaId, otaModuleEnum.getName(), content)); @@ -44,7 +45,7 @@ public class ComparisonUtil { return resList; } - public List comparisonListRecord(String otaId, OtaModuleEnum otaModuleEnum, String tableTitle, List oldList, List newList) { + public List comparisonListRecord(String otaId, OtaModuleEnum otaModuleEnum, String tableTitle, List oldList, List newList, ISysDictService sysDictService) { List resList = new ArrayList<>(); try { for (T newObj : newList) { @@ -76,7 +77,7 @@ public class ComparisonUtil { for (T oldObj : oldList) { String oldId = idField.get(oldObj).toString(); if (oldId.equals(id.toString())) { - resList.addAll(comparisonCertRecord(otaId, otaModuleEnum, tableTitle, newObj, oldObj)); + resList.addAll(comparisonCertRecord(otaId, otaModuleEnum, tableTitle, newObj, oldObj, sysDictService)); } } } @@ -114,7 +115,7 @@ public class ComparisonUtil { } - public List comparisonCertRecord(String otaId, OtaModuleEnum otaModuleEnum, String tableTitle, T oldClazz, T newClazz) { + public List comparisonCertRecord(String otaId, OtaModuleEnum otaModuleEnum, String tableTitle, T oldClazz, T newClazz, ISysDictService sysDictService) { List resList = new ArrayList<>(); Field[] fields = newClazz.getClass().getDeclaredFields(); for (Field field : fields) { @@ -126,16 +127,17 @@ public class ComparisonUtil { } title = ote.getValue(); field.setAccessible(true); - String newStr = parseDictText(ote, field, newClazz); - String oldStr = parseDictText(ote, field, oldClazz); + String newStr = parseDictText(ote, field, newClazz, sysDictService); + String oldStr = parseDictText(ote, field, oldClazz, sysDictService); if (!newStr.equals(oldStr)) { - //TODO null Object newVal = field.get(newClazz); - Object newTitleVal = newVal.getClass().getDeclaredField(tableTitle).get(newVal); String newTitleStr = "空"; - if (ObjectUtils.isNotEmpty(newTitleVal)) { - newTitleStr = newTitleVal.toString(); + if (ObjectUtils.isNotEmpty(newVal)) { + Object newTitleVal = newVal.getClass().getDeclaredField(tableTitle).get(newVal); + if (ObjectUtils.isNotEmpty(newTitleVal)) { + newTitleStr = newTitleVal.toString(); + } } String content = newTitleStr + "的" + title + "由" + oldStr + "改为" + newStr; resList.add(new OtaBaCxTxjl(otaId, otaModuleEnum.getName(), content)); @@ -147,20 +149,13 @@ public class ComparisonUtil { return resList; } - private String parseDictText(OtaTitleEnum ote, Field field, T clazz) { + private String parseDictText(OtaTitleEnum ote, Field field, T clazz, ISysDictService sysDictService) { String res = "空"; try { Object newVal = field.get(clazz); - if ("1".equals(ote.getType())) { - try { - Field fieldDict = clazz.getClass().getDeclaredField(field.getName() + "_dictText"); - fieldDict.setAccessible(true); - Object newValDict = fieldDict.get(clazz); - if (ObjectUtils.isNotEmpty(newValDict)) { - res = newValDict.toString(); - } - } catch (NoSuchFieldException e) { - e.printStackTrace(); + if ("0".equals(ote.getType())) { + if (ObjectUtils.isNotEmpty(newVal)) { + res = newVal.toString(); } } else if ("2".equals(ote.getType())) { if (ObjectUtils.isNotEmpty(newVal)) { @@ -171,8 +166,17 @@ public class ComparisonUtil { } } } else { + newVal = field.get(clazz); if (ObjectUtils.isNotEmpty(newVal)) { - res = newVal.toString(); + String[] newValStr = newVal.toString().split(","); + res = ""; + for (int i = 0; i < newValStr.length; i++) { + if (i == newValStr.length - 1) { + res += sysDictService.queryDictTextByKey(ote.getType(), newValStr[i]); + } else { + res += sysDictService.queryDictTextByKey(ote.getType(), newValStr[i]) + ","; + } + } } } } catch (IllegalAccessException e) {