DESKTOP-LMJ82IJ\Eno
2024-12-26 52d0ba5ae5b6b1c3dfd544e81e7ed33a6e3b6003
#波次播种列表不显示问题修复
7个文件已修改
163 ■■■■ 已修改文件
zy-asrs-admin/src/components/order/order/orderIn.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/IndexView.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java 147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/components/order/order/orderIn.vue
@@ -50,14 +50,14 @@
  {
    title: formatMessage('db.man_order.order_no', '订单编号'),
    dataIndex: 'orderNo',
    width: 140,
    width: 200,
    ellipsis: true,
    ...getColumnSearchProps('orderNo'),
  },
  {
    title: formatMessage('db.man_order.order_time', '单据日期'),
    dataIndex: 'orderTime',
    width: 140,
    width: 160,
    ellipsis: true,
    ...getColumnSearchProps('orderTime'),
  },
zy-asrs-admin/src/views/IndexView.vue
@@ -228,9 +228,9 @@
<template>
  <a-flex gap="middle" horizontal>
      <div class="sider-style">
        <a-layout-sider class="main-sider" v-model:collapsed="collapsed" :trigger="null" collapsible theme="dark">
        <a-layout-sider class="main-sider" v-model:collapsed="collapsed" :trigger="null"  theme="dark">
        <div class="logo" />
        <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" @select="menuSelect" theme="dark"
        <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" @select="menuSelect"  theme="dark"
                mode="inline" >
          <div>
            <a-menu-item key="/" name="主页">
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -946,7 +946,7 @@
                }
            }
            //库存更新逻辑
