package com.vincent.rsf.server.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.enums.WaveExceStatus; import com.vincent.rsf.server.manager.mapper.WaveMapper; import com.vincent.rsf.server.manager.entity.Wave; import com.vincent.rsf.server.manager.service.AsnOrderItemService; import com.vincent.rsf.server.manager.service.AsnOrderService; import com.vincent.rsf.server.manager.service.WaveService; 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.util.List; import java.util.Map; import java.util.Objects; @Service("waveService") public class WaveServiceImpl extends ServiceImpl implements WaveService { @Autowired private AsnOrderItemService asnOrderItemService; @Autowired private AsnOrderService asnOrderService; /** * @author Ryan * @description 波次任务下发 * @param * @return * @time 2025/4/25 16:24 */ @Override @Transactional(rollbackFor = Exception.class) public R publicTask(Map map) { List ids = (List) map.get("ids"); if (Objects.isNull(ids) || ids.isEmpty()) { throw new CoolException("参数不能为空!!"); } List waves = this.list(new LambdaQueryWrapper().in(Wave::getId, ids)); if (Objects.isNull(waves) || waves.isEmpty()) { throw new CoolException("波次数据不存在!!"); } List orders = asnOrderService.list(new LambdaQueryWrapper().eq(AsnOrder::getId, ids)); asnOrderItemService.list(new LambdaQueryWrapper().eq(AsnOrderItem::getAsnId, ids)); if (!this.update(new LambdaUpdateWrapper().set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK).in(Wave::getId,ids))) { throw new CoolException("波次状态修改失败!!"); } return R.ok(); } }