用户数据导入

This commit is contained in:
cjw 2024-05-11 10:30:43 +08:00
parent 69a0ac60c6
commit d3b8086723
7 changed files with 46 additions and 34 deletions

View File

@ -110,13 +110,13 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
@Override @Override
public Boolean insertByBo(SysScaleFactorBo bo) { public Boolean insertByBo(SysScaleFactorBo bo) {
SysScaleFactor add = processData(bo); SysScaleFactor add = processData(bo);
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
insertFactorRange(bo);
}
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setFactorId(add.getFactorId()); bo.setFactorId(add.getFactorId());
} }
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
insertFactorRange(bo);
}
return flag; return flag;
} }

View File

@ -107,20 +107,20 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
@Override @Override
public Boolean insertByBo(SysScaleQuestionBo bo) { public Boolean insertByBo(SysScaleQuestionBo bo) {
SysScaleQuestion add = MapstructUtils.convert(bo, SysScaleQuestion.class); SysScaleQuestion add = MapstructUtils.convert(bo, SysScaleQuestion.class);
validEntityBeforeSave(add); //validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setQuestionId(add.getQuestionId()); bo.setQuestionId(add.getQuestionId());
} }
batchInsertAnswer(bo, add); batchInsertAnswer(bo);
return flag; return flag;
} }
private void batchInsertAnswer(SysScaleQuestionBo bo, SysScaleQuestion sysScaleQuestion) { private void batchInsertAnswer(SysScaleQuestionBo bo) {
List<SysScaleAnswer> scaleAnswerList = bo.getScaleAnswerList(); List<SysScaleAnswer> scaleAnswerList = bo.getScaleAnswerList();
for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) { for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) {
sysScaleAnswer.setScaleId(bo.getScaleId()); sysScaleAnswer.setScaleId(bo.getScaleId());
sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId()); sysScaleAnswer.setQuestionId(bo.getQuestionId());
} }
scaleAnswerMapper.batchInsert(scaleAnswerList); scaleAnswerMapper.batchInsert(scaleAnswerList);
} }
@ -137,9 +137,9 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
@Override @Override
public Boolean updateByBo(SysScaleQuestionBo bo) { public Boolean updateByBo(SysScaleQuestionBo bo) {
SysScaleQuestion update = MapstructUtils.convert(bo, SysScaleQuestion.class); SysScaleQuestion update = MapstructUtils.convert(bo, SysScaleQuestion.class);
validEntityBeforeSave(update); //validEntityBeforeSave(update);
scaleAnswerMapper.deleteScaleAnswerByQuestionId(update.getQuestionId()); scaleAnswerMapper.deleteScaleAnswerByQuestionId(update.getQuestionId());
batchInsertAnswer(bo, update); batchInsertAnswer(bo);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }

View File

@ -135,6 +135,7 @@
FROM sys_scale_publish sp FROM sys_scale_publish sp
LEFT JOIN sys_evaluation_record er ON er.batch_no = sp.batch_no LEFT JOIN sys_evaluation_record er ON er.batch_no = sp.batch_no
GROUP BY sp.batch_no GROUP BY sp.batch_no
ORDER BY `expireTime` desc
</select> </select>
<select id="selectWarnNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectWarnNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
@ -145,6 +146,7 @@
(SELECT @xi := - 1) xc0) `month`) ri (SELECT @xi := - 1) xc0) `month`) ri
left join sys_warn_record wr on DATE_FORMAT(wr.warn_time, '%Y年%m月') = ri.date left join sys_warn_record wr on DATE_FORMAT(wr.warn_time, '%Y年%m月') = ri.date
GROUP BY ri.date GROUP BY ri.date
ORDER BY `name`
</select> </select>
<select id="selectInterveneNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectInterveneNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
@ -155,6 +157,7 @@
(SELECT @xi := - 1) xc0) `month`) ri (SELECT @xi := - 1) xc0) `month`) ri
left join sys_intervene_record ir on DATE_FORMAT(ir.create_time, '%Y年%m月') = ri.date left join sys_intervene_record ir on DATE_FORMAT(ir.create_time, '%Y年%m月') = ri.date
GROUP BY ri.date GROUP BY ri.date
ORDER BY `name`
</select> </select>
<select id="selectEvaluationByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectEvaluationByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
@ -167,5 +170,6 @@
left join sys_evaluation_record er left join sys_evaluation_record er
on DATE_FORMAT(er.create_time, '%Y年%m月') = ri.date and er.status = 1 on DATE_FORMAT(er.create_time, '%Y年%m月') = ri.date and er.status = 1
GROUP BY ri.date GROUP BY ri.date
ORDER BY `name`
</select> </select>
</mapper> </mapper>

