package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursMapper; import com.yuanchu.mom.mapper.PerformanceShiftMapper; import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.AuxiliaryWorkingHours; import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay; import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper; import com.yuanchu.mom.pojo.PerformanceShift; import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.MyUtil; import com.yuanchu.mom.utils.QueryWrappers; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; /** *

* 日工时管理的辅助工时 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2024-05-28 02:22:19 */ @Service public class AuxiliaryWorkingHoursDayServiceImpl extends ServiceImpl implements AuxiliaryWorkingHoursDayService { @Resource AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper; @Resource AuxiliaryWorkingHoursMapper auxiliaryWorkingHoursMapper; @Resource GetLook getLook; @Resource UserMapper userMapper; @Resource PerformanceShiftMapper performanceShiftMapper; @Override public Map selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(AuxiliaryWorkingHoursDay.class)); map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay))); return map; } //根据编号查询辅助工时配置信息 @Override public AuxiliaryWorkingHoursDay selectAuxiliaryWorkingHoursByNumber(String number) { //根据填写的编号查询辅助工时配置 AuxiliaryWorkingHours auxiliaryWorkingHours = auxiliaryWorkingHoursMapper.selectOne(Wrappers.lambdaQuery().eq(AuxiliaryWorkingHours::getNumber, number)); if (ObjectUtils.isEmpty(auxiliaryWorkingHours)) { throw new RuntimeException("该编号没有对应的辅助工时配置"); } AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = new AuxiliaryWorkingHoursDay(); BeanUtils.copyProperties(auxiliaryWorkingHours, auxiliaryWorkingHoursDay); return auxiliaryWorkingHoursDay; } //录入数据(新增) @Override public int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); User user = userMapper.selectById(userId); auxiliaryWorkingHoursDay.setName(user.getName());//姓名 auxiliaryWorkingHoursDay.setState("已提交"); return auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay); } //审核/批准 @Override public int checkOrApprove(Integer id, String state) { AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = auxiliaryWorkingHoursDayMapper.selectById(id); if (auxiliaryWorkingHoursDay.getState().equals("已批准") && state.equals("已审核")) { throw new RuntimeException("该数据已经批准无需审核!"); } auxiliaryWorkingHoursDay.setState(state); return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay); } //编辑 @Override public int updateAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { if (!auxiliaryWorkingHoursDay.getState().equals("已提交")) { throw new RuntimeException("该数据已经批准或已审核,无法进行编辑!"); } Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); User user = userMapper.selectById(userId); auxiliaryWorkingHoursDay.setName(user.getName());//姓名 return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay); } //删除 @Override public int deleteAuxiliaryWorkingHoursDay(Integer id) { return auxiliaryWorkingHoursDayMapper.deleteById(id); } //根据编号当前用户信息查询所在班次 @Override public String selectshiftByUser(LocalDateTime dateTime) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime)); if (ObjectUtils.isEmpty(performanceShift)){ throw new RuntimeException("没有查到当前用户选择日期的当班班次信息!!"); } return performanceShift.getShift(); } }