邱宇豪
2023-11-10 a8bb4628ba81bd63149476958eb5efe1627863c7
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
package com.thhy.secure.modules.biz.regionInspection.service.impl;
 
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.thhy.general.common.BasicResult;
import com.thhy.general.config.SysUserInfo;
import com.thhy.general.utils.UUIDUtils;
import com.thhy.general.utils.UserInfoUtils;
import com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionEntity;
import com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionHazardInformEntity;
import com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionUserEntity;
import com.thhy.secure.modules.biz.regionInspection.mapper.RegionInspectionMapper;
import com.thhy.secure.modules.biz.regionInspection.service.RegionInspectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * @Author QiuYuHao
 * @CreateDate 2023-11-10 11:26:29
 * 区域巡检接口实现
 */
@Service
public class RegionInspectionServiceImpl implements RegionInspectionService
{
 
    @Autowired
    private RegionInspectionMapper regionInspectionMapper;
 
    private static final Object lock = new Object();
    @Override
    @Transactional(rollbackFor = Exception.class)
    public BasicResult insert(RegionInspectionEntity regionInspectionEntity) {
        SysUserInfo s = UserInfoUtils.getInstance().getUserInfo();
        String companyId = s.getCompanyId();
        String userId = s.getUserId();
        regionInspectionEntity.setCompanyId(companyId);
        //默认给uuid
        String regionInspectId = UUIDUtils.create();
        //修改区域巡检判断
        if (!"".equals(regionInspectionEntity.getId())){
            regionInspectId = regionInspectionEntity.getId();
            //根据区域巡检id删除中间表
            regionInspectionEntity.setUpdateTime(new Date());
            regionInspectionEntity.setUpdateUser(userId);
            regionInspectionMapper.deleteUser(regionInspectId);
            regionInspectionMapper.deleteInspectionHazardInform(regionInspectId);
        }
        //添加/修改区域巡检
        synchronized (lock) {
            regionInspectionEntity.setId(regionInspectId);
            regionInspectionEntity.setCreateUser(userId);
            regionInspectionMapper.insert(regionInspectionEntity);
            //添加巡检人
            for (RegionInspectionUserEntity userEntity : regionInspectionEntity.getRegionUsersList()) {
                userEntity.setId(UUIDUtils.create());
                userEntity.setRegionInspectionId(regionInspectId);
                regionInspectionMapper.insertUser(userEntity);
            }
            //添加巡检的区域
            for (RegionInspectionHazardInformEntity region : regionInspectionEntity.getRegionList()) {
                region.setId(UUIDUtils.create());
                region.setRegionInspectionId(regionInspectId);
                regionInspectionMapper.insertInspectionHazardInform(region);
            }
        }
        return BasicResult.success();
    }
 
    @Override
    public BasicResult delete(String id) {
        return BasicResult.success();
    }
 
    @Override
    public BasicResult selectPageList(Map map) {
        SysUserInfo s = UserInfoUtils.getInstance().getUserInfo();
        String companyId = s.getCompanyId();
        map.put("companyId",companyId);
        int pageNum = (int) map.get("pageNum");
        int pageSize = (int) map.get("pageSize");
        PageHelper.startPage(pageNum,pageSize);
        List<RegionInspectionEntity> regionInspectionEntities = regionInspectionMapper.selectPageList(map);
        //处理区域巡检对象数组
        regionInspectionEntities.forEach(obj->{
            List<RegionInspectionHazardInformEntity> regionList = new ArrayList<>();
            List<RegionInspectionUserEntity> userList = new ArrayList<>();
            if(obj.getRealNames() !=null){
                String[] realNames = obj.getRealNames().intern().split("、");
                String[] userIds = obj.getUserIds().intern().split("、");
                //人员对象数组
                for (int i = 0; i < realNames.length; i++) {
                    RegionInspectionUserEntity userEntity = RegionInspectionUserEntity
                            .builder()
                            .regionInspectionId(obj.getId())
                            .userId(userIds[i])
                            .realName(realNames[i]).build();
                    userList.add(userEntity);
                }
            }
            if (obj.getRegionIds()!=null){
                String[] regionIds = obj.getRegionIds().intern().split(",");
                String[] regions = obj.getRegions().intern().split(",");
                //区域对象数组
                for (int i = 0; i < regionIds.length; i++) {
                    RegionInspectionHazardInformEntity regionEntity = RegionInspectionHazardInformEntity
                            .builder()
                            .regionInspectionId(obj.getId())
                            .regionHazardInformId(regionIds[i])
                            .region(regions[i]).build();
                    regionList.add(regionEntity);
                }
            }
            obj.setRegionList(regionList);
            obj.setRegionUsersList(userList);
        });
        return BasicResult.success(new PageInfo<>(regionInspectionEntities));
    }
 
}