提交 bd44434f authored 作者: 宋文杰's avatar 宋文杰

feat(attendance): add attendance list api to query attendance member count and shift

上级 68ad0f86
......@@ -179,11 +179,6 @@
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
......
......@@ -46,6 +46,18 @@ public class AttendanceController extends BaseController {
return new R<>(attendanceService.getById(attendanceId));
}
/**
* @Description: 查询部门下的排班计划
* @Param: [deptId]
* @return: com.elephant.framework.galaxy.aroad.response.R
* @Author: songwenjie
* @Date: 2019/4/16
*/
@GetMapping("/list/{deptId}")
public R getAttance(@PathVariable("deptId") Integer deptId){
return new R<>(attendanceService.getAttendance(deptId));
}
/**
* 新增排班表
* @param attendance 排班表
......
package com.elephant.framework.galaxy.aroad.module.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @program:
* @description:
* @author: songwenjie
* @create: 2019-04-16 16:37
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AttendanceDto {
/**
* 排班id
*/
private int attendanceId;
/**
部门id
*/
private int unitId;
/**
* 班次id
*/
private int shiftId;
/**
* 班次名称
*/
private String shiftName;
/**
* 值班人数
*/
private int count;
/**
* 值班时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date time;
}
package com.elephant.framework.galaxy.aroad.module.attendance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto;
import com.elephant.framework.galaxy.aroad.module.attendance.entity.Attendance;
import java.util.List;
/**
* 排班表
*
......@@ -11,4 +14,12 @@ import com.elephant.framework.galaxy.aroad.module.attendance.entity.Attendance;
*/
public interface AttendanceMapper extends BaseMapper<Attendance> {
/**
* @Description: 查询部门下的排班计划
* @Param: [deptId]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto>
* @Author: songwenjie
* @Date: 2019/4/16
*/
List<AttendanceDto> getAttendance(int deptId);
}
package com.elephant.framework.galaxy.aroad.module.attendance.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto;
import com.elephant.framework.galaxy.aroad.module.attendance.entity.Attendance;
import java.util.List;
/**
* 排班表
*
......@@ -11,4 +14,12 @@ import com.elephant.framework.galaxy.aroad.module.attendance.entity.Attendance;
*/
public interface AttendanceService extends IService<Attendance> {
/**
* @Description: 查询部门下的排班计划
* @Param: [deptId]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto>
* @Author: songwenjie
* @Date: 2019/4/16
*/
List<AttendanceDto> getAttendance(int deptId);
}
package com.elephant.framework.galaxy.aroad.module.attendance.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto;
import com.elephant.framework.galaxy.aroad.module.attendance.entity.Attendance;
import com.elephant.framework.galaxy.aroad.module.attendance.mapper.AttendanceMapper;
import com.elephant.framework.galaxy.aroad.module.attendance.service.AttendanceService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 排班表
*
......@@ -15,4 +18,14 @@ import org.springframework.stereotype.Service;
@Service
public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attendance> implements AttendanceService {
/**
* @Description: 查询部门下的排班计划
* @Param: [deptId]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto>
* @Author: songwenjie
* @Date: 2019/4/16
*/
public List<AttendanceDto> getAttendance(int deptId){
return baseMapper.getAttendance(deptId);
}
}
......@@ -8,4 +8,25 @@
<id property="attendanceId" column="attendance_id"/>
<result property="shiftId" column="shift_id"/>
</resultMap>
<resultMap id="attendanceDtoMap" type="com.elephant.framework.galaxy.aroad.module.attendance.dto.AttendanceDto">
<result property="attendanceId" column="attendance_id"/>
<result property="shiftId" column="shift_id"/>
<result property="unitId" column="unit_id"/>
<result property="time" column="time"/>
<result property="shiftName" column="shift_name"/>
<result property="count" column="count"/>
</resultMap>
<select id="getAttendance" resultMap="attendanceDtoMap">
SELECT
a.attendance_id,a.unit_id,a.time,t.shift_id,t.shift_name,COUNT(m.id) as count
FROM `attendance` a
INNER JOIN attendance_templates t
ON a.shift_id = t.shift_id
INNER JOIN attendance_members m
ON a.attendance_id = m.attendance_id
WHERE a.unit_id = #{unitId}
GROUP BY a.time,a.shift_id
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论