123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- package com.welampiot.service.impl;
- import com.welampiot.common.BaseResult;
- import com.welampiot.common.InterfaceResultEnum;
- import com.welampiot.dao.LampPoleDao;
- import com.welampiot.dao.WifiDao;
- import com.welampiot.dto.LampInfoDTO;
- import com.welampiot.dto.LampPoleAlarmLogDTO;
- import com.welampiot.dto.LampPoleDTO;
- import com.welampiot.dto.WifiDTO;
- import com.welampiot.service.LampPoleAlarmLogService;
- import com.welampiot.service.LampPoleService;
- import com.welampiot.service.LampService;
- import com.welampiot.service.WifiService;
- import com.welampiot.utils.ToolUtils;
- import com.welampiot.vo.*;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.SimpleDateFormat;
- import java.util.*;
- @Service
- public class LampPoleServiceImpl implements LampPoleService {
- @Autowired
- private LampPoleDao lampPoleDao;
- @Override
- public Integer getCountByVO(LampPoleCountVO lampPoleCountVO) {return lampPoleDao.getCountByVO(lampPoleCountVO);}
- @Override
- public List<LampPoleDTO> getNavByVO(LampPoleVO lampPoleVO) {
- return lampPoleDao.getNavByVO(lampPoleVO);
- }
- @Override
- public List<LampPoleDTO> getListByVO(LampPoleVO lampPoleVO) {
- return lampPoleDao.getListByVO(lampPoleVO);
- }
- @Autowired
- private LampPoleAlarmLogService lampPoleAlarmLogService;
- @Autowired
- private ToolUtils toolUtils;
- @Autowired
- private LampService lampService;
- @Autowired
- private WifiService wifiService;
- @Override
- public List<LampPoleDTO> lampPoleList(LampPoleVO lampPoleVO) {
- List<LampPoleDTO> lampPoleDTOS = lampPoleDao.lampPoleList(lampPoleVO);
- ArrayList<LampPoleDTO> lampPoleDTOS1 = new ArrayList<>();
- ArrayList<Integer> lampPoleIds = new ArrayList<>();
- lampPoleIds.add(0);
- for (LampPoleDTO l :lampPoleDTOS){
- lampPoleIds.add(l.getId());
- }
- List<LampPoleAlarmLogDTO> listByLampPoleIdList = lampPoleAlarmLogService.getListByLampPoleIdList(lampPoleIds);
- HashMap<Integer, LampPoleAlarmLogDTO> integerLampPoleAlarmLogDTOHashMap = new HashMap<>();
- for (LampPoleAlarmLogDTO l :listByLampPoleIdList) {
- integerLampPoleAlarmLogDTOHashMap.put(l.getId(),l);
- }
- HashMap<Integer, String> integerStringHashMap = new HashMap<>();
- integerStringHashMap.put(1,"摄像头");
- integerStringHashMap.put(2,"WIFI");
- integerStringHashMap.put(3,"RFID");
- integerStringHashMap.put(4,"LED屏");
- integerStringHashMap.put(5,"一键报警");
- integerStringHashMap.put(6,"充电桩");
- integerStringHashMap.put(7,"气象站");
- integerStringHashMap.put(8,"微基站");
- integerStringHashMap.put(9,"音柱");
- integerStringHashMap.put(10,"云盒");
- for (LampPoleDTO l :lampPoleDTOS) {
- if (l.getIsInspec() == null) l.setIsInspec(0);
- if (l.getCity() != null){
- l.setLocation(l.getCity()+" "+l.getArea()+" "+l.getSection());
- }else {
- l.setLocation(l.getArea()+" "+l.getSection());
- }
- if (l.getPolicyName() == null) {
- if (lampPoleVO.getVersion() == 0){
- l.setPolicyName("暂无");
- } else if (lampPoleVO.getVersion() == 1) {
- l.setPolicyName("none");
- }
- }
- if (integerLampPoleAlarmLogDTOHashMap.containsKey(l.getId())){
- LampPoleAlarmLogDTO lampPoleAlarmLogDTO = integerLampPoleAlarmLogDTOHashMap.get(l.getId());
- if (integerStringHashMap.containsKey(lampPoleAlarmLogDTO.getDevType())){
- String s = integerStringHashMap.get(lampPoleAlarmLogDTO.getDevType());
- l.setFaultstatus(0);
- l.setAlarmInfo(s+"离线");
- }else {
- l.setFaultstatus(0);
- l.setAlarmInfo("");
- }
- }else {
- l.setFaultstatus(0);
- }
- lampPoleDTOS1.add(l);
- }
- return lampPoleDTOS1;
- }
- @Override
- public Integer lampPoleCount(LampPoleVO lampPoleVO) {
- return lampPoleDao.lampPoleCount(lampPoleVO);
- }
- @Override
- public BaseResult add(LampPoleVO lampPoleVO) {
- LampPoleDTO lampPoleDTO = new LampPoleDTO();
- lampPoleDTO.setCreateId(lampPoleVO.getCreateId());
- if (lampPoleVO.getAreaId() == null || lampPoleVO.getAreaId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getSectionId() == null || lampPoleVO.getSectionId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getName() == null || lampPoleVO.getName().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LAMP_NAME_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getNumber() == null || lampPoleVO.getNumber().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LAMP_POLE_NUMBER_ERROR,lampPoleVO.getVersion());
- if (!lampPoleVO.getNumber().matches("^[A-Za-z0-9_]+$")) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NUMBER_FORMAT_ERROR,lampPoleVO.getVersion());
- LampPoleCountVO lampPoleVO1 = new LampPoleCountVO();
- lampPoleVO1.setSectionId(lampPoleVO.getSectionId());
- lampPoleVO1.setName(lampPoleVO.getName());
- if (lampPoleDao.getCountByVO(lampPoleVO1).intValue() > 0) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NAME_UNIQUE_ERROR,lampPoleVO.getVersion());
- lampPoleVO1 = new LampPoleCountVO();
- lampPoleVO1.setSectionId(lampPoleVO.getSectionId());
- lampPoleVO1.setNumber(lampPoleVO.getNumber());
- if (lampPoleDao.getCountByVO(lampPoleVO1).intValue() > 0) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NUMBER_UNIQUE_ERROR,lampPoleVO.getVersion());
- lampPoleDTO.setName(lampPoleVO.getName());
- lampPoleDTO.setNumber(lampPoleVO.getNumber());
- lampPoleDTO.setAreaId(lampPoleVO.getAreaId());
- lampPoleDTO.setSectionId(lampPoleVO.getSectionId());
- lampPoleDTO.setHeight(lampPoleVO.getHeight() == null ? 0 : lampPoleVO.getHeight());
- lampPoleDTO.setLatitude(lampPoleVO.getLatitude());
- lampPoleDTO.setLongitude(lampPoleVO.getLongitude());
- lampPoleDTO.setInstallDate(lampPoleVO.getInstallDate());
- lampPoleDTO.setExpirationDate(lampPoleVO.getExpirationDate());
- Date endDate = new Date(System.currentTimeMillis());
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String createTime = simpleDateFormat.format(endDate).toString();
- lampPoleDTO.setCreateTime(createTime);
- lampPoleDao.add(lampPoleDTO);
- List<Integer> devType = new ArrayList<>();
- Integer id = lampPoleDTO.getId();
- // 添加云盒
- Map cloudBox = lampPoleVO.getCloudBox();
- WifiDTO wifiDTO = new WifiDTO();
- wifiDTO.setLampPoleId(id);
- wifiDTO.setVersion2(lampPoleVO.getVersion());
- if (cloudBox.containsKey("sn")) wifiDTO.setSn((String) cloudBox.get("sn"));
- if (cloudBox.containsKey("ipAddr")) wifiDTO.setIpAddr((String) cloudBox.get("ipAddr"));
- if (cloudBox.containsKey("model")) wifiDTO.setModel((String) cloudBox.get("model"));
- if (cloudBox.containsKey("remark1")) wifiDTO.setRemark1((String) cloudBox.get("remark1"));
- if (cloudBox.containsKey("remark2")) wifiDTO.setRemark2((String) cloudBox.get("remark2"));
- if (cloudBox.containsKey("remark3")) wifiDTO.setRemark3((String) cloudBox.get("remark3"));
- if (cloudBox.containsKey("remark4")) wifiDTO.setRemark4((String) cloudBox.get("remark4"));
- if (cloudBox.containsKey("remark5")) wifiDTO.setRemark5((String) cloudBox.get("remark5"));
- if (cloudBox.containsKey("remark6")) wifiDTO.setRemark6((String) cloudBox.get("remark6"));
- if (cloudBox.containsKey("installDate")) wifiDTO.setInstallDate((String) cloudBox.get("installDate"));
- if (cloudBox.containsKey("expirationDate")) wifiDTO.setExpirationDate((String) cloudBox.get("expirationDate"));
- BaseResult add1 = wifiService.add(wifiDTO);
- if (!add1.getCode().equals("0000")) return add1;
- devType.add(10);
- devType.add(2);
- // 添加灯控
- List<Map> lightDevList = lampPoleVO.getLightDevList();
- LampInfoDTO lampInfoDTO;
- for (Map m :lightDevList) {
- lampInfoDTO = new LampInfoDTO();
- if (m.containsKey("address")) lampInfoDTO.setSn(m.get("address").toString());
- if (m.containsKey("number")) lampInfoDTO.setNumber(m.get("number").toString());
- if (m.containsKey("name")) lampInfoDTO.setName(m.get("name").toString());
- if (m.containsKey("protocolType")) lampInfoDTO.setProtocolType(Integer.parseInt((String) m.get("protocolType")));
- if (m.containsKey("controlType")) lampInfoDTO.setControlType(Integer.parseInt((String) m.get("controlType")));
- if (m.containsKey("ratedPower")) {
- if ( m.get("ratedPower") == null || m.get("ratedPower").toString().length() == 0){
- lampInfoDTO.setRatedPower(0);
- }else {
- lampInfoDTO.setRatedPower(Integer.parseInt((String) m.get("ratedPower")));
- }
- }
- if (m.containsKey("installDate")) lampInfoDTO.setInstallDate( m.get("installDate").toString());
- if (m.containsKey("expirationDate")) lampInfoDTO.setExpirationDate( m.get("expirationDate").toString());
- lampInfoDTO.setCreateTime(createTime);
- lampInfoDTO.setVersion(lampPoleVO.getVersion());
- lampInfoDTO.setAreaId(lampPoleVO.getAreaId());
- lampInfoDTO.setSectionId(lampPoleVO.getSectionId());
- lampInfoDTO.setLatitude(lampPoleVO.getLatitude());
- lampInfoDTO.setLongitude(lampPoleVO.getLongitude());
- lampInfoDTO.setLampPoleId(id);
- BaseResult add = lampService.add(lampInfoDTO);
- if (!add.getCode().equals("0000")) return add;
- }
- devType.add(0);
- LampPoleDTO lampPoleDTO1 = new LampPoleDTO();
- lampPoleDTO1.setId(lampPoleDTO.getId());
- lampPoleDTO1.setDevType(StringUtils.join(devType,","));
- lampPoleDTO1.setSn(wifiDTO.getSn());
- lampPoleDao.update(lampPoleDTO1);
- return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,lampPoleVO.getVersion());
- }
- @Override
- public BaseResult update(LampPoleVO lampPoleVO) {
- LampPoleDTO lampPoleDTO = new LampPoleDTO();
- lampPoleDTO.setId(lampPoleVO.getId());
- if (lampPoleVO.getAreaId() == null || lampPoleVO.getAreaId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getSectionId() == null || lampPoleVO.getSectionId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getName() == null || lampPoleVO.getName().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LAMP_NAME_ERROR,lampPoleVO.getVersion());
- if (lampPoleVO.getNumber() == null || lampPoleVO.getNumber().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LAMP_POLE_NUMBER_ERROR,lampPoleVO.getVersion());
- if (!lampPoleVO.getNumber().matches("^[A-Za-z0-9_]+$")) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NUMBER_FORMAT_ERROR,lampPoleVO.getVersion());
- LampPoleCountVO lampPoleVO1 = new LampPoleCountVO();
- lampPoleVO1.setId(lampPoleDTO.getId());
- lampPoleVO1.setSectionId(lampPoleVO.getSectionId());
- lampPoleVO1.setName(lampPoleVO.getName());
- if (lampPoleDao.getCountByVO(lampPoleVO1).intValue() > 0) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NAME_UNIQUE_ERROR,lampPoleVO.getVersion());
- lampPoleVO1 = new LampPoleCountVO();
- lampPoleVO1.setId(lampPoleDTO.getId());
- lampPoleVO1.setSectionId(lampPoleVO.getSectionId());
- lampPoleVO1.setNumber(lampPoleVO.getNumber());
- if (lampPoleDao.getCountByVO(lampPoleVO1).intValue() > 0) return toolUtils.response(InterfaceResultEnum.LAMP_POLE_NUMBER_UNIQUE_ERROR,lampPoleVO.getVersion());
- lampPoleDTO.setName(lampPoleVO.getName());
- lampPoleDTO.setNumber(lampPoleVO.getNumber());
- lampPoleDTO.setAreaId(lampPoleVO.getAreaId());
- lampPoleDTO.setSectionId(lampPoleVO.getSectionId());
- lampPoleDTO.setHeight(lampPoleVO.getHeight() == null ? 0 : lampPoleVO.getHeight());
- lampPoleDTO.setLatitude(lampPoleVO.getLatitude());
- lampPoleDTO.setLongitude(lampPoleVO.getLongitude());
- lampPoleDTO.setInstallDate(lampPoleVO.getInstallDate());
- lampPoleDTO.setExpirationDate(lampPoleVO.getExpirationDate());
- lampPoleDao.update(lampPoleDTO);
- Map cloudBox = lampPoleVO.getCloudBox();
- WifiDTO wifiDTO = new WifiDTO();
- wifiDTO.setLampPoleId(lampPoleDTO.getId());
- wifiDTO.setVersion2(lampPoleVO.getVersion());
- if (cloudBox.containsKey("sn")) wifiDTO.setSn((String) cloudBox.get("sn"));
- if (cloudBox.containsKey("ipAddr")) wifiDTO.setIpAddr((String) cloudBox.get("ipAddr"));
- if (cloudBox.containsKey("model")) wifiDTO.setModel((String) cloudBox.get("model"));
- if (cloudBox.containsKey("remark1")) wifiDTO.setRemark1((String) cloudBox.get("remark1"));
- if (cloudBox.containsKey("remark2")) wifiDTO.setRemark2((String) cloudBox.get("remark2"));
- if (cloudBox.containsKey("remark3")) wifiDTO.setRemark3((String) cloudBox.get("remark3"));
- if (cloudBox.containsKey("remark4")) wifiDTO.setRemark4((String) cloudBox.get("remark4"));
- if (cloudBox.containsKey("remark5")) wifiDTO.setRemark5((String) cloudBox.get("remark5"));
- if (cloudBox.containsKey("remark6")) wifiDTO.setRemark6((String) cloudBox.get("remark6"));
- if (cloudBox.containsKey("installDate")) wifiDTO.setInstallDate((String) cloudBox.get("installDate"));
- if (cloudBox.containsKey("expirationDate")) wifiDTO.setExpirationDate((String) cloudBox.get("expirationDate"));
- BaseResult add1 = wifiService.update(wifiDTO);
- if (!add1.getCode().equals("0000")) return add1;
- // 添加灯控
- Date endDate = new Date(System.currentTimeMillis());
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String createTime = simpleDateFormat.format(endDate).toString();
- List<Map> lightDevList = lampPoleVO.getLightDevList();
- LampInfoDTO lampInfoDTO;
- for (Map m :lightDevList) {
- lampInfoDTO = new LampInfoDTO();
- if (m.containsKey("address")) lampInfoDTO.setSn(m.get("address").toString());
- if (m.containsKey("number")) lampInfoDTO.setNumber(m.get("number").toString());
- if (m.containsKey("name")) lampInfoDTO.setName(m.get("name").toString());
- if (m.containsKey("protocolType")) lampInfoDTO.setProtocolType(Integer.parseInt((String) m.get("protocolType")));
- if (m.containsKey("controlType")) lampInfoDTO.setControlType(Integer.parseInt((String) m.get("controlType")));
- if (m.containsKey("ratedPower")) {
- if ( m.get("ratedPower") == null || m.get("ratedPower").toString().length() == 0){
- lampInfoDTO.setRatedPower(0);
- }else {
- lampInfoDTO.setRatedPower(Integer.parseInt((String) m.get("ratedPower")));
- }
- }
- if (m.containsKey("installDate")) lampInfoDTO.setInstallDate( m.get("installDate").toString());
- if (m.containsKey("expirationDate")) lampInfoDTO.setExpirationDate( m.get("expirationDate").toString());
- if (m.containsKey("id") && m.get("id") != null && m.get("id").toString().length() != 0) lampInfoDTO.setId(Integer.parseInt((String) m.get("id")));
- lampInfoDTO.setVersion(lampPoleVO.getVersion());
- lampInfoDTO.setAreaId(lampPoleVO.getAreaId());
- lampInfoDTO.setSectionId(lampPoleVO.getSectionId());
- lampInfoDTO.setLatitude(lampPoleVO.getLatitude());
- lampInfoDTO.setLongitude(lampPoleVO.getLongitude());
- lampInfoDTO.setLampPoleId(lampPoleVO.getId());
- BaseResult add;
- if (lampInfoDTO.getId() != null && lampInfoDTO.getId() != 0){
- add = lampService.update(lampInfoDTO);
- }else {
- lampInfoDTO.setCreateTime(createTime);
- add = lampService.add(lampInfoDTO);
- }
- if (!add.getCode().equals("0000")) return add;
- }
- return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,lampPoleVO.getVersion());
- }
- @Override
- public LampPoleDTO getDetailById(Integer id) {
- return lampPoleDao.getDetailById(id);
- }
- @Override
- public Integer deleteById(Integer id) {
- if (id == null) return null;
- // 删除灯控
- LampListResponseVO lampListResponseVO = new LampListResponseVO();
- lampListResponseVO.setLampPoleId(id);
- List<LampInfoDTO> listByVO = lampService.getListByVO(lampListResponseVO);
- for (LampInfoDTO l :listByVO) {
- if (l.getId() != null) lampService.deleteById(l.getId());
- }
- // 删除云盒
- WifiDTO wifiDTO = new WifiDTO();
- wifiDTO.setLampPoleId(id);
- List<WifiDTO> wifiList = wifiService.getWifiListByDTO(wifiDTO);
- for (WifiDTO w :wifiList) {
- if (w.getId() != null) wifiService.deleteById(w.getId());
- }
- return lampPoleDao.deleteById(id);
- }
- }
|