|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.DocType; | 
|---|
|  |  |  | import com.zy.asrs.entity.Order; | 
|---|
|  |  |  | import com.zy.asrs.entity.OrderDetl; | 
|---|
|  |  |  | import com.zy.asrs.entity.ReportMesOrderResult; | 
|---|
|  |  |  | import com.zy.asrs.service.ApiLogService; | 
|---|
|  |  |  | import com.zy.asrs.service.DocTypeService; | 
|---|
|  |  |  | import com.zy.asrs.service.OrderDetlService; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Created by vincent on 2020/7/7 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | boolean success = false; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.URL) | 
|---|
|  |  |  | .setPath(MesConstant.PAKIN_URL) | 
|---|
|  |  |  | .setJson(JSON.toJSONString(pakinParam)) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | 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(pakinParam), response); | 
|---|
|  |  |  | throw new CoolException("上报mes系统失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("fail", e); | 
|---|
|  |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
|---|
|  |  |  | return FAIL.setMsg(e.getMessage()); | 
|---|
|  |  |  | } finally { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 保存接口日志 | 
|---|
|  |  |  | apiLogService.save( | 
|---|
|  |  |  | "成品库入库上报", | 
|---|
|  |  |  | MesConstant.URL + MesConstant.PAKIN_URL, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | "127.0.0.1", | 
|---|
|  |  |  | JSON.toJSONString(pakinParam), | 
|---|
|  |  |  | response, | 
|---|
|  |  |  | success | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } catch (Exception e) { log.error("", e); } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 出库完成上报 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | boolean success = false; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.URL) | 
|---|
|  |  |  | .setPath(MesConstant.PAKOUT_URL)    // todo:luxiaotao | 
|---|
|  |  |  | .setJson(JSON.toJSONString(pakoutParam)) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | 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.PAKOUT_URL, JSON.toJSONString(pakoutParam), response); | 
|---|
|  |  |  | throw new CoolException("上报mes系统失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("fail", e); | 
|---|
|  |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
|---|
|  |  |  | return FAIL.setMsg(e.getMessage()); | 
|---|
|  |  |  | } finally { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 盘点单上报 | 
|---|
|  |  |  | if (docType.getDocName().equals("盘点单")) { | 
|---|
|  |  |  | List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl -> | 
|---|
|  |  |  | new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue())).collect(Collectors.toList()); | 
|---|
|  |  |  | JSONObject object = new JSONObject(); | 
|---|
|  |  |  | object.put("orderNo",order.getOrderNo()); | 
|---|
|  |  |  | object.put("orderDetls",collect); | 
|---|
|  |  |  | String body = JSON.toJSONString(object); | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | boolean success = false; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 保存接口日志 | 
|---|
|  |  |  | apiLogService.save( | 
|---|
|  |  |  | "成品库出库上报", | 
|---|
|  |  |  | MesConstant.URL + MesConstant.PAKOUT_URL, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | "127.0.0.1", | 
|---|
|  |  |  | JSON.toJSONString(pakoutParam), | 
|---|
|  |  |  | response, | 
|---|
|  |  |  | success | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } catch (Exception e) { log.error("", e); } | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.MES_CC_IP_PORT) | 
|---|
|  |  |  | .setPath(MesConstant.MES_CC_SB_URL) | 
|---|
|  |  |  | .setJson(body) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | 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("更新订单上报完成失败:" + order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("请求仓储MES盘点单上报接口失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT+MesConstant.MES_CC_SB_URL, JSON.toJSONString(collect), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("请求仓储MES盘点单上报接口异常", e); | 
|---|
|  |  |  | } finally { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 保存接口日志 | 
|---|
|  |  |  | apiLogService.save( | 
|---|
|  |  |  | "请求仓储MES盘点单上报接口", | 
|---|
|  |  |  | MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_SB_URL, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | "127.0.0.1", | 
|---|
|  |  |  | JSON.toJSONString(collect), | 
|---|
|  |  |  | response, | 
|---|
|  |  |  | success | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } catch (Exception e) { log.error("", e); } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if(docType.getDocName().equals("出库申请单") || docType.getDocName().equals("返修出库单")) { // 返修出库单/出库申请单上报 | 
|---|
|  |  |  | List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl -> | 
|---|
|  |  |  | new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue() == 1 ? 2 : 3)).collect(Collectors.toList()); | 
|---|
|  |  |  | JSONObject object = new JSONObject(); | 
|---|
|  |  |  | object.put("outboundNumber",order.getOrderNo()); | 
|---|
|  |  |  | object.put("outBounds",collect); | 
|---|
|  |  |  | String body = JSON.toJSONString(object); | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | boolean success = false; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(MesConstant.MES_ZL_IP_PORT) | 
|---|
|  |  |  | .setPath(MesConstant.MES_ZL_SB_URL) | 
|---|
|  |  |  | .setJson(body) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(response); | 
|---|
|  |  |  | Integer code = jsonObject.getInteger("code"); | 
|---|
|  |  |  | Boolean state = jsonObject.getBoolean("state"); | 
|---|
|  |  |  | if (code == 200 && state) { | 
|---|
|  |  |  | success = true; | 
|---|
|  |  |  | // 修改订单状态 4.完成 ===>> 6.已上报 | 
|---|
|  |  |  | if (!orderService.updateSettle(order.getId(), 6L, null)) { | 
|---|
|  |  |  | throw new CoolException("更新订单上报完成失败:" + order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("请求质量MES出库单上报接口失败!!!url:{};request:{};response:{}", MesConstant.MES_ZL_IP_PORT+MesConstant.MES_ZL_SB_URL, JSON.toJSONString(collect), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("请求质量MES出库单上报接口异常", e); | 
|---|
|  |  |  | } finally { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 保存接口日志 | 
|---|
|  |  |  | apiLogService.save( | 
|---|
|  |  |  | "请求质量MES出库单上报接口", | 
|---|
|  |  |  | MesConstant.MES_ZL_IP_PORT + MesConstant.MES_ZL_SB_URL, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | "127.0.0.1", | 
|---|
|  |  |  | JSON.toJSONString(collect), | 
|---|
|  |  |  | response, | 
|---|
|  |  |  | success | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } catch (Exception e) { log.error("", e); } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 入库完成上报 | 
|---|
|  |  |  | //        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())); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            String response = ""; | 
|---|
|  |  |  | //            boolean success = false; | 
|---|
|  |  |  | //            try { | 
|---|
|  |  |  | //                response = new HttpHandler.Builder() | 
|---|
|  |  |  | //                        .setUri(MesConstant.URL) | 
|---|
|  |  |  | //                        .setPath(MesConstant.PAKIN_URL) | 
|---|
|  |  |  | //                        .setJson(JSON.toJSONString(pakinParam)) | 
|---|
|  |  |  | //                        .build() | 
|---|
|  |  |  | //                        .doPost(); | 
|---|
|  |  |  | //                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(pakinParam), response); | 
|---|
|  |  |  | //                    throw new CoolException("上报mes系统失败"); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //            } catch (Exception e) { | 
|---|
|  |  |  | //                log.error("fail", e); | 
|---|
|  |  |  | ////            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
|---|
|  |  |  | //                return FAIL.setMsg(e.getMessage()); | 
|---|
|  |  |  | //            } finally { | 
|---|
|  |  |  | //                try { | 
|---|
|  |  |  | //                    // 保存接口日志 | 
|---|
|  |  |  | //                    apiLogService.save( | 
|---|
|  |  |  | //                            "成品库入库上报", | 
|---|
|  |  |  | //                            MesConstant.URL + MesConstant.PAKIN_URL, | 
|---|
|  |  |  | //                            null, | 
|---|
|  |  |  | //                            "127.0.0.1", | 
|---|
|  |  |  | //                            JSON.toJSONString(pakinParam), | 
|---|
|  |  |  | //                            response, | 
|---|
|  |  |  | //                            success | 
|---|
|  |  |  | //                    ); | 
|---|
|  |  |  | //                } catch (Exception e) { log.error("", e); } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|