package com.ld.igds.phone35.service.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.ld.igds.constant.FoodVariety;
|
import com.ld.igds.constant.RespCodeEnum;
|
import com.ld.igds.inout.InoutConstant;
|
import com.ld.igds.inout.dto.InoutData;
|
import com.ld.igds.inout.service.InoutService;
|
import com.ld.igds.phone35.constant.Phone35Constant;
|
import com.ld.igds.phone35.dto.Phone35AuthUser;
|
import com.ld.igds.phone35.dto.Phone35InoutDto;
|
import com.ld.igds.phone35.dto.Phone35InoutSum;
|
import com.ld.igds.phone35.dto.PhoneResponse;
|
import com.ld.igds.phone35.param.Phone35InoutCommonParam;
|
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.NumberUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 实时出入库信息
|
*
|
* @author chen
|
* @date 2023-01-16 16:58
|
*/
|
@Service
|
public class Phone35ServiceImpl5205 implements Phone35Service {
|
|
@Autowired
|
private InoutService inoutService;
|
@Autowired
|
private Phone35Util phone35Util;
|
|
@Override
|
public String getInterfaceId() {
|
return Phone35Constant.API_PHONE_5205;
|
}
|
|
@SuppressWarnings("unchecked")
|
@Override
|
public PhoneResponse<Object> execute(Phone35Request<JSONObject> req, Phone35AuthUser phone35AuthUser)
|
throws Exception {
|
|
//转化为对象
|
Phone35InoutCommonParam param = JSONObject.parseObject(req.getData().toString(), Phone35InoutCommonParam.class);
|
if (null == param) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!");
|
}
|
//参数验证
|
if (StringUtils.isEmpty(param.getDeptId())) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!");
|
}
|
|
//当前流程中
|
List<InoutData> listProgress = inoutService.getListInoutCache(param.getDeptId());
|
|
//当前已经完成
|
List<InoutData> listComplete = inoutService.getCompleteListInoutCache(param.getDeptId());
|
|
Phone35InoutSum dto = new Phone35InoutSum();
|
|
double inNum = 0.0;
|
double inCompleteNum = 0.0;
|
double outNum = 0.0;
|
double outCompleteNum = 0.0;
|
|
//统计未完成情况
|
List<Phone35InoutDto> listDto = new ArrayList<>();
|
Phone35InoutDto phone35InoutDto;
|
if (listProgress != null && !listProgress.isEmpty()) {
|
for (InoutData inoutData : listProgress) {
|
phone35InoutDto = new Phone35InoutDto();
|
BeanUtils.copyProperties(inoutData, phone35InoutDto);
|
|
|
if (InoutConstant.TYPE_IN.equals(inoutData.getType())) {
|
phone35InoutDto.setTypeName("入库");
|
inNum++;
|
} else {
|
phone35InoutDto.setTypeName("出库");
|
outNum++;
|
}
|
phone35InoutDto.setProgressName(phone35Util.getProgressName(phone35AuthUser.getCompanyId(), inoutData.getProgress()));
|
phone35InoutDto.setDepotName(phone35Util.getDepotName(phone35AuthUser.getCompanyId(), inoutData.getDepotId()));
|
phone35InoutDto.setFoodVarietyName(FoodVariety.getMsg(inoutData.getFoodVariety()));
|
listDto.add(phone35InoutDto);
|
}
|
}
|
|
//统计完成情况
|
if (listComplete != null && !listComplete.isEmpty()) {
|
for (InoutData inoutData : listComplete) {
|
if (phone35AuthUser.getDeptId().equals(inoutData.getDeptId())) {
|
if (InoutConstant.TYPE_IN.equals(inoutData.getType())) {
|
inCompleteNum++;
|
} else {
|
outCompleteNum++;
|
}
|
}
|
}
|
}
|
dto.setListInout(listDto);
|
|
//设置登记数、完成数以及完成率
|
dto.setInCompleteNum(inCompleteNum);
|
dto.setInSumNum(inNum + inCompleteNum);
|
if (dto.getInSumNum() != 0) {
|
dto.setPerInComplete(NumberUtil.keepPrecision(inCompleteNum / (inNum + inCompleteNum) * 100, 2));
|
}
|
|
dto.setOutCompleteNum(outCompleteNum);
|
dto.setOutSumNum(outNum + outCompleteNum);
|
if (dto.getOutSumNum() != 0) {
|
dto.setPerOutComplete(NumberUtil.keepPrecision(outCompleteNum / (outNum + outCompleteNum) * 100, 2));
|
}
|
dto.setTime(new Date());
|
return PhoneRespUtil.success(dto, req);
|
}
|
}
|