zhongrj
2024-12-24 957ce4a101415487eb2d747a59243bfbbadccc4d
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
142
143
144
145
146
147
148
149
150
151
152
153
package org.springblade.modules.yw.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.cache.SysCache;
import org.springblade.common.utils.PositionUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.yw.entity.EmergencySpaceEntity;
import org.springblade.modules.yw.entity.FirmInfo;
import org.springblade.modules.yw.excel.EmergencySpaceExcel;
import org.springblade.modules.yw.service.IFirmInfoService;
import org.springblade.modules.yw.vo.EmergencySpaceVO;
import org.springblade.modules.yw.mapper.EmergencySpaceMapper;
import org.springblade.modules.yw.service.IEmergencySpaceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
import java.util.Objects;
 
/**
 * 应急空间表 服务实现类
 *
 * @author BladeX
 * @since 2024-10-28
 */
@Slf4j
@Service
public class EmergencySpaceServiceImpl extends ServiceImpl<EmergencySpaceMapper, EmergencySpaceEntity> implements IEmergencySpaceService {
 
    @Autowired
    private IFirmInfoService firmInfoService;
 
    /**
     * 自定义分页查询
     * @param page
     * @param emergencySpace
     * @return
     */
    @Override
    public IPage<EmergencySpaceVO> selectEmergencySpacePage(IPage<EmergencySpaceVO> page, EmergencySpaceVO emergencySpace) {
        List<EmergencySpaceVO> emergencySpaceVOS = baseMapper.selectEmergencySpacePage(page, emergencySpace);
        for (EmergencySpaceVO emergencySpaceVO : emergencySpaceVOS) {
            // 设置应急空间主要用途
            emergencySpaceVO.setMainFuncName(DictBizCache.getValues("emergency_space_use",emergencySpaceVO.getMainFunc()));
        }
        return page.setRecords(emergencySpaceVOS);
    }
 
    /**
     * 导入应急空间信息
     * @param data
     * @param isCovered
     * @return
     */
    @Override
    public String importEmergencySpace(List<EmergencySpaceExcel> data, boolean isCovered) {
        for (EmergencySpaceExcel emergencySpaceExcel : data) {
            // 数据拷贝
            EmergencySpaceEntity emergencySpaceEntity = Objects.requireNonNull(BeanUtil.copy(emergencySpaceExcel, EmergencySpaceEntity.class));
            // 类型转换
            if (!Strings.isBlank(emergencySpaceExcel.getType())){
                emergencySpaceEntity.setType(Integer.parseInt(emergencySpaceExcel.getType()));
            }
            // 防控级别转换
            if (!Strings.isBlank(emergencySpaceExcel.getPreLevel())){
                emergencySpaceEntity.setPreLevel(Integer.parseInt(emergencySpaceExcel.getPreLevel()));
            }
            // 经纬度转换
//            if (!Strings.isBlank(emergencySpaceExcel.getLng())) {
//                emergencySpaceEntity.setLng(PositionUtil.tranformPos(emergencySpaceExcel.getLng()).toString());
//            }
//            if (!Strings.isBlank(emergencySpaceExcel.getLat())) {
//                emergencySpaceEntity.setLat(PositionUtil.tranformPos(emergencySpaceExcel.getLat()).toString());
//            }
            // 设置企业id
            setFirm(emergencySpaceExcel,emergencySpaceEntity);
            log.info("应急空间名称:{},企业名称:{}",emergencySpaceEntity.getName(),emergencySpaceExcel.getFirmName());
            // 是否已入库
            Long id = isSave(emergencySpaceEntity);
            if (null!=id){
                if (isCovered){
                    // 覆盖更新
                    emergencySpaceEntity.setId(id);
                    updateById(emergencySpaceEntity);
                    continue;
                }
            }
            // 保存
            save(emergencySpaceEntity);
        }
        return null;
    }
 
    /**
     * 判断是否保存入库
     * @param emergencySpaceEntity
     * @return
     */
    private Long isSave(EmergencySpaceEntity emergencySpaceEntity) {
        QueryWrapper<EmergencySpaceEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("name",emergencySpaceEntity.getName())
            .eq("is_deleted",0);
        if (null!=emergencySpaceEntity.getFirmId()){
            wrapper.eq("firm_id",emergencySpaceEntity.getFirmId());
        }
        EmergencySpaceEntity one = getOne(wrapper);
        if (null!=one){
            return one.getId();
        }
        return null;
    }
 
    /**
     * 设置企业信息
     * @param emergencySpaceExcel
     * @param emergencySpaceEntity
     */
    private void setFirm(EmergencySpaceExcel emergencySpaceExcel, EmergencySpaceEntity emergencySpaceEntity) {
        QueryWrapper<FirmInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("name",emergencySpaceExcel.getFirmName())
            .eq("is_deleted",0);
        FirmInfo firmInfo = firmInfoService.getOne(wrapper);
        if (null!=firmInfo){
            emergencySpaceEntity.setFirmId(firmInfo.getId());
        }
    }
 
    /**
     * 获取应急空间统计数据
     * @param emergencySpace
     * @return
     */
    @Override
    public List<Map<String,Object>> getStatisticData(EmergencySpaceVO emergencySpace) {
        // 按应急空间类型进行统计
        List<Map<String,Object>> list = baseMapper.getStatisticData(emergencySpace);
        return list;
    }
 
    /**
     * 获取应急池容量
     * @return
     */
    @Override
    public String getEmePool() {
        return baseMapper.getEmePool();
    }
}