排班的区域管理

This commit is contained in:
dy 2025-08-19 09:54:33 +08:00
parent 23cab413c2
commit 6397085fe9
13 changed files with 540 additions and 26 deletions

View File

@ -0,0 +1,106 @@
package org.dromara.property.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.property.domain.vo.AttendanceArrangementAreaVo;
import org.dromara.property.domain.bo.AttendanceArrangementAreaBo;
import org.dromara.property.service.IAttendanceArrangementAreaService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 区域排班中间
* 前端访问路由地址为:/property/arrangementArea
*
* @author LionLi
* @date 2025-08-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/arrangementArea")
public class AttendanceArrangementAreaController extends BaseController {
private final IAttendanceArrangementAreaService attendanceArrangementAreaService;
/**
* 查询区域排班中间列表
*/
@SaCheckPermission("property:arrangementArea:list")
@GetMapping("/list")
public TableDataInfo<AttendanceArrangementAreaVo> list(AttendanceArrangementAreaBo bo, PageQuery pageQuery) {
return attendanceArrangementAreaService.queryPageList(bo, pageQuery);
}
/**
* 导出区域排班中间列表
*/
@SaCheckPermission("property:arrangementArea:export")
@Log(title = "区域排班中间", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(AttendanceArrangementAreaBo bo, HttpServletResponse response) {
List<AttendanceArrangementAreaVo> list = attendanceArrangementAreaService.queryList(bo);
ExcelUtil.exportExcel(list, "区域排班中间", AttendanceArrangementAreaVo.class, response);
}
/**
* 获取区域排班中间详细信息
*
* @param id 主键
*/
@SaCheckPermission("property:arrangementArea:query")
@GetMapping("/{id}")
public R<AttendanceArrangementAreaVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(attendanceArrangementAreaService.queryById(id));
}
/**
* 新增区域排班中间
*/
@SaCheckPermission("property:arrangementArea:add")
@Log(title = "区域排班中间", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody AttendanceArrangementAreaBo bo) {
return toAjax(attendanceArrangementAreaService.insertByBo(bo));
}
/**
* 修改区域排班中间
*/
@SaCheckPermission("property:arrangementArea:edit")
@Log(title = "区域排班中间", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AttendanceArrangementAreaBo bo) {
return toAjax(attendanceArrangementAreaService.updateByBo(bo));
}
/**
* 删除区域排班中间
*
* @param ids 主键串
*/
@SaCheckPermission("property:arrangementArea:remove")
@Log(title = "区域排班中间", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(attendanceArrangementAreaService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,41 @@
package org.dromara.property.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 区域排班中间对象 attendance_arrangement_area
*
* @author LionLi
* @date 2025-08-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("attendance_arrangement_area")
public class AttendanceArrangementArea extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 区域id
*/
private Long areaId;
/**
* 排班id
*/
private Long shceduleId;
}

View File

@ -0,0 +1,40 @@
package org.dromara.property.domain.bo;
import org.dromara.property.domain.AttendanceArrangementArea;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 区域排班中间业务对象 attendance_arrangement_area
*
* @author LionLi
* @date 2025-08-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = AttendanceArrangementArea.class, reverseConvertGenerate = false)
public class AttendanceArrangementAreaBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 区域id
*/
private Long areaId;
/**
* 排班id
*/
private Long shceduleId;
}

View File

@ -103,6 +103,7 @@ public class AttendanceArrangementBo extends BaseEntity {
*/
private List<AttendanceScheduleCycle> scheduleCycleList;
private List<Long> areaId;
}

View File

@ -0,0 +1,50 @@
package org.dromara.property.domain.vo;
import org.dromara.property.domain.AttendanceArrangementArea;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 区域排班中间视图对象 attendance_arrangement_area
*
* @author LionLi
* @date 2025-08-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = AttendanceArrangementArea.class)
public class AttendanceArrangementAreaVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 区域id
*/
@ExcelProperty(value = "区域id")
private Long areaId;
/**
* 排班id
*/
@ExcelProperty(value = "排班id")
private Long shceduleId;
}

View File

@ -96,7 +96,7 @@ public class AttendanceArrangementVo implements Serializable {
//排班制
private AttendanceScheduleCycle scheduleCycle;
private AttendanceArea attendanceArea;
private List<AttendanceArea> areaList;
}

View File

