|  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.GlobleParameter; | 
|---|
|  |  |  | import com.zy.asrs.mapper.PakoutMapper; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | 
|---|
|  |  |  | List<Pakout> pakouts = selectList(new EntityWrapper<Pakout>().eq("doc_num", docNum)); | 
|---|
|  |  |  | for (Pakout pakout: pakouts){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), pakout.getBarcode()); | 
|---|
|  |  |  | Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), Integer.parseInt(pakout.getBarcode()), pakout.getMaktx()); | 
|---|
|  |  |  | if(!Cools.isEmpty(pla)){ | 
|---|
|  |  |  | pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme()); | 
|---|
|  |  |  | pla.setModifyTime(new Date()); | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new RuntimeException("拣货单删除失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void deletePakoutByWrkNo(String wrkNo) { | 
|---|
|  |  |  | Pakout pakout = this.selectById(wrkNo); | 
|---|
|  |  |  | //更新单据信息 | 
|---|
|  |  |  | if(pakout.getCount() > 0){ | 
|---|
|  |  |  | throw new CoolException("该条拣货信息已完成,无法删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | OrderDetl orderDetl = orderDetlService.selectById(pakout.getDocId()); | 
|---|
|  |  |  | orderDetl.setWorkQty(orderDetl.getWorkQty() - pakout.getAnfme()); | 
|---|
|  |  |  | orderDetl.setUpdateTime(new Date()); | 
|---|
|  |  |  | orderDetlService.updateById(orderDetl); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Order order = orderService.selectByNo(pakout.getDocNum()); | 
|---|
|  |  |  | List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId()); | 
|---|
|  |  |  | //判断单据是否有正在作业的任务,true为没有 | 
|---|
|  |  |  | boolean flag = true; | 
|---|
|  |  |  | for (OrderDetl od : orderDetlList){ | 
|---|
|  |  |  | if(od.getWorkQty() + od.getQty() > 0){ | 
|---|
|  |  |  | flag = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(flag){ | 
|---|
|  |  |  | order.setSettle(1L); | 
|---|
|  |  |  | order.setUpdateTime(new Date()); | 
|---|
|  |  |  | orderService.updateById(order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新pla信息 | 
|---|
|  |  |  | Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), Integer.parseInt(pakout.getBarcode()),pakout.getMaktx()); | 
|---|
|  |  |  | pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme()); | 
|---|
|  |  |  | pla.setStatus(GlobleParameter.PLA_STATUS_1); | 
|---|
|  |  |  | pla.setModifyTime(new Date()); | 
|---|
|  |  |  | plaService.updateById(pla); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新plaQty信息 | 
|---|
|  |  |  | plaQtyService.deleteById(pakout.getNodeId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //删除拣货单 | 
|---|
|  |  |  | this.deleteById(wrkNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|