This commit is contained in:
linfso 2024-04-30 10:41:27 +08:00
parent 1532574b6e
commit f04499fe04
7 changed files with 105 additions and 55 deletions

View File

@ -15,7 +15,7 @@ import java.util.List;
import javax.validation.Valid; import javax.validation.Valid;
import com.alibaba.fastjson.JSONObject; 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.domain.vo.*;
import com.xdadan.erp.emis.service.*; import com.xdadan.erp.emis.service.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -68,9 +68,15 @@ public class EmisWaybillController extends BaseController
} }
return AjaxResult.success("获取成功",waybillOrder); return AjaxResult.success("获取成功",waybillOrder);
}catch (Exception ex){ }
catch (Exception ex){
ex.printStackTrace(); 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()); // jObjOut.put("prodName", waybillOrder.getProductType());
return AjaxResult.success("下单成功", jObjOut); return AjaxResult.success("下单成功", jObjOut);
}catch (Exception ex){ }catch(EmisBizError ex){
ex.printStackTrace(); 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("服务器异常,联系客服"); return AjaxResult.error("服务器异常,联系客服");
} }
} }
@ -117,16 +132,15 @@ public class EmisWaybillController extends BaseController
return AjaxResult.success("计算成功", jObjFee); return AjaxResult.success("计算成功", jObjFee);
} }
catch(CalcException ex){ catch(EmisBizError ex){
ex.printStackTrace(); ex.printStackTrace();
// (E3001)参数不完整
return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage()); return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage());
} }
catch (Exception ex){ catch (Exception ex){
ex.printStackTrace(); ex.printStackTrace();
// 返回子定义异常 // 返回子定义异常
if(ex instanceof CalcException ){ if(ex instanceof EmisBizError){
return AjaxResult.error("("+((CalcException)ex).getErrorCode()+")"+ex.getMessage()); return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage());
} }
return AjaxResult.error("服务器异常,联系客服"); return AjaxResult.error("服务器异常,联系客服");
@ -150,8 +164,8 @@ public class EmisWaybillController extends BaseController
catch (Exception ex){ catch (Exception ex){
ex.printStackTrace(); ex.printStackTrace();
// 返回子定义异常 // 返回子定义异常
if(ex instanceof CalcException ){ if(ex instanceof EmisBizError){
return AjaxResult.error("("+((CalcException)ex).getErrorCode()+")"+ex.getMessage()); return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage());
} }
return AjaxResult.error("服务器异常,联系客服"); return AjaxResult.error("服务器异常,联系客服");

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}
/** /**
* 计算预估到达时间 * 计算预估到达时间

View File

@ -11,7 +11,7 @@ package com.xdadan.erp.emis.service;
import java.util.List; import java.util.List;
import com.xdadan.erp.emis.domain.EmisWaybill; 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; import com.xdadan.erp.emis.domain.vo.WaybillOrder;
/** /**
@ -99,17 +99,17 @@ public interface IEmisWaybillService
public WaybillOrder getWaybillDetail(String billCode); 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;
} }

View File

@ -24,7 +24,8 @@ import com.googlecode.aviator.AviatorEvaluator;
import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.SecurityUtils; import com.xdadan.erp.common.utils.SecurityUtils;
import com.xdadan.erp.emis.domain.*; 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.domain.vo.*;
import com.xdadan.erp.emis.mapper.EmisTransLineMapper; import com.xdadan.erp.emis.mapper.EmisTransLineMapper;
import com.xdadan.erp.emis.service.*; import com.xdadan.erp.emis.service.*;
@ -158,19 +159,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
return emisWaybillMapper.deleteEmisWaybillById(id); 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 @Override
@ -210,7 +199,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
*/ */
@Override @Override
@Transactional @Transactional
public int realSubmitOrder(EmisWaybill emisWaybillSave) throws Exception { public int realSubmitOrder(EmisWaybill emisWaybillSave) throws EmisBizError {
boolean isNew = true; boolean isNew = true;
EmisWaybill emisWaybillOld = null; EmisWaybill emisWaybillOld = null;
@ -231,10 +220,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
// 判断运单状态,如果已锁账,则不允许修改 // 判断运单状态,如果已锁账,则不允许修改
// 下单超过 24小时 // 下单超过 24小时
if(emisWaybillOld!=null ) { if(emisWaybillOld!=null ) {
if ("1".equals(emisWaybillOld.getBlBill()) || isOutTime(emisWaybillOld.getCreateTime())) { 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 * @return
*/ */
@Override @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() emisWaybill.getCalcFeeType()
) )
){ ){
throw new CalcException("E3001","参数不完整"); throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "参数不完整");
} }
List<EmisQuotePrice> emisQuotePriceList=getValidQuotePriceList(emisWaybill.getProductType(), List<EmisQuotePrice> emisQuotePriceList=getValidQuotePriceList(emisWaybill.getProductType(),
@ -372,7 +360,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
if(CollectionUtils.isEmpty(emisQuotePriceList)){ if(CollectionUtils.isEmpty(emisQuotePriceList)){
throw new CalcException("E3002","报价未配置"); throw new EmisBizError(EmisBizErrorType.CALC_QUOTE_ERROR, "报价未配置");
} }
// 根据表达式计算费用 // 根据表达式计算费用
@ -462,7 +450,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
} }
@Override @Override
public void calcSettledWeight(EmisWaybill emisWaybill) throws CalcException { public void calcSettledWeight(EmisWaybill emisWaybill) throws EmisBizError {
if ( if (
StringUtils.isEmpty(emisWaybill.getProductType()) StringUtils.isEmpty(emisWaybill.getProductType())
@ -471,7 +459,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
) )
{ {
throw new CalcException("E2001", "参数不完整"); throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "参数不完整");
} }
double billWeight=emisWaybill.getBillWeight().doubleValue(); double billWeight=emisWaybill.getBillWeight().doubleValue();