skyouc
6 天以前 e046dba174365eb8934ee1e4206f09821145e876
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java
@@ -4,36 +4,37 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.WcsApiService;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
import com.zy.asrs.wms.asrs.mapper.*;
import com.zy.asrs.wms.asrs.service.OrderDetlService;
import com.zy.asrs.wms.asrs.service.WaveSeedService;
import com.zy.asrs.wms.asrs.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
@Service("waveSeedService")
public class WaveSeedServiceImpl extends ServiceImpl<WaveSeedMapper, WaveSeed> implements WaveSeedService {
    @Autowired
    private OrderMapper orderMapper;
    private OrderService orderMapper;
    @Autowired
    private OrderDetlMapper orderDetlMapper;
    @Autowired
    private TaskDetlMapper taskDetlMapper;
    private TaskDetlService taskDetlMapper;
    @Autowired
    private TaskService taskService;
    @Autowired
    private CacheSiteMapper cacheSiteMapper;
    @Autowired
    private WcsApiService wcsApiService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -59,7 +60,8 @@
            throw new CoolException("播种数据不存在");
        }
        List<CacheSite> sites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderNo, waveSeed.getOrderNo()));
        List<CacheSite> sites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>()
                .eq(CacheSite::getOrderNo, waveSeed.getOrderNo()));
        if (sites.isEmpty()) {
            throw new CoolException("当前订单未绑定播种库位,请使用PDA->地标绑定,功能绑定后再操作!!");
        }
@@ -68,9 +70,11 @@
        if (stock - param.getReviewNum() < 0) {
            throw new CoolException("播种数量已满");
        }
        waveSeed.setWorkQty(waveSeed.getWorkQty() + param.getReviewNum());
        //设置状态为执行中
        waveSeed.setWorkQty(waveSeed.getWorkQty() + param.getReviewNum())
                .setExceStatus(1);
        TaskDetl taskDetl = taskDetlMapper.selectOne(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getId, waveSeed.getTaskDetlId()));
        TaskDetl taskDetl = taskDetlMapper.getOne(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getId, waveSeed.getTaskDetlId()));
        if (Objects.isNull(taskDetl)) {
            throw new CoolException("当前播种任务明细不存在!!");
        }
@@ -103,15 +107,18 @@
            return ord.getPickStatus() != OrderPickStatus.ORDER_PICK_STATUS_DONE.val;
        }).collect(Collectors.toList());
        int update;
        if (detlList.isEmpty()) {
             update = orderMapper.update(new LambdaUpdateWrapper<Order>().eq(Order::getOrderNo, orderDetl.getOrderNo()).set(Order::getPickStatus, OrderPickStatus.ORDER_PICK_STATUS_DONE.val));
             if (!orderMapper.update(new LambdaUpdateWrapper<Order>()
                     .eq(Order::getOrderNo, orderDetl.getOrderNo())
                     .set(Order::getPickStatus, OrderPickStatus.ORDER_PICK_STATUS_DONE.val))) {
                 throw new CoolException("原始订单主单拣货状态更新失败!!");
             }
        } else {
            update = orderMapper.update(new LambdaUpdateWrapper<Order>().eq(Order::getOrderNo, orderDetl.getOrderNo()).set(Order::getPickStatus, OrderPickStatus.ORDER_PICK_STATUS_SECTION.val));
        }
        if (update < 1) {
            throw new CoolException("原始订单主单拣货状态更新失败!!");
            if (!orderMapper.update(new LambdaUpdateWrapper<Order>()
                    .eq(Order::getOrderNo, orderDetl.getOrderNo())
                    .set(Order::getPickStatus, OrderPickStatus.ORDER_PICK_STATUS_SECTION.val))) {
                throw new CoolException("原始订单主单拣货状态更新失败");
            }
        }
        waveSeed.setUpdateTime(new Date());
@@ -130,4 +137,9 @@
    public int removeSowById(Long id) {
        return this.baseMapper.update(new LambdaUpdateWrapper<WaveSeed>().eq(WaveSeed::getId, id).set(WaveSeed::getDeleted, 1).set(WaveSeed::getStatus, 0));
    }
    @Override
    public List<ShippingOrderDetlDto> selectShippingOrderDtel(String orderNo) {
        return this.baseMapper.selectShippingOrderDtel(orderNo);
    }
}