完善市场法规库清单添加接口
This commit is contained in:
+7
@@ -223,4 +223,11 @@ public interface ILawsCommonService {
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> getInfoByStandardNo(String standardNumber);
|
||||
|
||||
/**
|
||||
* 验证excel注解翻译是否匹配
|
||||
* @param obj
|
||||
* @return
|
||||
*/
|
||||
StringBuilder validateFieldByDict(Object obj);
|
||||
}
|
||||
|
||||
+104
@@ -4,20 +4,29 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.enums.LanguageEnum;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.system.vo.SysDictItemCore;
|
||||
import com.jero.common.util.IntekeyUtils;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||
@@ -69,6 +78,7 @@ import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
@@ -79,6 +89,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
@@ -153,6 +164,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
private ISysUserService sysUserRoleService;
|
||||
@Resource
|
||||
private ILawsPartNameStandardService partNameStandardService;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
public static boolean ENCRYPT_ENABLE;
|
||||
public static String DECRYPT_URL;
|
||||
@@ -2619,6 +2632,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建企标导入模板的Workbook
|
||||
*
|
||||
@@ -2779,4 +2793,94 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
this.setRow3CellValue(row3, fieldList, style);
|
||||
return workbook;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public StringBuilder validateFieldByDict(Object record) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
List<SysDictItemCore> listDict = sysBaseAPI.getDictItemAll();
|
||||
if(CollectionUtils.isEmpty(listDict)){
|
||||
return msg;
|
||||
}
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
String json;
|
||||
String jsonError = "json解析失败";
|
||||
try {
|
||||
json = mapper.writeValueAsString(record);
|
||||
} catch (JsonProcessingException e) {
|
||||
log.error(jsonError + e.getMessage(), e);
|
||||
throw new JeroBootException(jsonError);
|
||||
}
|
||||
JSONObject item;
|
||||
try {
|
||||
item = JSON.parseObject(json);
|
||||
} catch (Exception e) {
|
||||
log.error(jsonError + e.getMessage(), e);
|
||||
throw new JeroBootException(jsonError);
|
||||
}
|
||||
|
||||
for (Field field : oConvertUtils.getAllFields(record)) {
|
||||
field.setAccessible(true);
|
||||
if (field.getAnnotation(Excel.class) != null) {
|
||||
String code = field.getAnnotation(Excel.class).dicCode();
|
||||
if(StringUtils.isBlank(code)){
|
||||
continue;
|
||||
}
|
||||
String name = field.getAnnotation(Excel.class).name();
|
||||
String text = field.getAnnotation(Excel.class).dicText();
|
||||
String table = field.getAnnotation(Excel.class).dictTable();
|
||||
String key = String.valueOf(item.get(field.getName()));
|
||||
if(StringUtils.isBlank(key) || Objects.equals("null", key)){
|
||||
item.put(field.getName(), null);
|
||||
continue;
|
||||
}
|
||||
String textValue = translateDictValue(code, text, table, key, listDict);
|
||||
if(StringUtils.isBlank(textValue)){
|
||||
msg.append(name).append("数据不存在;");
|
||||
}else{
|
||||
item.put(field.getName(), textValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 翻译字典文本
|
||||
*
|
||||
* @param code 编码
|
||||
* @param text 值
|
||||
* @param table 表名
|
||||
* @param key 键
|
||||
* @param listDict 字典集合
|
||||
*/
|
||||
private String translateDictValue(String code, String text, String table, String key, List<SysDictItemCore> listDict) {
|
||||
if (oConvertUtils.isEmpty(key)) {
|
||||
return null;
|
||||
}
|
||||
StringBuilder textValue = new StringBuilder();
|
||||
String[] keys = key.split(",");
|
||||
for (String k : keys) {
|
||||
String tmpValue = null;
|
||||
if (k.trim().length() == 0) {
|
||||
continue; //跳过循环
|
||||
}
|
||||
if (!org.springframework.util.StringUtils.isEmpty(table)) {
|
||||
tmpValue = sysBaseAPI.queryTableDictTextByKey(table, code, text, k.trim());
|
||||
} else {
|
||||
List<SysDictItemCore> listNew = listDict.stream().filter(o -> Objects.equals(o.getDictCode(), code) && Objects.equals(o.getItemText(), k.trim())).collect(Collectors.toList());
|
||||
if (!org.springframework.util.CollectionUtils.isEmpty(listNew)) {
|
||||
tmpValue = listNew.get(0).getItemText();
|
||||
}
|
||||
}
|
||||
|
||||
if (tmpValue != null) {
|
||||
if (!"".equals(textValue.toString())) {
|
||||
textValue.append(",");
|
||||
}
|
||||
textValue.append(tmpValue);
|
||||
}
|
||||
}
|
||||
return textValue.toString();
|
||||
}
|
||||
}
|
||||
|
||||
+12
-12
@@ -123,7 +123,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
@Excel(name = "*国家/地区", width = 15,dicCode = "market_state")
|
||||
@Excel(name = "*国家/地区", width = 15)
|
||||
@NotBlank(message = "国家/地区不能为空")
|
||||
@ApiModelProperty(value = "国家")
|
||||
@Dict(dicCode = "market_state")
|
||||
@@ -132,7 +132,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
/**
|
||||
* 适用车型
|
||||
*/
|
||||
@Excel(name = "适用车型", width = 15, dicCode = "applicable_vehicle_type")
|
||||
@Excel(name = "适用车型", width = 15)
|
||||
@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, dicCode = "authentication_object")
|
||||
@Excel(name = "认证对象", width = 15)
|
||||
private String authenticationObject;
|
||||
|
||||
/**
|
||||
@@ -162,7 +162,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
* 类型
|
||||
*/
|
||||
@Dict(dicCode = "type")
|
||||
@Excel(name = "类型", width = 15, dicCode = "type")
|
||||
@Excel(name = "类型", width = 15)
|
||||
@ApiModelProperty(value = "类型")
|
||||
private String type;
|
||||
|
||||
@@ -171,7 +171,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
*/
|
||||
@Dict(dicCode = "dynamic_type")
|
||||
@ApiModelProperty(value = "动力类型")
|
||||
@Excel(name = "动力类型", width = 15, dicCode = "dynamic_type")
|
||||
@Excel(name = "动力类型", width = 15)
|
||||
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,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
||||
@Excel(name = "*主控部门", width = 15)
|
||||
private String mainDept;
|
||||
|
||||
/**
|
||||
@@ -189,7 +189,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
@ApiModelProperty(value = "主控部门专业模块")
|
||||
@NotBlank(message = "主控部门专业模块不能为空")
|
||||
@Dict(dicCode = "professional_module")
|
||||
@Excel(name = "*主控部门专业模块", width = 15, dicCode = "professional_module")
|
||||
@Excel(name = "*主控部门专业模块", width = 15)
|
||||
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,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
||||
@Excel(name = "关联部门", width = 15)
|
||||
private String associateDept;
|
||||
|
||||
/**
|
||||
* 关联部门专业模块
|
||||
*/
|
||||
@ApiModelProperty(value = "关联部门专业模块")
|
||||
@Excel(name = "关联部门专业模块", width = 15, dicCode = "professional_module")
|
||||
@Excel(name = "关联部门专业模块", width = 15)
|
||||
@Dict(dicCode = "professional_module")
|
||||
private String associateDeptProfMode;
|
||||
|
||||
@@ -212,7 +212,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
* 批量限制
|
||||
*/
|
||||
@ApiModelProperty(value = "批量限制")
|
||||
@Excel(name = "批量限制", width = 15, dicCode = "batch_restriction")
|
||||
@Excel(name = "批量限制", width = 15)
|
||||
@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,dicCode = "automatic_driving_level")
|
||||
@Excel(name = "自动驾驶等级", width = 15)
|
||||
private String autopilotLevel;
|
||||
|
||||
/**
|
||||
@@ -229,7 +229,7 @@ public class LawsMarketStandardDetailExcel implements Serializable {
|
||||
*/
|
||||
@Dict(dicCode = "requirement_type")
|
||||
@ApiModelProperty(value = "要求类型")
|
||||
@Excel(name = "要求类型", width = 15,dicCode = "requirement_type")
|
||||
@Excel(name = "要求类型", width = 15)
|
||||
private String requireType;
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -10,10 +10,10 @@
|
||||
from laws_domestic_standard
|
||||
where del_flag = 0
|
||||
union all
|
||||
select id, standard_number,
|
||||
select id, standard_number
|
||||
from laws_enterprise_standard
|
||||
where del_flag = 0) a where standard_number in
|
||||
<foreach collection="listNum.split(',')" item="item" separator="," open="(" close=")">
|
||||
<foreach collection="listNum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
+56
-19
@@ -10,10 +10,10 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.ImportExcelUtil;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
|
||||
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
|
||||
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetailExcel;
|
||||
import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO;
|
||||
import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper;
|
||||
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService;
|
||||
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService;
|
||||
@@ -23,7 +23,6 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -32,7 +31,9 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -45,13 +46,15 @@ import java.util.stream.Collectors;
|
||||
* @createDate 2024-06-29 11:34:34
|
||||
*/
|
||||
@Service
|
||||
public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketStandardDetailMapper, LawsMarketStandardDetail>
|
||||
implements ILawsMarketStandardDetailService {
|
||||
public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketStandardDetailMapper,
|
||||
LawsMarketStandardDetail> implements ILawsMarketStandardDetailService {
|
||||
|
||||
@Resource
|
||||
private ILawsMarketStandardService marketStandardService;
|
||||
@Resource
|
||||
private LawsMarketStandardDetailMapper lawsMarketStandardDetailMapper;
|
||||
@Resource
|
||||
private ILawsCommonService lawsCommonService;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -115,7 +118,6 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
|
||||
@Override
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public synchronized Result<?> importExcel(MultipartFile file,String manifestId) {
|
||||
List<LawsMarketStandardDetail> list = new ArrayList<>();
|
||||
// 校验文件是否为excel
|
||||
if (!ImportExcelUtil.checkExcelFile(file)) {
|
||||
return Result.error("请导入excel文件");
|
||||
@@ -123,50 +125,86 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
|
||||
ImportParams params = new ImportParams();
|
||||
params.setHeadRows(1);
|
||||
// 校验excel 字段是否正确
|
||||
boolean b = ImportExcelUtil.checkTemplateTitle(file, LawsMarketStandardDetailExcel.class, 0, 0);
|
||||
boolean b = ImportExcelUtil.
|
||||
checkTemplateTitle(file, LawsMarketStandardDetailExcel.class, 0, 0);
|
||||
if (!b) {
|
||||
return Result.error("excel文件表头错误,请重新下载");
|
||||
}
|
||||
try {
|
||||
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(file.getInputStream(), LawsMarketStandardDetailExcel.class, params);
|
||||
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel) && listLawsMarketStandardDetailExcel.size() >= 2){
|
||||
listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.subList(2,listLawsMarketStandardDetailExcel.size());
|
||||
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(
|
||||
file.getInputStream(), LawsMarketStandardDetailExcel.class, params);
|
||||
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)
|
||||
&& listLawsMarketStandardDetailExcel.size() >= 2){
|
||||
listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.
|
||||
subList(2,listLawsMarketStandardDetailExcel.size());
|
||||
}
|
||||
if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){
|
||||
return Result.error("导入数据为空");
|
||||
}
|
||||
List<LawsMarketStandardDetail> listLawsMarketStandardDetail = JSON.parseArray(
|
||||
JSON.toJSONString(listLawsMarketStandardDetailExcel),LawsMarketStandardDetail.class);
|
||||
List<LawsMarketStandardDetail> listStandardNumberNotNull = listLawsMarketStandardDetail.stream().filter(o->!StringUtils.isBlank(o.getStandardNumber())).collect(Collectors.toList());
|
||||
List<LawsMarketStandardDetail> listStandardNumberNotNull = listLawsMarketStandardDetail.stream().filter(o->
|
||||
!StringUtils.isBlank(o.getStandardNumber())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(listStandardNumberNotNull)){
|
||||
return Result.error("标准编号不能为空");
|
||||
}
|
||||
List<String> listStandardNumber = listStandardNumberNotNull.stream().map(LawsMarketStandardDetail::getStandardNumber).collect(Collectors.toList());
|
||||
List<String> listStandardNumber = listStandardNumberNotNull.stream()
|
||||
.map(LawsMarketStandardDetail::getStandardNumber).collect(Collectors.toList());
|
||||
// 根据标准编号获取标准id
|
||||
List<LawsMarketStandardDetail> listIds = lawsMarketStandardDetailMapper.getStandardData(listStandardNumber);
|
||||
if(CollectionUtils.isEmpty(listIds)){
|
||||
return Result.error("标准编号不存在");
|
||||
}
|
||||
StringBuilder m = new StringBuilder();
|
||||
// 获取当前清单的标准
|
||||
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>();
|
||||
queryLawsMarketStandardDetail.select(LawsMarketStandardDetail::getStandardId);
|
||||
queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,manifestId);
|
||||
queryLawsMarketStandardDetail.isNotNull(LawsMarketStandardDetail::getStandardId);
|
||||
List<LawsMarketStandardDetail> listStandardId = list(queryLawsMarketStandardDetail);
|
||||
List<String> listStandardIds = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(listStandardId)){
|
||||
listStandardIds = listStandardId.stream().map(LawsMarketStandardDetail::getStandardId)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
// 验证标准编号是否重复
|
||||
List<String> listStandardNum = new ArrayList<>();
|
||||
List<String> listStandardIdRepeat = new ArrayList<>();
|
||||
for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) {
|
||||
LawsMarketStandardDetail p = listLawsMarketStandardDetail.get(i);
|
||||
p.setManifestId(manifestId);
|
||||
// 校验数据
|
||||
StringBuilder g = ValidUtil.validateReturnBuilder(p);
|
||||
StringBuilder s = new StringBuilder();
|
||||
StringBuilder g = ValidUtil.validateReturnBuilder(p);
|
||||
if(!StringUtils.isEmpty(g.toString())){
|
||||
m.append(i + 4).append("行,").append(g.toString());
|
||||
s.append(g.toString());
|
||||
}
|
||||
// 验证字典值是否满足条件
|
||||
StringBuilder dict = lawsCommonService.validateFieldByDict(p);
|
||||
if(!StringUtils.isBlank(dict)){
|
||||
s.append(dict);
|
||||
}
|
||||
// 验证标准编号
|
||||
if(!StringUtils.isBlank(p.getStandardNumber())){
|
||||
List<LawsMarketStandardDetail> listStandardNumberData = listIds.stream().filter(o->
|
||||
Objects.equals(o.getStandardNumber(),p.getStandardNumber())).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isEmpty(listStandardNumberData)){
|
||||
m.append(i + 4).append("行,标准编号不存在");
|
||||
s.append("标准编号不存在;");
|
||||
}else{
|
||||
String id = listStandardNumberData.get(0).getStandardId();
|
||||
p.setStandardId(id);
|
||||
if(!CollectionUtils.isEmpty(listStandardIds) && listStandardIds.contains(id)){
|
||||
s.append("标准编号已存在;");
|
||||
}else if(!CollectionUtils.isEmpty(listStandardIdRepeat) && listStandardIdRepeat.contains(id)){
|
||||
s.append("标准编号重复;");
|
||||
}
|
||||
listStandardIdRepeat.add(listStandardNumberData.get(0).getId());
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(s.toString())){
|
||||
m.append("第").append(i + 4).append("行,").append(s.toString());
|
||||
}
|
||||
}
|
||||
|
||||
if(!StringUtils.isBlank(m.toString())){
|
||||
return Result.error(m.toString());
|
||||
}
|
||||
@@ -176,6 +214,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
|
||||
return Result.OK("导入成功");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
return Result.error("导入失败");
|
||||
} finally {
|
||||
try {
|
||||
file.getInputStream().close();
|
||||
@@ -183,8 +222,6 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK("导入成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,18 +1,29 @@
|
||||
package com.jero.modules.laws.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.SysDictItemCore;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 手动校验@Vaild方法
|
||||
|
||||
Reference in New Issue
Block a user