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 989eb7fb8..d70b28e97 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 @@ -15,7 +15,7 @@ import java.util.List; import javax.validation.Valid; import com.alibaba.fastjson.JSONObject; -import com.xdadan.erp.emis.domain.exception.CalcException; +import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.vo.*; import com.xdadan.erp.emis.service.*; import org.apache.commons.lang3.StringUtils; @@ -68,9 +68,15 @@ public class EmisWaybillController extends BaseController } return AjaxResult.success("获取成功",waybillOrder); - }catch (Exception ex){ + } + catch (Exception ex){ ex.printStackTrace(); - return AjaxResult.error(ex.getMessage()); + // 返回子定义异常 + if(ex instanceof EmisBizError){ + return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage()); + } + + return AjaxResult.error("服务器异常,联系客服"); } } @@ -94,8 +100,17 @@ public class EmisWaybillController extends BaseController // jObjOut.put("prodName", waybillOrder.getProductType()); return AjaxResult.success("下单成功", jObjOut); - }catch (Exception ex){ + }catch(EmisBizError ex){ ex.printStackTrace(); + return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage()); + } + catch (Exception ex){ + ex.printStackTrace(); + // 返回子定义异常 + if(ex instanceof EmisBizError){ + return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage()); + } + return AjaxResult.error("服务器异常,联系客服"); } } @@ -117,16 +132,15 @@ public class EmisWaybillController extends BaseController return AjaxResult.success("计算成功", jObjFee); } - catch(CalcException ex){ + catch(EmisBizError ex){ ex.printStackTrace(); - // (E3001)参数不完整 return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage()); } catch (Exception ex){ ex.printStackTrace(); // 返回子定义异常 - if(ex instanceof CalcException ){ - return AjaxResult.error("("+((CalcException)ex).getErrorCode()+")"+ex.getMessage()); + if(ex instanceof EmisBizError){ + return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage()); } return AjaxResult.error("服务器异常,联系客服"); @@ -150,8 +164,8 @@ public class EmisWaybillController extends BaseController catch (Exception ex){ ex.printStackTrace(); // 返回子定义异常 - if(ex instanceof CalcException ){ - return AjaxResult.error("("+((CalcException)ex).getErrorCode()+")"+ex.getMessage()); + if(ex instanceof EmisBizError){ + return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage()); } return AjaxResult.error("服务器异常,联系客服"); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/CalcException.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/CalcException.java deleted file mode 100644 index 9d5aeb360..000000000 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/CalcException.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.xdadan.erp.emis.domain.exception; - -public class CalcException extends Exception { - - private String errorCode; - - public CalcException(String errorCode, String message) { - super(message); - this.errorCode = errorCode; - } - - public String getErrorCode() { - return errorCode; - - } - -} diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizError.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizError.java new file mode 100644 index 000000000..fd46f3e42 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizError.java @@ -0,0 +1,17 @@ +package com.xdadan.erp.emis.domain.exception; + +public class EmisBizError extends Exception { + + private EmisBizErrorType errorCode; + + public EmisBizError(EmisBizErrorType errorCode, String errorMessage) { + super(errorMessage); + this.errorCode = errorCode; + } + + public EmisBizErrorType getErrorCode() { + return errorCode; + + } + +} diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizErrorType.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizErrorType.java new file mode 100644 index 000000000..8f5fccb0c --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/exception/EmisBizErrorType.java @@ -0,0 +1,30 @@ +package com.xdadan.erp.emis.domain.exception; + +import lombok.Getter; + +@Getter +public enum EmisBizErrorType { + + PARAM_ERROR1("E0001", "参数不完整"), + CALC_FEE_ERROR("E0001", "运费计算错误"), + CALC_WEIGHT_ERROR("E0002", "重量计算错误"), + + + CALC_QUOTE_ERROR("E3002", "报价未配置"), + + + BILL_LOCK("E9001", "已锁账,不允许修改"), + + SUCCESS("0000", "成功"), + FAIL("9999", "失败"), + + ; + + private String errorCode; + private String errorMessage; + + EmisBizErrorType(String errorCode, String errorMessage) { + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } +} diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index dd8813567..5cecd78ca 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -146,6 +146,24 @@ public class EmisBaseService { } + /** + * 超时锁账时间 + * @param data + * @return + */ + public static boolean isOutTime(Date data) { + //24小时 + long house=60*60*24; + //系统当前时间, + long currentTime = System.currentTimeMillis()/1000; + //业务时间 + long endTime=data.getTime()/1000; + if((endTime + house) < currentTime ){ + return true; + }else{ + return false; + } + } /** * 计算预估到达时间 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 39b77bcdd..fb78dbb94 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 @@ -11,7 +11,7 @@ package com.xdadan.erp.emis.service; import java.util.List; import com.xdadan.erp.emis.domain.EmisWaybill; -import com.xdadan.erp.emis.domain.exception.CalcException; +import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.vo.WaybillOrder; /** @@ -99,17 +99,17 @@ public interface IEmisWaybillService public WaybillOrder getWaybillDetail(String billCode); -// public int realSubmitOrder(WaybillOrder waybillOrder) throws Exception; - public int realSubmitOrder(EmisWaybill emisWaybill) throws Exception; + // 账单保存 + public int realSubmitOrder(EmisWaybill emisWaybill) throws EmisBizError; //计算运单费用 - public void calcWaybillFee(EmisWaybill emisWaybill) throws CalcException; + public void calcWaybillFee(EmisWaybill emisWaybill) throws EmisBizError; // 计算结算重量 - public void calcSettledWeight(EmisWaybill emisWaybill) throws CalcException; + public void calcSettledWeight(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 afabdfa84..6bd54b3c6 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 @@ -24,7 +24,8 @@ import com.googlecode.aviator.AviatorEvaluator; import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.SecurityUtils; import com.xdadan.erp.emis.domain.*; -import com.xdadan.erp.emis.domain.exception.CalcException; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.domain.exception.EmisBizErrorType; import com.xdadan.erp.emis.domain.vo.*; import com.xdadan.erp.emis.mapper.EmisTransLineMapper; import com.xdadan.erp.emis.service.*; @@ -158,19 +159,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb return emisWaybillMapper.deleteEmisWaybillById(id); } - public static boolean isOutTime(Date data) throws Exception { - //24小时 - long house=60*60*24; - //系统当前时间, - long currentTime = System.currentTimeMillis()/1000; - //业务时间 - long endTime=data.getTime()/1000; - if((endTime + house) < currentTime ){ - return true; - }else{ - return false; - } - } + @Override @@ -210,7 +199,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb */ @Override @Transactional - public int realSubmitOrder(EmisWaybill emisWaybillSave) throws Exception { + public int realSubmitOrder(EmisWaybill emisWaybillSave) throws EmisBizError { boolean isNew = true; EmisWaybill emisWaybillOld = null; @@ -231,10 +220,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 判断运单状态,如果已锁账,则不允许修改 // 下单超过 24小时 - if(emisWaybillOld!=null ) { if ("1".equals(emisWaybillOld.getBlBill()) || isOutTime(emisWaybillOld.getCreateTime())) { - throw new Exception("已锁账,不允许修改"); + throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已锁账,不允许修改"); } } @@ -351,7 +339,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb * @return */ @Override - public void calcWaybillFee(EmisWaybill emisWaybill) throws CalcException { + public void calcWaybillFee(EmisWaybill emisWaybill) throws EmisBizError { /** * 计算逻辑,获取表达式进行计算 @@ -363,7 +351,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb emisWaybill.getCalcFeeType() ) ){ - throw new CalcException("E3001","参数不完整"); + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "参数不完整"); } List emisQuotePriceList=getValidQuotePriceList(emisWaybill.getProductType(), @@ -372,7 +360,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if(CollectionUtils.isEmpty(emisQuotePriceList)){ - throw new CalcException("E3002","报价未配置"); + throw new EmisBizError(EmisBizErrorType.CALC_QUOTE_ERROR, "报价未配置"); } // 根据表达式计算费用 @@ -462,16 +450,16 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } @Override - public void calcSettledWeight(EmisWaybill emisWaybill) throws CalcException { + public void calcSettledWeight(EmisWaybill emisWaybill) throws EmisBizError { if ( StringUtils.isEmpty(emisWaybill.getProductType()) || emisWaybill.getBillWeight() == null || emisWaybill.getTotalVolume() == null ) - { + { - throw new CalcException("E2001", "参数不完整"); + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "参数不完整"); } double billWeight=emisWaybill.getBillWeight().doubleValue();