View File

@ -23,17 +23,11 @@ public class SysUserImportVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
@ExcelProperty(value = "用户序号")
private Long userId;
/** /**
* 部门ID * 部门ID
*/ */
@ExcelProperty(value = "部门编号") @ExcelProperty(value = "部门名称")
private Long deptId; private String deptName;
/** /**
* 用户账号 * 用户账号
@ -67,10 +61,10 @@ public class SysUserImportVo implements Serializable {
private String sex; private String sex;
/** /**
* 帐号状态0正常 1停用 * 用户类型
*/ */
@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) @ExcelProperty(value = "用户类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_normal_disable") @ExcelDictFormat(dictType = "sys_user_type")
private String status; private String userType;
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.digest.BCrypt; import cn.hutool.crypto.digest.BCrypt;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.utils.ValidatorUtils;
@ -15,8 +16,8 @@ import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysUserImportVo; import org.dromara.system.domain.vo.SysUserImportVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysConfigService; import org.dromara.system.service.ISysConfigService;
import org.dromara.system.service.ISysDeptService;
import org.dromara.system.service.ISysUserService; import org.dromara.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import java.util.List; import java.util.List;
@ -30,6 +31,8 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
private final ISysUserService userService; private final ISysUserService userService;
private final ISysDeptService deptService;
private final String password; private final String password;
private final Boolean isUpdateSupport; private final Boolean isUpdateSupport;
@ -44,6 +47,7 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
public SysUserImportListener(Boolean isUpdateSupport) { public SysUserImportListener(Boolean isUpdateSupport) {
String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword"); String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword");
this.userService = SpringUtils.getBean(ISysUserService.class); this.userService = SpringUtils.getBean(ISysUserService.class);
this.deptService = SpringUtils.getBean(ISysDeptService.class);
this.password = BCrypt.hashpw(initPassword); this.password = BCrypt.hashpw(initPassword);
this.isUpdateSupport = isUpdateSupport; this.isUpdateSupport = isUpdateSupport;
this.operUserId = LoginHelper.getUserId(); this.operUserId = LoginHelper.getUserId();
@ -55,25 +59,29 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
try { try {
// 验证是否存在这个用户 // 验证是否存在这个用户
if (ObjectUtil.isNull(sysUser)) { if (ObjectUtil.isNull(sysUser)) {
Long deptId = this.deptService.selectIdBuName(userVo.getDeptName());
SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
ValidatorUtils.validate(user); ValidatorUtils.validate(user);
user.setPassword(password); user.setPassword(password);
user.setDeptId(deptId);
user.setCreateBy(operUserId); user.setCreateBy(operUserId);
userService.insertUser(user); userService.insertUser(user);
successNum++; successNum++;
successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功");
} else if (isUpdateSupport) {
Long userId = sysUser.getUserId();
SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
user.setUserId(userId);
ValidatorUtils.validate(user);
userService.checkUserAllowed(user.getUserId());
userService.checkUserDataScope(user.getUserId());
user.setUpdateBy(operUserId);
userService.updateUser(user);
successNum++;
successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功");
} else { } else {
//todo 是否需要更新暂不知需求
// } else if (isUpdateSupport) {
// Long userId = sysUser.getUserId();
// SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
// user.setUserId(userId);
// ValidatorUtils.validate(user);
// userService.checkUserAllowed(user.getUserId());
// userService.checkUserDataScope(user.getUserId());
// user.setUpdateBy(operUserId);
// userService.updateUser(user);
// successNum++;
// successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功");
// } else {
failureNum++; failureNum++;
failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在"); failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在");
} }

View File

@ -115,4 +115,6 @@ public interface ISysDeptService {
*/ */
int deleteDeptById(Long deptId); int deleteDeptById(Long deptId);
Long selectIdBuName(String deptName);
} }

View File

@ -325,5 +325,9 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
return baseMapper.deleteById(deptId); return baseMapper.deleteById(deptId);
} }
@Override
public Long selectIdBuName(String deptName) {
SysDept sysDept = baseMapper.selectOne(new LambdaQueryWrapper<SysDept>().select(SysDept::getDeptId).eq(SysDept::getDeptName, deptName));
return sysDept.getDeptId();
}
} }