package com.ld.igds.phone.service.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.ld.igds.constant.RespCodeEnum;
|
import com.ld.igds.file.CoreFileService;
|
import com.ld.igds.file.dto.FileData;
|
import com.ld.igds.inout.InoutConstant;
|
import com.ld.igds.inout.dto.InoutData;
|
import com.ld.igds.inout.dto.InoutParam;
|
import com.ld.igds.inout.mapper.InoutRecordMapper;
|
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.BytesUtil;
|
import com.ld.igds.util.FfmpegUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigInteger;
|
import java.util.List;
|
|
/**
|
* 值仓数据详细信息接口实现
|
*
|
* @author chen
|
*/
|
@Service
|
public class ServiceImpl5208 implements PhoneService {
|
|
@Autowired
|
private PhoneUtil phoneUtil;
|
@Autowired
|
private CoreFileService fileService;
|
@Autowired
|
private InoutRecordMapper inoutMapper;
|
|
@Override
|
public String getInterfaceId() {
|
return PhoneConstant.API_PHONE_5208;
|
}
|
|
@SuppressWarnings("unchecked")
|
@Override
|
public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser)
|
throws Exception {
|
|
//转化为对象
|
ParamInoutHandle param = JSONObject.parseObject(req.getData().toString(), ParamInoutHandle.class);
|
String id = param.getId();
|
|
//根据流水id或者卡号查询单子信息
|
InoutParam inoutParam = new InoutParam();
|
inoutParam.setId(param.getId());
|
inoutParam.setCompanyId(authUser.getCompanyId());
|
InoutData inoutData;
|
|
//判断流水号是否为空
|
if(StringUtils.isNotEmpty(param.getId())){
|
//不为空则说明是根据id查询
|
inoutData = inoutMapper.inoutQueryById(inoutParam);
|
}else {
|
//根据读卡的卡号查询
|
inoutParam.setIntelCard(tranIntelCard(param.getIntelCard()));
|
List<InoutData> list = inoutMapper.inoutProgressQuery(inoutParam);
|
if(list == null || list.isEmpty()){
|
return PhoneRespUtil.error(RespCodeEnum.CODE_2000,"查询不到此卡数据信息!");
|
}
|
inoutData = list.get(0);
|
}
|
if(inoutData == null){
|
return PhoneRespUtil.error(RespCodeEnum.CODE_2000,"查询不到此卡数据信息!");
|
}
|
//封装响应数据
|
DtoInoutHandle inoutHandle = new DtoInoutHandle();
|
inoutHandle.setId(inoutData.getId());
|
inoutHandle.setCompanyId(inoutData.getCompanyId());
|
inoutHandle.setIntelCard(inoutData.getIntelCard());
|
inoutHandle.setPlateNum(inoutData.getPlateNum());
|
inoutHandle.setType(inoutData.getType());
|
inoutHandle.setDepotId(inoutData.getDepotId());
|
inoutHandle.setDepotName(phoneUtil.getDepotName(inoutData.getCompanyId(),inoutData.getDepotId()));
|
inoutHandle.setDeHandle(inoutData.getDeHandle());
|
// inoutHandle.setCustomerId(inoutData.getCustomerId()); TODO
|
inoutHandle.setCustomerName(inoutData.getCustomerName());
|
inoutHandle.setFoodVariety(inoutData.getFoodVariety());
|
inoutHandle.setSettleWeight(inoutData.getSettleWeight());
|
inoutHandle.setFoodLevel(inoutData.getFoodLevel());
|
inoutHandle.setProgress(inoutData.getProgress());
|
|
//根据流水id、组织编码查询图片信息
|
List<FileData> files = fileService.listFile(authUser.getCompanyId(),
|
inoutData.getId());
|
if(files != null){
|
String bathPath;
|
int i = 1;
|
for (FileData file : files) {
|
//只设置值仓的图片
|
if(file.getBizTag().equals(InoutConstant.PROGRESS_HANDLE)){
|
if(i==1){
|
i++;
|
bathPath = fileService.getInoutFilePath(file.getCreateTime());
|
inoutHandle.setFileName1(file.getFileName());
|
inoutHandle.setBase64Img1(FfmpegUtil.getImgStr(bathPath + file.getFileName()));
|
}else {
|
bathPath = fileService.getInoutFilePath(file.getCreateTime());
|
inoutHandle.setFileName2(file.getFileName());
|
inoutHandle.setBase64Img2(FfmpegUtil.getImgStr(bathPath + file.getFileName()));
|
}
|
}
|
}
|
}
|
|
return PhoneRespUtil.success(inoutHandle, req);
|
}
|
|
/**
|
* 将读卡获取的8位16进制字符串进行高低位转换后转为10进制
|
* @param str
|
* @return
|
*/
|
private String tranIntelCard(String str){
|
str = BytesUtil.tran_LH8(str);
|
BigInteger bigInteger = new BigInteger(str,16);
|
return bigInteger.toString();
|
}
|
}
|