jiazx0107@163.com
2023-06-21 d320b9ae40b3dfc1942ea484c8893ba1404c73ec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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();
    }
}