//            //库存更新逻辑
            List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds();
            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds));
            orderDetls.forEach(orderDetl -> {
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java
@@ -113,7 +113,6 @@
            LocDetl locDetl = JSON.parseObject(JSON.toJSONString(map), LocDetl.class);
            locDetls.add(locDetl);
        }
        locDetls = parseLocDetl(locDetls);
        List<Long> sortDirctLoc = new ArrayList<>();
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -134,7 +134,7 @@
                if (!taskService.updateById(task)) {
                    throw new CoolException("库存更新失败");
                } else {
                    //CacheSite 释放已被占用的通道
                    //CacheSite 释放已被占用的通道 //fixme 播种功能完成后,需要将这里注释掉
                    List<TaskDetl> detls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()));
                    if (!Collections.isEmpty(detls)) {
                        List<Long> waveIds = detls.stream().map(TaskDetl::getWaveId).collect(Collectors.toList());
@@ -163,7 +163,6 @@
        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
//        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
        if (loc == null) {
            log.info("库位不存在" + "=======>" + task.getTargetLoc());
            throw new CoolException("库位不存在");
        }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -45,7 +45,7 @@
    @Autowired
    private DictService dictService;
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "0/15 * * * * ? ")
    @Transactional(rollbackFor = Exception.class)
    public void taskWave() {
        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
@@ -60,88 +60,93 @@
            }
            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
            for (Task task : taskList) {
                Long hostId = task.getHostId();
            if (taskList.isEmpty()) {
//                throw new CoolException("没有可播种任务!!");
            } else {
                for (Task task : taskList) {
                    Long hostId = task.getHostId();
                List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()).eq(TaskDetl::getHostId, hostId));
                if (taskDetls.isEmpty()) {
                    continue;
                }
                for (TaskDetl taskDetl : taskDetls) {
                    //分配订单
                    Long waveId = taskDetl.getWaveId();
                    List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
                    if (list.isEmpty()) {
                    List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()).eq(TaskDetl::getHostId, hostId));
                    if (taskDetls.isEmpty()) {
                        continue;
                    }
                    ArrayList<Long> orderIds = new ArrayList<>();
                    for (Order order : list) {
                        orderIds.add(order.getId());
                    }
                    String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
                    List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
                            .in(OrderDetl::getOrderId, orderIds)
                            .eq(OrderDetl::getStockIndex, matUniqueKey)
                            .eq(OrderDetl::getHostId, hostId));
                    if(orderDetls.isEmpty()){
                        throw new CoolException("订单明细不存在");
                    }
                    Double anfme = taskDetl.getAnfme();
                    for (OrderDetl orderDetl : orderDetls) {
                        double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
                        if (issued <= 0.0D) { continue; }
                        if (anfme <= 0.0D) { break; }
                        double workQty = issued;
                        if(anfme - issued < 0){
                            workQty = anfme;
                        }
                        anfme -= workQty;
                        orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
                        CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
                        if (cacheSite == null) {
                            throw new CoolException("缓存站空间不存在");
                    for (TaskDetl taskDetl : taskDetls) {
                        //分配订单
                        Long waveId = taskDetl.getWaveId();
                        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
                        if (list.isEmpty()) {
                            continue;
                        }
                        WaveSeed waveSeed = new WaveSeed();
                        waveSeed.setSiteId(cacheSite.getId());
                        waveSeed.setSiteNo(cacheSite.getSiteNo());
                        waveSeed.setOrderNo(orderDetl.getOrderNo());
                        waveSeed.setOrderId(orderDetl.getOrderId());
                        waveSeed.setOrderDetlId(orderDetl.getId());
                        waveSeed.setTaskDetlId(taskDetl.getId());
                        waveSeed.setAnfme(taskDetl.getAnfme());
                        waveSeed.setWorkQty(0D);
                        waveSeed.setMatnr(taskDetl.getMatnr());
                        waveSeed.setBatch(taskDetl.getBatch());
                        waveSeed.setFieldParams(JSON.toJSONString(taskDetl.getUniqueField()));
                        waveSeed.setHostId(hostId);
                        if (!waveSeedService.save(waveSeed)) {
                            throw new CoolException("波次播种创建失败");
                        ArrayList<Long> orderIds = new ArrayList<>();
                        for (Order order : list) {
                            orderIds.add(order.getId());
                        }
                        cacheSite.setOrderId(orderDetl.getOrderId());
                        cacheSite.setOrderNo(orderDetl.getOrderNo());
                        cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
                        cacheSite.setUpdateTime(new Date());
                        if (!cacheSiteService.updateById(cacheSite)) {
                            throw new CoolException("缓存站更新失败");
                        String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
                        List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
                                .in(OrderDetl::getOrderId, orderIds)
                                .eq(OrderDetl::getStockIndex, matUniqueKey)
                                .eq(OrderDetl::getHostId, hostId));
                        if(orderDetls.isEmpty()){
                            throw new CoolException("订单明细不存在");
                        }
                        Double anfme = taskDetl.getAnfme();
                        for (OrderDetl orderDetl : orderDetls) {
                            //fixme 作业中数量调整放至,生成出库任务成功后
//                            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
//                            if (issued <= 0.0D) { continue; }
//                            if (anfme <= 0.0D) { break; }
//
//                            double workQty = issued;
//                            if(anfme - issued < 0){
//                                workQty = anfme;
//                            }
//                            anfme -= workQty;
//
//                            orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
                            CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
                            if (cacheSite == null) {
                                throw new CoolException("缓存站空间不存在");
                            }
                            WaveSeed waveSeed = new WaveSeed();
                            waveSeed.setSiteId(cacheSite.getId());
                            waveSeed.setSiteNo(cacheSite.getSiteNo());
                            waveSeed.setOrderNo(orderDetl.getOrderNo());
                            waveSeed.setOrderId(orderDetl.getOrderId());
                            waveSeed.setOrderDetlId(orderDetl.getId());
                            waveSeed.setTaskDetlId(taskDetl.getId());
                            waveSeed.setAnfme(taskDetl.getAnfme());
                            waveSeed.setWorkQty(0D);
                            waveSeed.setMatnr(taskDetl.getMatnr());
                            waveSeed.setBatch(taskDetl.getBatch());
                            waveSeed.setFieldParams(JSON.toJSONString(taskDetl.getUniqueField()));
                            waveSeed.setHostId(hostId);
                            if (!waveSeedService.save(waveSeed)) {
                                throw new CoolException("波次播种创建失败");
                            }
                            cacheSite.setOrderId(orderDetl.getOrderId());
                            cacheSite.setOrderNo(orderDetl.getOrderNo());
                            cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
                            cacheSite.setUpdateTime(new Date());
                            if (!cacheSiteService.updateById(cacheSite)) {
                                throw new CoolException("缓存站更新失败");
                            }
                        }
                    }
                }
                task.setTaskSts(TaskStsType.COMPLETE_OUT.id);
                task.setUpdateTime(new Date());
                if (!taskService.updateById(task)) {
                    throw new CoolException("任务更新失败");
                    task.setTaskSts(TaskStsType.COMPLETE_OUT.id);
                    task.setUpdateTime(new Date());
                    if (!taskService.updateById(task)) {
                        throw new CoolException("任务更新失败");
                    }
                }
            }
        } catch (Exception e) {
zy-asrs-wms/src/main/resources/application.yml
@@ -37,7 +37,7 @@
  #  global-config:
  #    field-strategy: 0
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
    cache-enabled: true
  global-config: