|
@@ -208,6 +208,9 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
if (orderHeader == null) {
|
|
if (orderHeader == null) {
|
|
return AjaxResult.error("没有查询到订单");
|
|
return AjaxResult.error("没有查询到订单");
|
|
}
|
|
}
|
|
|
|
+ if (!orderHeader.getOrderStatus().equals("00")) {
|
|
|
|
+ return AjaxResult.error("库单为创建状态才可以分配");
|
|
|
|
+ }
|
|
boolean isbf = false;
|
|
boolean isbf = false;
|
|
boolean isAllocation = false;
|
|
boolean isAllocation = false;
|
|
BigDecimal total = BigDecimal.ZERO;
|
|
BigDecimal total = BigDecimal.ZERO;
|
|
@@ -229,9 +232,13 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (isbf) {
|
|
if (isbf) {
|
|
|
|
+ orderHeader.setOrderStatus("10");
|
|
|
|
+ wmsDocOrderHeaderService.updateWmsDocOrderHeader(orderHeader);
|
|
return AjaxResult.success("部分分配");
|
|
return AjaxResult.success("部分分配");
|
|
}
|
|
}
|
|
if (isAllocation) {
|
|
if (isAllocation) {
|
|
|
|
+ orderHeader.setOrderStatus("20");
|
|
|
|
+ wmsDocOrderHeaderService.updateWmsDocOrderHeader(orderHeader);
|
|
return AjaxResult.success("分配成功");
|
|
return AjaxResult.success("分配成功");
|
|
} else {
|
|
} else {
|
|
return AjaxResult.error("分配失败,没有可用的库存");
|
|
return AjaxResult.error("分配失败,没有可用的库存");
|
|
@@ -250,12 +257,17 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public AjaxResult doAllocationDetails(WmsDocOrderHeader header, WmsDocOrderDetails details) {
|
|
public AjaxResult doAllocationDetails(WmsDocOrderHeader header, WmsDocOrderDetails details) {
|
|
|
|
+ if (!details.getLineStatus().equals("00")) {
|
|
|
|
+ return AjaxResult.error("出库明细为创建状态才可以分配!");
|
|
|
|
+ }
|
|
LotattDTO lotattDTO = new LotattDTO();
|
|
LotattDTO lotattDTO = new LotattDTO();
|
|
if (!StringUtils.isEmpty(header.getUserdefine1())) {
|
|
if (!StringUtils.isEmpty(header.getUserdefine1())) {
|
|
//如果备货的只能查询属于该出库单的库存
|
|
//如果备货的只能查询属于该出库单的库存
|
|
lotattDTO.setLotatt14(header.getOrderNo());
|
|
lotattDTO.setLotatt14(header.getOrderNo());
|
|
}
|
|
}
|
|
List<InvLotLocId> invList = invLotLocIdService.queryInvOrderBy(details.getLotnum(), details.getSku(), details.getLocation(), Constant.CUSTOMER_ID, lotattDTO);
|
|
List<InvLotLocId> invList = invLotLocIdService.queryInvOrderBy(details.getLotnum(), details.getSku(), details.getLocation(), Constant.CUSTOMER_ID, lotattDTO);
|
|
|
|
+ // 原始订单数
|
|
|
|
+ BigDecimal originalOrderQty = details.getQtyOrdered();
|
|
//库存可分配数小于订单数
|
|
//库存可分配数小于订单数
|
|
BigDecimal orderQty = details.getQtyOrdered();
|
|
BigDecimal orderQty = details.getQtyOrdered();
|
|
//判断总数是否足够分配
|
|
//判断总数是否足够分配
|
|
@@ -265,7 +277,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
}
|
|
}
|
|
for (InvLotLocId inv : invList) {
|
|
for (InvLotLocId inv : invList) {
|
|
if (orderQty.doubleValue() == 0) {
|
|
if (orderQty.doubleValue() == 0) {
|
|
- return AjaxResult.success("分配完成");
|
|
|
|
|
|
+ return AjaxResult.success("分配完成",originalOrderQty);
|
|
}
|
|
}
|
|
//可以叫料且合格的库存
|
|
//可以叫料且合格的库存
|
|
InvLotAtt lotAtt = invLotAttMapper.selectInvLotAttByLotnum(inv.getLotnum());
|
|
InvLotAtt lotAtt = invLotAttMapper.selectInvLotAttByLotnum(inv.getLotnum());
|
|
@@ -285,12 +297,12 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
orderQty = orderQty.subtract(allocatedQty);
|
|
orderQty = orderQty.subtract(allocatedQty);
|
|
//修改出库单状态
|
|
//修改出库单状态
|
|
details.setQtyAllocated(details.getQtyAllocated().add(allocatedQty));
|
|
details.setQtyAllocated(details.getQtyAllocated().add(allocatedQty));
|
|
- details.setQtyAllocatedEach(details.getQtyAllocatedEach().add(allocatedQty));
|
|
|
|
|
|
+ details.setQtyAllocatedEach(details.getQtyAllocated());
|
|
details.setLineStatus("20");
|
|
details.setLineStatus("20");
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
|
|
|
|
- header.setOrderStatus("10");
|
|
|
|
- wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
|
|
|
|
+// header.setOrderStatus("10");
|
|
|
|
+// wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
//生成分配明细
|
|
//生成分配明细
|
|
actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), allocatedQty, details, "20");
|
|
actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), allocatedQty, details, "20");
|
|
} else {
|
|
} else {
|
|
@@ -310,12 +322,13 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
details.setQtyAllocatedEach(details.getQtyAllocatedEach().add(allocatedQty));
|
|
details.setQtyAllocatedEach(details.getQtyAllocatedEach().add(allocatedQty));
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
|
|
|
|
- header.setOrderStatus("20");
|
|
|
|
- wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
|
|
|
|
+// header.setOrderStatus("20");
|
|
|
|
+// wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
//生成分配明细
|
|
//生成分配明细
|
|
- return actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), allocatedQty, details, "20");
|
|
|
|
|
|
+ actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), allocatedQty, details, "20");
|
|
|
|
+ return AjaxResult.success("分配完成",originalOrderQty);
|
|
} else {
|
|
} else {
|
|
- return AjaxResult.error("占用库存分配数失败");
|
|
|
|
|
|
+ throw new ServiceException("占用库存分配数失败");
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
BigDecimal currentQty = orderQty;
|
|
BigDecimal currentQty = orderQty;
|
|
@@ -327,19 +340,20 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
details.setLineStatus("20");
|
|
details.setLineStatus("20");
|
|
details.setQtyAllocated(details.getQtyAllocated().add(currentQty));
|
|
details.setQtyAllocated(details.getQtyAllocated().add(currentQty));
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(details);
|
|
- header.setOrderStatus("20");
|
|
|
|
- wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
|
|
|
|
+// header.setOrderStatus("20");
|
|
|
|
+// wmsDocOrderHeaderService.updateWmsDocOrderHeader(header);
|
|
//生成分配明细
|
|
//生成分配明细
|
|
- return actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), currentQty, details, "10");
|
|
|
|
|
|
+ actAllocationDetailsService.addActAllocationDetails(inv.getLotnum(), inv.getLocationId(), currentQty, details, "10");
|
|
|
|
+ return AjaxResult.success("分配完成",originalOrderQty);
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
- return AjaxResult.error("占用库存分配数失败");
|
|
|
|
|
|
+ throw new ServiceException("占用库存分配数失败");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //}
|
|
|
|
}
|
|
}
|
|
- return AjaxResult.error("库存数不足,无法分配");
|
|
|
|
|
|
+ return AjaxResult.success("库存数不足,部分分配",originalOrderQty.subtract(orderQty));
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -416,10 +430,9 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public AjaxResult doCheckout(CheckOutForm checkOutForm) {
|
|
public AjaxResult doCheckout(CheckOutForm checkOutForm) {
|
|
- //TODO 待实现
|
|
|
|
for (CheckOutInfoForm check : checkOutForm.getCheckOutInfoFormList()) {
|
|
for (CheckOutInfoForm check : checkOutForm.getCheckOutInfoFormList()) {
|
|
|
|
|
|
- //TODO 生成任务呼叫到接驳位
|
|
|
|
|
|
+ //生成任务呼叫到接驳位
|
|
BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(check.getLocationNo(), Constant.WAREHOUSE_ID);
|
|
BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(check.getLocationNo(), Constant.WAREHOUSE_ID);
|
|
FlowConfigHeaderVO flowConfigHeaderVO = flowConfigHeaderService.selectFlowConfigHeaderById(6L);
|
|
FlowConfigHeaderVO flowConfigHeaderVO = flowConfigHeaderService.selectFlowConfigHeaderById(6L);
|
|
AgvCallDTO agvCallDTO = new AgvCallDTO();
|
|
AgvCallDTO agvCallDTO = new AgvCallDTO();
|
|
@@ -501,6 +514,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
long lineNo = wmsDocOrderHeaderMapper.selectLineNo(wmsDocOrderDetails.getOrderNo());
|
|
long lineNo = wmsDocOrderHeaderMapper.selectLineNo(wmsDocOrderDetails.getOrderNo());
|
|
wmsDocOrderDetails.setOrderLineNo(BigDecimal.valueOf(lineNo + 1));
|
|
wmsDocOrderDetails.setOrderLineNo(BigDecimal.valueOf(lineNo + 1));
|
|
wmsDocOrderDetails.setQtyOrderedEach(wmsDocOrderDetails.getQtyOrdered());
|
|
wmsDocOrderDetails.setQtyOrderedEach(wmsDocOrderDetails.getQtyOrdered());
|
|
|
|
+ wmsDocOrderDetails.setQtyAllocatedEach(wmsDocOrderDetails.getQtyAllocated());
|
|
}
|
|
}
|
|
return wmsDocOrderDetailsMapper.insertWmsDocOrderDetails(wmsDocOrderDetails);
|
|
return wmsDocOrderDetailsMapper.insertWmsDocOrderDetails(wmsDocOrderDetails);
|
|
}
|
|
}
|