package com.ld.igds.phone.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.phone.constant.PhoneConstant; import com.ld.igds.phone.dto.AuthUser; import com.ld.igds.phone.dto.DtoEnergyMeter; import com.ld.igds.phone.dto.PhoneResponse; import com.ld.igds.phone.mapper.PhoneCommonMapper; import com.ld.igds.phone.param.ParamEnergy; import com.ld.igds.phone.param.ParamEnergyMeter; import com.ld.igds.phone.param.PhoneRequest; import com.ld.igds.phone.service.PhoneService; import com.ld.igds.phone.util.PhoneRespUtil; import com.ld.igds.phone.util.PhoneUtil; import com.ld.igds.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 能耗管理-远程抄表 * * @author chen */ @Service public class ServiceImpl5503 implements PhoneService { @Autowired private PhoneCommonMapper phoneCommonMapper; @Autowired private PhoneUtil phoneUtil; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5503; } @SuppressWarnings("unchecked") @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //转化对象 ParamEnergyMeter param = JSONObject.parseObject(req.getData().toString(), ParamEnergyMeter.class); param.setCompanyId(authUser.getCompanyId()); //设置时间 if(param.getStart()!=null){ //设置截止时间的为下一天的零点零分 param.setEnd(DateUtil.getNextZero(param.getStart())); } //查询数据 List meterList = phoneCommonMapper.getEnergyMeter(param); if (null == meterList || meterList.isEmpty()){ return PhoneRespUtil.error(RespCodeEnum.CODE_1005,"所选时间暂无数据!"); } //筛选数据,每个仓库只保留最新的一条 Map tempMap = new HashMap(); for (DtoEnergyMeter dtoEnergyMeter : meterList) { if (null == tempMap.get(dtoEnergyMeter.getDepotId())) { //根据仓库id设置仓库名称 dtoEnergyMeter.setDepotName(phoneUtil.getDepotName(dtoEnergyMeter.getCompanyId(),dtoEnergyMeter.getDepotId())); tempMap.put(dtoEnergyMeter.getDepotId(), dtoEnergyMeter); } } //转为list List list = new ArrayList(tempMap.values()); return PhoneRespUtil.success(list, req); } }