| | |
| | | import com.zy.common.service.CommonService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | 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; |
| | |
| | | |
| | | @Resource |
| | | private MobileService mobileService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | |
| | | |
| | | // region MES接口 |
| | |
| | | } else { |
| | | throw new CoolException("同步物料信息,生成入库单失败"); |
| | | } |
| | | |
| | | mesReturn.setSuccess("1"); |
| | | mesReturn.setMessage(""); |
| | | return mesReturn; |
| | | } |
| | | |
| | |
| | | if (mat == null) { |
| | | if (!matService.insert(newMat)) |
| | | return -2; |
| | | } else { |
| | | JSONObject dbMemo = JSONObject.parseObject(mat.getMemo()); |
| | | dbMemo.remove("OrderNo"); |
| | | dbMemo.remove("qty"); |
| | | dbMemo.remove("ItemBarcode"); |
| | | JSONObject newMemo = JSONObject.parseObject(newMat.getMemo()); |
| | | newMemo.remove("OrderNo"); |
| | | newMemo.remove("qty"); |
| | | dbMemo.remove("ItemBarcode"); |
| | | if (!dbMemo.equals(newMemo)) { |
| | | newMat.setId(mat.getId()); |
| | | if (!matService.updateById(newMat)) |
| | | return -2; |
| | | } |
| | | } |
| | | } else { |
| | | return -1; |
| | |
| | | /** |
| | | * 物料同步入库单,按OrderNo生成多个订单 |
| | | * |
| | | * |
| | | * @param matRecvForm |
| | | * @return |
| | | */ |
| | | public int inBoundOrder_List(MesMatRecvForm matRecvForm){ |
| | | public int inBoundOrder_List(MesMatRecvForm matRecvForm) { |
| | | |
| | | long docType = 4; // docType根据库类型确定 |
| | | long docType = 1; // docType根据库类型确定 来料申请单 |
| | | long settle = 1; |
| | | Date now = new Date(); |
| | | |
| | |
| | | |
| | | // 校验订单是否重复 |
| | | OrderPakin order = orderPakinService.selectByNo(entry.getKey()); |
| | | if (order != null && !StringUtils.isEmpty(order.getOrderNo())) { |
| | | return -1; |
| | | // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 |
| | | if (!Cools.isEmpty(order)) { |
| | | if (order.getSettle() > 1L) { |
| | | throw new CoolException(entry.getKey() + "正在出库,无法修改单据"); |
| | | } |
| | | orderPakinService.remove(order.getId()); |
| | | } |
| | | |
| | | // 生成订单 |
| | |
| | | newMemo.put("operuser", matRecvForm.getOperuser()); |
| | | newMemo.put("itemdata", list); |
| | | |
| | | |
| | | // 生成订单 |
| | | OrderPakin orderPakin = new OrderPakin(); |
| | | orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | orderPakin.setOrderNo(entry.getKey()); |
| | | orderPakin.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | orderPakin.setDocType(docType); |
| | | orderPakin.setSettle(settle); |
| | | orderPakin.setSettle(1L); |
| | | orderPakin.setStatus(1); |
| | | orderPakin.setCreateBy(defaultUserId); |
| | | orderPakin.setCreateTime(now); |
| | | orderPakin.setUpdateBy(defaultUserId); |
| | | orderPakin.setUpdateTime(now); |
| | | orderPakin.setMemo(newMemo.toJSONString()); //为领料入库完成反馈保存 JSONObject.toJSONString(matRecvForm) |
| | | orderPakin.setMemo(JSONObject.toJSONString(newMemo)); //为出库完成反馈保存 |
| | | orderPakin.setPakinPakoutStatus(1); |
| | | if (!orderPakinService.insert(orderPakin)) { |
| | | log.error("MES保存入库订单主档失败"); |
| | | throw new CoolException("保存入库订单主档失败"); |
| | | } |
| | | orderPakinService.insert(orderPakin); |
| | | if (list != null && !list.isEmpty()) { |
| | | for (MesMatInfo mesMatInfo : list) { |
| | | |
| | | // 生成明细 |
| | | for (MesMatInfo mesMat : list) { |
| | | Mat mat = matService.selectByMatnr(mesMat.getItemNo()); |
| | | OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); |
| | | orderDetlPakin.setOrderId(orderPakin.getId()); |
| | | orderDetlPakin.setOrderNo(orderPakin.getOrderNo()); |
| | | orderDetlPakin.setAnfme(Double.valueOf(mesMat.getQty())); |
| | | orderDetlPakin.setQty(0.0); |
| | | orderDetlPakin.setMatnr(mat.getMatnr()); |
| | | orderDetlPakin.setMaktx(mat.getMaktx()); |
| | | orderDetlPakin.setSpecs(mat.getSpecs()); |
| | | orderDetlPakin.setModel(mat.getModel()); |
| | | orderDetlPakin.setStandby1(JSONObject.toJSONString(mesMat.getItemBarcode())); // 零件二维码 |
| | | orderDetlPakin.setStandby2("1"); //保存齐套性检查标识,1 检查;0 不检查; |
| | | orderDetlPakin.setCreateBy(defaultUserId); |
| | | orderDetlPakin.setCreateTime(now); |
| | | orderDetlPakin.setUpdateBy(defaultUserId); |
| | | orderDetlPakin.setUpdateTime(now); |
| | | orderDetlPakin.setStatus(1); |
| | | orderDetlPakin.setPakinPakoutStatus(1); |
| | | if (!orderDetlPakinService.insert(orderDetlPakin)) { |
| | | log.error("MES保存入库订单明细档失败1"); |
| | | throw new CoolException("保存入库订单明细档失败1"); |
| | | // 生成明细 |
| | | Mat mat = matService.selectByMatnr(mesMatInfo.getItemNo()); |
| | | if (Cools.isEmpty(mat)) { |
| | | log.error("该物料编号立库没有=" + mesMatInfo.getItemNo()); |
| | | continue; |
| | | } |
| | | OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); |
| | | orderDetlPakin.setOrderId(orderPakin.getId()); |
| | | orderDetlPakin.setOrderNo(orderPakin.getOrderNo()); |
| | | orderDetlPakin.setAnfme(Double.valueOf(mesMatInfo.getQty())); |
| | | orderDetlPakin.setQty(0.0); |
| | | orderDetlPakin.setMatnr(mat.getMatnr()); |
| | | orderDetlPakin.setMaktx(mat.getMaktx()); |
| | | orderDetlPakin.setSpecs(mat.getSpecs()); |
| | | orderDetlPakin.setModel(mat.getModel()); |
| | | // orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode()); |
| | | // orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid()); //保存配盘号,非托盘号 |
| | | orderDetlPakin.setStandby2("0"); //保存齐套性检查标识,1 检查;0 不检查; |
| | | orderDetlPakin.setCreateBy(defaultUserId); |
| | | orderDetlPakin.setCreateTime(now); |
| | | orderDetlPakin.setUpdateBy(defaultUserId); |
| | | orderDetlPakin.setUpdateTime(now); |
| | | orderDetlPakin.setStatus(1); |
| | | orderDetlPakin.setPakinPakoutStatus(1); |
| | | orderDetlPakinService.insert(orderDetlPakin); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return 1; |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | String url = MES_URL + "MaterialReceiptAndReturn"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesRecvFeedback)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | * @param mesOutApply |
| | | * @return 1 成功;-1 订单重复; |
| | | */ |
| | | public int outBoundOrder(MesOutApply mesOutApply){ |
| | | public int outBoundOrder(MesOutApply mesOutApply) { |
| | | |
| | | // 空托出库 |
| | | if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) { |
| | | // 生成空托出库任务 |
| | | mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1,"1",defaultUserId); |
| | | |
| | | try { |
| | | if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) { |
| | | TransTask transTask = new TransTask(); |
| | | transTask.setTaskno(mesOutApply.getTaskno()); |
| | | transTask.setTaskname(mesOutApply.getTaskname()); |
| | | transTask.setOrderNo(mesOutApply.getOrderNo()); |
| | | transTask.setTransType(mesOutApply.getTransType()); |
| | | transTask.setCurStationId(WMS_TRANS_START_STATION_1); |
| | | transTask.setNextProcess(mesOutApply.getProductLineId()); |
| | | transTask.setNextStationId(mesOutApply.getStationId()); |
| | | transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码 |
| | | transTask.setQty(1); // 空托只出1个 |
| | | transTask.setProductLineId(mesOutApply.getProductLineId()); |
| | | transTask.setOperateType(1); |
| | | transTask.setAgvFactory(1); |
| | | JSONObject sendAgvTask = submitTask(transTask); |
| | | if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask)); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("下发AGV运输任务失败", e); |
| | | } |
| | | |
| | | return 1; |
| | | } else { // 毛坯(物料)出库 |
| | | // docType根据库类型确定 |
| | | long docType = 7; |
| | | long settle = 1; |
| | | |
| | | // 校验订单是否重复 |
| | | OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo()); |
| | | if (order != null && !StringUtils.isEmpty(order.getOrderNo())) { |
| | | log.error("出库订单号重复:{}",mesOutApply.getOrderNo()); |
| | | return -1; |
| | | } |
| | | |
| | | // 生成订单 |
| | | Date now = new Date(); |
| | | OrderPakout orderPakout = new OrderPakout(); |
| | | orderPakout.setUuid( String.valueOf(snowflakeIdWorker.nextId())); |
| | | orderPakout.setOrderNo(mesOutApply.getOrderNo()); |
| | | orderPakout.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | orderPakout.setDocType(docType); |
| | | orderPakout.setSettle(settle); |
| | | orderPakout.setStatus(1); |
| | | orderPakout.setCreateBy(defaultUserId); |
| | | orderPakout.setCreateTime(now); |
| | | orderPakout.setUpdateBy(defaultUserId); |
| | | orderPakout.setUpdateTime(now); |
| | | orderPakout.setMemo(JSONObject.toJSONString(mesOutApply)); |
| | | orderPakout.setPakinPakoutStatus(2); |
| | | if (!orderPakoutService.insert(orderPakout)) { |
| | | log.error("MES保存出库订单主档失败"); |
| | | throw new CoolException("保存出库订单主档失败"); |
| | | } |
| | | |
| | | // 生成明细 |
| | | Mat mat = matService.selectByMatnr(mesOutApply.getItemno()); |
| | | OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); |
| | | orderDetlPakout.setOrderId(orderPakout.getId()); |
| | | orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); |
| | | orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty())); |
| | | orderDetlPakout.setQty(0.0); |
| | | orderDetlPakout.setMatnr(mat.getMatnr()); |
| | | orderDetlPakout.setMaktx(mat.getMaktx()); |
| | | orderDetlPakout.setSpecs(mat.getSpecs()); |
| | | orderDetlPakout.setModel(mat.getModel()); |
| | | orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode())); |
| | | orderDetlPakout.setCreateBy(defaultUserId); |
| | | orderDetlPakout.setCreateTime(now); |
| | | orderDetlPakout.setUpdateBy(defaultUserId); |
| | | orderDetlPakout.setUpdateTime(now); |
| | | orderDetlPakout.setStatus(1); |
| | | orderDetlPakout.setPakinPakoutStatus(2); |
| | | if (!orderDetlPakoutService.insert(orderDetlPakout)) { |
| | | log.error("MES保存出库订单明细档失败"); |
| | | throw new CoolException("保存出库订单明细档失败"); |
| | | } |
| | | |
| | | // TODO:若AGV和输送线没有安全交互,则要保证立库出货完成后再呼叫AGV。 |
| | | // 立库生成订单后,自动调度AGV运送到站点,目前多托生成多个。 |
| | | try { |
| | | if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) { |
| | | // 按零件二维码查询有几个托,多托生成多个任务,每托对应零件二维码 |
| | | String barCode = barCodeListToStr(mesOutApply.getItemBarcode()); |
| | | EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>(); |
| | | matItemBarcodeEntityWrapper.in("item_barcode", barCode); |
| | | List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper); |
| | | if (barcodes != null) { |
| | | Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet)); |
| | | for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) { |
| | | List<MatItemBarcode> list = entry.getValue(); |
| | | List<String> codes = new ArrayList<>(); |
| | | for (MatItemBarcode zapllet : list) { |
| | | codes.add(zapllet.getItemBarcode()); |
| | | } |
| | | |
| | | TransTask transTask = new TransTask(); |
| | | transTask.setTaskno(mesOutApply.getTaskno()); |
| | | transTask.setTaskname(mesOutApply.getTaskname()); |
| | | transTask.setOrderNo(mesOutApply.getOrderNo()); |
| | | transTask.setTransType(mesOutApply.getTransType()); |
| | | transTask.setCurStationId(WMS_TRANS_START_STATION_3); |
| | | transTask.setNextProcess(mesOutApply.getProductLineId()); |
| | | transTask.setNextStationId(mesOutApply.getStationId()); |
| | | transTask.setItemno(mesOutApply.getItemno()); |
| | | transTask.setQty(list.size()); |
| | | transTask.setProductLineId(mesOutApply.getProductLineId()); |
| | | transTask.setItemBarcode(codes); |
| | | transTask.setTuoPanId(entry.getKey()); |
| | | transTask.setOperateType(1); |
| | | transTask.setAgvFactory(1); |
| | | JSONObject sendAgvTask = submitTask(transTask); |
| | | if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | log.error("出库下发agv运输任务失败", JSONObject.toJSONString(transTask)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("下发AGV运输任务失败", e); |
| | | } |
| | | } |
| | | // // 空托出库 |
| | | // if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) { |
| | | // // 生成空托出库任务 |
| | | // mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1, "1", defaultUserId); |
| | | // |
| | | // try { |
| | | // if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) { |
| | | // TransTask transTask = new TransTask(); |
| | | // transTask.setTaskno(mesOutApply.getTaskno()); |
| | | // transTask.setTaskname(mesOutApply.getTaskname()); |
| | | // transTask.setOrderNo(mesOutApply.getOrderNo()); |
| | | // transTask.setTransType(mesOutApply.getTransType()); |
| | | // transTask.setCurStationId(WMS_TRANS_START_STATION_1); |
| | | // transTask.setNextProcess(mesOutApply.getProductLineId()); |
| | | // transTask.setNextStationId(mesOutApply.getStationId()); |
| | | // transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码 |
| | | // transTask.setQty(1); // 空托只出1个 |
| | | // transTask.setProductLineId(mesOutApply.getProductLineId()); |
| | | // transTask.setOperateType(1); |
| | | // transTask.setAgvFactory(1); |
| | | // JSONObject sendAgvTask = submitTask(transTask); |
| | | // if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | // log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask)); |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("下发AGV运输任务失败", e); |
| | | // } |
| | | // |
| | | // return 1; |
| | | // } else { // 毛坯(物料)出库 |
| | | // // docType根据库类型确定 |
| | | // long docType = 7; |
| | | // long settle = 1; |
| | | // |
| | | // // 校验订单是否重复 |
| | | // OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo()); |
| | | // if (order != null && !StringUtils.isEmpty(order.getOrderNo())) { |
| | | // log.error("出库订单号重复:{}", mesOutApply.getOrderNo()); |
| | | // return -1; |
| | | // } |
| | | // |
| | | // // 生成订单 |
| | | // Date now = new Date(); |
| | | // OrderPakout orderPakout = new OrderPakout(); |
| | | // orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | // orderPakout.setOrderNo(mesOutApply.getOrderNo()); |
| | | // orderPakout.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | // orderPakout.setDocType(docType); |
| | | // orderPakout.setSettle(settle); |
| | | // orderPakout.setStatus(1); |
| | | // orderPakout.setCreateBy(defaultUserId); |
| | | // orderPakout.setCreateTime(now); |
| | | // orderPakout.setUpdateBy(defaultUserId); |
| | | // orderPakout.setUpdateTime(now); |
| | | // orderPakout.setMemo(JSONObject.toJSONString(mesOutApply)); |
| | | // orderPakout.setPakinPakoutStatus(2); |
| | | // if (!orderPakoutService.insert(orderPakout)) { |
| | | // log.error("MES保存出库订单主档失败"); |
| | | // throw new CoolException("保存出库订单主档失败"); |
| | | // } |
| | | // |
| | | // // 生成明细 |
| | | // Mat mat = matService.selectByMatnr(mesOutApply.getItemno()); |
| | | // OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); |
| | | // orderDetlPakout.setOrderId(orderPakout.getId()); |
| | | // orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); |
| | | // orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty())); |
| | | // orderDetlPakout.setQty(0.0); |
| | | // orderDetlPakout.setMatnr(mat.getMatnr()); |
| | | // orderDetlPakout.setMaktx(mat.getMaktx()); |
| | | // orderDetlPakout.setSpecs(mat.getSpecs()); |
| | | // orderDetlPakout.setModel(mat.getModel()); |
| | | // orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode())); |
| | | // orderDetlPakout.setCreateBy(defaultUserId); |
| | | // orderDetlPakout.setCreateTime(now); |
| | | // orderDetlPakout.setUpdateBy(defaultUserId); |
| | | // orderDetlPakout.setUpdateTime(now); |
| | | // orderDetlPakout.setStatus(1); |
| | | // orderDetlPakout.setPakinPakoutStatus(2); |
| | | // if (!orderDetlPakoutService.insert(orderDetlPakout)) { |
| | | // log.error("MES保存出库订单明细档失败"); |
| | | // throw new CoolException("保存出库订单明细档失败"); |
| | | // } |
| | | // |
| | | // // TODO:若AGV和输送线没有安全交互,则要保证立库出货完成后再呼叫AGV。 |
| | | // // 立库生成订单后,自动调度AGV运送到站点,目前多托生成多个。 |
| | | // try { |
| | | // if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) { |
| | | // // 按零件二维码查询有几个托,多托生成多个任务,每托对应零件二维码 |
| | | // String barCode = barCodeListToStr(mesOutApply.getItemBarcode()); |
| | | // EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>(); |
| | | // matItemBarcodeEntityWrapper.in("item_barcode", barCode); |
| | | // List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper); |
| | | // if (barcodes != null) { |
| | | // Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet)); |
| | | // for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) { |
| | | // List<MatItemBarcode> list = entry.getValue(); |
| | | // List<String> codes = new ArrayList<>(); |
| | | // for (MatItemBarcode zapllet : list) { |
| | | // codes.add(zapllet.getItemBarcode()); |
| | | // } |
| | | // |
| | | // TransTask transTask = new TransTask(); |
| | | // transTask.setTaskno(mesOutApply.getTaskno()); |
| | | // transTask.setTaskname(mesOutApply.getTaskname()); |
| | | // transTask.setOrderNo(mesOutApply.getOrderNo()); |
| | | // transTask.setTransType(mesOutApply.getTransType()); |
| | | // transTask.setCurStationId(WMS_TRANS_START_STATION_3); |
| | | // transTask.setNextProcess(mesOutApply.getProductLineId()); |
| | | // transTask.setNextStationId(mesOutApply.getStationId()); |
| | | // transTask.setItemno(mesOutApply.getItemno()); |
| | | // transTask.setQty(list.size()); |
| | | // transTask.setProductLineId(mesOutApply.getProductLineId()); |
| | | // transTask.setItemBarcode(codes); |
| | | // transTask.setTuoPanId(entry.getKey()); |
| | | // transTask.setOperateType(1); |
| | | // transTask.setAgvFactory(1); |
| | | // JSONObject sendAgvTask = submitTask(transTask); |
| | | // if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | // log.error("出库下发agv运输任务失败", JSONObject.toJSONString(transTask)); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("下发AGV运输任务失败", e); |
| | | // } |
| | | // } |
| | | |
| | | return 1; |
| | | } |
| | |
| | | * @param mesInApply |
| | | */ |
| | | @Transactional |
| | | public int inBoundOrder(MesInApply mesInApply){ |
| | | public int inBoundOrder(MesInApply mesInApply) { |
| | | |
| | | // 空托回库 |
| | | if (StringUtils.isEmpty(mesInApply.getOrderNo()) && StringUtils.isEmpty(mesInApply.getItemno())) { |
| | | if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) { |
| | | TransTask transTask = new TransTask(); |
| | | transTask.setTaskno(mesInApply.getTaskno()); |
| | | transTask.setTaskname(mesInApply.getTaskname()); |
| | | transTask.setOrderNo(mesInApply.getOrderNo()); |
| | | transTask.setTransType(mesInApply.getTransType()); |
| | | transTask.setCurProcess(mesInApply.getProductLineId()); |
| | | transTask.setCurStationId(mesInApply.getStationID()); |
| | | transTask.setNextStationId(WMS_TRANS_START_STATION_2); |
| | | transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码 |
| | | transTask.setQty(1); // 空托只回1个 |
| | | transTask.setProductLineId(mesInApply.getProductLineId()); |
| | | transTask.setOperateType(1); |
| | | transTask.setAgvFactory(1); |
| | | JSONObject sendAgvTask = submitTask(transTask); |
| | | if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | log.error("出库下发agv运输任务失败,{}", JSONObject.toJSONString(transTask)); |
| | | return 2; |
| | | } |
| | | } else { |
| | | log.error("无任务号:{},或无物料编码:{}",mesInApply.getTaskno(),mesInApply.getItemno() ); |
| | | if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) { |
| | | TransTask transTask = new TransTask(); |
| | | transTask.setTaskno(mesInApply.getTaskno()); |
| | | transTask.setTaskname(mesInApply.getTaskname()); |
| | | transTask.setOrderNo(mesInApply.getOrderNo()); |
| | | transTask.setTransType(mesInApply.getTransType()); |
| | | transTask.setCurProcess(mesInApply.getProductLineId()); |
| | | transTask.setCurStationId(mesInApply.getStationID()); |
| | | transTask.setNextStationId(WMS_TRANS_START_STATION_2); |
| | | transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码 |
| | | transTask.setQty(1); // 空托只回1个 |
| | | transTask.setProductLineId(mesInApply.getProductLineId()); |
| | | transTask.setOperateType(1); |
| | | transTask.setAgvFactory(1); |
| | | JSONObject sendAgvTask = submitTask(transTask); |
| | | if (!"1".equals(sendAgvTask.getString("Success"))) { |
| | | log.error("出库下发agv运输任务失败,{}", JSONObject.toJSONString(transTask)); |
| | | return 2; |
| | | } |
| | | } else { |
| | | log.error("无任务号:{},或无物料编码:{}", mesInApply.getTaskno(), mesInApply.getItemno()); |
| | | return 2; |
| | | } |
| | | |
| | | return 1; |
| | | } else { // 毛坯、成品回库 |
| | |
| | | |
| | | String url = MES_URL + "issueComplete"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | success = 1; |
| | | } |
| | | } |
| | |
| | | |
| | | String url = MES_URL + "loadComplete"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | success = 1; |
| | | } |
| | | } |
| | |
| | | |
| | | String url = MES_URL + "loadComplete"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | success++; |
| | | } |
| | | } |
| | |
| | | |
| | | String url = MES_URL + "issueComplete"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | success++; |
| | | } |
| | | } |
| | |
| | | * @param mesCallOutApply |
| | | * @return |
| | | */ |
| | | public int callOutBoundOrder(MesCallOutApply mesCallOutApply){ |
| | | |
| | | // docType根据库类型确定 |
| | | long docType = 7; |
| | | long settle = 1; |
| | | |
| | | // 校验订单是否重复 |
| | | OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo()); |
| | | if (order != null && !StringUtils.isEmpty(order.getOrderNo())) { |
| | | return -1; |
| | | public int callOutBoundOrder(MesCallOutApply mesCallOutApply) { |
| | | DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", mesCallOutApply.getTransType())); |
| | | if (docType == null) { |
| | | return 0; |
| | | } |
| | | //生成出库单 |
| | | if (docType.getPakout() == 1) { |
| | | long settle = 1; |
| | | |
| | | // 生成订单 |
| | | Date now = new Date(); |
| | | OrderPakout orderPakout = new OrderPakout(); |
| | | orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | orderPakout.setOrderNo(mesCallOutApply.getOrderNo()); |
| | | orderPakout.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | orderPakout.setDocType(docType); |
| | | orderPakout.setSettle(settle); |
| | | orderPakout.setStatus(1); |
| | | orderPakout.setCreateBy(defaultUserId); |
| | | orderPakout.setCreateTime(now); |
| | | orderPakout.setUpdateBy(defaultUserId); |
| | | orderPakout.setUpdateTime(now); |
| | | orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply)); |
| | | orderPakout.setPakinPakoutStatus(2); |
| | | if (!orderPakoutService.insert(orderPakout)) { |
| | | log.error("MES保存出库订单(叫料)主档失败"); |
| | | throw new CoolException("保存出库订单(叫料)主档失败"); |
| | | } |
| | | // 校验订单是否重复 |
| | | OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo()); |
| | | // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 |
| | | if (!Cools.isEmpty(order)) { |
| | | if (order.getSettle() > 1L) { |
| | | throw new CoolException(mesCallOutApply.getOrderNo() + "正在出库,无法修改单据"); |
| | | } |
| | | orderPakoutService.remove(order.getId()); |
| | | } |
| | | |
| | | // 生成明细 |
| | | if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) { |
| | | for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) { |
| | | Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno()); |
| | | OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); |
| | | orderDetlPakout.setOrderId(orderPakout.getId()); |
| | | orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); |
| | | orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty())); |
| | | orderDetlPakout.setQty(0.0); |
| | | orderDetlPakout.setMatnr(mat.getMatnr()); |
| | | orderDetlPakout.setMaktx(mat.getMaktx()); |
| | | orderDetlPakout.setSpecs(mat.getSpecs()); |
| | | orderDetlPakout.setModel(mat.getModel()); |
| | | orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode()); |
| | | orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid()); //保存配盘号,非托盘号 |
| | | orderDetlPakout.setCreateBy(defaultUserId); |
| | | orderDetlPakout.setCreateTime(now); |
| | | orderDetlPakout.setUpdateBy(defaultUserId); |
| | | orderDetlPakout.setUpdateTime(now); |
| | | orderDetlPakout.setStatus(1); |
| | | orderDetlPakout.setPakinPakoutStatus(2); |
| | | if (!orderDetlPakoutService.insert(orderDetlPakout)) { |
| | | log.error("MES保存出库订单(叫料)明细档失败"); |
| | | throw new CoolException("保存出库订单(叫料)明细档失败"); |
| | | // 生成订单 |
| | | Date now = new Date(); |
| | | OrderPakout orderPakout = new OrderPakout(); |
| | | orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | orderPakout.setOrderNo(mesCallOutApply.getOrderNo()); |
| | | orderPakout.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | orderPakout.setDocType(docType.getDocId()); |
| | | orderPakout.setSettle(settle); |
| | | orderPakout.setStatus(1); |
| | | orderPakout.setCreateBy(defaultUserId); |
| | | orderPakout.setCreateTime(now); |
| | | orderPakout.setUpdateBy(defaultUserId); |
| | | orderPakout.setUpdateTime(now); |
| | | orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply)); |
| | | orderPakout.setPakinPakoutStatus(2); |
| | | orderPakout.setCstmrName(mesCallOutApply.getStationId());//agv目标站点 |
| | | if (!orderPakoutService.insert(orderPakout)) { |
| | | log.error("MES保存出库订单(叫料)主档失败"); |
| | | throw new CoolException("保存出库订单(叫料)主档失败"); |
| | | } |
| | | Set<String> set = new HashSet<>(); |
| | | // 生成明细 |
| | | if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) { |
| | | for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) { |
| | | |
| | | set.add(mesOutApplyItem.getTrayid()); |
| | | Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno()); |
| | | OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); |
| | | orderDetlPakout.setOrderId(orderPakout.getId()); |
| | | orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); |
| | | orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty())); |
| | | orderDetlPakout.setQty(0.0); |
| | | orderDetlPakout.setMatnr(mat.getMatnr()); |
| | | orderDetlPakout.setMaktx(mat.getMaktx()); |
| | | orderDetlPakout.setSpecs(mat.getSpecs()); |
| | | orderDetlPakout.setModel(mat.getModel()); |
| | | orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode()); |
| | | orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid()); //保存配盘号,非托盘号 |
| | | orderDetlPakout.setCreateBy(defaultUserId); |
| | | orderDetlPakout.setCreateTime(now); |
| | | orderDetlPakout.setUpdateBy(defaultUserId); |
| | | orderDetlPakout.setUpdateTime(now); |
| | | orderDetlPakout.setStatus(1); |
| | | orderDetlPakout.setPakinPakoutStatus(2); |
| | | if (!orderDetlPakoutService.insert(orderDetlPakout)) { |
| | | log.error("MES保存出库订单(叫料)明细档失败"); |
| | | throw new CoolException("保存出库订单(叫料)明细档失败"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //有多少种不同的配盘号 只有配盘出库单需要知道 |
| | | if (mesCallOutApply.getTransType().equals("配盘出库单")) { |
| | | orderPakout.setPayType(set.size()); |
| | | String shipCode = mesCallOutApply.getItemdata().get(0).getTrayid().split("-")[2]; |
| | | orderPakout.setShipCode(shipCode);//区域 是否是特殊托盘 |
| | | orderPakoutService.updateById(orderPakout); |
| | | } |
| | | |
| | | return 1; |
| | | } else { |
| | | // 校验订单是否重复 |
| | | OrderPakin order = orderPakinService.selectByNo(mesCallOutApply.getOrderNo()); |
| | | // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 |
| | | if (!Cools.isEmpty(order)) { |
| | | if (order.getSettle() > 1L) { |
| | | throw new CoolException(mesCallOutApply.getOrderNo() + "正在出库,无法修改单据"); |
| | | } |
| | | orderPakinService.remove(order.getId()); |
| | | } |
| | | |
| | | // 生成订单 |
| | | Date now = new Date(); |
| | | OrderPakin orderPakin = new OrderPakin(); |
| | | orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | orderPakin.setOrderNo(mesCallOutApply.getOrderNo()); |
| | | orderPakin.setOrderTime(com.core.common.DateUtils.convert(now)); |
| | | orderPakin.setDocType(docType.getDocId()); |
| | | orderPakin.setSettle(1L); |
| | | orderPakin.setStatus(1); |
| | | orderPakin.setCreateBy(defaultUserId); |
| | | orderPakin.setCreateTime(now); |
| | | orderPakin.setUpdateBy(defaultUserId); |
| | | orderPakin.setUpdateTime(now); |
| | | orderPakin.setMemo(JSONObject.toJSONString(mesCallOutApply)); //为出库完成反馈保存 |
| | | orderPakin.setPakinPakoutStatus(1); |
| | | orderPakinService.insert(orderPakin); |
| | | if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) { |
| | | for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) { |
| | | // 生成明细 |
| | | Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno()); |
| | | if (Cools.isEmpty(mat)) { |
| | | log.error("该物料编号立库没有=" + mesOutApplyItem.getItemno()); |
| | | continue; |
| | | } |
| | | OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); |
| | | orderDetlPakin.setOrderId(orderPakin.getId()); |
| | | orderDetlPakin.setOrderNo(orderPakin.getOrderNo()); |
| | | orderDetlPakin.setAnfme(Double.valueOf(mesOutApplyItem.getQty())); |
| | | orderDetlPakin.setQty(0.0); |
| | | orderDetlPakin.setMatnr(mat.getMatnr()); |
| | | orderDetlPakin.setMaktx(mat.getMaktx()); |
| | | orderDetlPakin.setSpecs(mat.getSpecs()); |
| | | orderDetlPakin.setModel(mat.getModel()); |
| | | orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode()); |
| | | orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid()); //保存配盘号,非托盘号 |
| | | orderDetlPakin.setStandby2("0"); //保存齐套性检查标识,1 检查;0 不检查; |
| | | orderDetlPakin.setCreateBy(defaultUserId); |
| | | orderDetlPakin.setCreateTime(now); |
| | | orderDetlPakin.setUpdateBy(defaultUserId); |
| | | orderDetlPakin.setUpdateTime(now); |
| | | orderDetlPakin.setStatus(1); |
| | | orderDetlPakin.setPakinPakoutStatus(1); |
| | | orderDetlPakinService.insert(orderDetlPakin); |
| | | } |
| | | |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | // endregion |
| | |
| | | return result; |
| | | } |
| | | |
| | | // 下发给RCS |
| | | RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit(); |
| | | rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno()); |
| | | rcsTaskSubmit.setInitPriority(10); //默认10 |
| | | List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>(); |
| | | RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute(); |
| | | startRoute.setSeq(0); |
| | | startRoute.setCode(transTask.getCurStationId()); |
| | | startRoute.setOperation("COLLECT"); |
| | | targetRouteList.add(startRoute); |
| | | RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute(); |
| | | endRoute.setSeq(1); |
| | | endRoute.setCode(transTask.getNextStationId()); |
| | | endRoute.setOperation("DELIVERY"); |
| | | targetRouteList.add(endRoute); |
| | | rcsTaskSubmit.setTargetRoute(targetRouteList); |
| | | int workNo = commonService.getWorkNo(WorkNoType.OTHER.type); |
| | | Date now = new Date(); |
| | | Task task = new Task(); |
| | | task.setWrkNo(workNo); |
| | | task.setTaskType("ZX-AGV"); |
| | | task.setWrkSts(301L);//301.AGV任务创建 |
| | | task.setIoType(3);//3.站到站 |
| | | task.setIoPri(10.00); |
| | | task.setWrkDate(now); |
| | | task.setBarcode(transTask.getBarcode()); |
| | | task.setSourceStaNo(transTask.getCurStationId()); |
| | | task.setStaNo(transTask.getNextStationId()); |
| | | task.setBarcode(transTask.getTuoPanId()); |
| | | task.setModiUser(defaultUserId); |
| | | task.setModiTime(now); |
| | | task.setAppeUser(defaultUserId); |
| | | task.setAppeTime(now); |
| | | task.setTaskNo(transTask.getTaskno()); |
| | | task.setMemo(JSONObject.toJSONString(transTask)); |
| | | task.setPltType(transTask.getAgvFactory());//华晓AGV |
| | | task.setPacked(transTask.getRackNumber());//料架号 |
| | | task.setCtnType(1); |
| | | |
| | | // 转发给海康或华晓RCS |
| | | // int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory()); |
| | | int success = 1; |
| | | if (success == 1) { |
| | | int workNo = commonService.getWorkNo(WorkNoType.OTHER.type); |
| | | Date now = new Date(); |
| | | Task task = new Task(); |
| | | task.setWrkNo(workNo); |
| | | task.setTaskType("AGV"); |
| | | task.setWrkSts(301L); |
| | | task.setIoType(3); |
| | | task.setIoPri(10.00); |
| | | task.setWrkDate(now); |
| | | task.setSourceStaNo(transTask.getCurStationId()); |
| | | task.setStaNo(transTask.getNextStationId()); |
| | | task.setBarcode(transTask.getTuoPanId()); |
| | | task.setModiUser(defaultUserId); |
| | | task.setModiTime(now); |
| | | task.setAppeUser(defaultUserId); |
| | | task.setAppeTime(now); |
| | | task.setTaskNo(transTask.getTaskno()); |
| | | task.setMemo(JSONObject.toJSONString(transTask)); |
| | | if (taskService.insert(task)) { |
| | | result.put("Success", "1"); |
| | | result.put("Message", "任务接收成功"); |
| | | |
| | | taskService.insert(task); |
| | | Mat mat = matService.selectByMatnr(transTask.getItemno()); |
| | | TaskDetl taskDetl = new TaskDetl(); |
| | | taskDetl.setWrkNo(task.getWrkNo()); |
| | | taskDetl.setIoTime(task.getIoTime()); |
| | | taskDetl.setMatnr(transTask.getItemno()); |
| | | taskDetl.setAnfme(0.0); |
| | | taskDetl.setStandby1(String.valueOf(transTask.getQty())); |
| | | taskDetl.setMaktx(mat.getMaktx()); |
| | | taskDetl.setSpecs(mat.getSpecs()); |
| | | taskDetl.setOrderNo(transTask.getOrderNo()); |
| | | taskDetl.setZpallet(transTask.getTuoPanId()); |
| | | taskDetl.setMemo(JSONObject.toJSONString(transTask.getItemBarcode())); |
| | | taskDetl.setModiUser(defaultUserId); |
| | | taskDetl.setModiTime(now); |
| | | taskDetl.setAppeUser(defaultUserId); |
| | | taskDetl.setAppeTime(now); |
| | | taskDetlService.insert(taskDetl); |
| | | result.put("Success", "1"); |
| | | result.put("Message", "任务接收成功"); |
| | | } else { |
| | | }else { |
| | | result.put("Success", "2"); |
| | | result.put("Message", "任务下发给RCS失败"); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | |
| | | |
| | | String url = MES_URL + "api/task/reporter"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(transTaskFeedback)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | |
| | | String url = MES_URL + "api/apply/inLine"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | JSONObject jsonObject = JSONObject.parseObject(response); |
| | | if("1".equals(jsonObject.getString("Success"))) { |
| | | if ("1".equals(jsonObject.getString("Success"))) { |
| | | return jsonObject.getJSONObject("Data").getString("status"); |
| | | } |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | public int applyInStation(TransParent apply) { |
| | | String path = ("LL").equals(apply.getProductLineId()) ? "AGVTransportPalletNotice" : "AprsAGVTransportPalletNotice"; |
| | | String path = "AGVTransportPalletNotice"; |
| | | String url = MES_URL + path; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | public MesReturn allowInStation(TransInOutStationAllow allow) { |
| | | |
| | | MesReturn mesReturn = new MesReturn(); |
| | | mesReturn.setSuccess("1"); |
| | | mesReturn.setSuccess("2"); |
| | | |
| | | if ("Y".equals(allow.getStatus())) { |
| | | RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); |
| | | rcsTaskContinue.setRobotTaskCode(allow.getTaskno()); |
| | | rcsTaskContinue.setTriggerType("TASK"); |
| | | rcsTaskContinue.setTriggerCode(allow.getTaskno()); |
| | | Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno())); |
| | | if (Cools.isEmpty(task)) { |
| | | mesReturn.setMessage("没有找个该任务编号=" + allow.getTaskno() + "的AGV移动任务"); |
| | | } else { |
| | | //查看申请站点的是海康还是华晓 |
| | | //海康 |
| | | if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) { |
| | | RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); |
| | | rcsTaskContinue.setRobotTaskCode(allow.getTaskno()); |
| | | rcsTaskContinue.setTriggerType("TASK"); |
| | | rcsTaskContinue.setTriggerCode(allow.getTaskno()); |
| | | // rcsTaskContinue.setTriggerType("ROBOT"); |
| | | // rcsTaskContinue.setTriggerCode(allow.getAgvCode()); |
| | | |
| | | int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode())); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | int success = rcsService.continueTask(rcsTaskContinue, 1); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | } else { |
| | | allow.setMethod("APPLY_IN_STATION"); |
| | | int success = rcsService.continueTask(allow, 2); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | return mesReturn; |
| | |
| | | |
| | | String url = MES_URL + "AGVArrivalCompleted"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(arrivalStation)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | */ |
| | | public int applyOutStation(TransParent apply) { |
| | | |
| | | String url = MES_URL + "api/apply/outStation"; |
| | | String url = MES_URL + "AGVDepartureRequest"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | public MesReturn allowOutStation(TransInOutStationAllow allow) { |
| | | |
| | | MesReturn mesReturn = new MesReturn(); |
| | | mesReturn.setSuccess("1"); |
| | | mesReturn.setSuccess("2"); |
| | | |
| | | if ("Y".equals(allow.getStatus())) { |
| | | RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); |
| | | rcsTaskContinue.setRobotTaskCode(allow.getTaskno()); |
| | | rcsTaskContinue.setTriggerType("TASK"); |
| | | rcsTaskContinue.setTriggerCode(allow.getTaskno()); |
| | | Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno())); |
| | | if (Cools.isEmpty(task)) { |
| | | mesReturn.setMessage("没有找个该任务编号=" + allow.getTaskno() + "的AGV移动任务"); |
| | | } else { |
| | | //查看申请站点的是海康还是华晓 |
| | | //海康 |
| | | if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) { |
| | | RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); |
| | | rcsTaskContinue.setRobotTaskCode(allow.getTaskno()); |
| | | rcsTaskContinue.setTriggerType("TASK"); |
| | | rcsTaskContinue.setTriggerCode(allow.getTaskno()); |
| | | // rcsTaskContinue.setTriggerType("ROBOT"); |
| | | // rcsTaskContinue.setTriggerCode(allow.getAgvCode()); |
| | | |
| | | int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode())); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | int success = rcsService.continueTask(rcsTaskContinue, 1); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | } else { |
| | | allow.setMethod("APPLY_OFF_STATION"); |
| | | int success = rcsService.continueTask(allow, 2); |
| | | mesReturn.setSuccess(success == 1 ? "1" : "2"); |
| | | mesReturn.setMessage(success == 1 ? "" : "转发给RCS失败"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | return mesReturn; |
| | |
| | | |
| | | String url = MES_URL + "AGVDepartureCompleted"; |
| | | String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply)); |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")){ |
| | | if (!StringUtils.isEmpty(response) && response.contains("Success")) { |
| | | MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class); |
| | | if("1".equals(mesReturn.getSuccess())) { |
| | | if ("1".equals(mesReturn.getSuccess())) { |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public MesReturn queryInventory(String itemno,String orderNo) { |
| | | public MesReturn queryInventory(String itemno, String orderNo) { |
| | | MesReturn mesReturn = new MesReturn(); |
| | | mesReturn.setSuccess("1"); |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no",orderNo)); |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no", orderNo)); |
| | | |
| | | int count = 0; |
| | | for(LocDetl locDetl:locDetls) { |
| | | for (LocDetl locDetl : locDetls) { |
| | | count += locDetl.getAnfme(); |
| | | } |
| | | mesReturn.setMessage(String.valueOf(count)); |