diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java index 685f63a4b..9dd8ed6b3 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java @@ -162,6 +162,14 @@ public interface IEmisWaybillService extends IDataAuditService */ public int cancelOrder(EmisWaybill emisWaybill) throws EmisBizError; + /** + * 取消订单 OMS + * @param emisWaybill + * @return + * @throws EmisBizError + */ + public int cancelOrderByOms(EmisWaybill emisWaybill) throws EmisBizError; + /** * 确认订单 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 6b5ae52b0..3160937e9 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -1425,9 +1425,38 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } // 非当前网点不允许接其他网点的运单 -// if(!emisWaybillOld.getSendSiteCode().equals(getCurrentUser().getOwnerSiteCode())){ -// throw new EmisBizError(EmisBizErrorType.FAIL,"非当前网点运单,不允许操作!"); -// } + if(!emisWaybillOld.getSendSiteCode().equals(getCurrentUser().getOwnerSiteCode())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"非当前网点运单,不允许操作!"); + } + + emisWaybill.setBillCode(emisWaybillOld.getBillCode()); + return emisWaybillMapper.cancelOrder(emisWaybill); + } + + + /** + * 取消订单 by OMS + * @param emisWaybill + * @return + * @throws EmisBizError + */ + @Override + public int cancelOrderByOms(EmisWaybill emisWaybill) throws EmisBizError { + // 已开单 + // 已揽收不允许取消 + EmisWaybill emisWaybillOld = this.selectEmisWaybillByOrderSn(emisWaybill.getOrderSn()); + if(emisWaybillOld==null){ + throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"订单不存在"); + } + + if(OrderStatus.CANCEL.statusCode.equals(emisWaybillOld.getOrderStatus())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"订单已取消"); + } + + if(!WaybillStatus.INIT.statusCode.equals(emisWaybillOld.getWaybillStatus())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"已揽收,不允许取消"); + } + emisWaybill.setBillCode(emisWaybillOld.getBillCode()); return emisWaybillMapper.cancelOrder(emisWaybill);