From 02eb447f5b70008f23851391073033293056e5ca Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期三, 21 六月 2023 13:59:51 +0800 Subject: [PATCH] 增加轮询MES接口功能,增加物料档案类与隔膜信息类,增加orderdetl qr_code,startdate,enddate三个字段 --- src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 140 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 134 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java index 43b50b1..d521519 100644 --- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java @@ -2,9 +2,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.core.common.Cools; -import com.core.common.DateUtils; import com.core.exception.CoolException; +import com.zy.asrs.entity.DiaphragmInfo; import com.zy.asrs.entity.DocType; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; @@ -14,17 +13,19 @@ import com.zy.asrs.service.OrderService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; -import com.zy.common.constant.MesConstant; -import com.zy.common.model.MesPakinParam; -import com.zy.common.model.MesPakoutParam; 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.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * Created by vincent on 2020/7/7 @@ -44,6 +45,18 @@ @Autowired private DocTypeService docTypeService; + @Value("${mes.pakin-sync.url}") + private String pakinUrl; + + @Value("${mes.pakin-sync.path}") + private String pakinPath; + + @Value("${mes.pakout-sync.url}") + private String pakoutUrl; + + @Value("${mes.pakout-sync.path}") + private String pakoutPath; + @Transactional public ReturnT<String> start(Order order) { DocType docType = docTypeService.selectById(order.getDocType()); @@ -53,6 +66,7 @@ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // 鍏ュ簱瀹屾垚涓婃姤 if (docType.getPakin() == 1) { + /* MesPakinParam pakinParam = new MesPakinParam(); pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime())); pakinParam.setLgortFrom("5008"); @@ -98,10 +112,13 @@ success ); } catch (Exception e) { log.error("", e); } - } + } */ + + return orderPakinSync(order,docType.getDocName(),orderDetls); } // 鍑哄簱瀹屾垚涓婃姤 if (docType.getPakout() == 1) { + /* MesPakoutParam pakoutParam = new MesPakoutParam(); pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�")); pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); @@ -153,8 +170,119 @@ ); } catch (Exception e) { log.error("", e); } } + */ + + return orderPakoutSync(order,docType.getDocName(),orderDetls); } return SUCCESS; } + private ReturnT<String> orderPakoutSync (Order order, String orderType, List<OrderDetl> orderDetls){ + Map<String,Object> requestMap = getRequestMap(order,orderType,orderDetls); + String response = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(pakoutUrl) + .setPath(pakoutPath) + .setJson(JSON.toJSONString(requestMap)) + .build() + .doPost(); + success = orderSettleUpdate(response,order); + } catch (Exception e) { + log.error("fail", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鎴愬搧搴撳嚭搴撲笂鎶�", + pakoutUrl + pakoutPath, + null, + "127.0.0.1", + JSON.toJSONString(requestMap), + response, + success + ); + } catch (Exception e) { log.error("", e); } + } + + return SUCCESS; + } + + private ReturnT<String> orderPakinSync (Order order, String orderType, List<OrderDetl> orderDetls){ + Map<String,Object> requestMap = getRequestMap(order,orderType,orderDetls); + + String response = ""; + boolean success = false; + + try { + response = new HttpHandler.Builder() + .setUri(pakinUrl) + .setPath(pakinPath) + .setJson(JSON.toJSONString(requestMap)) + .build() + .doPost(); + success = orderSettleUpdate(response,order); + } catch (Exception e) { + log.error("fail", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鎴愬搧搴撳叆搴撲笂鎶�", + pakinUrl + pakinPath, + null, + "127.0.0.1", + JSON.toJSONString(requestMap), + response, + success + ); + } catch (Exception e) { log.error("", e); } + } + + return SUCCESS; + + } + + private Map<String,Object> getRequestMap(Order order,String orderType, List<OrderDetl> orderDetls){ + Map<String,Object> requestMap = new HashMap<>(); + requestMap.put("orderNo",order.getOrderNo()); + requestMap.put("orderTime",order.getOrderTime()); + requestMap.put("orderType",orderType); + + List<DiaphragmInfo> diaphragmInfoList = orderDetls.stream().map(od -> { + DiaphragmInfo diaphragmInfo = new DiaphragmInfo(); + diaphragmInfo.setBatchNo(od.getBatch()); + diaphragmInfo.setItemCode(od.getMatnr()); + diaphragmInfo.setBarCode(od.getQrCode()); + diaphragmInfo.setQuantity(new BigDecimal(od.getAnfme())); + diaphragmInfo.setAssQuantity(new BigDecimal(od.getQty())); + return diaphragmInfo; + }).collect(Collectors.toList()); + + requestMap.put("orderDetails",diaphragmInfoList); + + return requestMap; + } + + private boolean orderSettleUpdate(String response, Order order){ + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + //success = true; + // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� + if (!orderService.updateSettle(order.getId(), 6L, null)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + } + } else { + //log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(requestMap), response); + throw new CoolException("涓婃姤mes绯荤粺澶辫触"); + } + + return true; + } + } -- Gitblit v1.9.1