From d3e1bdb697b8fc02447bac1487278efdbc0e938e Mon Sep 17 00:00:00 2001 From: linfso Date: Sat, 29 Jun 2024 21:49:28 +0800 Subject: [PATCH] md --- .../erp/web/emis/EmisWaybillController.java | 30 +++++++ .../erp/emis/domain/enumtype/OrderStatus.java | 17 +++- .../erp/emis/domain/vo/WaybillOrder.java | 8 ++ .../erp/emis/mapper/EmisWaybillMapper.java | 9 ++ .../erp/emis/service/IEmisWaybillService.java | 24 ++++++ .../service/impl/EmisWaybillServiceImpl.java | 84 ++++++++++++++++++- .../resources/mapper/EmisWaybillMapper.xml | 32 +++++++ 7 files changed, 198 insertions(+), 6 deletions(-) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java index 8dc96fb27..a238c6158 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java @@ -193,6 +193,36 @@ public class EmisWaybillController extends EmisBaseController } + @Log(title = "取消订单", businessType = BusinessType.INSERT) + @PostMapping(value = "/cancelOrder") + public AjaxResult cancelOrder(@Valid @RequestBody WaybillOrder waybillOrder) + { + try { + + if(StringUtils.isEmpty(waybillOrder.getOrderSn()) ){ + return AjaxResult.error("订单号不能为空"); + } + + EmisWaybill emisWaybill = new EmisWaybill(); + emisWaybill.setOrderSn(waybillOrder.getOrderSn()); + emisWaybill.setOrderRemark(waybillOrder.getOrderRemark()); + emisWaybillService.cancelOrder(emisWaybill); + + return AjaxResult.success("取消成功"); + }catch(EmisBizError ex){ + ex.printStackTrace(); + return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage()); + } + catch (Exception ex){ + ex.printStackTrace(); + // 返回子定义异常 + if(ex instanceof EmisBizError){ + return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode()); + } + + return AjaxResult.error("服务器异常,联系客服"); + } + } @Log(title = "运单实时下单", businessType = BusinessType.INSERT) @PostMapping(value = "/realSubmitOrder") diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/OrderStatus.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/OrderStatus.java index 29272c2a1..f653939a1 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/OrderStatus.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/OrderStatus.java @@ -6,16 +6,25 @@ package com.xdadan.erp.emis.domain.enumtype; public enum OrderStatus { - INIT("0","创建成功"), - + INIT("0","待接单"), CONFIRM("1","已接单"), - CANCEL("-1","已取消"), + CANCEL("2","已取消"), + ASSIGN_TAKEMAN("3","已分配业务员"), + HAS_GOT("4","已揽收"), + TRANSING("5","运输中"), + ARRIVAL("6","已到达目的地"), + DISPATCH("7","派送"), + SIGN("8","已签收"), + SIGN_EXCEPTION("9","签收异常"), + TRANSFER("10","已转单"), - OTHER("999","其他"), + OTHER("99","其他"), ; + + public String statusCode; public String statusName; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java index c6717d1b8..80d159717 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java @@ -255,8 +255,12 @@ public class WaybillOrder implements Serializable { /* 预入仓供应商 */ private String prepareInSupplier; + // 录单备注 private String remark; + /* 订单备注 */ + private String orderRemark; + /* 揽收图片备注 */ private String billPicSendRmk; /* 派件签收底单图片 */ @@ -613,6 +617,8 @@ public class WaybillOrder implements Serializable { voItem.setLockFlag(dbWaybill.getLockFlag()); voItem.setLockReason(dbWaybill.getLockReason()); + voItem.setOrderRemark(dbWaybill.getOrderRemark()); + return voItem; @@ -817,6 +823,8 @@ public class WaybillOrder implements Serializable { // dbWaybill.setCreateSite(this.getCreateSite()); // dbWaybill.setUpdateSite(this.getUpdateSite()); + dbWaybill.setOrderRemark(this.getOrderRemark()); + return dbWaybill; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java index 851a95510..76186c9f3 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java @@ -98,6 +98,15 @@ public interface EmisWaybillMapper extends BaseMapper public int updatePrintStatus(EmisWaybill emisWaybill); + // 接单-确认订单 + public int confirmOrder(EmisWaybill emisWaybill); + + // 分配业务员-取件员 + public int assignTakeMan(EmisWaybill emisWaybill); + + // 取消订单 + public int cancelOrder(EmisWaybill emisWaybill); + // 更新派件状态 public int updateDispatchStatus(EmisWaybill emisWaybill); 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 5abc9c98b..9a4f90a51 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 @@ -84,6 +84,30 @@ public interface IEmisWaybillService public int realSubmitOrder(EmisWaybill emisWaybill) throws EmisBizError; + /** + * 取消订单 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + public int cancelOrder(EmisWaybill emisWaybill) throws EmisBizError; + + /** + * 确认订单 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + public int confirmOrder(EmisWaybill emisWaybill) throws EmisBizError; + + /** + * 指派业务员 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + public int assignTakeMan(EmisWaybill emisWaybill)throws EmisBizError; + /** * 费用试算 * @param emisWaybill 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 673b8f46c..e217f1d34 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 @@ -588,6 +588,88 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } + /** + * 取消订单 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + @Override + public int cancelOrder(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,"已揽收,不允许取消"); + } + + return emisWaybillMapper.cancelOrder(emisWaybill); + } + + /** + * 确认订单 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + @Override + public int confirmOrder(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(!OrderStatus.INIT.statusCode.equals(emisWaybillOld.getOrderStatus())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"已接单"); + } + + return emisWaybillMapper.confirmOrder(emisWaybill); + } + + /** + * 分配取件员 + * @param emisWaybill + * @return + * @throws EmisBizError + */ + @Override + public int assignTakeMan(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(StringUtils.isEmpty(emisWaybillOld.getTakePieceEmployeeCode())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"取件员不能为空"); + } + + return emisWaybillMapper.assignTakeMan(emisWaybill); + } + + /** + * 计算运单公共信息 + * @param emisWaybillSave + * @param isNew + * @throws EmisBizError + */ private void calcWayBillCommonInfo(EmisWaybill emisWaybillSave,boolean isNew) throws EmisBizError { String orderSn = WaybillHelper.genOrderSn(); @@ -901,8 +983,6 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb * 新开单 * @param emisWaybillSave */ - -// @DataAuditFilter(tableName="emis_waybill",operationType="1",mapper="emisWaybillMapper") private void addNewWaybill(EmisWaybill emisWaybillSave) throws EmisBizError { // 子单号做扣减 diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 6cfdae6b3..3b949d9eb 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -1362,6 +1362,38 @@ where bill_code=#{billCode} + + + update emis_waybill set + order_status = 2, + order_remark = #{orderRemark} + ,update_by = #{updateBy} + ,update_site = #{updateSite} + where order_sn=#{orderSn} + + + + + update emis_waybill set + order_status = 1 + ,update_by = #{updateBy} + ,update_site = #{updateSite} + where order_sn=#{orderSn} + + + + + update emis_waybill set + take_piece_employee_code = #{takePieceEmployeeCode} + ,update_by = #{updateBy} + ,update_site = #{updateSite} + where order_sn=#{orderSn} + + + + + + update emis_waybill set sign_man=null,