fix: 77902

企业标准--导入--代替标准号和引用标准两个字段导入的内容在标准选择中没有勾选出来
This commit is contained in:
2023-11-05 21:59:14 +08:00
parent 0fa11447d7
commit a97d0fd3b6
2 changed files with 70 additions and 48 deletions
@@ -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<String, Object> 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);
}
/**
@@ -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<String, DictModel> sexDictModelMap =
@@ -589,6 +587,20 @@ public class ImportUtil {
return true;
}
// 多选标准弹框校验
private boolean multiStandardValid(String cellValue, String model) {
String[] standardNo = cellValue.split(",");
List<String> 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) {