skyouc
2025-06-22 ebe2da6e4eefd59b366ebab3a651b32763b580ed
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
@@ -7,27 +7,26 @@
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.CacheSite;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.entity.OrderDetl;
import com.zy.asrs.wms.asrs.entity.Task;
import com.zy.asrs.wms.apis.wcs.utils.HttpEssUtils;
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.CacheSiteMapper;
import com.zy.asrs.wms.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.wms.asrs.mapper.OrderMapper;
import com.zy.asrs.wms.asrs.mapper.TaskMapper;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static com.zy.asrs.wms.utils.HttpUtils.getClientIpAddress;
@Slf4j
@Service
public class WaveManagentServiceImpl implements WaveManagentService {
    @Autowired
@@ -37,6 +36,9 @@
    private TaskService taskService;
    @Autowired
    private TaskMapper taskMapper;
    @Autowired
    private TaskTypeMapper taskTypeMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
@@ -66,9 +68,22 @@
    }
    @Override
    public R getTask() {
         List<LargeScreenTaskDto> taskDtos =  taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
        return R.ok(taskDtos);
    public R getTask(HttpServletRequest request) {
        log.info("ip地址====>: {}",  getClientIpAddress(request));
        String locIp =  getClientIpAddress(request);
        List<LargeScreenTaskDto> taskDtos;
        if (locIp.equals(HttpEssUtils.S2_SITE_NO)) {
            taskDtos =  taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>()
                    .eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id)
                            .eq(Task::getTargetSite, "S2")
                    .orderByAsc(Task::getUpdateTime).last("limit 1"));
        } else {
            taskDtos =  taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>()
                    .eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id)
                    .eq(Task::getTargetSite, "S1")
                    .orderByAsc(Task::getUpdateTime).last("limit 1"));
        }
         return R.ok(taskDtos);
    }
    @Override
@@ -104,17 +119,9 @@
        }
        orders.forEach(order -> {
            List<OrderDetl> detls = orderDetlMapper.selectList(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
            if (detls.isEmpty()) {
                throw new CoolException("订单:" + order.getOrderNo() + " 没有明细,请联系管理员!!");
            }
            List<OrderDetl> orderDetls = detls.stream().filter(orderDetl -> {
                return orderDetl.getAnfme() == (orderDetl.getWorkQty() + orderDetl.getQty());
            }).collect(Collectors.toList());
            if (!orderDetls.isEmpty() && orderDetls.size() == detls.size()) {
            if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val) {
                order.setOrderStatus("已完成");//已完成
            } else if (orderDetls.size() < detls.size() && orderDetls.size() != 0) {//部分完成
            } else if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_SECTION.val) {//部分完成
                order.setOrderStatus("部分完成");
            } else {//未完成
                order.setOrderStatus("未完成");
@@ -129,8 +136,15 @@
     * @return
     */
    @Override
    public R AllSeedLocs() {
        List<CacheSite> cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>());
    public R AllSeedLocs(HttpServletRequest request) {
        log.info("ip地址====>: {}",  getClientIpAddress(request));
        String locIp =  getClientIpAddress(request);
        List<CacheSite> cacheSites;
        if (locIp.equals(HttpEssUtils.S2_SITE_NO)) {
            cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getChannel, "S2"));
        } else {
            cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getChannel, "S1"));
        }
        if (cacheSites.isEmpty()) {
            return R.error("当前播种墙信息未设置!!");
        }