|
@@ -237,6 +237,8 @@ public class ComStaffServiceImpl extends ServiceImpl<ComStaffMapper, ComStaff> i
|
|
|
}
|
|
}
|
|
|
ComStaff add = MapstructUtils.convert(bo, ComStaff.class);
|
|
ComStaff add = MapstructUtils.convert(bo, ComStaff.class);
|
|
|
add.setUserId(userId);
|
|
add.setUserId(userId);
|
|
|
|
|
+ // 设置人员编码为数据库最大编号加1
|
|
|
|
|
+ add.setStaffCode(generateStaffCode());
|
|
|
validEntityBeforeSave(add);
|
|
validEntityBeforeSave(add);
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
@@ -245,6 +247,29 @@ public class ComStaffServiceImpl extends ServiceImpl<ComStaffMapper, ComStaff> i
|
|
|
return flag;
|
|
return flag;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 生成人员编码(格式:00001, 00002, ...)
|
|
|
|
|
+ */
|
|
|
|
|
+ private String generateStaffCode() {
|
|
|
|
|
+ // 查询当前最大编号
|
|
|
|
|
+ LambdaQueryWrapper<ComStaff> lqw = Wrappers.lambdaQuery();
|
|
|
|
|
+ lqw.select(ComStaff::getStaffCode);
|
|
|
|
|
+ lqw.orderByDesc(ComStaff::getStaffCode);
|
|
|
|
|
+ lqw.last("LIMIT 1");
|
|
|
|
|
+ ComStaff maxRecord = baseMapper.selectOne(lqw);
|
|
|
|
|
+
|
|
|
|
|
+ int nextNum = 1;
|
|
|
|
|
+ if (maxRecord != null && StringUtils.isNotBlank(maxRecord.getStaffCode())) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ nextNum = Integer.parseInt(maxRecord.getStaffCode()) + 1;
|
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
|
+ log.warn("解析人员编码失败: {}", maxRecord.getStaffCode());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 格式化为5位数字,如 00001, 00002
|
|
|
|
|
+ return String.format("%05d", nextNum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 修改人员信息
|
|
* 修改人员信息
|
|
|
*
|
|
*
|