pjb
2025-03-08 83b51a5a0774ea8ecb9a06304af3b956a21307c8
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
@@ -1,21 +1,28 @@
package com.zy.asrs.wms.apis.wcs.services.Impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mysql.cj.util.StringUtils;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.apis.wcs.entity.domain.WaveTaskDetl;
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.*;
import com.zy.asrs.wms.asrs.entity.dto.LargeScreenTaskDto;
import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
import com.zy.asrs.wms.asrs.mapper.*;
import com.zy.asrs.wms.asrs.service.TaskService;
import com.zy.asrs.wms.asrs.service.WaveSeedService;
import org.aspectj.weaver.ast.Or;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class WaveManagentServiceImpl implements WaveManagentService {
@@ -24,6 +31,17 @@
    @Autowired
    private TaskService taskService;
    @Autowired
    private TaskMapper taskMapper;
    @Autowired
    private TaskTypeMapper taskTypeMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private OrderDetlMapper orderDetlMapper;
    @Autowired
    private CacheSiteMapper cacheSiteMapper;
    @Override
    public R getSowSeeds() {
@@ -48,13 +66,14 @@
    @Override
    public R getTask() {
        List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
        return R.ok(list);
         List<LargeScreenTaskDto> taskDtos =  taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id).orderByAsc(Task::getUpdateTime).last("limit 1"));
         return R.ok(taskDtos);
    }
    @Override
    public R getTaskDetl(String taskNo) {
        List<WaveTaskDetl> taskDetls = taskService.getTaskDetlByTaskNo(taskNo);
        List<WaveTaskDetl> taskDetls = taskMapper.getTaskDetlByTaskNo(taskNo);
        return R.ok(taskDetls);
    }
@@ -64,8 +83,49 @@
     * @return
     */
    @Override
    public R getTaskDetlQutify(Map<String, Object> taskNo) {
        List<WaveTaskDetl> taskDetls = taskService.getTaskDetlQutify(taskNo);
    public R getTaskDetlQutify(String taskNo) {
        List<WaveTaskDetl> taskDetls = taskMapper.getTaskDetlQutify(taskNo);
        return R.ok(taskDetls);
    }
    /**
     * 获取波次下所有订单
     * @param waveNo
     * @return
     */
    @Override
    public R getAllOrders(String waveNo) {
        if (StringUtils.isNullOrEmpty(waveNo)) {
            throw new CoolException("波次编码不能为空!!");
        }
        List<Order> orders = orderMapper.selectList(new LambdaQueryWrapper<Order>().eq(Order::getWaveNo, waveNo));
        if (orders.isEmpty()) {
            throw new CoolException("当前波次下没有订单!!");
        }
        orders.forEach(order -> {
            if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val) {
                order.setOrderStatus("已完成");//已完成
            } else if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_SECTION.val) {//部分完成
                order.setOrderStatus("部分完成");
            } else {//未完成
                order.setOrderStatus("未完成");
            }
        });
        return R.ok(orders);
    }
    /**
     * 获了当前播种墙库位信息
     * @return
     */
    @Override
    public R AllSeedLocs() {
        List<CacheSite> cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>());
        if (cacheSites.isEmpty()) {
            return R.error("当前播种墙信息未设置!!");
        }
        return R.ok(cacheSites);
    }
}