自动化立体仓库 - WMS系统
zyx
2024-07-09 0f55c3628ce9d747953c2afe1fdd945baa357e65
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
package com.zy.asrs.task.handler;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.utils.Utils;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.ArrayList;
import java.util.List;
 
@Slf4j
@Service
@Transactional
public class OrderSendHandler extends AbstractHandler<String> {
 
    @Value("${u8.url}")
    private String url;
 
    @Value("${u8.path}")
    private String orderReportPath;
 
    @Autowired
    private OrderService orderService;
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private OrderDetlService orderDetlService;
 
    public void start(Order order) {
 
        List<OpenOrderPakoutParam> paramList = new ArrayList<>();
        OpenOrderPakoutParam param = new OpenOrderPakoutParam();
        paramList.add(param);
 
        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
 
        param.setcCode(order.getOrderNo());
        param.setcMaker(order.getOperMemb());
        param.setcCusName(order.getCstmrName());
        param.setcAccount(order.getNumber());
        param.setcMemo(order.getMemo());
        param.setType(order.getDocType$());
        param.setdDate(Utils.getDateStr(order.getCreateTime()));
        param.setAllocation(order.getItemName());
 
 
        List<OpenOrderPakoutParam.Body> bodyList = new ArrayList<>();
        param.setaDDBody(bodyList);
 
        for(OrderDetl orderDetl : orderDetlList){
            OpenOrderPakoutParam.Body body = new OpenOrderPakoutParam.Body();
            body.setiQuantity(orderDetl.getQty());
            body.setcInvCode(orderDetl.getMatnr());
            body.setCbMemo(orderDetl.getMemo());
            bodyList.add(body);
        }
 
        doHttpRequest(paramList, "上报ERP出库单据", url, orderReportPath, null, "127.0.0.1");
 
        orderService.updateSettle(order.getId(),6L,0L);
 
 
 
    }
 
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
        String response = "";
        boolean success = false;
 
        try {
            response = new HttpHandler.Builder()
                    .setUri(url)
                    .setPath(path)
                    .setJson(JSONObject.toJSONString(requestParam))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
 
            if(Cools.isEmpty(jsonObject.get("errCode"))){
                throw new CoolException(jsonObject.get("Message").toString());
            }
 
            int code = (int) jsonObject.get("errCode");
            if(code != 0){
                throw new CoolException(jsonObject.get("errMsg").toString());
            }
            success = true;
            return code;
        }catch (Exception e){
            log.error(e.getMessage());
            throw new CoolException("调用接口响应错误");
        }finally {
            apiLogService.save(
                    namespace,
                    url + path,
                    appkey,
                    ip,
                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
                    response,
                    success
            );
        }
 
    }
}