package cn.iocoder.yudao.module.mes.service.cal.holiday; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.cal.holiday.vo.MesCalHolidaySaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.cal.holiday.MesCalHolidayDO; import cn.iocoder.yudao.module.mes.dal.mysql.cal.holiday.MesCalHolidayMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.util.List; /** * MES 假期设置 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class MesCalHolidayServiceImpl implements MesCalHolidayService { @Resource private MesCalHolidayMapper holidayMapper; @Override public Long saveHoliday(MesCalHolidaySaveReqVO saveReqVO) { // Upsert 逻辑:如果该日期已有记录,则更新 MesCalHolidayDO existing = holidayMapper.selectByDay(saveReqVO.getDay()); if (existing != null) { MesCalHolidayDO updateObj = BeanUtils.toBean(saveReqVO, MesCalHolidayDO.class); updateObj.setId(existing.getId()); holidayMapper.updateById(updateObj); return existing.getId(); } // 插入新记录 MesCalHolidayDO holiday = BeanUtils.toBean(saveReqVO, MesCalHolidayDO.class); holidayMapper.insert(holiday); return holiday.getId(); } @Override public List getHolidayList(LocalDateTime startDay, LocalDateTime endDay) { return holidayMapper.selectList(startDay, endDay); } @Override public MesCalHolidayDO getHolidayByDay(LocalDateTime day) { return holidayMapper.selectByDay(day); } }