Junjie
2024-09-13 a1a7c03eae40f4b0344fce652e1a240cf5283624
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -4,8 +4,9 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.dto.*;
import com.zy.asrs.wms.asrs.entity.dto.OrderOutMergeDto;
import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType;
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
import com.zy.asrs.wms.asrs.entity.param.*;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.service.*;
@@ -58,6 +59,10 @@
    private WaveService waveService;
    @Autowired
    private WaveDetlService waveDetlService;
    @Autowired
    private CacheSiteService cacheSiteService;
    @Autowired
    private WaveSeedService waveSeedService;
    /**
     * 出库
@@ -535,10 +540,12 @@
    }
    @Transactional
    public void orderOutMerge(List<OrderOutMergeParam> params) {
        if(params == null){
    public void orderOutMerge(OrderOutMergeParamDto dto) {
        if(dto == null){
            throw new CoolException("参数不能为空");
        }
        List<OrderOutMergeParam> params = dto.getList();
        if (params.isEmpty()) {
            throw new CoolException("参数不能为空");
@@ -645,6 +652,7 @@
            map.put(orderOutMergeDto.getLocId(), list);
        }
        List<TaskDetl> taskDetls = new ArrayList<>();
        for (Map.Entry<Long, List<OrderOutMergeDto>> entry : map.entrySet()) {
            Long locId = entry.getKey();
            List<OrderOutMergeDto> list = entry.getValue();
@@ -716,6 +724,8 @@
                        throw new CoolException("明细扩展生成失败");
                    }
                }
                taskDetls.add(taskDetl);
            }
            //库位F => R
@@ -728,6 +738,62 @@
        }
        if (dto.getWaveId() != null) {
            HashMap<Long, List<TaskDetl>> orderMap = new HashMap<>();
            for (TaskDetl taskDetl : taskDetls) {
                Long orderId = taskDetl.getOrderId();
                List<TaskDetl> list = orderMap.get(orderId);
                if (list == null) {
                    list = new ArrayList<>();
                }
                list.add(taskDetl);
                orderMap.put(orderId, list);
            }
            for (Map.Entry<Long, List<TaskDetl>> entry : orderMap.entrySet()) {
                List<TaskDetl> list = entry.getValue();
                List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteStatus, CacheSiteStatusType.O.id));
                if (cacheSites.isEmpty()) {
                    throw new CoolException("缓存站空间不足,请稍后再试");
                }
                CacheSite cacheSite = cacheSites.get(0);
                Long orderId = null;
                String orderNo = null;
                for (TaskDetl taskDetl : list) {
                    orderId = taskDetl.getOrderId();
                    orderNo = taskDetl.getOrderNo();
                    Long orderDetlId = taskDetl.getDetlId();
                    WaveSeed waveSeed = new WaveSeed();
                    waveSeed.setSiteId(cacheSite.getId());
                    waveSeed.setSiteNo(cacheSite.getSiteNo());
                    waveSeed.setOrderDetlId(orderDetlId);
                    waveSeed.setTaskDetlId(taskDetl.getId());
                    waveSeed.setAnfme(taskDetl.getAnfme());
                    waveSeed.setWorkQty(0D);
                    if (!waveSeedService.save(waveSeed)) {
                        throw new CoolException("波次播种创建失败");
                    }
                }
                if(orderId == null){
                    continue;
                }
                cacheSite.setOrderId(orderId);
                cacheSite.setOrderNo(orderNo);
                cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
                cacheSite.setUpdateTime(new Date());
                if (!cacheSiteService.updateById(cacheSite)) {
                    throw new CoolException("缓存站更新失败");
                }
            }
        }
    }