guoshilong
2024-03-20 8d5f3db4e1e88b77cb3dc04565ad007f2421c74e
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
package cn.gistack.sm.sjztmd.service.impl;
 
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigationState;
import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationService;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationStateService;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
 
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2024/1/3 14:36
 */
@Service
@DS("zt")
@Transactional(rollbackFor = Exception.class)
public class TbResGeneralInvestigationServiceImpl extends ServiceImpl<TbResGeneralInvestigationMapper, TbResGeneralInvestigation> implements ITbResGeneralInvestigationService {
 
    @Autowired
    private ITbResGeneralInvestigationStateService tbResGeneralInvestigationStateService;
 
    @Override
    @Transactional
    public R saveOrUpdateBy(TbResGeneralInvestigation entity) {
 
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("\"res_guid\"",entity.getResGuid());
        queryWrapper.eq("\"tb_year\"",entity.getTbYear());
//        queryWrapper.eq("\"tb_quarter\"",entity.getTbQuarter());
        TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
        if (null == state) {
            state = new TbResGeneralInvestigationState();
            state.setResGuid(entity.getResGuid());
            state.setTbQuarter(entity.getTbQuarter());
            state.setTbYear(entity.getTbYear());
            state.setCreateTime(entity.getCreateTime());
            state.setCreateUser(entity.getCreateUser());
        } else {
            if (state.getCheckState() == 1 || state.getCheckState() == 2) {
                return R.fail(entity.getResName() + "本年度已经普查完成,不能在提交了。");
            }
        }
 
        // 是否普查完成 1是 0否
        if (entity.getCheckState() != 0) {
            state.setCheckState(entity.getIsInvCom());
        }else{
            state.setCheckState(0);
        }
 
        tbResGeneralInvestigationStateService.saveOrUpdate(state);
 
        entity.setTbStateId(state.getGuid());
        return R.status(this.saveOrUpdate(entity));
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R saveOrUpdateByBatch(TbResGeneralInvestigationParam tbResGeneralInvestigationParam) {
        List<TbResGeneralInvestigation> list = tbResGeneralInvestigationParam.getList();
        TbResGeneralInvestigation entity = list.get(0);
 
        //查询该水库本年度是否有填报状态记录
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("\"res_guid\"",entity.getResGuid());
        queryWrapper.eq("\"tb_year\"",entity.getTbYear());
        TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
        if (null == state) {
            //无填报状态记录则新建
            state = new TbResGeneralInvestigationState();
            state.setResGuid(entity.getResGuid());
            state.setTbQuarter(entity.getTbQuarter());
            state.setTbYear(entity.getTbYear());
            state.setCreateTime(entity.getCreateTime());
            state.setCreateUser(entity.getCreateUser());
        } else {
            //查看填报状态,只有0填报中才可以一直填报
            if (state.getCheckState() == 1 || state.getCheckState() == 2) {
                return R.fail(entity.getResName() + "本年度已经普查完成,不能在提交了。");
            }
        }
 
        state.setCheckState(tbResGeneralInvestigationParam.getCheckState());
        tbResGeneralInvestigationStateService.saveOrUpdate(state);
//        //先把数据移除
//        QueryWrapper delete = new QueryWrapper();
//        delete.eq("\"tb_state_id\"",state.getGuid());
//        boolean remove = remove(delete);
//
//        if (remove){
//
//        }
 
        for (int i = 0; i < list.size(); i++) {
            TbResGeneralInvestigation tbResGeneralInvestigation = list.get(i);
            //id清空方便批量新增
//            tbResGeneralInvestigation.setGuid("");
 
            if (tbResGeneralInvestigation.getCreateTime() == null){
                tbResGeneralInvestigation.setCreateTime(DateUtil.now());
            }
 
            if (tbResGeneralInvestigation.getCreateUser() == null){
                tbResGeneralInvestigation.setCreateUser(AuthUtil.getUserId().toString());
            }
 
            //设置状态表id
            tbResGeneralInvestigation.setTbStateId(state.getGuid());
        }
        return R.status(saveOrUpdateBatch(list));
    }
}