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 b01528c1..3f95af8f 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 @@ -599,6 +599,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { StringBuilder valuesBuilder = new StringBuilder(); // 对默认的字段赋值 String id = getCommonInsertValue(fieldsBuilder, valuesBuilder); + // 企标授权部门处理 + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) { + esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString()); + parameterMap.remove(FieldCommon.AUTH_DEPT); + } // 拼接要添加的数据 for (Map.Entry entryMap : parameterMap.entrySet()) { String key = entryMap.getKey(); @@ -796,6 +801,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { /*parameterMap.put(FieldCommon.REFERENCE_STANDARD, ""); parameterMap.put(FieldCommon.REFERENCED_STANDARD, "");*/ } + // 清空parameterMap中的对应字段 + parameterMap.remove(FieldCommon.REPLACED_STANDARD); + parameterMap.remove(FieldCommon.REPLACED_BY_STANDARD); + parameterMap.remove(FieldCommon.REFERENCE_STANDARD); + parameterMap.remove(FieldCommon.REFERENCED_STANDARD); } /** 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 8df3617e..3a8f342c 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 @@ -39,6 +39,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.FileInputStream; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -171,14 +172,6 @@ public class ImportUtil { } } } - // 单选时间 - if (FieldShowTypeEnum.SINGLE_DATE_PICKER.getValue().equals(tag.getFieldShowType())) { - Date date = cell.getDateCellValue(); - // 创建一个SimpleDateFormat对象,并指定所需的格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // 使用SimpleDateFormat对象的format方法将Date对象转换为字符串 - cellValue = sdf.format(date); - } // 字段长度校验 if (FieldShowTypeEnum.TEXT_BOX.getValue().equals(tag.getFieldShowType())) { if (cellValue.length() > 50) { @@ -197,8 +190,8 @@ public class ImportUtil { if (FieldShowTypeEnum.DROPDOWN_SINGLE_SELECT.getValue().equals(tag.getFieldShowType()) || FieldShowTypeEnum.DROPDOWN_MULTI_SELECT.getValue().equals(tag.getFieldShowType())) { if (!this.dictValid(tag.getDictField(), cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为value cellValue = this.convertDictValue(tag.getDictField(), cellValue); @@ -207,8 +200,8 @@ public class ImportUtil { // 单选组织机构 if (FieldShowTypeEnum.SINGLE_ORGANIZATION_DIALOG.getValue().equals(tag.getFieldShowType())) { if (!this.singleOrgValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertSingleOrgId(cellValue); @@ -217,8 +210,8 @@ public class ImportUtil { // 单选人员 if (FieldShowTypeEnum.SINGLE_USER_DIALOG.getValue().equals(tag.getFieldShowType())) { if (!this.singleUserValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertSingleUserId(cellValue); @@ -227,8 +220,8 @@ public class ImportUtil { // 多选组织机构 if (FieldShowTypeEnum.MULTI_ORGANIZATION_DIALOG.getValue().equals(tag.getFieldShowType())) { if (!this.multiOrgValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertMultiOrgId(cellValue); @@ -237,8 +230,8 @@ public class ImportUtil { // 零部件 if (tag.getDbFieldName().equals("part_name") && StrUtil.isNotBlank(cellValue)) { if (!this.partValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertPartId(cellValue); @@ -247,8 +240,8 @@ public class ImportUtil { // 体系 if (FieldCommon.STANDARD_SYSTEM.equals(tag.getDbFieldName())) { if (!this.standardSystemValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertStandardSystem(cellValue); @@ -257,21 +250,32 @@ public class ImportUtil { // 文件 if (FieldShowTypeEnum.FILE_UPLOAD.getValue().equals(tag.getFieldShowType())) { if (!this.fileValid(cellValue, fileMap)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为id cellValue = this.convertFileIds(cellValue, fileMap); } } + // 单选时间 + if (FieldShowTypeEnum.SINGLE_DATE_PICKER.getValue().equals(tag.getFieldShowType())) { + if (!this.multiDateValid(cellValue)) { + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); + } + } // 多选时间 if (FieldShowTypeEnum.MULTI_DATE_PICKER.getValue().equals(tag.getFieldShowType())) { if (!this.multiDateValid(cellValue)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); - } else { - // 转为id - cellValue = this.multiDateConvert(cellValue); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); + } + } + // 多选标准弹框 + if (FieldShowTypeEnum.MULTI_STANDARD_DIALOG.getValue().equals(tag.getFieldShowType())) { + if (!this.multiStandardValid(cellValue, tag.getIsModel())) { + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } } @@ -280,8 +284,8 @@ public class ImportUtil { // 企标稽查内容文件导入 if (FieldShowTypeEnum.INSPECT_CONTENT_FILE_UPLOAD.getValue().equals(tag.getFieldShowType())) { if (!this.inspectContentFileValid(cellValue, fileMap)) { - log.error("第" + row + "列选项" + tag.getDbFieldTxt() + "填写错误 "); - errMsg.append("第").append(row).append("列选项").append(tag.getDbFieldTxt()).append("填写错误 "); + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); } else { // 转为List // 将转好的值加入Map @@ -289,8 +293,11 @@ public class ImportUtil { } } } - errMsgList.add(errMsg.toString()); - insertDataList.add(parameterMap); + if (errMsg.toString().contains("填写错误")) { + errMsgList.add(errMsg.toString()); + } else { + insertDataList.add(parameterMap); + } } return errMsgList; } @@ -323,29 +330,20 @@ public class ImportUtil { return checkList; } - private String multiDateConvert(String cellValue) { - String[] dates = cellValue.split(","); - // 用英文逗号拼接 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - StringBuilder dateBuilder = new StringBuilder(); - for (String date : dates) { - dateBuilder.append(sdf.format(date)).append(","); - } - return dateBuilder.toString(); - } - private boolean multiDateValid(String cellValue) { String[] dates = cellValue.split(","); - // 创建一个SimpleDateFormat对象,并指定所需的格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - // 使用SimpleDateFormat对象的format方法将Date对象转换为字符串 + // 设置lenient为false,使得日期解析更为严格 + sdf.setLenient(false); try { for (String date : dates) { - sdf.format(date); + // 使用parse方法而不是format方法 + sdf.parse(date.trim()); // 这里还添加了trim()以去除可能的空白字符 } return true; - } catch (Exception e) { - log.error("日期转换错误:{}", e.getMessage()); + } catch (ParseException e) { + // 这里捕获的应该是ParseException + log.error("日期转换错误: {}", e.getMessage()); return false; } } @@ -464,7 +462,7 @@ public class ImportUtil { return StrUtil.isNotBlank(cellValue); } - // 字典验证(判断填写的是否是选项中的一个) + // 字典验证(判断填写的是否是中的一个) public boolean dictValid(String dictCode, String cellValue) { String[] valueList = cellValue.split(","); Map sexDictModelMap = @@ -589,6 +587,20 @@ public class ImportUtil { return true; } + // 多选标准弹框校验 + private boolean multiStandardValid(String cellValue, String model) { + String[] standardNo = cellValue.split(","); + List standardNoList = new ArrayList<>(); + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(model)) { + lawsEnterpriseStandardService.list().forEach(lawsEnterpriseStandard -> standardNoList.add(lawsEnterpriseStandard.getStandardNumber())); + } else if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(model)) { + lawsDomeStandardService.list().forEach(lawsDomesticStandard -> standardNoList.add(lawsDomesticStandard.getStandardNumber())); + } else if (TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(model)) { + overseasStandardService.list().forEach(lawsOverseasStandard -> standardNoList.add(lawsOverseasStandard.getStandardNumber())); + } + return new HashSet<>(standardNoList).containsAll(Arrays.asList(standardNo)); + } + // 辅助方法,获取单元格的内容 private String getCellContent(Cell cell) { if (cell == null) {