package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.core.common.Cools;
|
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 java.util.Date;
|
import java.util.List;
|
|
@Service("pakoutService")
|
public class PakoutServiceImpl extends ServiceImpl<PakoutMapper, Pakout> implements PakoutService {
|
@Autowired
|
private OrderService orderService;
|
|
@Autowired
|
private OrderDetlService orderDetlService;
|
|
@Autowired
|
private ManLocDetlService manLocDetlService;
|
|
@Autowired
|
private PlaService plaService;
|
|
@Autowired
|
private PlaQtyService plaQtyService;
|
|
@Override
|
public void deletePakout(String docNum) {
|
Order order = orderService.selectByNo(docNum);
|
if (Cools.isEmpty(order)){
|
throw new RuntimeException("未查询到订单档案");
|
}
|
List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().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<Pakout> pakouts = selectList(new EntityWrapper<Pakout>().eq("doc_num", docNum));
|
for (Pakout pakout: pakouts){
|
|
Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), pakout.getBarcode());
|
if(!Cools.isEmpty(pla)){
|
pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme());
|
pla.setModifyTime(new Date());
|
if(pla.getQtyAnfme() <= 0){
|
pla.setStatus(GlobleParameter.PLA_STATUS_1);
|
}
|
plaService.updateById(pla);
|
plaQtyService.deleteById(pakout.getNodeId());
|
|
}else {
|
ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
|
.eq("loc_no", pakout.getLocNo())
|
.eq("matnr", pakout.getMatnr()));
|
manLocDetl.setStatus(1);
|
if (!manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>()
|
.eq("loc_no", pakout.getLocNo())
|
.eq("matnr", pakout.getMatnr()))){
|
throw new RuntimeException("库存状态更新失败");
|
}
|
}
|
}
|
|
if (!delete(new EntityWrapper<Pakout>().eq("doc_num",docNum))){
|
throw new RuntimeException("拣货单删除失败");
|
}
|
}
|
}
|