qa-prevention-gwj/src/main/java/com/zcloud/service/map/impl/GateMachineServiceImpl.java

235 lines
8.6 KiB
Java
Raw Normal View History

2024-01-02 14:12:40 +08:00
package com.zcloud.service.map.impl;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.mapper.datasource.map.GateAreaMapper;
import com.zcloud.mapper.datasource.map.GateMachineMapper;
import com.zcloud.mapper.datasource.map.GateVideoMapper;
import com.zcloud.service.keyProjects.VideoManagerService;
import com.zcloud.service.map.GateMachineService;
import com.zcloud.util.InitPageDataUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* TODO
* wangxuan
* www.zcloudchina.com
*/
@Service
public class GateMachineServiceImpl implements GateMachineService {
@Resource
private GateMachineMapper gateMachineMapper;
@Resource
private GateAreaMapper gateAreaMapper;
@Resource
private GateVideoMapper gateVideoMapper;
@Resource
private InitPageDataUtil initPageDataUtil;
@Override
public ArrayList<PageData> getDatalistpage(Page page) {
return gateMachineMapper.getDatalistPage(page);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(PageData pd) {
initPageDataUtil.initEdit(pd);
gateMachineMapper.edit(pd);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void removeByIds(PageData pageData) {
String[] dataIds = pageData.getString("DATA_IDS").split(",");
initPageDataUtil.initEdit(pageData);
if (dataIds.length > 0) {
pageData.put("item", dataIds);
gateMachineMapper.removeByIds(pageData);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(PageData pageData) {
initPageDataUtil.initSave(pageData, "GATE_MACHINE_ID");
gateMachineMapper.save(pageData);
}
@Override
public PageData getOnlineGateMachine(PageData pageData) {
List<PageData> gateMachineList = gateMachineMapper.getOnlineGateMachine(pageData);
PageData value = new PageData();
gateMachineList.forEach(item -> {
value.put(item.getString("TYPE"), item.getString("COUNT"));
});
return value;
}
@Resource
private VideoManagerService videoManagerService;
@Override
public List<PageData> getGatePosition(PageData pageData) {
// todo 需求变更,现在闸机变成了区域
if (pageData.getString("TYPE").equals("PERSON")) {
pageData.put("GATE_AREA_TYPE", 0);
// 人闸机定位
}
if (pageData.getString("TYPE").equals("CAR")) {
// 车闸机定位
pageData.put("GATE_AREA_TYPE", 1);
}
if (pageData.getString("TYPE").equals("CAMERA")) {
// 摄像头定位
return gateVideoMapper.getCameraPosition(pageData);
}
return gateAreaMapper.getGatePosition(pageData);
}
@Override
public PageData getGateMachineInfoById(PageData pageData) {
return gateMachineMapper.getGateMachineInfoById(pageData);
}
@Override
public List<PageData> getPersonRecordCountByEId(PageData gateMachineInfo) {
return gateMachineMapper.getPersonRecordCountByEId(gateMachineInfo);
}
@Override
public List<PageData> getTodayInOutCount(PageData pd) {
List<PageData> todayInOutCount = gateMachineMapper.getTodayInOutCount(pd);
// 当日进出 闸机数
// 0 海域消防泵房南 1 大庆路与消防南路 2 一期停泊泊位 3 107 4 105 5 南北入口 6
int[] counts = {0, 0, 0, 0, 0, 0};
PageData pageData = new PageData();
pageData.put("todayInOutCountList", todayInOutCount);
for (PageData item : todayInOutCount) {
// 海域消防泵房南入口
if ("65270348-1df7-494a-b2e5-32f6b19d040b".equals(item.getString("EQUIPMENTID"))) {
counts[0] += Integer.parseInt(item.getString("COUNT"));
}
if ("44d9a3be-a778-4988-bb7d-04d8d87c53c3".equals(item.getString("EQUIPMENTID"))) {
counts[0] -= Integer.parseInt(item.getString("COUNT"));
}
// 大庆路与消防南路出口
if ("189a90f0-5022-4df3-b2ac-1e276ce3585e".equals(item.getString("EQUIPMENTID"))) {
counts[1] -= Integer.parseInt(item.getString("COUNT"));
}
if ("9cfcbc32-9466-4b44-a0cd-533a87e8a839".equals(item.getString("EQUIPMENTID"))) {
counts[1] += Integer.parseInt(item.getString("COUNT"));
}
// 一期泊位出口
if ("466988ac-d58c-4d9e-8065-74d9a8ad1ec9".equals(item.getString("EQUIPMENTID"))) {
counts[2] -= Integer.parseInt(item.getString("COUNT"));
}
if ("f2293484-667e-4e4b-bbeb-831938c541e0".equals(item.getString("EQUIPMENTID"))) {
counts[2] += Integer.parseInt(item.getString("COUNT"));
}
// 107出口
if ("89e68dc2-8951-41e5-80ed-0e3ded220e1e".equals(item.getString("EQUIPMENTID"))) {
counts[3] -= Integer.parseInt(item.getString("COUNT"));
}
if ("cdf76fde-f2c5-4981-83a6-eb696ab2a76b".equals(item.getString("EQUIPMENTID"))) {
counts[3] += Integer.parseInt(item.getString("COUNT"));
}
// 105出口
if ("2ccf4d42-114c-4427-9f25-c1895de0ce48".equals(item.getString("EQUIPMENTID"))) {
counts[4] -= Integer.parseInt(item.getString("COUNT"));
}
if ("7de29a72-8937-4b40-94b9-00afaee13034".equals(item.getString("EQUIPMENTID"))) {
counts[4] += Integer.parseInt(item.getString("COUNT"));
}
// 南入口
if ("bfc2d476-ab57-4f1c-9186-8dd3d3f76d2a".equals(item.getString("EQUIPMENTID"))) {
counts[5] += Integer.parseInt(item.getString("COUNT"));
}
if ("96943c10-be7c-4798-9271-473176c1f047".equals(item.getString("EQUIPMENTID"))) {
counts[5] -= Integer.parseInt(item.getString("COUNT"));
}
// 北入口
if ("9652687e-b679-4be0-bd2a-b110b44e06d1".equals(item.getString("EQUIPMENTID"))) {
counts[5] += Integer.parseInt(item.getString("COUNT"));
}
if ("059fd7c8-8ec9-4444-8123-3b6a08b8a1dd".equals(item.getString("EQUIPMENTID"))) {
counts[5] -= Integer.parseInt(item.getString("COUNT"));
}
// AND f.EQUIPMENTID NOT IN ( '96943c10-be7c-4798-9271-473176c1f047', '059fd7c8-8ec9-4444-8123-3b6a08b8a1dd' )
// 96943c10-be7c-4798-9271-473176c1f047 60 南出口
// 059fd7c8-8ec9-4444-8123-3b6a08b8a1dd 128 北出口
}
List<PageData> dataArrayList = new ArrayList<>();
for (int i = 0; i < counts.length; i++) {
PageData value = new PageData();
if (i == 0) {
value.put("title", "海域消防泵房南闸机");
value.put("count", counts[0]);
}
if (i == 1) {
value.put("title", "大庆路与消防南路闸机");
value.put("count", counts[1]);
}
if (i == 2) {
value.put("title", "一期停泊泊位闸机");
value.put("count", counts[2]);
}
if (i == 3) {
value.put("title", "107闸机");
value.put("count", counts[3]);
}
if (i == 4) {
value.put("title", "105闸机");
value.put("count", counts[4]);
}
if (i == 5) {
value.put("title", "其他区域");
value.put("count", counts[5]
-counts[4]
-counts[3]
-counts[2]
-counts[1]
-counts[0]
);
}
value.put("company", "人");
dataArrayList.add(value);
}
return dataArrayList;
}
@Override
public List<PageData> getCarRecordCountByEId(PageData gateMachineInfo) {
return gateMachineMapper.getCarRecordCountByEId(gateMachineInfo);
}
@Override
public List<PageData> getCarRecordCountByCorpId(PageData gateMachineInfo) {
return gateMachineMapper.getCarRecordCountByCorpId(gateMachineInfo);
}
/**
*
* @param page
* @return
*/
public List<PageData> getPersonRecordListAllByEId(Page page) {
return gateMachineMapper.getPersonRecordListAllByIdlistPage(page);
}
}