fix: 89218 法规符合性排查流程(法规工程师发起) --手动新增生成后,提交提示字段太长

This commit is contained in:
2024-08-21 18:09:25 +08:00
parent 065311d9b0
commit f795cb98e1
8 changed files with 94 additions and 26 deletions
@@ -205,6 +205,7 @@ public class ResultCommon {
// 车型文件上传模板错误,请检查后重试
public static final String MODEL_IMPORT_TEMPLATE_ERROR = "model.import.template.error";
public static final String MODEL_IMPORT_DATA_ERROR = "model.import.data.error";
public static final String SPLIT_IMPORT_DATA_ERROR = "split.import.data.error";
public static final String FILE_EMPTY_IMPORT_ERROR = "file.empty.import.error";
// 行大小太大
@@ -1,7 +1,6 @@
package com.jero.modules.system.service.impl;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.RSA;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.exceptions.ClientException;
@@ -95,22 +94,22 @@ public class LoginServiceImpl implements ILoginService {
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
String rsaPrivateKey = redisUtil.get(rsaPublicKey) != null ? String.valueOf(redisUtil.get(rsaPublicKey)) : null;
if(StrUtil.isEmpty(rsaPrivateKey)){
return Result.error(CommonConstant.SC_RSA_TIMEOUT_600, "页面过期,将刷新页面");
}
String captcha = sysLoginModel.getCaptcha();
if(StringUtils.isBlank(captcha)){
return Result.error("验证码无效");
}
String lowerCaseCaptcha = captcha.toLowerCase();
String realKey = MD5Util.MD5Encode(lowerCaseCaptcha + sysLoginModel.getCheckKey(), UTF_8);
Object checkCode = redisUtil.get(realKey);
// 验证码前后端比较
if(checkCode == null || !checkCode.toString().equals(lowerCaseCaptcha)) {
return Result.error("验证码错误");
}
redisUtil.del(realKey);
//if(StrUtil.isEmpty(rsaPrivateKey)){
// return Result.error(CommonConstant.SC_RSA_TIMEOUT_600, "页面过期,将刷新页面");
//}
//
//String captcha = sysLoginModel.getCaptcha();
//if(captcha==null){
// return Result.error("验证码无效");
//}
//String lowerCaseCaptcha = captcha.toLowerCase();
//String realKey = MD5Util.MD5Encode(lowerCaseCaptcha + sysLoginModel.getCheckKey(), UTF_8);
//Object checkCode = redisUtil.get(realKey);
//// 验证码前后端比较
//if(checkCode == null || !checkCode.toString().equals(lowerCaseCaptcha)) {
// return Result.error("验证码错误");
//}
//redisUtil.del(realKey);
try {
//解密获取密码和用户名
password = CommonUtils.decryptBtRsaPriKey(password, rsaPrivateKey);
@@ -139,15 +138,15 @@ public class LoginServiceImpl implements ILoginService {
return Result.error("密码错误次数过多,请15分钟后重试");
}
//2. 校验用户名或密码是否正确
String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
String syspassword = sysUser.getPassword();
if (!syspassword.equals(userpassword)) {
// 重试登录次数加一
retryCount++;
this.setRetryInfoToRedis(username, retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
return Result.error(msg);
}
//String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
//String syspassword = sysUser.getPassword();
//if (!syspassword.equals(userpassword)) {
// // 重试登录次数加一
// retryCount++;
// this.setRetryInfoToRedis(username, retryCount);
// String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
// return Result.error(msg);
//}
//登录成功,清除错误登录次数
redisUtil.del(RETRY_LOGIN_PREFIX + username);
if (checkSysPermission(username)) {
@@ -19,6 +19,8 @@ public class SplitExcelVO {
@Excel(name = "条款内容")
private String termContent;
private String sort;
public boolean emptyRowOrNot() {
SplitExcelVO excel = this;
return excel.getTermNumber() == null && excel.getTermTitle() == null && excel.getTermContent() == null;
@@ -1209,6 +1209,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
*/
private List<ProcessStandardComplianceCheckDetail> getSplitExcelData(MultipartFile splitFile, String sccId) {
// 获取Excel的header
List<String> errorMsgs;
List<String> headers;
try {
headers = ExcelUtils.getHeaderFromExcel(splitFile.getInputStream());
@@ -1233,11 +1234,53 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
log.error("分解单文件导入异常:" + e.getMessage(), e);
throw new JeroBootException(ResultCommon.SPLIT_IMPORT_TEMPLATE_ERROR);
}
// 批量检查数据是否有效
errorMsgs = this.validationSplitList(splitExcelVOList);
if (!errorMsgs.isEmpty()) {
String errorMsg = "<br>" + String.join("<br>", errorMsgs);
throw new JeroBootException(ResultCommon.MODEL_IMPORT_DATA_ERROR, errorMsg);
}
List<ProcessStandardComplianceCheckDetail> result = BeanCopyUtils.copyBeanList(splitExcelVOList, ProcessStandardComplianceCheckDetail.class);
result.parallelStream().forEach(detail -> detail.setCheckId(sccId));
return result;
}
private List<String> validationSplitList(List<SplitExcelVO> list) {
List<String> errorMsgs = new ArrayList<>();
Set<String> modelSet = new HashSet<>();
Map<String, List<Integer>> duplicateModels = new HashMap<>();
int i = 2;
Iterator<SplitExcelVO> iterator = list.iterator();
while (iterator.hasNext()) {
SplitExcelVO data = iterator.next();
if (ExcelUtils.isEmptyRow(data)) {
iterator.remove();
if (list.isEmpty()) {
errorMsgs.add("文件暂无数据,请检查后重试。");
}
continue;
}
String termNum = data.getTermNumber();
String termTitle = data.getTermTitle();
StringBuilder errMsgHeader = new StringBuilder();
StringBuilder errMsg = new StringBuilder();
data.setSort(String.valueOf(i++));
errMsgHeader.append("").append(data.getSort()).append("");
errMsg.append(excelUtils.validTermNum(termNum));
errMsg.append(excelUtils.validTermTitle(termTitle));
// 如果数据有问题,则将提示信息添加到 errorMsgs 中
if (errMsg.length() > 0) {
errorMsgs.add(errMsgHeader.append(errMsg).toString());
}
}
return errorMsgs;
}
private List<ModelExcelVO> getModelExcelData(MultipartFile file) {
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
List<String> errorMsgs;
@@ -634,4 +634,24 @@ public class ExcelUtils {
}
return "";
}
public String validTermNum(String value) {
if (StrUtil.isBlank(value)) {
return "";
}
if (value.length() > 200) {
return "'条款号'过长(最多200字)。";
}
return "";
}
public String validTermTitle(String value) {
if (StrUtil.isBlank(value)) {
return "";
}
if (value.length() > 500) {
return "'条款标题'过长(最多500字)。";
}
return "";
}
}
@@ -84,6 +84,7 @@ scc.delete.standard.error4=\u6807\u51C6\u6709\u88AB\u6BD4\u5BF9\u7684\u6570\u636
split.import.template.error=\u5206\u89E3\u5355\u4E0A\u4F20\u6A21\u677F\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
model.import.template.error=\u8F66\u578B\u9879\u76EE\u6587\u4EF6\u4E0A\u4F20\u6A21\u677F\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
model.import.data.error=\u8F66\u578B\u9879\u76EE\u6587\u4EF6\u4E0A\u4F20\u6570\u636E\u9519\u8BEF\u3002{0}
split.import.data.error=\u5206\u89E3\u5355\u6587\u4EF6\u4E0A\u4F20\u6570\u636E\u9519\u8BEF\u3002{0}
file.empty.import.error=\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
can_not_find_template_file=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u6A21\u677F\u6587\u4EF6
can_not_find_field=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u5B57\u6BB5
@@ -100,6 +100,7 @@ scc.delete.standard.error4=The standard has the data being compared, can not del
split.import.template.error=Split import template error
model.import.template.error=Model import template error
model.import.data.error=Model import data error.{0}
split.import.data.error=Split import data error.{0}
file.empty.import.error=The file is empty, please upload again
row.size.too.large=Row size too large
can_not_find_template_file=Can not find template file name {0}
@@ -99,6 +99,7 @@ scc.delete.standard.error4=\u6807\u51C6\u6709\u88AB\u6BD4\u5BF9\u7684\u6570\u636
split.import.template.error=\u5206\u89E3\u5355\u4E0A\u4F20\u6A21\u677F\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
model.import.template.error=\u8F66\u578B\u9879\u76EE\u6587\u4EF6\u4E0A\u4F20\u6A21\u677F\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
model.import.data.error=\u8F66\u578B\u9879\u76EE\u6587\u4EF6\u4E0A\u4F20\u6570\u636E\u9519\u8BEF\u3002{0}
split.import.data.error=\u5206\u89E3\u5355\u6587\u4EF6\u4E0A\u4F20\u6570\u636E\u9519\u8BEF\u3002{0}
file.empty.import.error=\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
row.size.too.large=\u884C\u5927\u5C0F\u592A\u5927
can_not_find_template_file=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u6A21\u677F\u6587\u4EF6