| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.sun.org.apache.xpath.internal.operations.Or; |
| | | import com.zy.asrs.entity.DiaphragmInfo; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | |
| | | import com.zy.common.model.MesPakoutParam; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | 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.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/7 |
| | |
| | | @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()); |
| | |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); |
| | | // 入库完成上报 |
| | | if (docType.getPakin() == 1) { |
| | | /* |
| | | MesPakinParam pakinParam = new MesPakinParam(); |
| | | pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime())); |
| | | pakinParam.setLgortFrom("5008"); |
| | |
| | | success |
| | | ); |
| | | } catch (Exception e) { log.error("", e); } |
| | | } |
| | | } */ |
| | | |
| | | return orderPakinSync(order,docType.getDocName(),orderDetls); |
| | | } |
| | | // 出库完成上报 |
| | | if (docType.getPakout() == 1) { |
| | | if (true) { |
| | | return SUCCESS; |
| | | } |
| | | /* |
| | | MesPakoutParam pakoutParam = new MesPakoutParam(); |
| | | pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); // todo:luxiaotao |
| | | pakoutParam.setLgortFrom("5008"); // todo:luxiaotao |
| | | pakoutParam.setLgortTo("5006"); // todo:luxiaotao |
| | | pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("手动出库单")); |
| | | pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); |
| | | pakoutParam.setLgortFrom("5006"); |
| | | pakoutParam.setLgortTo("1111"); |
| | | if (!pakoutParam.isTag()) { |
| | | pakoutParam.setKunnr("C1000"); |
| | | } |
| | | pakoutParam.setOrderNo(order.getOrderNo()); |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); |
| | |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(MesConstant.URL) |
| | | .setPath(MesConstant.PAKOUT_URL) // todo:luxiaotao |
| | | .setPath(MesConstant.PAKOUT_URL) |
| | | .setJson(JSON.toJSONString(pakoutParam)) |
| | | .build() |
| | | .doPost(); |
| | |
| | | ); |
| | | } 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("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(requestMap), response); |
| | | throw new CoolException("上报mes系统失败"); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | } |