|  |  |  | 
|---|
|  |  |  | 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.util.List; | 
|---|
|  |  |  | import java.util.concurrent.TimeUnit; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Created by vincent on 2020/7/7 | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DocTypeService docTypeService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public ReturnT<String> start(Order order) { | 
|---|
|  |  |  | DocType docType = docTypeService.selectById(order.getDocType()); | 
|---|
|  |  |  | if (null == docType) { | 
|---|
|  |  |  | log.info("上报出错,不存在该单据类型: " + order); | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); | 
|---|
|  |  |  | // 入库完成上报 | 
|---|
|  |  |  | if (docType.getPakin() == 1) { | 
|---|
|  |  |  | MesPakinParam pakinParam = new MesPakinParam(); | 
|---|
|  |  |  | pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime())); | 
|---|
|  |  |  | pakinParam.setLgortFrom("5008"); | 
|---|
|  |  |  | pakinParam.setLgortTo("5006"); | 
|---|
|  |  |  | for (OrderDetl orderDetl : orderDetls) { | 
|---|
|  |  |  | String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); | 
|---|
|  |  |  | pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JSONObject orderJson = new JSONObject(); | 
|---|
|  |  |  | orderJson.put("orderNo",order.getOrderNo()); | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | boolean success = false; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.URL) | 
|---|
|  |  |  | .setTimeout(30, TimeUnit.SECONDS) | 
|---|
|  |  |  | .setPath(MesConstant.PAKIN_URL) | 
|---|
|  |  |  | .setJson(JSON.toJSONString(pakinParam)) | 
|---|
|  |  |  | .setJson(orderJson.toJSONString()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(response); | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException("服务器内部错误,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response); | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(orderJson), response); | 
|---|
|  |  |  | throw new CoolException("上报mes系统失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 保存接口日志 | 
|---|
|  |  |  | apiLogService.save( | 
|---|
|  |  |  | "成品库入库上报", | 
|---|
|  |  |  | "入库上报", | 
|---|
|  |  |  | MesConstant.URL + MesConstant.PAKIN_URL, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | "127.0.0.1", | 
|---|
|  |  |  | JSON.toJSONString(pakinParam), | 
|---|
|  |  |  | JSON.toJSONString(orderJson), | 
|---|
|  |  |  | response, | 
|---|
|  |  |  | success | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | // 出库完成上报 | 
|---|
|  |  |  | if (docType.getPakout() == 1) { | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); | 
|---|
|  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.URL) | 
|---|
|  |  |  | .setPath(MesConstant.PAKOUT_URL)    // todo:luxiaotao | 
|---|
|  |  |  | .setTimeout(30, TimeUnit.SECONDS) | 
|---|
|  |  |  | .setPath(MesConstant.PAKOUT_URL) | 
|---|
|  |  |  | .setJson(JSON.toJSONString(pakoutParam)) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|