研究生、本校老师新增数据,批量设置饭卡、部分如:删除研究生数据管理、本校老师删除数据关联
This commit is contained in:
parent
02c0c7b9fe
commit
69acfa4d17
|
@ -65,10 +65,6 @@ public class CeesDormitoryInfoController extends JeecgController<CeesDormitoryIn
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
return Result.OK(ceesDormitoryInfoService.queryPageList(ceesDormitoryInfo,pageNo,pageSize,req));
|
return Result.OK(ceesDormitoryInfoService.queryPageList(ceesDormitoryInfo,pageNo,pageSize,req));
|
||||||
|
|
||||||
// QueryWrapper<CeesDormitoryInfo> queryWrapper = QueryGenerator.initQueryWrapper(ceesDormitoryInfo, req.getParameterMap());
|
|
||||||
// Page<CeesDormitoryInfo> page = new Page<CeesDormitoryInfo>(pageNo, pageSize);
|
|
||||||
// IPage<CeesDormitoryInfo> pageList = ceesDormitoryInfoService.page(page, queryWrapper);
|
|
||||||
// return Result.OK(pageList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package org.jeecg.modules.contoller;
|
package org.jeecg.modules.contoller;
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -11,10 +11,11 @@ import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.common.aspect.annotation.AutoLog;
|
import org.jeecg.common.aspect.annotation.AutoLog;
|
||||||
import org.jeecg.common.aspect.annotation.PermissionData;
|
import org.jeecg.common.aspect.annotation.PermissionData;
|
||||||
import org.jeecg.common.system.base.controller.JeecgController;
|
import org.jeecg.common.system.base.controller.JeecgController;
|
||||||
import org.jeecg.common.system.query.QueryGenerator;
|
|
||||||
import org.jeecg.modules.entity.CeesGroup;
|
import org.jeecg.modules.entity.CeesGroup;
|
||||||
|
import org.jeecg.modules.entity.CeesWaiTeacher;
|
||||||
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
||||||
import org.jeecg.modules.entity.vo.CeesUserGroupVo;
|
import org.jeecg.modules.entity.vo.CeesUserGroupVo;
|
||||||
|
import org.jeecg.modules.mapper.CeesWaiTeacherMapper;
|
||||||
import org.jeecg.modules.service.ICeesGroupService;
|
import org.jeecg.modules.service.ICeesGroupService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -24,6 +25,8 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Xubx
|
* @author Xubx
|
||||||
|
@ -36,6 +39,8 @@ import java.util.Arrays;
|
||||||
public class CeesGroupController extends JeecgController<CeesGroup, ICeesGroupService> {
|
public class CeesGroupController extends JeecgController<CeesGroup, ICeesGroupService> {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICeesGroupService ceesGroupService;
|
private ICeesGroupService ceesGroupService;
|
||||||
|
@Autowired
|
||||||
|
private CeesWaiTeacherMapper ceesWaiTeacherMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页列表查询
|
* 分页列表查询
|
||||||
|
@ -56,10 +61,6 @@ public class CeesGroupController extends JeecgController<CeesGroup, ICeesGroupSe
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
|
|
||||||
return Result.OK(ceesGroupService.queryPageList(ceesGroup,pageNo,pageSize,req));
|
return Result.OK(ceesGroupService.queryPageList(ceesGroup,pageNo,pageSize,req));
|
||||||
// QueryWrapper<CeesGroup> queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap());
|
|
||||||
// Page<CeesGroup> page = new Page<CeesGroup>(pageNo, pageSize);
|
|
||||||
// IPage<CeesGroup> pageList = ceesGroupService.page(page, queryWrapper);
|
|
||||||
// return Result.OK(pageList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -124,8 +125,29 @@ public class CeesGroupController extends JeecgController<CeesGroup, ICeesGroupSe
|
||||||
@ApiOperation(value = "分组表-通过id删除", notes = "分组表-通过id删除")
|
@ApiOperation(value = "分组表-通过id删除", notes = "分组表-通过id删除")
|
||||||
@DeleteMapping(value = "/delete")
|
@DeleteMapping(value = "/delete")
|
||||||
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
|
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
|
||||||
|
try {
|
||||||
|
// 1. 查询所有关联该宿舍的用户
|
||||||
|
LambdaQueryWrapper<CeesWaiTeacher> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(CeesWaiTeacher::getGroupId, id);
|
||||||
|
List<CeesWaiTeacher> teachers = ceesWaiTeacherMapper.selectList(queryWrapper);
|
||||||
|
// 2. 清空这些用户的宿舍信息
|
||||||
|
if (!teachers.isEmpty()) {
|
||||||
|
List<String> teacherIds = teachers.stream()
|
||||||
|
.map(CeesWaiTeacher::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
LambdaUpdateWrapper<CeesWaiTeacher> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.in(CeesWaiTeacher::getId, teacherIds)
|
||||||
|
.set(CeesWaiTeacher::getGroupId, null);
|
||||||
|
ceesWaiTeacherMapper.update(null, updateWrapper);
|
||||||
|
}
|
||||||
|
// 3. 删除宿舍记录
|
||||||
ceesGroupService.removeById(id);
|
ceesGroupService.removeById(id);
|
||||||
return Result.OK("删除成功!");
|
return Result.OK("删除成功!");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("删除宿舍失败", e);
|
||||||
|
return Result.error("删除宿舍失败: " + e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -138,8 +160,30 @@ public class CeesGroupController extends JeecgController<CeesGroup, ICeesGroupSe
|
||||||
@ApiOperation(value = "分组表-批量删除", notes = "分组表-批量删除")
|
@ApiOperation(value = "分组表-批量删除", notes = "分组表-批量删除")
|
||||||
@DeleteMapping(value = "/deleteBatch")
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
|
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
|
||||||
this.ceesGroupService.removeByIds(Arrays.asList(ids.split(",")));
|
try {
|
||||||
return Result.OK("批量删除成功!");
|
// 1. 将逗号分隔的ID转换为列表
|
||||||
|
List<String> groupIds = Arrays.asList(ids.split(","));
|
||||||
|
// 2. 检查是否有无效的宿舍ID
|
||||||
|
List<CeesGroup> existingGroupes = ceesGroupService.listByIds(groupIds);
|
||||||
|
if (existingGroupes.size() != groupIds.size()) {
|
||||||
|
return Result.error("部分宿舍ID不存在");
|
||||||
|
}
|
||||||
|
// 3. 查询所有关联这些宿舍的用户并清空宿舍信息
|
||||||
|
LambdaUpdateWrapper<CeesWaiTeacher> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.in(CeesWaiTeacher::getGroupId, groupIds)
|
||||||
|
.set(CeesWaiTeacher::getGroupId, null);
|
||||||
|
int affectedUsers = ceesWaiTeacherMapper.update(null, updateWrapper);
|
||||||
|
log.info("清空了{}位用户的宿舍信息", affectedUsers);
|
||||||
|
// 4. 批量删除宿舍记录
|
||||||
|
boolean removeSuccess = ceesGroupService.removeByIds(groupIds);
|
||||||
|
if (!removeSuccess) {
|
||||||
|
throw new RuntimeException("批量删除宿舍记录失败");
|
||||||
|
}
|
||||||
|
return Result.OK("批量删除成功,并清空了" + affectedUsers + "位用户的宿舍信息");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("批量删除宿舍失败", e);
|
||||||
|
return Result.error("批量删除失败: " + e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -109,8 +109,8 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
|
||||||
@ApiOperation(value="本校教师表-添加", notes="本校教师表-添加")
|
@ApiOperation(value="本校教师表-添加", notes="本校教师表-添加")
|
||||||
@PostMapping(value = "/add")
|
@PostMapping(value = "/add")
|
||||||
public Result<String> add(@RequestBody CeesLocalTeacher ceesLocalTeacher) {
|
public Result<String> add(@RequestBody CeesLocalTeacher ceesLocalTeacher) {
|
||||||
ceesLocalTeacherService.save(ceesLocalTeacher);
|
|
||||||
return Result.OK("添加成功!");
|
return ceesLocalTeacherService.addData(ceesLocalTeacher);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -123,6 +123,16 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
|
||||||
return ceesWaiTeacherService.batchGroup(webData);
|
return ceesWaiTeacherService.batchGroup(webData);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 批量分配饭卡
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/batchMealCard")
|
||||||
|
public Result<?> batchMealCard(@RequestBody Map<String, Object> webData){
|
||||||
|
log.info(webData.toString());
|
||||||
|
return ceesWaiTeacherService.batchMealCard(webData);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加
|
* 添加
|
||||||
|
@ -134,11 +144,6 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
|
||||||
@ApiOperation(value="外校老师管理-添加", notes="外校老师管理-添加")
|
@ApiOperation(value="外校老师管理-添加", notes="外校老师管理-添加")
|
||||||
@PostMapping(value = "/add")
|
@PostMapping(value = "/add")
|
||||||
public Result<String> add(@RequestBody CeesWaiTeacher ceesWaiTeacher) {
|
public Result<String> add(@RequestBody CeesWaiTeacher ceesWaiTeacher) {
|
||||||
CreateAccountDto createAccountDto = new CreateAccountDto();
|
|
||||||
createAccountDto.setGroup(4);
|
|
||||||
createAccountDto.setMajorId(ceesWaiTeacher.getMajorId());
|
|
||||||
createAccountDto.setNum(1);
|
|
||||||
Result<?> account = ceesUserService.createAccount(createAccountDto);
|
|
||||||
return ceesWaiTeacherService.addData(ceesWaiTeacher);
|
return ceesWaiTeacherService.addData(ceesWaiTeacher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,8 +92,7 @@ public class StudentController extends JeecgController<Student, IStudentService>
|
||||||
@ApiOperation(value="研究生表-添加", notes="研究生表-添加")
|
@ApiOperation(value="研究生表-添加", notes="研究生表-添加")
|
||||||
@PostMapping(value = "/add")
|
@PostMapping(value = "/add")
|
||||||
public Result<String> add(@RequestBody Student student) {
|
public Result<String> add(@RequestBody Student student) {
|
||||||
studentService.save(student);
|
return studentService.addData(student);
|
||||||
return Result.OK("添加成功!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -42,23 +42,23 @@ public class CeesAdminInfo implements Serializable {
|
||||||
@ApiModelProperty(value = "姓名")
|
@ApiModelProperty(value = "姓名")
|
||||||
private String userName;
|
private String userName;
|
||||||
/**用户id*/
|
/**用户id*/
|
||||||
@Excel(name = "用户id", width = 15)
|
@Excel(name = "身份码", width = 15)
|
||||||
@ApiModelProperty(value = "用户id")
|
@ApiModelProperty(value = "用户id")
|
||||||
private String userId;
|
private String userId;
|
||||||
/**用户专业id*/
|
/**用户专业id*/
|
||||||
@Excel(name = "用户专业id", width = 15)
|
@Excel(name = "用户专业Id", width = 15)
|
||||||
@ApiModelProperty(value = "用户专业id")
|
@ApiModelProperty(value = "用户专业id")
|
||||||
private String userMajorId;
|
private String userMajorId;
|
||||||
/**专业id,0表示未选择*/
|
/**专业id,0表示未选择*/
|
||||||
@Excel(name = "专业id,0表示未选择", width = 15)
|
@Excel(name = "专业id,0表示未选择", width = 15)
|
||||||
@ApiModelProperty(value = "专业id,0表示未选择")
|
@ApiModelProperty(value = "专业id,0表示未选择 语文|政治|地理|历史")
|
||||||
private Integer majorId;
|
private Integer majorId;
|
||||||
/**组别*/
|
/**组别*/
|
||||||
@Excel(name = "组别", width = 15)
|
// @Excel(name = "分组组别", width = 15)
|
||||||
@ApiModelProperty(value = "组别")
|
@ApiModelProperty(value = "组别")
|
||||||
private String groupId;
|
private String groupId;
|
||||||
/**组级别*/
|
/**组级别*/
|
||||||
@Excel(name = "组级别", width = 15)
|
@Excel(name = "之前组级别", width = 15)
|
||||||
@ApiModelProperty(value = "组级别")
|
@ApiModelProperty(value = "组级别")
|
||||||
private String beforeGroupLevel;
|
private String beforeGroupLevel;
|
||||||
/**组级别*/
|
/**组级别*/
|
||||||
|
|
|
@ -23,4 +23,6 @@ public interface ICeesLocalTeacherService extends IService<CeesLocalTeacher> {
|
||||||
String removeByUserId(String userId);
|
String removeByUserId(String userId);
|
||||||
|
|
||||||
boolean removeBatchByUserIds(List<String> localTeacherUserIds);
|
boolean removeBatchByUserIds(List<String> localTeacherUserIds);
|
||||||
|
|
||||||
|
Result<String> addData(CeesLocalTeacher ceesLocalTeacher);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,4 +45,6 @@ public interface ICeesWaiTeacherService extends IService<CeesWaiTeacher> {
|
||||||
CeesWaiTeacher getByUserId(String userId);
|
CeesWaiTeacher getByUserId(String userId);
|
||||||
|
|
||||||
List<CeesWaiTeacher> listByUserIds(List<String> waiTeacherUserIds);
|
List<CeesWaiTeacher> listByUserIds(List<String> waiTeacherUserIds);
|
||||||
|
|
||||||
|
Result<?> batchMealCard(Map<String, Object> webData);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,4 +22,6 @@ public interface IStudentService extends IService<Student> {
|
||||||
String removeByUserId(String userId);
|
String removeByUserId(String userId);
|
||||||
|
|
||||||
boolean removeBatchByUserIds(List<String> studentUserIds);
|
boolean removeBatchByUserIds(List<String> studentUserIds);
|
||||||
|
|
||||||
|
Result<String> addData(Student student);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.modules.entity.CeesLocalTeacher;
|
import org.jeecg.modules.entity.CeesLocalTeacher;
|
||||||
import org.jeecg.modules.entity.CeesUser;
|
import org.jeecg.modules.entity.CeesUser;
|
||||||
|
import org.jeecg.modules.entity.dto.CreateAccountDto;
|
||||||
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
||||||
import org.jeecg.modules.mapper.CeesGroupMapper;
|
import org.jeecg.modules.mapper.CeesGroupMapper;
|
||||||
import org.jeecg.modules.mapper.CeesLocalTeacherMapper;
|
import org.jeecg.modules.mapper.CeesLocalTeacherMapper;
|
||||||
|
@ -187,4 +188,29 @@ public class CeesLocalTeacherServiceImpl extends ServiceImpl<CeesLocalTeacherMap
|
||||||
wrapper.in(CeesLocalTeacher::getUserId, userIds);
|
wrapper.in(CeesLocalTeacher::getUserId, userIds);
|
||||||
return this.remove(wrapper);
|
return this.remove(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<String> addData(CeesLocalTeacher ceesLocalTeacher) {
|
||||||
|
// 生成用户身份码
|
||||||
|
CreateAccountDto createAccountDto = new CreateAccountDto();
|
||||||
|
createAccountDto.setGroup(3);
|
||||||
|
createAccountDto.setMajorId(ceesLocalTeacher.getMajorId());
|
||||||
|
createAccountDto.setNum(1);
|
||||||
|
Result<?> result = ceesUserService.createAccount(createAccountDto);
|
||||||
|
// 补充数据与数据同步
|
||||||
|
if (result.isSuccess()) {
|
||||||
|
List<CeesUser> users = (List<CeesUser>) result.getResult();
|
||||||
|
if (!users.isEmpty()) {
|
||||||
|
CeesUser user = users.get(0);
|
||||||
|
ceesLocalTeacher.setUserId(user.getUserId());
|
||||||
|
ceesLocalTeacher.setUserMajorId(user.getUserMajorId());
|
||||||
|
user.setUserName(ceesLocalTeacher.getUserName());
|
||||||
|
ceesUserMapper.updateById(user);
|
||||||
|
this.save(ceesLocalTeacher);
|
||||||
|
return Result.ok("添加成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result.error("添加失败");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,6 +127,11 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
|
||||||
if (StringUtils.isNotBlank(teacher.getPyCard())) {
|
if (StringUtils.isNotBlank(teacher.getPyCard())) {
|
||||||
teacher.setPyCard(JasyptUtil.decrypt(teacher.getPyCard(),passWord));
|
teacher.setPyCard(JasyptUtil.decrypt(teacher.getPyCard(),passWord));
|
||||||
}
|
}
|
||||||
|
// 设置 groupName
|
||||||
|
if (StringUtils.isNotBlank(teacher.getGroupId())) {
|
||||||
|
CeesGroup group = ceesGroupMapper.selectById(teacher.getGroupId());
|
||||||
|
teacher.setGroupName(group.getName());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
Set<String> dormitoryIdList = pageList.getRecords().stream().map(CeesWaiTeacher::getDormitoryId).collect(Collectors.toSet());
|
Set<String> dormitoryIdList = pageList.getRecords().stream().map(CeesWaiTeacher::getDormitoryId).collect(Collectors.toSet());
|
||||||
if (dormitoryIdList.size() > 0) {
|
if (dormitoryIdList.size() > 0) {
|
||||||
|
@ -385,4 +390,98 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
|
||||||
query.in(CeesWaiTeacher::getUserId, userIds);
|
query.in(CeesWaiTeacher::getUserId, userIds);
|
||||||
return list(query);
|
return list(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<?> batchMealCard(Map<String, Object> webData) {
|
||||||
|
Object idsObj = webData.get("ids");
|
||||||
|
List<String> ids = JSONObject.parseArray(idsObj.toString(), String.class);
|
||||||
|
|
||||||
|
Object minObj = webData.get("min");
|
||||||
|
int min = 0;
|
||||||
|
if (minObj instanceof String) {
|
||||||
|
min = Integer.valueOf((String) minObj);
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("min 参数类型错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
Object maxObj = webData.get("max");
|
||||||
|
int max = 0;
|
||||||
|
if (maxObj instanceof String) {
|
||||||
|
max = Integer.valueOf((String) maxObj);
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("max 参数类型错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取所有已有的 mealCard,构建占用集合
|
||||||
|
List<CeesWaiTeacher> allTeachers = ceesWaiTeacherMapper.selectList(null);
|
||||||
|
Set<String> usedCards = allTeachers.stream()
|
||||||
|
.map(CeesWaiTeacher::getMealCard)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 获取已存在 mealCard 的用户 ID
|
||||||
|
Set<String> alreadyHasCardIds = allTeachers.stream()
|
||||||
|
.filter(t -> t.getMealCard() != null && !t.getMealCard().trim().isEmpty())
|
||||||
|
.map(CeesWaiTeacher::getId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
int totalUpdatedLocal = 0;
|
||||||
|
List<String> failedIdsLocal = new ArrayList<>();
|
||||||
|
JSONObject finalFailed = null;
|
||||||
|
|
||||||
|
int currentCard = min;
|
||||||
|
|
||||||
|
for (String id : ids) {
|
||||||
|
// 如果用户已有 mealCard,跳过
|
||||||
|
if (alreadyHasCardIds.contains(id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean assigned = false;
|
||||||
|
|
||||||
|
// 查找下一个未被占用的卡号
|
||||||
|
while (currentCard <= max) {
|
||||||
|
String formattedCard = String.format("%03d", currentCard);
|
||||||
|
if (!usedCards.contains(formattedCard)) {
|
||||||
|
try {
|
||||||
|
LambdaUpdateWrapper<CeesWaiTeacher> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.eq(CeesWaiTeacher::getId, id)
|
||||||
|
.set(CeesWaiTeacher::getMealCard, formattedCard);
|
||||||
|
|
||||||
|
int affectedRows = ceesWaiTeacherMapper.update(null, updateWrapper);
|
||||||
|
if (affectedRows > 0) {
|
||||||
|
totalUpdatedLocal++;
|
||||||
|
usedCards.add(formattedCard);
|
||||||
|
assigned = true;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 忽略异常,进入失败处理
|
||||||
|
}
|
||||||
|
currentCard++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
currentCard++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!assigned) {
|
||||||
|
failedIdsLocal.add(id);
|
||||||
|
finalFailed = new JSONObject();
|
||||||
|
finalFailed.put("id", id);
|
||||||
|
finalFailed.put("attemptedMealCard", String.format("%03d", currentCard - 1));
|
||||||
|
break; // 只记录一条失败记录
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
resultJson.put("totalUpdated", totalUpdatedLocal);
|
||||||
|
resultJson.put("failedIds", failedIdsLocal);
|
||||||
|
resultJson.put("success", failedIdsLocal.isEmpty());
|
||||||
|
if (finalFailed != null) {
|
||||||
|
resultJson.put("lastFailedAssignment", finalFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.ok(resultJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.modules.entity.CeesUser;
|
import org.jeecg.modules.entity.CeesUser;
|
||||||
import org.jeecg.modules.entity.Student;
|
import org.jeecg.modules.entity.Student;
|
||||||
|
import org.jeecg.modules.entity.dto.CreateAccountDto;
|
||||||
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
|
||||||
import org.jeecg.modules.mapper.CeesGroupMapper;
|
import org.jeecg.modules.mapper.CeesGroupMapper;
|
||||||
import org.jeecg.modules.mapper.CeesUserMapper;
|
import org.jeecg.modules.mapper.CeesUserMapper;
|
||||||
|
@ -181,4 +182,28 @@ public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> impl
|
||||||
wrapper.in(Student::getUserId, userIds);
|
wrapper.in(Student::getUserId, userIds);
|
||||||
return this.remove(wrapper);
|
return this.remove(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<String> addData(Student student) {
|
||||||
|
// 生成用户身份码
|
||||||
|
CreateAccountDto createAccountDto = new CreateAccountDto();
|
||||||
|
createAccountDto.setGroup(2);
|
||||||
|
createAccountDto.setMajorId(student.getMajorId());
|
||||||
|
createAccountDto.setNum(1);
|
||||||
|
Result<?> result = ceesUserService.createAccount(createAccountDto);
|
||||||
|
// 补充数据与数据同步
|
||||||
|
if (result.isSuccess()) {
|
||||||
|
List<CeesUser> users = (List<CeesUser>) result.getResult();
|
||||||
|
if (!users.isEmpty()) {
|
||||||
|
CeesUser user = users.get(0);
|
||||||
|
student.setUserId(user.getUserId());
|
||||||
|
student.setUserMajorId(user.getUserMajorId());
|
||||||
|
user.setUserName(student.getUserName());
|
||||||
|
ceesUserMapper.updateById(user);
|
||||||
|
this.save(student);
|
||||||
|
return Result.ok("添加成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result.error("添加失败");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue