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 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 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 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 getPersonRecordCountByEId(PageData gateMachineInfo) { return gateMachineMapper.getPersonRecordCountByEId(gateMachineInfo); } @Override public List getTodayInOutCount(PageData pd) { List 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 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 getCarRecordCountByEId(PageData gateMachineInfo) { return gateMachineMapper.getCarRecordCountByEId(gateMachineInfo); } @Override public List getCarRecordCountByCorpId(PageData gateMachineInfo) { return gateMachineMapper.getCarRecordCountByCorpId(gateMachineInfo); } /** * 一公司人员进出记录的详情 * @param page * @return */ public List getPersonRecordListAllByEId(Page page) { return gateMachineMapper.getPersonRecordListAllByIdlistPage(page); } }