修复排班bug
This commit is contained in:
parent
49ec73df49
commit
e4c21c831b
@ -76,11 +76,13 @@ public class AttendanceArrangementController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("Property:arrangement:query")
|
||||
@GetMapping("/queryByTime")
|
||||
public R<List<AttendanceArrangementVo>> queryByTime(@NotNull(message = "开始时间不能为空")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam("startTime") DateTime startTime) {
|
||||
public R<AttendanceArrangementVo> queryByTime(@NotNull(message = "开始时间不能为空")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam("startTime") DateTime startTime) {
|
||||
return R.ok(attendanceArrangementService.queryByTime(startTime));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增排班
|
||||
*/
|
||||
|
@ -32,7 +32,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/userGroup")
|
||||
@RequestMapping("/AttendanceUserGroup")
|
||||
public class AttendanceUserGroupController extends BaseController {
|
||||
|
||||
private final IAttendanceUserGroupService attendanceUserGroupService;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.property.domain;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
@ -40,12 +41,12 @@ public class AttendanceShift extends TenantEntity {
|
||||
/**
|
||||
* 考勤开始时间
|
||||
*/
|
||||
private LocalTime startTime;
|
||||
private DateTime startTime;
|
||||
|
||||
/**
|
||||
* 考勤结束时间
|
||||
*/
|
||||
private LocalTime endTime;
|
||||
private DateTime endTime;
|
||||
|
||||
/**
|
||||
* 状态(0:off,1:on)
|
||||
@ -60,12 +61,12 @@ public class AttendanceShift extends TenantEntity {
|
||||
/**
|
||||
* 休息开始时间
|
||||
*/
|
||||
private LocalTime restStartTime;
|
||||
private DateTime restStartTime;
|
||||
|
||||
/**
|
||||
* 休息结束时间
|
||||
*/
|
||||
private LocalTime restEndTime;
|
||||
private DateTime restEndTime;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.property.domain.bo;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import org.dromara.property.domain.AttendanceShift;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
@ -41,13 +42,13 @@ public class AttendanceShiftBo extends BaseEntity {
|
||||
* 考勤开始时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||
private LocalTime startTime;
|
||||
private DateTime startTime;
|
||||
|
||||
/**
|
||||
* 考勤结束时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||
private LocalTime endTime;
|
||||
private DateTime endTime;
|
||||
|
||||
/**
|
||||
* 状态(0:off,1:on)
|
||||
@ -63,13 +64,13 @@ public class AttendanceShiftBo extends BaseEntity {
|
||||
* 休息开始时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||
private LocalTime restStartTime;
|
||||
private DateTime restStartTime;
|
||||
|
||||
/**
|
||||
* 休息结束时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||
private LocalTime restEndTime;
|
||||
private DateTime restEndTime;
|
||||
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.property.domain.AttendanceGroup;
|
||||
import org.dromara.property.domain.AttendanceUserGroup;
|
||||
|
||||
import java.io.Serial;
|
||||
@ -83,5 +84,7 @@ public class AttendanceArrangementVo implements Serializable {
|
||||
|
||||
private List<AttendanceUserGroup> userGroupList;
|
||||
|
||||
private AttendanceGroup group;
|
||||
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ package org.dromara.property.domain.vo;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Date;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.property.domain.AttendanceShift;
|
||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
@ -47,13 +49,13 @@ public class AttendanceShiftVo implements Serializable {
|
||||
* 考勤开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "考勤开始时间")
|
||||
private LocalTime startTime;
|
||||
private DateTime startTime;
|
||||
|
||||
/**
|
||||
* 考勤结束时间
|
||||
*/
|
||||
@ExcelProperty(value = "考勤结束时间")
|
||||
private LocalTime endTime;
|
||||
private DateTime endTime;
|
||||
|
||||
/**
|
||||
* 状态(0:off,1:on)
|
||||
@ -73,13 +75,13 @@ public class AttendanceShiftVo implements Serializable {
|
||||
* 休息开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "休息开始时间")
|
||||
private LocalTime restStartTime;
|
||||
private DateTime restStartTime;
|
||||
|
||||
/**
|
||||
* 休息结束时间
|
||||
*/
|
||||
@ExcelProperty(value = "休息结束时间")
|
||||
private LocalTime restEndTime;
|
||||
private DateTime restEndTime;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,9 +1,15 @@
|
||||
package org.dromara.property.mapper;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.dromara.property.domain.AttendanceArrangement;
|
||||
import org.dromara.property.domain.vo.AttendanceArrangementVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 排班Mapper接口
|
||||
*
|
||||
@ -12,4 +18,9 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
public interface AttendanceArrangementMapper extends BaseMapperPlus<AttendanceArrangement, AttendanceArrangementVo> {
|
||||
|
||||
@Select("SELECT * FROM attendance_arrangement WHERE start_date <= #{startTime} AND end_date >= #{startTime}")
|
||||
AttendanceArrangementVo selectVoByTime(DateTime startTime);
|
||||
|
||||
List<AttendanceArrangement> selectArrangementList(@Param("req") LambdaQueryWrapper<AttendanceArrangement> attendanceArrangementLambdaQueryWrapper);
|
||||
|
||||
}
|
||||
|
@ -68,5 +68,6 @@ public interface IAttendanceArrangementService {
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<AttendanceArrangementVo> queryByTime(DateTime startTime);
|
||||
AttendanceArrangementVo queryByTime(DateTime startTime);
|
||||
|
||||
}
|
||||
|
@ -11,9 +11,7 @@ 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.dromara.property.domain.AttendanceFixedSchedule;
|
||||
import org.dromara.property.domain.AttendanceUserGroup;
|
||||
import org.dromara.property.domain.AttendanceWeekSet;
|
||||
import org.dromara.property.domain.*;
|
||||
import org.dromara.property.domain.constant.StatusConstant;
|
||||
import org.dromara.property.mapper.AttendanceFixedScheduleMapper;
|
||||
import org.dromara.property.mapper.AttendanceUserGroupMapper;
|
||||
@ -21,7 +19,6 @@ import org.dromara.property.mapper.AttendanceWeekSetMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.property.domain.bo.AttendanceArrangementBo;
|
||||
import org.dromara.property.domain.vo.AttendanceArrangementVo;
|
||||
import org.dromara.property.domain.AttendanceArrangement;
|
||||
import org.dromara.property.mapper.AttendanceArrangementMapper;
|
||||
import org.dromara.property.service.IAttendanceArrangementService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -46,6 +43,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
private final AttendanceFixedScheduleMapper fixedScheduleMapper;
|
||||
|
||||
private final AttendanceWeekSetMapper weekSetMapper;
|
||||
|
||||
/**
|
||||
* 查询排班
|
||||
*
|
||||
@ -53,7 +51,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
* @return 排班
|
||||
*/
|
||||
@Override
|
||||
public AttendanceArrangementVo queryById(Long id){
|
||||
public AttendanceArrangementVo queryById(Long id) {
|
||||
//根据id查询排班人员信息
|
||||
List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id));
|
||||
//将排班人员信息添加到排班信息中
|
||||
@ -86,10 +84,26 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
*/
|
||||
@Override
|
||||
public List<AttendanceArrangementVo> queryList(AttendanceArrangementBo bo) {
|
||||
LambdaQueryWrapper<AttendanceArrangement> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
//使用mybatis进行查询,不使用mybatisPlus
|
||||
//查询排班信息列表
|
||||
List<AttendanceArrangement> list = baseMapper.selectArrangementList(buildQueryWrapper(bo));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return MapstructUtils.convert(list, AttendanceArrangementVo.class);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private LambdaQueryWrapper<AttendanceArrangement> buildQueryWrapper(AttendanceArrangementBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<AttendanceArrangement> lqw = Wrappers.lambdaQuery();
|
||||
@ -181,7 +195,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(AttendanceArrangement entity){
|
||||
private void validEntityBeforeSave(AttendanceArrangement entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
@ -195,7 +209,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
@ -207,7 +221,30 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AttendanceArrangementVo> queryByTime(DateTime startTime) {
|
||||
return List.of();
|
||||
public AttendanceArrangementVo queryByTime(DateTime startTime) {
|
||||
// //1.根据开始时间查询所有的排班信息
|
||||
// AttendanceArrangementVo arrangementVo = baseMapper.selectVoByTime(startTime);
|
||||
//
|
||||
// //2.查询人员组的信息
|
||||
// //根据开始时间查询排班的id
|
||||
// Long scheduleId = baseMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().ge(AttendanceArrangement::getStartDate, startTime)).getId();
|
||||
// //根据排班的id查询出排班的人员详细信息
|
||||
// List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, scheduleId));
|
||||
// //将排班人员信息添加到排班信息中
|
||||
// arrangementVo.setUserGroupList(userGroupList);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //3.根据开始时间查询出排班的考勤组id
|
||||
// baseMapper.selectList(Wrappers.<AttendanceArrangement>lambdaQuery().ge(AttendanceArrangement::getStartDate, startTime)).getGroupId();
|
||||
//
|
||||
// Long groupId = baseMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().ge(AttendanceArrangement::getStartDate, startTime)).getGroupId();
|
||||
// //根据查询出来的考勤组id查询出考勤信息
|
||||
//
|
||||
//
|
||||
// return arrangementVo;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,4 +4,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.property.mapper.AttendanceArrangementMapper">
|
||||
|
||||
<select id="selectArrangementList" resultType="org.dromara.property.domain.AttendanceArrangement">
|
||||
<foreach collection="req.selectList" item="select">
|
||||
SELECT
|
||||
aa.*,
|
||||
aug.*,
|
||||
ag.*
|
||||
FROM
|
||||
attendance_arrangement aa
|
||||
LEFT JOIN attendance_user_group aug ON aa.id = aug.schedule_id
|
||||
LEFT JOIN attendance_group ag ON aa.group_id = ag.id
|
||||
WHERE
|
||||
aa.start_date = #{stateDate}
|
||||
</foreach>
|
||||
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user