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

259 lines
9.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.mapper.dsno2.door.MkmjDoorVideoMapper;
import com.zcloud.service.door.DoorAreaService;
import com.zcloud.service.keyProjects.VideoManagerService;
import com.zcloud.service.map.GateMachineService;
import com.zcloud.util.InitPageDataUtil;
import com.zcloud.util.Tools;
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;
@Resource
private MkmjDoorVideoMapper mkmjDoorVideoMapper;
@Resource
private DoorAreaService doorAreaService;
@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) {
if (pageData.getString("CORPINFO_ID").equals("035958e685cf4850bc40151c5e0617a6")) { //一公司的口门门禁系统
// 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);
} else if (!Tools.isEmpty(pageData.getString("CORPINFO_ID"))) { //如果有企业信息,就是要显示二级口门门禁系统信息
if (pageData.getString("TYPE").equals("CAMERA")) {
return mkmjDoorVideoMapper.listAll(pageData);
}
if (pageData.getString("TYPE").equals("PERSON_MACHINE")) {
pageData.put("DOOR_TYPE", "0");
// 人闸机定位
}
if (pageData.getString("TYPE").equals("CAR_MACHINE")) {
// 车闸机定位
pageData.put("DOOR_TYPE", 1);
}
return doorAreaService.getAllByMap(pageData);
}
return null;
}
@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);
}
}