package com.ld.igds.phone35.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.RespCodeEnum; 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.Phone35Util; import com.ld.igds.phone35.util.PhoneRespUtil; import com.ld.igds.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** * 远程抄表 * * @Author:YAN */ @Service public class Phone35ServiceImpl5502 implements Phone35Service { @Autowired private Phone35Mapper phone35Mapper; @Autowired private Phone35Util phone35Util; @Override public String getInterfaceId() { return Phone35Constant.API_PHONE_5502; } @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 (StringUtils.isEmpty(param.getDateTime())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } Date date = DateUtils.parseDate(param.getDateTime(), "yyyy-MM-dd"); param.setStartTime(date); param.setEndTime(DateUtil.getNextZero(date)); param.setCompanyId(phone35AuthUser.getCompanyId()); List list = phone35Mapper.getMeter(param); Map meterMap = new HashMap<>(); for (DtoEnergy data : list) { if (null == meterMap.get(data.getDepotId())) { String depotName = phone35Util.getDepotName(phone35AuthUser.getCompanyId(), data.getDepotId()); data.setDepotName(depotName); meterMap.put(data.getDepotId(), data); } } ArrayList meterList = new ArrayList<>(meterMap.values()); return PhoneRespUtil.success(meterList, req); } }