skyouc
2024-12-31 07cdd2d370db314d237acb828c76283f1d1f4afd
no message
13个文件已修改
140 ■■■■■ 已修改文件
zy-asrs-admin/src/components/order/order/orderIn.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/out/cacheSite/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/out/waveSeed/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/components/order/order/orderIn.vue
@@ -229,7 +229,6 @@
};
const onSearch = () => {
  // console.log('search');
  getPage()
}
zy-asrs-admin/src/views/out/cacheSite/index.vue
@@ -68,7 +68,7 @@
  {
    title: formatMessage('db.man_cache_site.order_no', '订单编号'),
    dataIndex: 'orderNo',
    width: 140,
    width: 180,
    ellipsis: true,
    ...getColumnSearchProps('orderNo'),
  },
zy-asrs-admin/src/views/out/waveSeed/index.vue
@@ -53,21 +53,21 @@
  {
    title: formatMessage('db.man_wave_seed.site_no', '站点编号'),
    dataIndex: 'siteNo',
    width: 140,
    width: 110,
    ellipsis: true,
    ...getColumnSearchProps('siteNo'),
  },
  {
    title: formatMessage('db.man_wave_seed.orderNo', '订单编号'),
    dataIndex: ['orderDetl$', 'orderNo'],
    width: 140,
    width: 220,
    ellipsis: true,
    ...getColumnSearchProps('orderNo'),
  },
  {
    title: formatMessage('db.man_wave_seed.matnr', '商品编号'),
    dataIndex: ['orderDetl$', 'mat$', 'matnr'],
    width: 140,
    width: 220,
    ellipsis: true,
    ...getColumnSearchProps('matnr'),
  },
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java
@@ -23,6 +23,12 @@
      return  waveManagentService.getSowSeeds();
    }
    @GetMapping("/sow/tasks")
    public R getTasks() {
        return waveManagentService.getTask();
    }
    /**
     * 审核播种状态任务
     * @param reviewParam
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java
@@ -187,7 +187,7 @@
                        //流动通知下发完成后,修改任务状态为输送线流动中。。
                        taskService.update(new LambdaUpdateWrapper<Task>()
                                .eq(Task::getId, task.getId())
                                .set(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
                                .set(Task::getTaskSts, TaskStsType.COMPLETE_IN.id));
//                        log.info(task.getTaskNo() + "下发流动通知" + commonReponse.getMsg());
//                    } else {
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
@@ -1,12 +1,15 @@
package com.zy.asrs.wms.apis.wcs.services.Impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.apis.wcs.entity.response.SowSeeds;
import com.zy.asrs.wms.apis.wcs.services.WaveManagentService;
import com.zy.asrs.wms.asrs.entity.Task;
import com.zy.asrs.wms.asrs.entity.WaveSeed;
import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
import com.zy.asrs.wms.asrs.service.TaskService;
import com.zy.asrs.wms.asrs.service.WaveSeedService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +20,9 @@
public class WaveManagentServiceImpl implements WaveManagentService {
    @Autowired
    private WaveSeedService waveSeedService;
    @Autowired
    private TaskService taskService;
    @Override
    public R getSowSeeds() {
@@ -38,4 +44,10 @@
        return waveSeedService.removeSowById(id);
    }
    @Override
    public R getTask() {
        List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().ge(Task::getTaskType, 101));
        return R.ok(list);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -136,8 +136,9 @@
                                throw new CoolException(errMsg);
                            }
                        } else if (callbackParam.getEventType().equals(EssTaskStatus.TASK_EVENT_STATUS.event)) { //上报完成状态
                            if (task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT_TOTE_UNLOAD.id) {
                                taskStsType = TaskStsType.WCS_EXECUTE_OUT_TASK_DONE;
                            if (task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT_TOTE_UNLOAD.id || task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT_TASK_DONE.id) {
                                //出库任务完成,修改状态为播种中,定时任务生成播种波次
                                taskStsType = TaskStsType.WAVE_SEED;
                            } else {
                                String errMsg = "任务编号:" + task.getTaskNo() +  "状态为不匹配,"  + "不能执行:" + TaskStsType.WCS_EXECUTE_OUT_TASK_DONE.desc + "任务";
                                log.error(errMsg);
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java
@@ -13,4 +13,5 @@
    int removeSowSeed(Long id);
    R getTask();
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetl.java
@@ -13,6 +13,7 @@
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.entity.User;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -163,6 +164,12 @@
    @ApiModelProperty(value= "波次ID")
    private Long waveId;
    /**
     * 波次号
     */
    @ApiModelProperty(value = "波次号")
    private String waveNo;
    public TaskDetl() {}
    public TaskDetl(Long taskId,String taskNo,Double anfme,String batch,String barcode,Long orderId,String orderNo,Long detlId,Long matId,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java
@@ -9,6 +9,7 @@
import com.zy.asrs.wms.asrs.service.TaskDetlService;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.entity.User;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -30,6 +31,7 @@
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("man_wave_seed")
public class WaveSeed implements Serializable {
@@ -49,6 +51,18 @@
    private Long siteId;
    /**
     * 波次ID
     */
    @ApiModelProperty(value = "波次ID")
    private Long waveId;
    /**
     * 波次号
     */
    @ApiModelProperty(value = "波次编号")
    private String waveNo;
    /**
     * 站点编号
     */
    @ApiModelProperty(value= "站点编号")
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -793,13 +793,21 @@
            throw new CoolException("未生成波次");
        }
        Wave wave = waveService.getById(dto.getWaveId());
        if (Objects.isNull(wave)) {
            throw new CoolException("波次不存在");
        }
        List<OrderOutMergeParam> params = dto.getList();
        if (params.isEmpty()) {
            throw new CoolException("参数不能为空");
        }
        Long waveId = dto.getWaveId();
//        Long waveId = dto.getWaveId();
//        String waveNo = dto.getw
        List<Long> filterParamsList = new ArrayList<>();
        List<OrderOutMergeParam> filterParams = new ArrayList<>();
@@ -814,7 +822,7 @@
        HashMap<String, Double> stockMap = new HashMap<>();
        for (OrderOutMergeParam param : filterParams) {
            String matUniqueKey = Utils.getMatUniqueKey(param.getMatnr(), param.getBatch(), param.getFieldParams());
            WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
            WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, wave.getId()));
            if(waveDetl == null){
                throw new CoolException("波次数据不存在");
            }
