package com.ld.igds.phone35.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.phone.util.PhoneUtil; import com.ld.igds.phone35.constant.Phone35Constant; import com.ld.igds.phone35.dto.DtoEnergy; import com.ld.igds.phone35.dto.Phone35AuthUser; import com.ld.igds.phone35.dto.PhoneResponse; import com.ld.igds.phone35.mapper.Phone35Mapper; import com.ld.igds.phone35.param.Phone35DepotCommonParam; import com.ld.igds.phone35.param.Phone35Request; import com.ld.igds.phone35.service.Phone35Service; import com.ld.igds.phone35.util.PhoneRespUtil; import com.ld.igds.util.DateUtil; 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.HashMap; import java.util.List; import java.util.Map; /** * 仓库能耗查询 * * @Author:YAN */ @Service public class Phone35ServiceImpl5503 implements Phone35Service { @Autowired private Phone35Mapper phone35Mapper; @Autowired private PhoneUtil phone35Util; @Override public String getInterfaceId() { return Phone35Constant.API_PHONE_5503; } @Override public PhoneResponse execute(Phone35Request req, Phone35AuthUser phone35AuthUser) throws Exception { //转化对象 Phone35DepotCommonParam param = JSONObject.parseObject(req.getData().toString(), Phone35DepotCommonParam.class); if (null == param) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } //参数验证 if (StringUtils.isEmpty(param.getDeptId())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } if (null == param.getStartTime()) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } if (null != param.getEndTime()) { param.setEndTime(DateUtil.getNextZero(param.getEndTime())); } param.setCompanyId(phone35AuthUser.getCompanyId()); List energyList = phone35Mapper.getEnergy(param); Map energyMap = new HashMap<>(); DtoEnergy dtoEnergy; for (DtoEnergy data : energyList) { if (null == energyMap.get(data.getDepotId())) { String depotName = phone35Util.getDepotName(phone35AuthUser.getCompanyId(), data.getDepotId()); data.setDepotName(depotName); data.setEndEs(data.getEs()); data.setStartEs(data.getEs()); energyMap.put(data.getDepotId(), data); } else { dtoEnergy = energyMap.get(data.getDepotId()); dtoEnergy.setStartEs(data.getEs()); dtoEnergy.setEpSum(data.getEpSum() + dtoEnergy.getEpSum()); dtoEnergy.setEqSum(data.getEqSum() + dtoEnergy.getEqSum()); dtoEnergy.setEsSum(data.getEsSum() + dtoEnergy.getEsSum()); } } List list = new ArrayList<>(energyMap.values()); return PhoneRespUtil.success(list, req); } }