From 087db8aee2e9cbfb44b8e61531c1cace5e36a6e2 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 28 四月 2024 14:53:52 +0800 Subject: [PATCH] ERP接口同步 --- src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java | 134 +++++++++++++++++++++++++++----------------- 1 files changed, 83 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java index 3c86c42..de32211 100644 --- a/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java @@ -2,87 +2,119 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.zy.asrs.entity.DocType; +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.task.ErpAccessTokenScheduler; 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.io.IOException; -import java.util.HashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; @Slf4j @Service @Transactional public class OrderSendHandler extends AbstractHandler<String> { - private static final String erpIp = "10.100.221.19:81"; - private static final String inPath = "/ierp/kapi/app/im/PurinbillApiPlugin"; - private static final String outPath = "/ierp/kapi/app/im/SaloutbillApiPlugin"; + @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) { - String accessToken = ErpAccessTokenScheduler.accessToken; - if (accessToken.equals("")) { - return; + + 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.setcAccount(order.getCstmrName()); + param.setcMemo(order.getMemo()); + param.setType(order.getDocType$()); + param.setdDate$(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); } - HashMap<String, Object> header = new HashMap<>(); - header.put("accessToken",accessToken); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("orderNo",order.getOrderNo()); - HttpHandler.Builder prepBuilder = new HttpHandler.Builder() - .setUri(erpIp) - .setHeaders(header) - .setJson(jsonObject.toJSONString()); - JSONObject respJson; + doHttpRequest(paramList, "涓婃姤ERP鍑哄簱鍗曟嵁", url, orderReportPath, null, "127.0.0.1"); + + orderService.updateSettle(order.getId(),6L,0L); - //鍏ュ簱鍗曟嵁 - if (docTypeService.selectOne(new EntityWrapper<DocType>() - .eq("doc_id",order.getDocType())).getPakin() == 1) { - try { - respJson = JSON.parseObject( - prepBuilder.setPath(inPath) - .build() - .doPost()); - } catch (IOException e) { - throw new RuntimeException(e); + + } + + 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()); } - }else { - //鍑哄簱鍗曟嵁 - try { - respJson = JSON.parseObject( - prepBuilder.setPath(outPath) - .build() - .doPost()); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - if ((boolean)respJson.get("success")) { - orderService.updateSettle(order.getId(),6L,1L); - log.info("鍗曟嵁:" + order.getOrderNo() + "鍥炰紶鎴愬姛锛屽凡鏇存柊鍗曟嵁鐘舵��"); - }else { - order.setItemId(order.getItemId() + 1); - orderService.updateById(order); - log.info("鍗曟嵁:"+ order.getOrderNo()+" 鍥炰紶澶辫触锛岃繖鏄" + order.getItemId() + "娆″洖浼�"); - log.info(respJson.toJSONString()); + 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 + ); } + } } -- Gitblit v1.9.1