From f7d67f44a775ba5a4fb1c0abfe544b8e8c441273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 8 Jul 2024 14:22:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B8=82=E5=9C=BA=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E5=BA=93=E6=B8=85=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LawsCommonServiceImpl.java | 6 ++--- .../entity/LawsMarketStandardDetailExcel.java | 24 +++++++++--------- .../LawsMarketStandardDetailServiceImpl.java | 7 ++--- .../impl/LawsMarketStandardServiceImpl.java | 5 ++-- .../excelTemplate/导入模板-市场法规清单.xls | Bin 0 -> 27136 bytes .../excelTemplate/导入模板-市场法规清单.xlsx | Bin 10458 -> 0 bytes 6 files changed, 20 insertions(+), 22 deletions(-) create mode 100644 laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls delete mode 100644 laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xlsx diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index f9c2437f..fad9cd96 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -2837,8 +2837,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService { String textValue = translateDictValue(code, text, table, key, listDict); if(StringUtils.isBlank(textValue)){ msg.append(name).append("数据不存在;"); - }else{ - item.put(field.getName(), textValue); } } } @@ -2866,9 +2864,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService { continue; //跳过循环 } if (!org.springframework.util.StringUtils.isEmpty(table)) { - tmpValue = sysBaseAPI.queryTableDictTextByKey(table, code, text, k.trim()); + tmpValue = sysBaseAPI.queryTableDictTextByKey(table, text, code, k.trim()); } else { - List listNew = listDict.stream().filter(o -> Objects.equals(o.getDictCode(), code) && Objects.equals(o.getItemText(), k.trim())).collect(Collectors.toList()); + List listNew = listDict.stream().filter(o -> Objects.equals(o.getDictCode(), code) && Objects.equals(o.getItemValue(), k.trim())).collect(Collectors.toList()); if (!org.springframework.util.CollectionUtils.isEmpty(listNew)) { tmpValue = listNew.get(0).getItemText(); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java index d1ab1d40..5450840d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java @@ -123,7 +123,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 国家 */ - @Excel(name = "*国家/地区", width = 15) + @Excel(name = "*国家/地区", width = 15,dicCode = "market_state") @NotBlank(message = "国家/地区不能为空") @ApiModelProperty(value = "国家") @Dict(dicCode = "market_state") @@ -132,7 +132,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 适用车型 */ - @Excel(name = "适用车型", width = 15) + @Excel(name = "适用车型", width = 15, dicCode = "applicable_vehicle_type") @Dict(dicCode = "applicable_vehicle_type") @ApiModelProperty(value = "适用车型") private String applicableVehicle; @@ -148,7 +148,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @ApiModelProperty(value = "认证对象") @Dict(dicCode = "authentication_object") - @Excel(name = "认证对象", width = 15) + @Excel(name = "认证对象", width = 15, dicCode = "authentication_object") private String authenticationObject; /** @@ -162,7 +162,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { * 类型 */ @Dict(dicCode = "type") - @Excel(name = "类型", width = 15) + @Excel(name = "类型", width = 15, dicCode = "type") @ApiModelProperty(value = "类型") private String type; @@ -171,7 +171,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "dynamic_type") @ApiModelProperty(value = "动力类型") - @Excel(name = "动力类型", width = 15) + @Excel(name = "动力类型", width = 15, dicCode = "dynamic_type") private String dynamicType; /** @@ -180,7 +180,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "主控部门") @NotBlank(message = "主控部门不能为空") - @Excel(name = "*主控部门", width = 15) + @Excel(name = "*主控部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String mainDept; /** @@ -189,7 +189,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { @ApiModelProperty(value = "主控部门专业模块") @NotBlank(message = "主控部门专业模块不能为空") @Dict(dicCode = "professional_module") - @Excel(name = "*主控部门专业模块", width = 15) + @Excel(name = "*主控部门专业模块", width = 15, dicCode = "professional_module") private String mainDeptProfMode; /** @@ -197,14 +197,14 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "关联部门") - @Excel(name = "关联部门", width = 15) + @Excel(name = "关联部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String associateDept; /** * 关联部门专业模块 */ @ApiModelProperty(value = "关联部门专业模块") - @Excel(name = "关联部门专业模块", width = 15) + @Excel(name = "关联部门专业模块", width = 15, dicCode = "professional_module") @Dict(dicCode = "professional_module") private String associateDeptProfMode; @@ -212,7 +212,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { * 批量限制 */ @ApiModelProperty(value = "批量限制") - @Excel(name = "批量限制", width = 15) + @Excel(name = "批量限制", width = 15, dicCode = "batch_restriction") @Dict(dicCode = "batch_restriction") private String batchLimit; @@ -221,7 +221,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "automatic_driving_level") @ApiModelProperty(value = "自动驾驶等级") - @Excel(name = "自动驾驶等级", width = 15) + @Excel(name = "自动驾驶等级", width = 15,dicCode = "automatic_driving_level") private String autopilotLevel; /** @@ -229,7 +229,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "requirement_type") @ApiModelProperty(value = "要求类型") - @Excel(name = "要求类型", width = 15) + @Excel(name = "要求类型", width = 15,dicCode = "requirement_type") private String requireType; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java index 00b8f370..91e06193 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java @@ -75,7 +75,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl queryLawsMarketStandard = new LambdaQueryWrapper<>(); - queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo()); + queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag()); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion,manifestVersion); LawsMarketStandard lawsMarketStandard = marketStandardService.getOne(queryLawsMarketStandard,false); if(Objects.isNull(lawsMarketStandard)){ @@ -84,6 +84,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listIds = Arrays.asList(manifestId.split(",")); + marketStandardDetail.setManifestId(null); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(marketStandardDetail, request.getParameterMap()); queryWrapper.in("manifest_id",listIds); @@ -175,7 +176,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl queryManifestNo = new LambdaQueryWrapper<>(); queryManifestNo.select(LawsMarketStandard::getManifestVersion); - queryManifestNo.isNotNull(LawsMarketStandard::getManifestNo); - queryManifestNo.eq(LawsMarketStandard::getManifestNo,manifest.getManifestNo()); + queryManifestNo.eq(LawsMarketStandard::getVersionFlag,manifest.getVersionFlag()); queryManifestNo.isNotNull(LawsMarketStandard::getManifestVersion); queryManifestNo.orderByDesc(LawsMarketStandard::getManifestVersion); List listManifestNo = list(queryManifestNo); @@ -382,7 +381,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper<>(); - update.set(LawsMarketStandard::getManifestVersion,""); + update.set(LawsMarketStandard::getManifestVersion,null); update.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_EDIT); update.set(LawsMarketStandard::getUpdateTime,new Date()); update.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); diff --git a/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls b/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls new file mode 100644 index 0000000000000000000000000000000000000000..dc2a61380be256864591d1fe5a44de6694873d9a GIT binary patch literal 27136 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 Xk}Lw$J$^e71q5_K)e(;Nw@?2Mv+BeU