|
@@ -1392,24 +1392,31 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
|
|
|
|
List<WmsDocOrderDetails> wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
for (WmsDocOrderDetails wmsDocOrderDetail : wmsDocOrderDetails) {
|
|
|
+
|
|
|
if (wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS10.getValue())
|
|
|
- || wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())
|
|
|
- || wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS22.getValue())) {
|
|
|
+ || wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
if (sku.equals(wmsDocOrderDetail.getSku())) {
|
|
|
+
|
|
|
BigDecimal toQty = wmsDocOrderDetail.getQtyAllocated().subtract(wmsDocOrderDetail.getQtySoftAllocated());
|
|
|
+ if (toQty.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
WmsDocOrderDetails detailsUpdate = new WmsDocOrderDetails();
|
|
|
detailsUpdate.setOrderNo(wmsDocOrderDetail.getOrderNo());
|
|
|
detailsUpdate.setOrderLineNo(wmsDocOrderDetail.getOrderLineNo());
|
|
|
if (qty.compareTo(toQty) == 0) {
|
|
|
detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtyAllocated());
|
|
|
- detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ if(wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }
|
|
|
} else if (qty.compareTo(toQty) == 1) {
|
|
|
qty = qty.subtract(toQty);
|
|
|
detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtyAllocated());
|
|
|
- detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ if(wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }
|
|
|
} else {
|
|
|
detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtySoftAllocated().add(qty));
|
|
|
- detailsUpdate.setLineStatus(Constant.ORDER_STS.STS22.getValue());
|
|
|
}
|
|
|
wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(detailsUpdate);
|
|
|
|
|
@@ -1434,4 +1441,121 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
|
}
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public AjaxResult modifystockCompletionStatus(String orderNo, String sku, BigDecimal qty) {
|
|
|
+ WmsDocOrderHeader docOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
|
+
|
|
|
+ List<WmsDocOrderDetails> wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
+ for (WmsDocOrderDetails wmsDocOrderDetail : wmsDocOrderDetails) {
|
|
|
+
|
|
|
+ if (wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS10.getValue())
|
|
|
+ || wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
+ if (sku.equals(wmsDocOrderDetail.getSku())) {
|
|
|
+
|
|
|
+ BigDecimal toQty = wmsDocOrderDetail.getQtyAllocated().subtract(wmsDocOrderDetail.getQtySoftAllocated());
|
|
|
+ if (toQty.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ WmsDocOrderDetails detailsUpdate = new WmsDocOrderDetails();
|
|
|
+ detailsUpdate.setOrderNo(wmsDocOrderDetail.getOrderNo());
|
|
|
+ detailsUpdate.setOrderLineNo(wmsDocOrderDetail.getOrderLineNo());
|
|
|
+ if (qty.compareTo(toQty) == 0) {
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtyAllocated());
|
|
|
+ if(wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }
|
|
|
+ } else if (qty.compareTo(toQty) == 1) {
|
|
|
+ qty = qty.subtract(toQty);
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtyAllocated());
|
|
|
+ if(wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS20.getValue())) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtySoftAllocated().add(qty));
|
|
|
+ }
|
|
|
+ wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(detailsUpdate);
|
|
|
+
|
|
|
+ String soStatus = Constant.ORDER_STS.STS23.getValue();
|
|
|
+ List<WmsDocOrderDetails> wmsDocOrderDetailsList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
+ for (WmsDocOrderDetails d : wmsDocOrderDetailsList) {
|
|
|
+ if (!d.getLineStatus().equals(Constant.ORDER_STS.STS23.getValue())) {
|
|
|
+ soStatus = Constant.ORDER_STS.STS22.getValue();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
|
|
|
+ headerUpdate.setOrderNo(orderNo);
|
|
|
+ headerUpdate.setOrderStatus(soStatus);
|
|
|
+ headerUpdate.setUpdateTime(new Date());
|
|
|
+ wmsDocOrderHeaderMapper.updateWmsDocOrderHeader(headerUpdate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ public AjaxResult modifystockCompletionStatusAsn(String orderNo, String sku, BigDecimal qty) {
|
|
|
+ WmsDocOrderHeader docOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
|
+
|
|
|
+ List<WmsDocOrderDetails> wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
+ for (WmsDocOrderDetails wmsDocOrderDetail : wmsDocOrderDetails) {
|
|
|
+
|
|
|
+ if (wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS00.getValue())
|
|
|
+ || wmsDocOrderDetail.getLineStatus().equals(Constant.ORDER_STS.STS10.getValue())) {
|
|
|
+ if (sku.equals(wmsDocOrderDetail.getSku())) {
|
|
|
+
|
|
|
+ BigDecimal toQty = wmsDocOrderDetail.getQtyOrdered().subtract(wmsDocOrderDetail.getQtyAllocated());
|
|
|
+ WmsDocOrderDetails detailsUpdate = new WmsDocOrderDetails();
|
|
|
+ detailsUpdate.setOrderNo(wmsDocOrderDetail.getOrderNo());
|
|
|
+ detailsUpdate.setOrderLineNo(wmsDocOrderDetail.getOrderLineNo());
|
|
|
+
|
|
|
+ if (qty.compareTo(toQty) == 0) {
|
|
|
+ detailsUpdate.setQtyAllocated(wmsDocOrderDetail.getQtyAllocated().add(qty));
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtySoftAllocated().add(qty));
|
|
|
+
|
|
|
+ if (detailsUpdate.getQtyAllocated().compareTo(detailsUpdate.getQtySoftAllocated()) == 0) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }else {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS20.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (qty.compareTo(toQty) == 1) {
|
|
|
+ qty = qty.subtract(toQty);
|
|
|
+ detailsUpdate.setQtyAllocated(wmsDocOrderDetail.getQtyAllocated().add(toQty));
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtySoftAllocated().add(toQty));
|
|
|
+
|
|
|
+ if (detailsUpdate.getQtyAllocated().compareTo(detailsUpdate.getQtySoftAllocated()) == 0) {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS23.getValue());
|
|
|
+ }else {
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS20.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ detailsUpdate.setQtyAllocated(wmsDocOrderDetail.getQtyAllocated().add(qty));
|
|
|
+ detailsUpdate.setQtySoftAllocated(wmsDocOrderDetail.getQtySoftAllocated().add(qty));
|
|
|
+ detailsUpdate.setLineStatus(Constant.ORDER_STS.STS10.getValue());
|
|
|
+ }
|
|
|
+ wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(detailsUpdate);
|
|
|
+
|
|
|
+ String soStatus = Constant.ORDER_STS.STS23.getValue();
|
|
|
+ List<WmsDocOrderDetails> wmsDocOrderDetailsList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
+ for (WmsDocOrderDetails d : wmsDocOrderDetailsList) {
|
|
|
+ if (!d.getLineStatus().equals(Constant.ORDER_STS.STS23.getValue())) {
|
|
|
+ soStatus = Constant.ORDER_STS.STS22.getValue();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
|
|
|
+ headerUpdate.setOrderNo(orderNo);
|
|
|
+ headerUpdate.setOrderStatus(soStatus);
|
|
|
+ headerUpdate.setUpdateTime(new Date());
|
|
|
+ wmsDocOrderHeaderMapper.updateWmsDocOrderHeader(headerUpdate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
}
|