package zy.cloud.wms.manager.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; import org.springframework.beans.factory.annotation.Autowired; import zy.cloud.wms.manager.entity.WaveDetl; import zy.cloud.wms.manager.mapper.WaveMapper; import zy.cloud.wms.manager.entity.Wave; import zy.cloud.wms.manager.service.OrderService; import zy.cloud.wms.manager.service.WaveDetlService; import zy.cloud.wms.manager.service.WaveService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @Service("waveService") public class WaveServiceImpl extends ServiceImpl implements WaveService { @Autowired private WaveDetlService waveDetlService; @Autowired private OrderService orderService; @Autowired private WaveService waveService; /** * 通过波次生成拣货单 * @param wave * @param userId * @param hostId */ @Override public R createOut(Wave wave, Long userId, Long hostId) { HashSet orderIds = new HashSet<>(); /** * 控管 */ List waveDetls = waveDetlService.selectList(new EntityWrapper() .eq("wave_id", wave.getId())); if (Cools.isEmpty(waveDetls)) { throw new CoolException("找不到该波次单的详情,请联系管理员"); } /** * 更改出库单状态,从"生成波次"到"波次拣货中" */ for (WaveDetl waveDetl : waveDetls) { String orderNos = waveDetl.getOrderNos(); String[] split = orderNos.split(","); for (String s : split) { orderIds.add(s); } } for (String s : new ArrayList(orderIds)) { orderService.changeSettleTo12(s); } /** * 更改波次单状态,从"待处理"到"处理中" */ wave.setStatus((short) 1); waveService.update(wave,new EntityWrapper() .eq("id",wave.getId())); /** * 生成拣货单 */ return R.ok(); } }