车辆管理项目中异常处理机制

 1 package com.ycg.rosefinch.vms.manager.service.common;
 2 
 3 import com.ycg.rdc.framework.application.exception.BusinessException;
 4 
 5 public class VmsBusinessException extends BusinessException {
 6     private static final long serialVersionUID = -1054869492237073561L;
 7 
 8     /**
 9      * 异常code
10      */
11     protected String errCode;
12 
13     /**
14      * 异常信息
15      */
16     private String natvieMsg;
17 
18     /**
19      * 异常 arguments
20      */
21     private Object[] arguments;
22     public VmsBusinessException() {
23         super();
24     }
25 
26     public VmsBusinessException(String msg) {
27         super(msg);
28     }
29 
30     public VmsBusinessException(String msg, Throwable cause) {
31         super(msg, cause);
32     }
33 
34     public VmsBusinessException(String code, String msg) {
35         super(msg);
36         this.errCode = code;
37     }
38 
39     public VmsBusinessException(String code, String msg, Throwable cause) {
40         super(msg, cause);
41         this.errCode = code;
42     }
43 
44     public VmsBusinessException(String code, String msg, String natvieMsg) {
45         super(msg);
46         this.errCode = code;
47         this.natvieMsg = natvieMsg;
48     }
49 
50     public VmsBusinessException(String code, String msg,String natvieMsg, Throwable cause) {
51         super(msg, cause);
52         this.errCode = code;
53         this.natvieMsg = natvieMsg;
54     }
55 
56     public VmsBusinessException(String code,Object... args) {
57         super();
58         this.errCode = code;
59         this.arguments = args;
60     }
61 
62     public VmsBusinessException(String code,String msg, Object... args) {
63         super(msg);
64         this.errCode = code;
65         this.arguments = args;
66     }
67 
68     @Override
69     public void setErrorArguments(Object... args) {
70         this.arguments = args;
71     }
72 
73     @Override
74     public Object[] getErrorArguments() {
75         return this.arguments;
76     }
77 
78     @Override
79     public String getErrorCode() {
80         return this.errCode;
81     }
82 
83     @Override
84     public String getNativeMessage() {
85         return natvieMsg;
86     }
87 }



 1 package com.ycg.rosefinch.op.vms.manager.web.model;
 2 
 3 import java.io.Serializable;
 4 
 5 import com.fasterxml.jackson.annotation.JsonIgnore;
 6 import com.fasterxml.jackson.annotation.JsonProperty;
 7 
 8 public class ResponseModel implements Serializable {
 9     /**
10      *
11      */
12     private static final long serialVersionUID = -5598840566266782861L;
13 
14     @JsonProperty("StatusCode")
15     private String StatusCode;
16 
17     @JsonProperty("Data")
18     private Object Data;
19 
20     @JsonProperty("ErrorMessage")
21     private String ErrorMessage;
22 
23     @JsonProperty("ExptMsgDetail")
24     private String exptMsgDetail;
25 
26     @JsonIgnore
27     public String getStatusCode() {
28         return StatusCode;
29     }
30 
31     @JsonIgnore
32     public void setStatusCode(String statusCode) {
33         StatusCode = statusCode;
34     }
35 
36     @JsonIgnore
37     public Object getData() {
38         return Data;
39     }
40 
41     @JsonIgnore
42     public void setData(Object data) {
43         Data = data;
44     }
45 
46     @JsonIgnore
47     public String getErrorMessage() {
48         return ErrorMessage;
49     }
50 
51     @JsonIgnore
52     public void setErrorMessage(String errorMessage) {
53         ErrorMessage = errorMessage;
54     }
55 
56     @JsonIgnore
57     public String getExptMsgDetail() {
58         return exptMsgDetail;
59     }
60 
61     @JsonIgnore
62     public void setExptMsgDetail(String exptMsgDetail) {
63         this.exptMsgDetail = exptMsgDetail;
64     }
65 
66     @Override
67     public String toString() {
68         return "ResponseModel{" +
69                 "StatusCode='" + StatusCode + '\'' +
70                 ", Data=" + Data +
71                 ", ErrorMessage='" + ErrorMessage + '\'' +
72                 ", exptMsgDetail='" + exptMsgDetail + '\'' +
73                 '}';
74     }
75 }

 

 

 

 1     @RequestMapping(value="addVehicleManager",method=RequestMethod.POST, produces = "application/json; charset=utf-8")
 2     public @ResponseBody ResponseModel addVehicleManager(HttpServletRequest request,HttpServletResponse response,@RequestBody ContractVehicleManagerModel model){
 3         ResponseModel resp = new ResponseModel();
 4         logger.info("新增合同车辆信息-/contract/vehicle/addVehicleManager>" + JSONObject.toJSONString(model));
 5         if (model == null) {
 6             resp.setErrorMessage(VmsManageConstants.RESPONSE_FAILURE);
 7             resp.setStatusCode("Lx011-00001-0000021");
 8             resp.setExptMsgDetail("传入的数据不能为空");
 9             return resp;
10         }
11         try {
12             LoginUserInfo loginUserInfo = super.getAuthSession().getAuthInfo(request.getHeader("token"));
13             vmsContractVehicleManagerService.insertContractVehicle(model,model.getLineModelList(),loginUserInfo);
14             resp.setStatusCode("Sx000-00000-000000");
15             resp.setErrorMessage(VmsManageConstants.RESPONSE_SUCCESS);
16             resp.setExptMsgDetail("合同车辆添加成功!");
17         }catch (VmsBusinessException e) {
18             resp.setStatusCode("Lx011-00001-0000021");
19             resp.setErrorMessage(e.getMessage());
20             resp.setExptMsgDetail("车辆信息添加异常!"+e.getMessage());
21         } catch (Exception e) {
22             resp.setStatusCode("Lx011-00001-0000022");
23             resp.setErrorMessage("车辆信息添加异常");
24             resp.setExptMsgDetail("车辆信息添加异常!"+e.getMessage());
25         }
26         return resp;
27     }

 

 

 

 

 1 @Override
 2     @Transactional
 3     public void insertContractVehicle(ContractVehicleManagerModel model,List<VmsVehicleLineFerightModel> lineModelList,LoginUserInfo loginUserInfo) {
 4         try {
 5             //添加车辆基础信息表数据
 6             VmsVehicleManager vehicleEntity = new VmsVehicleManager();
 7             convertT1ToT2(model, vehicleEntity);
 8             
 9             if (model.getVehicleNo() != null && vmsOwnVehicleService.isExistVehicleNo(model.getVehicleNo())) {
10                 super.getLogger().error("合同车牌号-车牌号:" + model.getVehicleNo() + "已存在");
11                 throw new VmsBusinessException("合同车新增-车牌号:" + model.getVehicleNo() + "已存在");
12             }
13             
14             vehicleEntity.setVehicleNature(CarNatureEnum.CAR_HETONGCHE.getCode());
15             // 通过车牌号 生成车标码
16             String simpleNo = vichileNoAreacodeService.simpleNoByVehicleNo(vehicleEntity.getVehicleNo());
17             vehicleEntity.setSimpleNo(simpleNo);
18             vehicleEntity.setCarCategory(1);
19             if(loginUserInfo != null){
20                 vehicleEntity.setCreateUserName(loginUserInfo.getUserName());
21                 vehicleEntity.setCreateUserCode(loginUserInfo.getUserId());
22                 vehicleEntity.setCreateSiteName(loginUserInfo.getLoginSiteName());
23                 vehicleEntity.setCreateSiteName(loginUserInfo.getLoginSiteCode());
24                 vehicleEntity.setCreateDate(new Date());
25             }else{
26                 throw new VmsBusinessException("未获取到当前登录人信息,请登陆系统后重试!");
27             }
28             vehicleEntity = vmsVehicleManagerDao.addSelectivity(vehicleEntity);
29             
30             if(vehicleEntity != null){
31                 Long vehicleId = vehicleEntity.getId();
32                 //添加合同车辆信息表数据
33                 VmsContractVehicle contractVehicle = new VmsContractVehicle();
34                 convertT1ToT2(model, contractVehicle);
35                 contractVehicle.setVehicleID(vehicleId);
36                 contractVehicle.setId(uniqueIdCenterService.generateId());
37                 vmsContractVehicleDao.insertVmsContractVehicle(contractVehicle);
38                 //添加车线信息表数据
39                 if(lineModelList != null && lineModelList.size() > 0){
40                     for(VmsVehicleLineFerightModel lineModel : lineModelList){
41                         lineModel.setId(uniqueIdCenterService.generateId());
42                         lineModel.setVehicleId(vehicleId);
43                         lineModel.setVehicleNo(vehicleEntity.getVehicleNo());
44                         vmsVehicleLineFerightDao.insert(super.convertT1ToT2(lineModel, new VmsVehicleLineFeright()));
45                     }
46                 }
47             }else{
48                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
49                 throw new VmsBusinessException("车辆基础信息插入失败");
50             }
51             
52         } catch (Exception e) {
53             super.getLogger().error(e.getMessage(), e);
54             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
55             throw new VmsBusinessException("合同车辆信息插入异常"+e);
56         }
57     }

 

 

 



 

posted @ 2018-04-02 15:50  极致网络科技  阅读(260)  评论(0编辑  收藏  举报