@ -11,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;
/**
@ -89,5 +90,8 @@ public class AttendanceUserGroupVo implements Serializable {
private AttendanceArea attendanceArea;
private List<AttendanceArrangementArea> attendanceArrangementAreaList;
private List<AttendanceArea> attendanceAreaList;
}

View File

@ -0,0 +1,15 @@
package org.dromara.property.mapper;
import org.dromara.property.domain.AttendanceArrangementArea;
import org.dromara.property.domain.vo.AttendanceArrangementAreaVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 区域排班中间Mapper接口
*
* @author LionLi
* @date 2025-08-18
*/
public interface AttendanceArrangementAreaMapper extends BaseMapperPlus<AttendanceArrangementArea, AttendanceArrangementAreaVo> {
}

View File

@ -0,0 +1,69 @@
package org.dromara.property.service;
import org.dromara.property.domain.AttendanceArrangementArea;
import org.dromara.property.domain.vo.AttendanceArrangementAreaVo;
import org.dromara.property.domain.bo.AttendanceArrangementAreaBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 区域排班中间Service接口
*
* @author LionLi
* @date 2025-08-18
*/
public interface IAttendanceArrangementAreaService {
/**
* 查询区域排班中间
*
* @param id 主键
* @return 区域排班中间
*/
AttendanceArrangementAreaVo queryById(Long id);
/**
* 分页查询区域排班中间列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 区域排班中间分页列表
*/
TableDataInfo<AttendanceArrangementAreaVo> queryPageList(AttendanceArrangementAreaBo bo, PageQuery pageQuery);
/**
* 查询符合条件的区域排班中间列表
*
* @param bo 查询条件
* @return 区域排班中间列表
*/
List<AttendanceArrangementAreaVo> queryList(AttendanceArrangementAreaBo bo);
/**
* 新增区域排班中间
*
* @param bo 区域排班中间
* @return 是否新增成功
*/
Boolean insertByBo(AttendanceArrangementAreaBo bo);
/**
* 修改区域排班中间
*
* @param bo 区域排班中间
* @return 是否修改成功
*/
Boolean updateByBo(AttendanceArrangementAreaBo bo);
/**
* 校验并批量删除区域排班中间信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,133 @@
package org.dromara.property.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.AttendanceArrangementAreaBo;
import org.dromara.property.domain.vo.AttendanceArrangementAreaVo;
import org.dromara.property.domain.AttendanceArrangementArea;
import org.dromara.property.mapper.AttendanceArrangementAreaMapper;
import org.dromara.property.service.IAttendanceArrangementAreaService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 区域排班中间Service业务层处理
*
* @author LionLi
* @date 2025-08-18
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class AttendanceArrangementAreaServiceImpl implements IAttendanceArrangementAreaService {
private final AttendanceArrangementAreaMapper baseMapper;
/**
* 查询区域排班中间
*
* @param id 主键
* @return 区域排班中间
*/
@Override
public AttendanceArrangementAreaVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询区域排班中间列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 区域排班中间分页列表
*/
@Override
public TableDataInfo<AttendanceArrangementAreaVo> queryPageList(AttendanceArrangementAreaBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<AttendanceArrangementArea> lqw = buildQueryWrapper(bo);
Page<AttendanceArrangementAreaVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的区域排班中间列表
*
* @param bo 查询条件
* @return 区域排班中间列表
*/
@Override
public List<AttendanceArrangementAreaVo> queryList(AttendanceArrangementAreaBo bo) {
LambdaQueryWrapper<AttendanceArrangementArea> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<AttendanceArrangementArea> buildQueryWrapper(AttendanceArrangementAreaBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<AttendanceArrangementArea> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(AttendanceArrangementArea::getId);
lqw.eq(bo.getAreaId() != null, AttendanceArrangementArea::getAreaId, bo.getAreaId());
lqw.eq(bo.getShceduleId() != null, AttendanceArrangementArea::getShceduleId, bo.getShceduleId());
return lqw;
}
/**
* 新增区域排班中间
*
* @param bo 区域排班中间
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(AttendanceArrangementAreaBo bo) {
AttendanceArrangementArea add = MapstructUtils.convert(bo, AttendanceArrangementArea.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改区域排班中间
*
* @param bo 区域排班中间
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(AttendanceArrangementAreaBo bo) {
AttendanceArrangementArea update = MapstructUtils.convert(bo, AttendanceArrangementArea.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(AttendanceArrangementArea entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除区域排班中间信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -55,23 +55,29 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
private final AttendanceAreaMapper attendanceAreaMapper;
private final AttendanceArrangementAreaMapper attendanceArrangementAreaMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询排班
* 根据id查询排班详情
*
* @param id 主键
* @return 排班
*/
@Override
public AttendanceArrangementVo queryById(Long id) {
//1.查询排班
AttendanceArrangementVo vo = baseMapper.selectVoById(id);
//2.查询考勤组信息
//根据id查询出groupId
Long groupId = baseMapper.selectById(id).getGroupId();
//根据groupId查询出考勤组信息
AttendanceGroup attendanceGroup = attendanceGroupMapper.selectById(groupId);
vo.setAttendanceGroup(attendanceGroup);
//3.查询人员表信息
//根据id查询排班人员信息
List<AttendanceUserGroupVo> userGroupList = userGroupMapper.selectVoList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id));
//查询所有的用户信息
@ -84,9 +90,18 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
//根据deptId查询出部门名称
String deptName = remoteUserService.selectDeptNamesByIds(Arrays.asList(deptId)).get(deptId);
userGroup.setDeptName(deptName);
});
});
//将排班人员信息添加到排班信息中
vo.setUserGroupList(userGroupList);
//4.根据id查询区域信息
List<AttendanceArrangementArea> arrangementAreaList = attendanceArrangementAreaMapper.selectList(Wrappers.<AttendanceArrangementArea>lambdaQuery().eq(AttendanceArrangementArea::getShceduleId, id));
//过滤出排班的区域id
List<Long> areaIdList = arrangementAreaList.stream().map(AttendanceArrangementArea::getAreaId).collect(Collectors.toList());
//根据区域id查询出区域信息
List<AttendanceArea> areaList = attendanceAreaMapper.selectList(Wrappers.<AttendanceArea>lambdaQuery().in(AttendanceArea::getId, areaIdList));
//6.将区域信息添加到排班信息中
vo.setAreaList(areaList);
return vo;
}
@ -120,18 +135,27 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
//根据排班的id查询出排班的人员详细信息
// List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleId));
List<AttendanceUserGroupVo> userGroupVoList = userGroupMapper.selectVoList(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleId));
//通过userGroupList查询出人员的详细信息
// 2.查询区域信息
// 根据shceduleId查询出区域排班的中间表的areaId
List<Long> areaIdList = attendanceArrangementAreaMapper.selectList(Wrappers.<AttendanceArrangementArea>lambdaQuery().eq(AttendanceArrangementArea::getShceduleId, scheduleId)).stream().map(AttendanceArrangementArea::getAreaId).collect(Collectors.toList());
//根据区域id查询出区域信息
List<AttendanceArea> areaList = attendanceAreaMapper.selectList(Wrappers.<AttendanceArea>lambdaQuery().in(AttendanceArea::getId, areaIdList));
//6.将区域信息添加到排班信息中
vo.setAreaList(areaList);
//通过userGroupList查询出人员的详细信息
//将userList存到userGroupList中
userGroupVoList.forEach(userGroup -> {
RemoteUserVo userInfoById = remoteUserService.getUserInfoById(userGroup.getEmployeeId());
userGroup.setRemoteUserVo(userInfoById);
//获取deptId
Long deptId = userGroup.getDeptId();
//根据deptId查询出部门名称
String deptName = remoteUserService.selectDeptNamesByIds(Arrays.asList(deptId)).get(deptId);
userGroup.setDeptName(deptName);
RemoteUserVo userInfoById = remoteUserService.getUserInfoById(userGroup.getEmployeeId());
userGroup.setRemoteUserVo(userInfoById);
//获取deptId
Long deptId = userGroup.getDeptId();
//根据deptId查询出部门名称
String deptName = remoteUserService.selectDeptNamesByIds(Arrays.asList(deptId)).get(deptId);
userGroup.setDeptName(deptName);
}
);
@ -476,10 +500,19 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
}
judgeDate(bo, add);
//取出当前新增的排班的id
Long ArrangementId = add.getId();
List<Long> areaId = bo.getAreaId();
//向区域排班中间表插入数据
areaId.forEach(area -> {
AttendanceArrangementArea attendanceArrangementArea = new AttendanceArrangementArea();
attendanceArrangementArea.setAreaId(area);
attendanceArrangementArea.setShceduleId(ArrangementId);
attendanceArrangementAreaMapper.insert(attendanceArrangementArea);
});
//用获取到的排班id向attendanceUserGroup表中插入数据
List<AttendanceUserGroup> userGroupList = bo.getUserGroupList();
for (AttendanceUserGroup userGroup : userGroupList) {
@ -522,6 +555,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
AttendanceArrangement update = MapstructUtils.convert(bo, AttendanceArrangement.class);
validEntityBeforeSave(update);
//1.更新人员组信息
//取出当前排班的id
assert update != null;
Long ArrangementId = update.getId();
@ -534,6 +568,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
.eq(AttendanceUserGroup::getScheduleId, ArrangementId));
}
//2.更新部门信息
//根据排班id获取部门id
List<Long> deptIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId))
.stream().map(AttendanceUserGroup::getDeptId).toList();
@ -550,7 +585,6 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
//根据old查询出结束时间
LocalDate oldEndDate = old.getEndDate();
//用获取到的排班id向attendanceUserGroup表中批量插入数据
List<AttendanceUserGroup> userGroupList = bo.getUserGroupList();
for (AttendanceUserGroup userGroup : userGroupList) {
@ -560,6 +594,26 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
}
userGroupMapper.insertBatch(userGroupList);
//2.更新区域信息
//根据排班id获取区域id
List<Long> areaIdList = attendanceArrangementAreaMapper.selectList(Wrappers.<AttendanceArrangementArea>lambdaQuery().eq(AttendanceArrangementArea::getShceduleId, ArrangementId))
.stream().map(AttendanceArrangementArea::getAreaId).toList();
if (!areaIdList.isEmpty()) {
//根据areaId和ArrangementId删除attendanceAreaGroup表中的数据
attendanceArrangementAreaMapper.delete(Wrappers.<AttendanceArrangementArea>lambdaQuery().in(AttendanceArrangementArea::getAreaId, areaIdList)
.eq(AttendanceArrangementArea::getShceduleId, ArrangementId));
}
//向区域排班中间表插入数据
List<Long> newAreaId = bo.getAreaId();
newAreaId.forEach(area -> {
AttendanceArrangementArea attendanceArrangementArea = new AttendanceArrangementArea();
attendanceArrangementArea.setAreaId(area);
attendanceArrangementArea.setShceduleId(bo.getId());
attendanceArrangementAreaMapper.insert(attendanceArrangementArea);
});
return baseMapper.updateById(update) > 0;
}
@ -627,6 +681,8 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
//根据获取的id删除attendanceUserGroup表中的数据
userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, idList));
//根据id删除区域排班中间表中的数据
attendanceArrangementAreaMapper.delete(Wrappers.<AttendanceArrangementArea>lambdaQuery().in(AttendanceArrangementArea::getShceduleId, idList));
return baseMapper.deleteByIds(ids) > 0;
}

