package com.ld.igds.three.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.common.CoreCommonService; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.common.CoreThreeService; import com.ld.igds.common.dto.DepotSerData; import com.ld.igds.models.Device; import com.ld.igds.models.ThreeConf; import com.ld.igds.three.ThreeCodeEnum; import com.ld.igds.three.ThreeConstant; import com.ld.igds.three.data.Data3001; import com.ld.igds.three.data.ThreeResponse; import com.ld.igds.three.param.ThreeCommonParam; import com.ld.igds.three.param.ThreeRequest; import com.ld.igds.three.service.ThreeService; import com.ld.igds.three.util.ThreeRespUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 3002-单个设备信息接口实现 * * @author chen */ @Service public class ThreeServiceImpl3002 implements ThreeService { @Autowired private CoreCommonService commonService; @Autowired private CoreThreeService coreThreeService; @Autowired private CoreDeviceService deviceService; @Override public String getInterfaceId() { return ThreeConstant.API_THREE_3002; } @SuppressWarnings("unchecked") @Override public ThreeResponse execute(ThreeRequest req) { //转化请求参数 ThreeCommonParam param = JSONObject.parseObject(req.getData().toString(), ThreeCommonParam.class); //判断uid if (StringUtils.isEmpty(param.getUid())) { return ThreeRespUtil.error(ThreeCodeEnum.CODE_1005, req); } //根据uid获取三维配置信息 ThreeConf three = coreThreeService.getCacheThreeConfById(req.getCompanyId(), param.getUid()); if (three == null) { return ThreeRespUtil.error(ThreeCodeEnum.CODE_1111, "未查询到此uid的配置信息,请联系管理员!", req); } //根据仓库编码获取分机 List depotList = new ArrayList<>(); depotList.add(three.getDepotId()); List depotSerList = commonService.getCacheDepotSerByDepots(req.getCompanyId(), depotList); //存放分机获取的设备信息 List deviceList = new ArrayList<>(); //根据分机获取设备,存入deviceList for (DepotSerData depotSerData : depotSerList) { List tempList = deviceService.getCacheDeviceBySerId( depotSerData.getCompanyId(), depotSerData.getSerId()); deviceList.addAll(tempList); } //返回数据定义 Data3001 data = new Data3001(); if(deviceList.isEmpty()){ return ThreeRespUtil.success(data, req); } //筛选返回数据 for (Device device : deviceList) { if(device.getId().equals(three.getDeviceId())){ data.setUid(three.getUid()); data.setName(device.getName()); data.setType(device.getTypeName()); data.setStatus(device.getStatusName()); break; } } return ThreeRespUtil.success(data, req); } }