package com.ld.igds.phone.service.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.ld.igds.constant.RedisConst;
|
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.util.PhoneRespUtil;
|
import com.ld.igds.phone.dto.AuthUser;
|
import com.ld.igds.phone.dto.DtoInoutReal;
|
import com.ld.igds.phone.dto.DtoInoutRecord;
|
import com.ld.igds.phone.dto.PhoneResponse;
|
import com.ld.igds.phone.param.PhoneRequest;
|
import com.ld.igds.phone.service.PhoneService;
|
import com.ld.igds.phone.util.PhoneUtil;
|
import com.ld.igds.util.RedisUtil;
|
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 ServiceImpl5203 implements PhoneService {
|
|
@Autowired
|
private RedisUtil redisUtil;
|
@Autowired
|
private PhoneUtil phoneUtil;
|
|
@Override
|
public String getInterfaceId() {
|
return PhoneConstant.API_PHONE_5203;
|
}
|
|
@SuppressWarnings("unchecked")
|
@Override
|
public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser)
|
throws Exception {
|
|
//获取缓存中当天正在进行的出入库流水
|
String key = RedisConst.buildKey(authUser.getCompanyId(),
|
InoutConstant.KEY_INOUT_LIST);
|
List<InoutData> list1 = (List<InoutData>) redisUtil.get(key);
|
|
//获取缓存中当天已经完成的出入库流水
|
key = RedisConst.buildKey(authUser.getCompanyId(),
|
InoutConstant.KEY_INOUT_COMPLETE_LIST);
|
List<InoutData> list2 = (List<InoutData>) redisUtil.get(key);
|
|
DtoInoutReal dto = new DtoInoutReal();
|
List<DtoInoutRecord> dtoList = new ArrayList<>();
|
DtoInoutRecord inoutRecord;
|
double inNum = 0.0;
|
double inCompleteNum = 0.0;
|
double outNum = 0.0;
|
double outCompleteNum = 0.0;
|
|
//统计未完成情况
|
if(list1 != null && !list1.isEmpty()){
|
for (InoutData inoutData : list1) {
|
if(authUser.getDeptId().equals(inoutData.getDeptId())){
|
inoutRecord = new DtoInoutRecord();
|
inoutRecord.setId(inoutData.getId());
|
inoutRecord.setCompanyId(inoutData.getCompanyId());
|
inoutRecord.setType(inoutData.getType());
|
if (InoutConstant.TYPE_IN.equals(inoutData.getType())) {
|
inoutRecord.setTypeName("入库");
|
inNum++;
|
} else {
|
inoutRecord.setTypeName("出库");
|
outNum++;
|
}
|
inoutRecord.setUserName(inoutData.getUserName());
|
|
inoutRecord.setPlateNum(inoutData.getPlateNum());
|
inoutRecord.setProgress(inoutData.getProgress());
|
inoutRecord.setProgressName(phoneUtil.getProgressName(authUser.getCompanyId(),
|
inoutData.getProgress()));
|
inoutRecord.setDepotId(inoutData.getDepotId());
|
inoutRecord.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(),
|
inoutData.getDepotId()));
|
dtoList.add(inoutRecord);
|
}
|
}
|
}
|
|
//统计完成情况
|
if(list2 != null && !list2.isEmpty()) {
|
for (InoutData inoutData : list2) {
|
if(authUser.getDeptId().equals(inoutData.getDeptId())){
|
if (InoutConstant.TYPE_IN.equals(inoutData.getType())) {
|
inCompleteNum++;
|
} else {
|
outCompleteNum++;
|
}
|
}
|
}
|
}
|
if(!dtoList.isEmpty()){
|
dto.setListInout(dtoList);
|
}
|
|
//设置登记数、完成数以及完成率
|
dto.setInCompleteNum(inCompleteNum);
|
dto.setInSumNum(inNum + inCompleteNum);
|
if(dto.getInSumNum()!=0){
|
dto.setPerInComplete(String.format("%.2f",inCompleteNum / (inNum + inCompleteNum) * 100) + "%");
|
}
|
dto.setOutCompleteNum(outCompleteNum);
|
dto.setOutSumNum(outNum + outCompleteNum);
|
if(dto.getOutSumNum()!=0) {
|
dto.setPerOutComplete(String.format("%.2f",outCompleteNum / (outNum + outCompleteNum) * 100) + "%");
|
}
|
|
return PhoneRespUtil.success(dto, req);
|
}
|
}
|