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 execute(PhoneRequest 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 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 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(); } }