package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.mapper.PakoutMapper; import com.zy.asrs.entity.Pakout; import com.zy.asrs.service.*; import com.baomidou.mybatisplus.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; @Service("pakoutService") public class PakoutServiceImpl extends ServiceImpl implements PakoutService { @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired private ManLocDetlService manLocDetlService; @Override public void deletePakout(String docNum) { Order order = orderService.selectByNo(docNum); List orderDetls = orderDetlService.selectList(new EntityWrapper().eq("order_no", docNum)); for (OrderDetl orderDetl: orderDetls){ if (orderDetl.getQty() > 0.0){ throw new RuntimeException("拣货单已有出库任务,不可删除!"); } orderDetl.setWorkQty(0.0D); } if (!orderDetlService.updateBatchById(orderDetls)){ throw new RuntimeException("订单明细批量更新失败"); } order.setSettle(1L); if (!orderService.updateById(order)){ throw new RuntimeException("订单明细批量更新失败"); } List pakouts = selectList(new EntityWrapper().eq("doc_num", docNum)); for (Pakout pakout: pakouts){ ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper() .eq("loc_no", pakout.getLocNo()) .eq("matnr", pakout.getMatnr())); manLocDetl.setStatus(1); if (!manLocDetlService.update(manLocDetl,new EntityWrapper() .eq("loc_no", pakout.getLocNo()) .eq("matnr", pakout.getMatnr()))){ throw new RuntimeException("库存状态更新失败"); } } if (!delete(new EntityWrapper().eq("doc_num",docNum))){ throw new RuntimeException("拣货单删除失败"); } } }