zss
2024-05-28 cd6a8e83f0864cb011a2719666f241e1217eb5a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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;
 
/**
 * <p>
 * 日工时管理的辅助工时 服务实现类
 * </p>
 *
 * @author 江苏鵷雏网络科技有限公司
 * @since 2024-05-28 02:22:19
 */
@Service
public class AuxiliaryWorkingHoursDayServiceImpl extends ServiceImpl<AuxiliaryWorkingHoursDayMapper, AuxiliaryWorkingHoursDay> implements AuxiliaryWorkingHoursDayService {
 
    @Resource
    AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
 
    @Resource
    AuxiliaryWorkingHoursMapper auxiliaryWorkingHoursMapper;
 
    @Resource
    GetLook getLook;
 
    @Resource
    UserMapper userMapper;
 
    @Resource
    PerformanceShiftMapper performanceShiftMapper;
 
    @Override
    public Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
        Map<String, Object> 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.<AuxiliaryWorkingHours>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.<PerformanceShift>lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime));
        if (ObjectUtils.isEmpty(performanceShift)){
            throw new RuntimeException("没有查到当前用户选择日期的当班班次信息!!");
        }
        return performanceShift.getShift();
    }
 
 
}