ADD:新版排版接口

This commit is contained in:
stan
2025-07-09 11:00:16 +08:00
parent 65b15b8dbd
commit 19addb4469
5 changed files with 63 additions and 1 deletions
@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 排班controller
*
@@ -44,4 +46,15 @@ public class EmergencyScheduleApiController {
}
/**
* 年/月值班 展示
*/
@GetMapping("/scheduleShow/v2")
public Result<List<Integer>> scheduleShowV2(@RequestParam Integer year,
@RequestParam Integer month,
@RequestParam(required = false) String userId) {
return Result.ok(emergencyScheduleApiService.scheduleShowV2(year, month, userId));
}
}
@@ -2,6 +2,8 @@ package com.renkang.emergency.api.service;
import com.renkang.emergency.bean.response.ScheduleRecordShow;
import java.util.List;
/**
* @author Junqiang Zhu
* @date 2023-04-25 13:07
@@ -10,4 +12,6 @@ public interface EmergencyScheduleApiService {
ScheduleRecordShow scheduleRecord(String year, String month, String userId);
ScheduleRecordShow scheduleShow(Integer year, Integer month, String userId);
List<Integer> scheduleShowV2(Integer year, Integer month, String userId);
}
@@ -1,5 +1,6 @@
package com.renkang.emergency.api.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -12,6 +13,7 @@ import com.renkang.emergency.constant.EmergencyConstants;
import com.renkang.emergency.entity.ScheduleCustom;
import com.renkang.emergency.entity.ScheduleDefault;
import com.renkang.emergency.entity.ScheduleRecord;
import com.renkang.emergency.mapper.EmergencySchedulesNewMapper;
import com.renkang.emergency.mapper.ScheduleCustomMapper;
import com.renkang.emergency.mapper.ScheduleDefaultMapper;
import com.renkang.emergency.mapper.ScheduleRecordMapper;
@@ -37,6 +39,8 @@ public class EmergencyScheduleApiServiceImpl implements EmergencyScheduleApiServ
private ScheduleCustomMapper scheduleCustomMapper;
@Autowired
private ScheduleDefaultMapper scheduleDefaultMapper;
@Autowired
private EmergencySchedulesNewMapper schedulesNewMapper;
@Override
public ScheduleRecordShow scheduleRecord(String year, String month, String userId) {
@@ -94,6 +98,32 @@ public class EmergencyScheduleApiServiceImpl implements EmergencyScheduleApiServ
return show;
}
@Override
public List<Integer> scheduleShowV2(Integer year, Integer month, String userId) {
if (ObjectUtil.isNull(year)) {
throw new RuntimeException("参数缺失 year");
}
if (ObjectUtil.isNull(month)) {
throw new RuntimeException("参数缺失 month");
}
if (StrUtil.isBlank(userId)) {
userId = GlobalUtils.getLoginUser().getId();
}
// 查询排班记录
List<Date> schedules = schedulesNewMapper.scheduleTimes(year,month,userId);
return convertSchedules(schedules);
}
private List<Integer> convertSchedules(List<Date> schedules) {
if (CollUtil.isEmpty(schedules)) {
return Collections.emptyList();
}
return schedules.stream()
.map(DateUtil::dayOfMonth)
.distinct()
.sorted(Comparator.comparingInt(o -> o))
.collect(Collectors.toList());
}
private ScheduleMonth getFutureMonth(Integer year, Integer month, String userId) {
// 默认排班
@@ -1,10 +1,12 @@
package com.renkang.emergency.mapper;
import java.util.Date;
import java.util.List;
import com.renkang.emergency.entity.EmergencySchedules;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 排班表
@@ -14,4 +16,8 @@ import com.github.yulichang.base.MPJBaseMapper;
*/
public interface EmergencySchedulesNewMapper extends BaseMapper<EmergencySchedules>,MPJBaseMapper<EmergencySchedules> {
List<Date> scheduleTimes(@Param("year") Integer year,
@Param("month") Integer month,
@Param("userId") String userId);
}
@@ -1,5 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.renkang.emergency.mapper.EmergencySchedulesNewMapper">
<select id="scheduleTimes" resultType="java.util.Date">
SELECT DISTINCT t2.schedules_time
FROM emergency_schedules_new_item t1
LEFT JOIN emergency_new_schedules t2 ON t1.schedules_id = t2.id
WHERE
YEAR ( t2.schedules_time ) = #{year}
AND MONTH ( t2.schedules_time ) = #{month}
and t2.schedules_time is not null
AND t1.user_id = #{userId}
</select>
</mapper>