zhangnaisong
2024-07-20 55811ddff81bc142eac3c27e44f30c55e84311f1
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.ruoyi.sy.service.impl;
 
import java.util.List;
 
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
 
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.sy.mapper.ArdTankWallLockMapper;
import com.ruoyi.sy.domain.ArdTankWallLock;
import com.ruoyi.sy.service.IArdTankWallLockService;
 
import javax.annotation.Resource;
 
/**
 * 电子围栏电磁锁Service业务层处理
 *
 * @author ard
 * @date 2024-06-29
 */
@Service
public class ArdTankWallLockServiceImpl implements IArdTankWallLockService {
    @Resource
    private ArdTankWallLockMapper ardTankWallLockMapper;
 
    /**
     * 查询电子围栏电磁锁
     *
     * @param processType 电子围栏电磁锁主键
     * @return 电子围栏电磁锁
     */
    @Override
    public ArdTankWallLock selectArdTankWallLockByProcessType(String processType) {
        return ardTankWallLockMapper.selectArdTankWallLockByProcessType(processType);
    }
 
    /**
     * 查询电子围栏电磁锁列表
     *
     * @param ardTankWallLock 电子围栏电磁锁
     * @return 电子围栏电磁锁
     */
    @Override
    public List<ArdTankWallLock> selectArdTankWallLockList(ArdTankWallLock ardTankWallLock) {
        return ardTankWallLockMapper.selectArdTankWallLockList(ardTankWallLock);
    }
 
    /**
     * 新增电子围栏电磁锁
     *
     * @param ardTankWallLock 电子围栏电磁锁
     * @return 结果
     */
    @Override
    public int insertArdTankWallLock(ArdTankWallLock ardTankWallLock) {
                ardTankWallLock.setId(IdUtils.simpleUUID());
            return ardTankWallLockMapper.insertArdTankWallLock(ardTankWallLock);
    }
 
    /**
     * 修改电子围栏电磁锁
     *
     * @param ardTankWallLock 电子围栏电磁锁
     * @return 结果
     */
    @Override
    public int updateArdTankWallLock(ArdTankWallLock ardTankWallLock) {
        return ardTankWallLockMapper.updateArdTankWallLock(ardTankWallLock);
    }
 
    /**
     * 批量删除电子围栏电磁锁
     *
     * @param processTypes 需要删除的电子围栏电磁锁主键
     * @return 结果
     */
    @Override
    public int deleteArdTankWallLockByProcessTypes(String[] processTypes) {
        return ardTankWallLockMapper.deleteArdTankWallLockByProcessTypes(processTypes);
    }
 
    /**
     * 删除电子围栏电磁锁信息
     *
     * @param processType 电子围栏电磁锁主键
     * @return 结果
     */
    @Override
    public int deleteArdTankWallLockByProcessType(String processType) {
        return ardTankWallLockMapper.deleteArdTankWallLockByProcessType(processType);
    }
 
    @Override
    public int insertWallLock(Map<String, Object> para) {
        String id = (String) para.get("id");//锁主键
        List<Map<String,String>> tankWallLockList = (List<Map<String, String>>) para.get("tankWallLockList");
        if(tankWallLockList.size() == 0){//数组为空,做删除操作
            List<ArdTankWallLock> ardTankWallLockList = ardTankWallLockMapper.selectArdTankWallLockByLockId(id);//查询之前挂接的电子围栏
            if(ardTankWallLockList.size() == 0){//若没有挂接,不做操作
                return 1;
            }
            int result = ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);
            return result;
        }
        //List<ArdTankWallLock> tankWallLocks = new ArrayList();
        List<String> idList = new ArrayList();//存放新增和修改的中间表主键
        int result = 0;
        for(Map<String,String> map : tankWallLockList){
            ArdTankWallLock ardTankWallLock = new ArdTankWallLock();
            ardTankWallLock.setWallId(map.get("wallId"));
            ardTankWallLock.setLockId(id);
            List<ArdTankWallLock> ardTankWallLockList = ardTankWallLockMapper.selectArdTankWallLockList(ardTankWallLock);
            if(ardTankWallLockList.size() != 0){
                ardTankWallLock.setProcessType(map.get("processType"));
                result = result + ardTankWallLockMapper.updateArdTankWallLockByWallIdAndLockId(ardTankWallLock);
                for(ArdTankWallLock ardTankWallLockOld : ardTankWallLockList){//需要修改的主键
                    idList.add(ardTankWallLockOld.getId());
                }
            }else{
                ardTankWallLock.setProcessType(map.get("processType"));
                ardTankWallLock.setId(IdUtils.simpleUUID());
                result = result + ardTankWallLockMapper.insertArdTankWallLock(ardTankWallLock);
                idList.add(ardTankWallLock.getId());//新增的主键
            }
        }
        if(!idList.isEmpty()){//判断是否有需要删除的数据主键
            result = result + ardTankWallLockMapper.deleteArdTankWallLockByLockIdAndOtherIds(id,idList);
        }
        return result;
    }
 
    @Override
    public int deleteArdTankWallLockByLockId(String id) {
        int result = ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);
        return result;
    }
}