package com.ld.igds.phone.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.RedisConst; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.inout.InoutConstant; import com.ld.igds.inout.dto.InoutData; import com.ld.igds.phone.constant.PhoneConstant; import com.ld.igds.phone.dto.AuthUser; import com.ld.igds.phone.dto.DtoInoutHandle; import com.ld.igds.phone.dto.PhoneResponse; import com.ld.igds.phone.param.ParamInoutHandle; 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.RedisUtil; 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; /** * 出库待值仓列表接口实现 * * @author chen */ @Service public class ServiceImpl5206 implements PhoneService { @Autowired private RedisUtil redisUtil; @Autowired private PhoneUtil phoneUtil; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5206; } @SuppressWarnings("unchecked") @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //转化为对象 ParamInoutHandle param = JSONObject.parseObject(req.getData().toString(), ParamInoutHandle.class); String plateNum = param.getPlateNum(); //获取缓存中当天正在进行的出入库流水 String key = RedisConst.buildKey(authUser.getCompanyId(), InoutConstant.KEY_INOUT_LIST); List list = (List) redisUtil.get(key); if (list == null) { key = RedisConst.buildKey(authUser.getCompanyId(), InoutConstant.KEY_INOUT_COMPLETE_LIST, authUser.getDeptId()); list = (List) redisUtil.get(key); } if (list == null) { return PhoneRespUtil.error(RespCodeEnum.CODE_2000, "暂无查到待值仓的流水单号!"); } List dtoInoutHandleList = new ArrayList<>(); DtoInoutHandle dto; //遍历查询入库待值仓的单子 for (InoutData inoutData : list) { if(authUser.getDeptId().equals(inoutData.getDeptId())){ if (inoutData.getType().equals(InoutConstant.TYPE_OUT) && inoutData.getProgress().equals(InoutConstant.PROGRESS_HANDLE)) { if(StringUtils.isNotEmpty(plateNum) && !inoutData.getPlateNum().contains(plateNum)){ break; } dto = new DtoInoutHandle(); dto.setId(inoutData.getId()); dto.setCompanyId(inoutData.getCompanyId()); dto.setIntelCard(inoutData.getIntelCard()); dto.setPlateNum(inoutData.getPlateNum()); dto.setDepotId(inoutData.getDepotId()); dto.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(), inoutData.getDepotId())); // dto.setCustomerId(inoutData.getCustomerId()); TODO dto.setCustomerName(inoutData.getCustomerName()); dto.setFoodVariety(inoutData.getFoodVariety()); dto.setFoodLevel(inoutData.getFoodLevel()); dto.setProgress(inoutData.getProgress()); dto.setProgressName(phoneUtil.getProgressName(authUser.getCompanyId(), inoutData.getProgress())); dtoInoutHandleList.add(dto); } } } if (dtoInoutHandleList.isEmpty()) { return PhoneRespUtil.error(RespCodeEnum.CODE_2000, "暂无查到待值仓的流水单号!"); } return PhoneRespUtil.success(dtoInoutHandleList, req); } }