| | |
| | | // 出库订单重新整理明细 |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if (null != docType && docType.getPakout() == 1) { |
| | | if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) { |
| | | throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败"); |
| | | } |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo); |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.sync(wrkDetl); |
| | | orderDetl.setQty(orderDetl.getAnfme()); |
| | | orderDetl.setOrderId(order.getId()); |
| | | orderDetl.setOrderNo(orderNo); |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setCreateTime(order.getCreateTime()); |
| | | orderDetl.setCreateBy(order.getCreateBy()); |
| | | orderDetl.setUpdateTime(order.getUpdateTime()); |
| | | orderDetl.setUpdateBy(order.getUpdateBy()); |
| | | if (!orderDetlService.insert(orderDetl)) { |
| | | throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败"); |
| | | } |
| | | } |
| | | // if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) { |
| | | // throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败"); |
| | | // } |
| | | // List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo); |
| | | // for (WrkDetl wrkDetl : wrkDetls) { |
| | | // OrderDetl orderDetl = new OrderDetl(); |
| | | // orderDetl.sync(wrkDetl); |
| | | // orderDetl.setQty(orderDetl.getAnfme()); |
| | | // orderDetl.setOrderId(order.getId()); |
| | | // orderDetl.setOrderNo(orderNo); |
| | | // orderDetl.setStatus(1); |
| | | // orderDetl.setCreateTime(order.getCreateTime()); |
| | | // orderDetl.setCreateBy(order.getCreateBy()); |
| | | // orderDetl.setUpdateTime(order.getUpdateTime()); |
| | | // orderDetl.setUpdateBy(order.getUpdateBy()); |
| | | // if (!orderDetlService.insert(orderDetl)) { |
| | | // throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败"); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | if (!this.updateSettle(order.getId(), 4L, null)) { |
| | |
| | | import com.zy.asrs.mapper.OrderMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.task.handler.GhjtHandler; |
| | | import com.zy.system.entity.Config; |
| | | import com.zy.system.mapper.ConfigMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | @Resource |
| | | private OrderMapper orderMapper; |
| | | |
| | | @Resource |
| | | private ConfigMapper configMapper; |
| | | |
| | | // 备货(根据出库单,把要出的货提前放到靠近出库口位置) |
| | | // @Scheduled(cron = "0/4 * * * * ? ") |
| | | public void stockUp() { |
| | | // 查询待出库订单 |
| | | List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("settle", 1)); |
| | | // ghjtHandler.stockUp(); |
| | | List<Order> orders = orderMapper.selectComplete(); |
| | | for (Order order : orders) { |
| | | try { |
| | | // ghjtHandler.OutBoundCompleteReport(order); |
| | | } catch (Exception e) { |
| | | log.error("出库订单完成则上报MES失败,异常信息:" + e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 下发出库任务给GWCS(从出库码头到出库口) |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | public void ckrwPushGwcs() { |
| | |
| | | } |
| | | } |
| | | |
| | | // 出库订单完成则上报MES |
| | | // @Scheduled(cron = "0/4 * * * * ? ") |
| | | public void OutBoundCompleteReport() { |
| | | // 查询出库订单状态为4.已完成 |
| | | List<Order> orders = orderMapper.selectComplete(); |
| | | for (Order order : orders) { |
| | | try { |
| | | ghjtHandler.OutBoundCompleteReport(order); |
| | | } catch (Exception e) { |
| | | log.error("出库订单完成则上报MES失败,异常信息:" + e); |
| | | } |
| | | // 空闲理货 |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | public void autoTallyGoods() { |
| | | // 系统配置界面启用 |
| | | Config config = configMapper.selectConfigByCode("auto_tally_goods"); |
| | | if (config == null || config.getStatus() == 0) { |
| | | return; |
| | | } |
| | | // 四个换盘点,两个组盘点 |
| | | // 先查任务目标站为 3045/3044和3041/3040的换盘组 如果有为空的组则可以出,有一个或两个都不能出 |
| | | // todo 需新增两个入库路径 3046/3042 |
| | | // 寻找两个能组盘的库位,库位状态为F,满足组盘条件 |
| | | // 出库怎么出,才能把组好的盘一次出出去 |
| | | // gwcs怎么保证两个都拆完了才请求组盘完成 |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.WrkDetl; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.OrderDetlMapper; |
| | | import com.zy.asrs.mapper.OrderMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.service.ApiLogService; |
| | |
| | | |
| | | @Resource |
| | | private WrkDetlService wrkDetlService; |
| | | |
| | | @Resource |
| | | private OrderDetlMapper orderDetlMapper; |
| | | |
| | | @Transactional |
| | | public void startCkrwPushGwcs(WrkMast wrkMast) { |
| | |
| | | return flag; |
| | | } |
| | | |
| | | @Transactional |
| | | public void OutBoundCompleteReport(Order order) { |
| | | |
| | | // 获取请求头 |
| | | Map<String, Object> headers = new HashMap<>(); |
| | | headers.put("Content-Type", "application/json;charset=UTF-8"); |
| | | |
| | | // 构造请求体 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("orderNo", order.getOrderNo()); |
| | | jsonObject.put("complete", 1); // 订单完成为1,其他... |
| | | String body = jsonObject.toJSONString(); |
| | | |
| | | boolean success = false; |
| | | String response = ""; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(MesConstant.URL) |
| | | .setPath(MesConstant.PAKIN_URL) |
| | | .setHeaders(headers) |
| | | .setJson(body) |
| | | .build() |
| | | .doPost(); |
| | | if (!Cools.isEmpty(response)) { |
| | | order.setSettle(6L); |
| | | orderMapper.updateById(order); |
| | | success = true; |
| | | } else { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.PAKIN_URL, body, response); |
| | | throw new CoolException("下发出库任务给GWCS(从出库码头到出库口)失败"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("出库订单完成上报MES异常,工作号:{},{}", order.getOrderNo(), e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "出库订单完成上报MES", |
| | | MesConstant.URL + MesConstant.PAKIN_URL, |
| | | null, |
| | | "127.0.0.1", |
| | | jsonObject.toJSONString(), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error("接口日志保存异常", e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls111) { |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (!Cools.isEmpty(wrkDetl.getOrderNo())) { |
| | | // 更新订单完成数量 |
| | | orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand()); |
| | | } |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | // OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | // if (orderDetl == null) { |
| | | // orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | // } |
| | | // try { |
| | | // if (!Cools.isEmpty(orderDetl)) { |
| | | // if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | // orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | //// exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | //// wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | // } |
| | | // } |
| | | // } catch (Exception ignore) { |
| | | // } |
| | | } |
| | | break; |
| | | default: |