package com.ld.igds.m.service; import com.bstek.bdf2.core.model.DefaultUser; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.ld.igds.common.CoreCommonService; import com.ld.igds.dto.DepotData; import com.ld.igds.m.mapper.ManagerMapper; import com.ld.igds.models.*; import com.ld.igds.sec.dto.SecCameraDto; import com.ld.igds.sec.service.CoreSecCameraService; import com.ld.igds.sys.service.DicTriggerService; import com.ld.igds.util.ContextUtil; import com.ld.igds.weather.CoreWeatherService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author chen */ @Component public class HEmergencyCenterService extends HibernateDao { @Autowired private ManagerMapper managerMapper; @Autowired private CoreCommonService coreCommonService; @Autowired private DicTriggerService coreDicService; @Autowired private CoreSecCameraService coreSecCameraService; @Autowired private CoreWeatherService weatherService; /** * 设置仓库列表显示第一个仓库 * @return */ public Map getQueryDepot() { Map result = new HashMap<>(); List list = coreCommonService.getCacheDepotList(ContextUtil.getCompanyId()); result.put("depotId", list.get(0).getId()); return result; } /** * 根据仓库id获取仓库信息和保管员电话 * @param depotId * @return */ public DepotData getDepotData(String depotId){ String companyId = ContextUtil.getCompanyId(); //若仓库id为空,则显示第一个仓库信息 if(StringUtils.isEmpty(depotId)){ List list = coreCommonService.getCacheDepotList(companyId); depotId = list.get(0).getId(); } DepotData depotData = new DepotData(); //缓存获取仓库信息 List depotList = coreCommonService.getCacheDepotList(companyId); //遍历集合 for (Depot depot : depotList) { if(depotId.equals(depot.getId())){ BeanUtils.copyProperties(depot,depotData); } } //查询保管员电话信息 if(StringUtils.isNotEmpty(depotData.getStoreKeeperName())){ //根据保管员名称获取保管员信息 DefaultUser user = managerMapper.getUserByName(depotData.getStoreKeeperName(),companyId); if(user != null){ if(StringUtils.isNotEmpty(user.getMobile())) { //设置保管员电话信息 depotData.setStoreKeeperPhone(user.getMobile()); } } } return depotData; } /** * 获取资产设备信息 * @param companyId * @return */ public Map getAsset(String companyId){ if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } List assetList = managerMapper.getOAAsset(companyId); Map map = new HashMap<>(); Integer temp = 0; for (OAAsset oaAsset : assetList) { temp = (Integer) map.get(oaAsset.getCategory()); if(temp == null){ map.put(oaAsset.getCategory(), 1); }else { map.put(oaAsset.getCategory(), temp + 1); } } return map; } /** * 获取消防信息 * @param companyId * @return */ public Map getFire(String companyId){ if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } List fireList = managerMapper.getSecFire(companyId); Map map = new HashMap<>(); Integer temp1 = 0; Integer temp2 = 0; if(fireList.size() > 0){ temp1 = (Integer) fireList.size(); for (SecFire fire : fireList) { temp2 += fire.getNumExtinguisher(); } } map.put("消防柜数量", temp1); map.put("灭火器数量", temp2); return map; } /** * 获取粮食数量信息 * @param companyId * @return */ public Map getFoodData(String companyId){ if (StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } //获取粮食品种字典集合信息 List listFoodVariety = coreDicService.getCacheDicByParent(companyId, "FOOD_VARIETY_"); //获取粮食性质字典集合信息 List listFoodType = coreDicService.getCacheDicByParent( companyId, "FOOD_TYPE_"); //从缓存获取仓库集合信息 List depotList = coreCommonService.getCacheDepotList(companyId); Map map = new HashMap<>(); //品种数量临时变量 Double temp1 ; //遍历粮食品种字典集合 for (DicTrigger trigger : listFoodVariety) { temp1 = 0.0; String code1 = trigger.getCode(); //遍历仓库集合 for (Depot depot : depotList) { //设置品种对应数量累加 if(code1.equals(depot.getFoodVariety())){ temp1 += depot.getStorageReal(); } } map.put(trigger.getName(), temp1); } //性质数量临时变量 Double temp2 ; //遍历粮食性质字典集合 for (DicTrigger dicTrigger : listFoodType) { temp2 = 0.0; String code2 = dicTrigger.getCode(); //遍历仓库集合 for (Depot depot : depotList) { //设置性质对应数量累加 if(code2.equals(depot.getFoodType())){ temp2 += depot.getStorageReal(); } } map.put(dicTrigger.getName(), temp2); } return map; } /** *缓存获取监控设备列表 * @return */ public List getCameraList() { return coreSecCameraService.getAllCacheCamera(ContextUtil.getCompanyId()); } /** * 获取摄像头信息 * @param id * @return */ public SecCameraDto getCameraData(String id){ //缓存中获取监控设备信息 List list = coreSecCameraService.getAllCacheCamera(ContextUtil.getCompanyId()); //若id为空,则直接返回集合中第一个设备信息 if(StringUtils.isEmpty(id)){ return list.get(0); } //不为空则遍历集合 for (SecCameraDto cameraDto : list) { if(id.equals(cameraDto.getId())){ return cameraDto; } } return null; } public WeatherInfo getWeatherData(String companyId) { return weatherService.getCacheWeather(companyId); } }