|
@@ -1,5 +1,6 @@
|
|
|
package org.dromara.risk.service.impl;
|
|
package org.dromara.risk.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -17,13 +18,13 @@ import org.dromara.risk.mapper.RiskWarningMapper;
|
|
|
import org.dromara.risk.service.IRiskWarningService;
|
|
import org.dromara.risk.service.IRiskWarningService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 风险警示 业务层实现
|
|
* 风险警示 业务层实现
|
|
|
- *
|
|
|
|
|
- * @author ruoyi
|
|
|
|
|
*/
|
|
*/
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
@@ -89,9 +90,13 @@ public class RiskWarningServiceImpl implements IRiskWarningService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public int insertByBo(RiskWarningBo bo) {
|
|
public int insertByBo(RiskWarningBo bo) {
|
|
|
|
|
+ // 警示编号:前端未传时系统自动生成,确保 UNIQUE KEY uk_warning_code 不冲突
|
|
|
|
|
+ if (StringUtils.isBlank(bo.getWarningCode())) {
|
|
|
|
|
+ bo.setWarningCode(generateWarningCode());
|
|
|
|
|
+ }
|
|
|
// 发布时间前端不传时取当前时间
|
|
// 发布时间前端不传时取当前时间
|
|
|
if (bo.getReleaseTime() == null) {
|
|
if (bo.getReleaseTime() == null) {
|
|
|
- bo.setReleaseTime(new java.util.Date());
|
|
|
|
|
|
|
+ bo.setReleaseTime(new Date());
|
|
|
}
|
|
}
|
|
|
RiskWarning add = MapstructUtils.convert(bo, RiskWarning.class);
|
|
RiskWarning add = MapstructUtils.convert(bo, RiskWarning.class);
|
|
|
int row = baseMapper.insert(add);
|
|
int row = baseMapper.insert(add);
|
|
@@ -99,6 +104,27 @@ public class RiskWarningServiceImpl implements IRiskWarningService {
|
|
|
return row;
|
|
return row;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 生成警示编号:W + yyyyMMddHHmmss + 3位随机数
|
|
|
|
|
+ * 冲突自动重试 5 次,极端情况 UUID 兜底,保证 UNIQUE KEY uk_warning_code 不冲突
|
|
|
|
|
+ */
|
|
|
|
|
+ private String generateWarningCode() {
|
|
|
|
|
+ String prefix = "W";
|
|
|
|
|
+ String ts = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
|
|
|
|
|
+ java.util.concurrent.ThreadLocalRandom random = java.util.concurrent.ThreadLocalRandom.current();
|
|
|
|
|
+ for (int i = 0; i < 5; i++) {
|
|
|
|
|
+ String suffix = StringUtils.leftPad(
|
|
|
|
|
+ Integer.toString(random.nextInt(1000)), 3, '0');
|
|
|
|
|
+ String code = prefix + ts + suffix;
|
|
|
|
|
+ Long exists = baseMapper.selectCount(Wrappers.<RiskWarning>lambdaQuery()
|
|
|
|
|
+ .eq(RiskWarning::getWarningCode, code));
|
|
|
|
|
+ if (exists == null || exists == 0) {
|
|
|
|
|
+ return code;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return prefix + ts + IdUtil.fastSimpleUUID().substring(0, 4).toUpperCase();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 修改风险警示
|
|
* 修改风险警示
|
|
|
*/
|
|
*/
|