@@ -912,7 +920,8 @@
                taskDetl.setTaskNo(task.getTaskNo());
                taskDetl.setAnfme(merge.getAnfme());
                taskDetl.setStock(locDetl.getAnfme());
                taskDetl.setWaveId(waveId);
                taskDetl.setWaveId(wave.getId());
                taskDetl.setWaveNo(wave.getWaveNo());
                taskDetl.setOrderId(null);
                taskDetl.setOrderNo(null);
                if (!taskDetlService.save(taskDetl)) {
@@ -935,7 +944,7 @@
                //TODO 确认后,需将注释打开
                String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
//                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId), false);
                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()), false);
                if (waveDetl == null) {
                    throw new CoolException("波次数据不存在");
                }
@@ -946,12 +955,12 @@
                }
            }
//            //库存更新逻辑
            List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds();
            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds));
            orderDetls.forEach(orderDetl -> {
                orderUtils.updateWorkQty(orderDetl.getId(), orderDetl.getAnfme());
            });
            //出库库存更新逻辑
//            List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds();
//            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds));
//            orderDetls.forEach(orderDetl -> {
//                orderUtils.updateWorkQty(orderDetl.getId(), orderDetl.getAnfme());
//            });
            //库位F => R
            loc.setLocStsId(LocStsType.R.val());
@@ -962,10 +971,10 @@
            }
        }
        Wave wave = waveService.getById(waveId);
        if (wave == null) {
            throw new CoolException("波次不存在");
        }
//        Wave wave = waveService.getById(dto.getWaveId());
//        if (wave == null) {
//            throw new CoolException("波次不存在");
//        }
        wave.setWaveStatus(WaveStatusType.GENERATE.id);
        wave.setUpdateTime(new Date());
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -135,17 +135,17 @@
                    throw new CoolException("库存更新失败");
                } else {
                    //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());
                        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
                        List<Long> orderIds = orders.stream().map(Order::getId).collect(Collectors.toList());
                        cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
                                .in(CacheSite::getOrderId, orderIds)
                                .set(CacheSite::getSiteStatus, 0)
                                .set(CacheSite::getOrderId, null)
                                .set(CacheSite::getOrderNo, null));
                    }
//                    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());
//                        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
//                        List<Long> orderIds = orders.stream().map(Order::getId).collect(Collectors.toList());
//                        cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
//                                .in(CacheSite::getOrderId, orderIds)
//                                .set(CacheSite::getSiteStatus, 0)
//                                .set(CacheSite::getOrderId, null)
//                                .set(CacheSite::getOrderNo, null));
//                    }
                }
            }
        } catch (Exception e) {
@@ -159,9 +159,7 @@
    //入库
    private void executeTask1(Task task) {
        Long hostId = task.getHostId();
        //fixme 暂时关闭HOSTID
        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) {
            throw new CoolException("库位不存在");
        }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -96,17 +96,17 @@
                        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);
                            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) {
@@ -119,6 +119,7 @@
                            waveSeed.setOrderNo(orderDetl.getOrderNo());
                            waveSeed.setOrderId(orderDetl.getOrderId());
                            waveSeed.setOrderDetlId(orderDetl.getId());
                            waveSeed.setWaveId(taskDetl.getWaveId()).setWaveNo(taskDetl.getWaveNo());
                            waveSeed.setTaskDetlId(taskDetl.getId());
                            waveSeed.setAnfme(taskDetl.getAnfme());
                            waveSeed.setWorkQty(0D);