自动化立体仓库 - WMS系统
pang.jiabao
6 天以前 d9aab59e3d4c8688eaf00c0d98f6926a218ff57f
src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
@@ -3,12 +3,14 @@
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;
@@ -56,7 +58,7 @@
       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());
@@ -83,4 +85,48 @@
          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);
    }
}