From 9d7bc1e83cfc85f5648b50511c652e01aac5c320 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 5 Feb 2024 17:19:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=2081780=20=E5=9B=BD=E5=86=85=E6=A0=87?= =?UTF-8?q?=E5=87=86-=E5=AF=BC=E5=85=A5=E6=AD=A3=E7=A1=AE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E6=8F=90=E7=A4=BA=E5=88=86=E6=A0=87=E5=A7=94?= =?UTF-8?q?=E5=92=8C=E9=9B=B6=E9=83=A8=E4=BB=B6=E5=A1=AB=E5=86=99=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/laws/common/util/ImportUtil.java | 81 ++++++++++++++----- 1 file changed, 63 insertions(+), 18 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java index 297a908d..1b5280c6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java @@ -10,14 +10,10 @@ import com.jero.common.system.vo.DictModel; import com.jero.common.util.CommonUtils; import com.jero.common.util.oConvertUtils; import com.jero.modules.laws.common.constant.FieldCommon; -import com.jero.modules.laws.standard.entity.LawsDomesticStandard; -import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; -import com.jero.modules.laws.standard.entity.LawsOverseasStandard; -import com.jero.modules.laws.standard.entity.LawsTreeNode; -import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; -import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; -import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; -import com.jero.modules.laws.standard.service.ILawsTreeNodeService; +import com.jero.modules.laws.standard.entity.*; +import com.jero.modules.laws.standard.service.*; +import com.jero.modules.laws.standardization.entity.LawsStandardization; +import com.jero.modules.laws.standardization.service.ILawsStandardizationService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.system.entity.SysDepart; @@ -82,6 +78,12 @@ public class ImportUtil { @Resource private ILawsOverseasStandardService overseasStandardService; + @Resource + private PartNameService partNameService; + + @Resource + private ILawsStandardizationService standardizationService; + public List validExcelData(Sheet sheet, List headerList, Map fileMap, List> insertDataList) { List errMsgList = new ArrayList<>(); @@ -327,8 +329,20 @@ public class ImportUtil { } } + // 分标委 + if (FieldCommon.BIDDING_COMMITTEE.equals(tag.getDbFieldName())) { + if (!this.biddingCommitteeValid(cellValue)) { + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); + } else { + // 转为id + cellValue = this.convertBiddingCommitteeValid(cellValue); + } + } + // 下拉单选 - if (FieldShowTypeEnum.DROPDOWN_SINGLE_SELECT.getValue().equals(tag.getFieldShowType())) { + if (FieldShowTypeEnum.DROPDOWN_SINGLE_SELECT.getValue().equals(tag.getFieldShowType()) && + !FieldCommon.BIDDING_COMMITTEE.equals(tag.getDbFieldName())) { if (!this.singleDictValid(tag.getDictField(), cellValue)) { log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); @@ -505,6 +519,35 @@ public class ImportUtil { return errMsgList; } + private String convertBiddingCommitteeValid(String cellValue) { + List valueList = Arrays.asList(cellValue.split(",")); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsStandardization::getName, valueList); + List list = standardizationService.list(wrapper); + Map systemMap = list.stream().collect(Collectors.toMap(LawsStandardization::getName, LawsStandardization::getId)); + + StringBuilder result = new StringBuilder(); + for (String value : valueList) { + result.append(systemMap.get(value)).append(","); + } + // 去除掉最后的逗号 + return result.substring(0, result.length() - 1); + } + + private boolean biddingCommitteeValid(String cellValue) { + String[] valueList = cellValue.split(","); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsStandardization::getName, Arrays.asList(valueList)); + List list = standardizationService.list(wrapper); + Map map = list.stream().collect(Collectors.toMap(LawsStandardization::getName, LawsStandardization::getId)); + for (String value : valueList) { + if (map.get(value) == null) { + return false; + } + } + return true; + } + public Date convertDate(String cellValue) { if (StrUtil.isBlank(cellValue)) { return null; @@ -709,13 +752,14 @@ public class ImportUtil { // 零部件转换 public String convertPartId(String cellValue) { List valueList = Arrays.asList(cellValue.split(",")); - LambdaQueryWrapper sysDictItemLambdaQueryWrapper = new LambdaQueryWrapper<>(); - sysDictItemLambdaQueryWrapper.in(SysDictItem::getItemText, valueList); - Map idMap = sysDictItemService.list(sysDictItemLambdaQueryWrapper).stream() - .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + LambdaQueryWrapper partNameLambdaQueryWrapper = new LambdaQueryWrapper<>(); + partNameLambdaQueryWrapper.in(PartName::getName, valueList); + List partNameList = partNameService.list(partNameLambdaQueryWrapper); + Map partMap = partNameList.stream().collect(Collectors.toMap(PartName::getName, PartName::getCode)); + StringBuilder result = new StringBuilder(); for (String value : valueList) { - result.append(idMap.get(value)).append(","); + result.append(partMap.get(value)).append(","); } // 去除掉最后的逗号 return result.substring(0, result.length() - 1); @@ -817,11 +861,12 @@ public class ImportUtil { // 零部件 public boolean partValid(String cellValue) { String[] valueList = cellValue.split(","); - List partDictModelList = sysBaseAPI.getDictItems("part_name"); - Map partDictModelMap = partDictModelList.stream() - .collect(Collectors.toMap(DictModel::getText, d -> d)); + LambdaQueryWrapper partNameWrapper = new LambdaQueryWrapper<>(); + partNameWrapper.in(PartName::getName, Arrays.asList(valueList)); + List list = partNameService.list(partNameWrapper); + Map partNameMap = list.stream().collect(Collectors.toMap(PartName::getName, PartName::getCode)); for (String value : valueList) { - if (!partDictModelMap.containsKey(value)) { + if (partNameMap.get(value) == null) { return false; } }