package com.aps.core.service.impl;
|
|
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.aps.common.core.utils.DateUtils;
|
import com.aps.common.security.utils.SecurityUtils;
|
import com.aps.core.domain.ApsWorkCalendar;
|
import com.aps.core.mapper.ApsWorkCalendarMapper;
|
import com.aps.core.service.IApsWorkCalendarService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.time.DayOfWeek;
|
import java.time.LocalDate;
|
import java.time.YearMonth;
|
import java.util.List;
|
|
/**
|
* 日历管理Service业务层处理
|
*
|
* @author hjy
|
* @date 2025-04-22
|
*/
|
@Service
|
public class ApsWorkCalendarServiceImpl implements IApsWorkCalendarService
|
{
|
@Autowired
|
private ApsWorkCalendarMapper apsWorkCalendarMapper;
|
|
/**
|
* 查询日历管理
|
*
|
* @param id 日历管理主键
|
* @return 日历管理
|
*/
|
@Override
|
public ApsWorkCalendar selectApsWorkCalendarById(Long id)
|
{
|
return apsWorkCalendarMapper.selectApsWorkCalendarById(id);
|
}
|
|
/**
|
* 查询日历管理列表
|
*
|
* @param apsWorkCalendar 日历管理
|
* @return 日历管理
|
*/
|
@Override
|
public List<ApsWorkCalendar> selectApsWorkCalendarList(ApsWorkCalendar apsWorkCalendar)
|
{
|
return apsWorkCalendarMapper.selectApsWorkCalendarList(apsWorkCalendar);
|
}
|
|
/**
|
* 新增日历管理
|
*
|
* @param apsWorkCalendar 日历管理
|
* @return 结果
|
*/
|
@Override
|
public int insertApsWorkCalendar(ApsWorkCalendar apsWorkCalendar)
|
{
|
apsWorkCalendar.setCreateTime(DateUtils.getNowDate());
|
apsWorkCalendar.setCreateBy(SecurityUtils.getUsername());
|
return apsWorkCalendarMapper.insertApsWorkCalendar(apsWorkCalendar);
|
}
|
|
/**
|
* 修改日历管理
|
*
|
* @param apsWorkCalendar 日历管理
|
* @return 结果
|
*/
|
@Override
|
public int updateApsWorkCalendar(ApsWorkCalendar apsWorkCalendar)
|
{
|
apsWorkCalendar.setUpdateTime(DateUtils.getNowDate());
|
apsWorkCalendar.setUpdateBy(SecurityUtils.getUsername());
|
return apsWorkCalendarMapper.updateApsWorkCalendar(apsWorkCalendar);
|
}
|
|
/**
|
* 批量删除日历管理
|
*
|
* @param ids 需要删除的日历管理主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsWorkCalendarByIds(Long[] ids)
|
{
|
return apsWorkCalendarMapper.deleteApsWorkCalendarByIds(ids);
|
}
|
|
/**
|
* 删除日历管理信息
|
*
|
* @param id 日历管理主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsWorkCalendarById(Long id)
|
{
|
return apsWorkCalendarMapper.deleteApsWorkCalendarById(id);
|
}
|
|
public JSONArray getWorkCalendar(String applicableFactory, String datetime) {
|
JSONArray res = new JSONArray();
|
// 获取年份和月份
|
String[] parts = datetime.split("-");
|
int year = Integer.parseInt(parts[0]);
|
int month = Integer.parseInt(parts[1]);
|
// 获取指定年份和月份的天数
|
YearMonth yearMonth = YearMonth.of(year, month);
|
int daysInMonth = yearMonth.lengthOfMonth();
|
ApsWorkCalendar apsWorkCalendar = new ApsWorkCalendar();
|
apsWorkCalendar.setApplicableFactory(applicableFactory);
|
apsWorkCalendar.setEffectiveDate(DateUtils.parseDate(datetime+" 00:00:00"));
|
apsWorkCalendar.setExpiringDate(DateUtils.parseDate(datetime+" 23:59:59"));
|
List<ApsWorkCalendar> list = apsWorkCalendarMapper.selectApsWorkCalendarList(apsWorkCalendar);
|
if (list.isEmpty()) {
|
// 循环遍历当月的每一天,获取星期信息
|
for (int day = 1; day <= daysInMonth; day++) {
|
LocalDate date = LocalDate.of(year, month, day);
|
DayOfWeek dayOfWeek = date.getDayOfWeek();
|
JSONObject dayInfo = new JSONObject();
|
dayInfo.put("date", date.toString());
|
dayInfo.put("dayOfWeek", dayOfWeek.toString());
|
if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
|
dayInfo.put("isWorkDay", false);
|
} else {
|
dayInfo.put("isWorkDay", true);
|
}
|
res.add(dayInfo);
|
}
|
}
|
return res;
|
}
|
}
|