View File

@ -52,6 +52,8 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
private final AttendanceAreaMapper attendanceAreaMapper;
private final AttendanceArrangementAreaMapper attendanceArrangementAreaMapper;
@DubboReference
private RemoteUserService remoteUserService;
@ -209,12 +211,6 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
String deptName = remoteUserService.selectDeptNamesByIds(Arrays.asList(deptId)).get(deptId);
vo.setDeptName(deptName);
// //通过employeeId查询出用户的部门信息
// String deptInfo = remoteDeptService.selectDeptNameByIds(String.valueOf(vo.getDeptId()));
// vo.setDeptName(deptInfo);
//根据scheduleId查询出排班的详细信息
AttendanceArrangement attendanceArrangement = arrangementMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().eq(AttendanceArrangement::getId, scheduleId));
// 假设每个vo只有一个scheduleId
@ -222,6 +218,7 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
AttendanceArrangement arrangement = arrangementMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().eq(AttendanceArrangement::getId, userGroupListScheduleId));
vo.setAttendanceArrangement(arrangement);
// 根据scheduleId过滤出groupId
Long groupId = arrangement.getGroupId();
// 根据groupId查询出考勤组的详细信息
@ -229,11 +226,13 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
vo.setAttendanceGroup(attendanceGroup);
// //3.根据id查询区域信息
// Long areaId = arrangement.getAreaId();
// //根据区域id查询出区域的详细信息
// AttendanceArea attendanceArea = attendanceAreaMapper.selectById(areaId);
// vo.setAttendanceArea(attendanceArea);
// 根据scheduleId查询出区域排班中间表
List<AttendanceArrangementArea> attendanceArrangementAreaList = attendanceArrangementAreaMapper.selectList(Wrappers.<AttendanceArrangementArea>lambdaQuery().eq(AttendanceArrangementArea::getShceduleId, scheduleId));
vo.setAttendanceArrangementAreaList(attendanceArrangementAreaList);
//根据中间表查询出区域信息
List<Long> areaIdList = attendanceArrangementAreaList.stream().map(AttendanceArrangementArea::getAreaId).collect(Collectors.toList());
List<AttendanceArea> attendanceAreaList = attendanceAreaMapper.selectBatchIds(areaIdList);
vo.setAttendanceAreaList(attendanceAreaList);
// 判断当前考勤组的班制是固定班制还是排班制
if (Objects.equals(attendanceGroup.getAttendanceType(), StatusConstant.FIXEDSCHEDULE)) {

View File

@ -42,7 +42,7 @@ db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=123456
db.password.0=1234
### the maximum retry times for push
nacos.config.push.maxRetryTime=50