采购系统(三)

一、统一异常处理

1.统一异常结果类型

ResultInfo.java

/*
 * 系统提示信息封装类
 */
public class ResultInfo{

	public static final int TYPE_FAIL = 0;// 失败
	public static final int TYPE_SUCCESS = 1;// 成功
	public static final int TYPE_WARN = 2;// 警告
	public static final int TYPE_INFO = 3;// 提示信息

	/*
	 * 消息提示类型
	 */
	private int type;

	/*
	 * 提示代码
	 */
	private int messageCode;

	/*
	 * 提示信息
	 */
	private String message;

	/*
	 * 提示信息明细列表
	 */
	private List<ResultInfo> details;

	/*
	 * 提示消息对应操作的序号,方便用户查找问题,通常用于在批量提示信息中标识记录序号
	 */
	private int index;

	/*
	 * 提交后得到到业务数据信息从而返回给页面
	 */
	private Map<String,Object> sysdata = new HashMap<String,Object>();

	public ResultInfo(){
	}

	/*
	 * 构造函数,根据提交信息代码messageCode获取提示信息
	 */
	public ResultInfo(final int type,int messageCode,String message){
		this.type = type;
		this.messageCode = messageCode;
		this.message = message;
	}

	public boolean isSuccess(){
		if(this.type == TYPE_SUCCESS){
			return true;
		}
		return false;
	}

	//get、Set...
}

 

ExceptionResultInfo.java

/*
 * 自定义系统异常类
 */
public class ExceptionResultInfo extends Exception {

	// 系统统一使用的结果类,包括了 提示信息类型和信息内容
	private ResultInfo resultInfo;

	public ExceptionResultInfo(ResultInfo resultInfo) {
		super(resultInfo.getMessage());
		this.resultInfo = resultInfo;
	}

	public ResultInfo getResultInfo() {
		return resultInfo;
	}

	public void setResultInfo(ResultInfo resultInfo) {
		this.resultInfo = resultInfo;
	}

}

 

SubmitResultInfo.java

/*
 * 系统提交结果结果类型
 */
public class SubmitResultInfo{

	// 操作结果信息
	private ResultInfo resultInfo;

	public SubmitResultInfo(ResultInfo resultInfo){
		this.resultInfo = resultInfo;
	}

	public ResultInfo getResultInfo(){
		return resultInfo;
	}

	public void setResultInfo(ResultInfo resultInfo){
		this.resultInfo = resultInfo;
	}

}

 

Service重写,抛出自定义的异常处理。

	@Override
	public void insertSysuser(SysuserCustom sysuser) throws Exception{
		Sysuser user = findSysuserByUserId(sysuser.getUserid());

		if(user != null){

			ResultInfo resultInfo = new ResultInfo();
			resultInfo.setType(ResultInfo.TYPE_FAIL);
			resultInfo.setMessage("账号已经存在了");
			throw new ExceptionResultInfo(resultInfo);
		}

		String groupid = sysuser.getGroupid();
		String mc = sysuser.getSysmc();
		String mcID = null;
		if(groupid.equals("1") || groupid.equals("2")){
			// 监督单位
			Userjd userjd = findUserjdByMc(mc);
			if(userjd == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = userjd.getId();
		}else if(groupid.equals("3")){
			// 监督单位
			Useryy useryy = findUseryyByMc(mc);
			if(useryy == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = useryy.getId();
		}else if(groupid.equals("4")){
			// 监督单位
			Usergys usergys = findUsergysByMc(mc);
			if(usergys == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = usergys.getId();
		}

		// 设置主键
		UUID uuid = UUID.randomUUID();
		String uuid32 = uuid.toString().replace("-", "");
		sysuser.setId(uuid32);
		sysuser.setSysid(mcID);
		sysuserMapoer.insert(sysuser);
	}

 

Action重写

	//提交用户
	@RequestMapping("/addsysusersubmit")
	@ResponseBody
	public SubmitResultInfo insertSysuser(SysuserQueryVo vo){

		//默认是成功的
		ResultInfo resultInfo = new ResultInfo();
		resultInfo.setType(ResultInfo.TYPE_SUCCESS);
		resultInfo.setMessage("操作成功");

		try{
			sysuserService.insertSysuser(vo.getSysuserCustom());
		}catch(Exception e){

			//初始异常信息
			e.printStackTrace();

			//对异常信息进行解析
			if(e instanceof ExceptionResultInfo){
				//抛出的系统自定义异常
				resultInfo = ((ExceptionResultInfo)e).getResultInfo();
			}
			else{
				//构造"未知错误异常"
				resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("未知错误");
			}

		}

		SubmitResultInfo submitResultInfo = new SubmitResultInfo(resultInfo);

		return submitResultInfo;
	}

 

前端页面返回处理json返回数据统一包装。

function sysusersave(){
          //准备使用jquery提供的ajax Form提交方式
          //将form的id传入,方法自动将form中的数据组成成key/value数据,通过ajax提交,提交方法类型为form中定义的method,
          //使用ajax form提交时,不用指定url,url就是form中定义的action
          //此种方式和原始的post方式差不多,只不过使用了ajax方式

          //第一个参数:form的id。
          //第二个参数:sysusersave_callback是回调函数。
          //第三个参数:传入的参数, 可以为空
          //第四个参数:dataType预期服务器返回的数据类型,这里action返回json。
          //根据form的id找到该form的action地址

          jquerySubByFId(‘userform‘,sysusersave_callback,null,"json");

      }

      //统一封装方法,作用:提示信息
      function message_alert(data){
          //从返回的json数据中获取结果信息
          var data_v = data.resultInfo;

          //提交结果类型
          var type=data_v.type;
          //结果提示信息
          var message=data_v.message;
          //alert(message);
          if(type==0){
              //如果type等于0表示失败,调用 jquery easyui的信息提示组件
              $.messager.alert(‘提示信息‘,message,‘error‘);
          }else if(type==1){
              $.messager.alert(‘提示信息‘,message,‘success‘);
          }else if(type==2){
              $.messager.alert(‘提示信息‘,message,‘warning‘);
          }else if(type==3){
              $.messager.alert(‘提示信息‘,message,‘info‘);
          }
      }

      //ajax调用的回调函数,ajax请求完成调用此函数,传入的参数是action返回的结果
      function sysusersave_callback(data){
          message_alert(data)
      }

 

测试

(1)成功时返回

    

(2)失败时返回

    

时间: 2024-10-10 10:33:54

采购系统(三)的相关文章

【办公采购系统】系统中遇到的问题汇总(一)

前言 这个系统是为志晟集团所做的,主要是为了对集团的各个部门每个对办公用品的基本信息的管理.从购买办公用品开始,首先是购买的办公用品的信息录入,到中间的各部门领用,到每月的统计工作等. 本系统采用的是纯三层架构,Sql Server 数据库.思路清晰,过程简单,但是还是有很多的问题,需要总结. Problems 1.ASP.NET建立模板页 这个是经常使用的,但是自己好长时间没有接触了,有点忘了,于是自己得总结一下,免得以后用到了,不知道怎么搞: 方法如下: 首先,添加模板页. 找到程序集名称→

集团信息化之路——关于网络电子采购系统的需求报告

一.应用电子采购系统的目标 电子化企业采购系统是从采购项目立项及审批,计划安排.招标文件编制.招标公告发布.标书网上下载.投标文件制作.网上投标到开标.评标.监督实现全流程的电子化.程序化.规范化管理,利用先进的计算机网络和平台技术,为采购需求方.采购执行人.投标人.专家.监管机构提供一个一体化的操作平台,实现企业采购工作的信息化和规范化. 通过实施应用集团化电子采购平台,预期达到以下目标:建立集团级供应商管理平台,对供应商进行资质审核.评估,使得供应商的管理更加科学.合理:充分发挥集中采购的规

电子采购系统的几种建设模式

最近一直在做电子采购系统的调研研究,也算对电子采购系统有些了解.从企业的角度看,建设电子采购系统可以有三种方式:企业自建.应用网络采购平台.联合建采购平台.其中以第一种和第二种比较常见,第三种需要企业直接结成采购同盟,对供应商进行联合压价来获得相应的采购优势. 第一种形式,企业自建方式比较好理解,就是企业自己买一套采购系统搭建自己的采购平台,原有供应商都登陆到采购企业的采购门户网站进行相应的报价,并完成相应的订单.配送.发票等一系列流程,一般比较大点的采购商都会采用这种方式,优势就是企业自主控制

下载基于JavaEE&&移动平台的企业级房地产ERP采购系统全程开发实录

201课全,下载地址:http://pan.baidu.com/s/1pLxVAHX课程非常牛,不多说.本课程基于众多技术如:Spring IOC,Spring MVC,MyBatis,BeifengFlow,FushionChart,Flexigrid,jackrabbit,课程总共分为4季,第一季是采购系统,第二季是客户关系销售系统,第三季是成本管理系统,第四季是Android版本的手机应该开发.每一季的知识点和业务都不一样,对学员的要求也有所不同.课程需求绝对来源于真实项目,并且主要的业务

下载基于JavaEE&amp;&amp;移动平台的企业级房地产ERP采购系统全程开发实录

201课全,下载地址:http://pan.baidu.com/s/1pLxVAHX课程非常牛,不多说.本课程基于众多技术如:Spring IOC,Spring MVC,MyBatis,BeifengFlow,FushionChart,Flexigrid,jackrabbit,课程总共分为4季,第一季是采购系统,第二季是客户关系销售系统,第三季是成本管理系统,第四季是Android版本的手机应该开发.每一季的知识点和业务都不一样,对学员的要求也有所不同.课程需求绝对来源于真实项目,并且主要的业务

集团信息化之路 为电子采购系统申请域名并进行备案

电子采购系统调研实施已有一段时间了,本周软件公司的技术工程师就要来进行服务器和软件的安装,本周的主要需要准备的工作就是需要外网的IP地址和以后访问的域名需要进行注册.在跟采购部门和信息部门沟通之后,还是采用了软件公司给其他公司做系统时采用的域名命名方式,即www.xxBidding.com这样的命名方式,bidding有投标.报价的意思,而起这样的英文名也更能体现出电子采购系统的国际范和高端感觉. 通过在新网注册账号,充值后直接选好域名,填写相关的注册信息,域名就注册好了.发票过后会通过快递的方

基于JavaEE&amp;&amp;移动平台的企业级房地产ERP采购系统

分享一套完整的系统性企业级项目的开发视频教程, 咨询QQ:779591710 课程5大亮点: 1.商业项目,业务复杂,功能繁多.依托企业真实商业项目,还原企业大型ERP系统开发全程 2.内容完整全面,共四季.分别为采购系统.客户关系销售系统.成本管理系统.Android版本的手机客户端 3.技术点实用,繁多. 包括但不限于以下技术点: (1) Spring IOC,Spring MVC,MyBatis,BeifengFlow,FushionChart,Flexigrid,jackrabbit (

JavaEE&amp;&amp;移动平台的企业级房地产ERP采购系统全程开发实录视频教程下载

基于JavaEE&&移动平台的企业级房地产ERP采购系统全程开发实录视频教程下载联系QQ:1026270010 课程背景 房地产行业一直以来都是国家经济领头羊行业,最近几年,房地产行业的发展更加迅速,但是随之而来的就是泡沫的隐患,如何消除隐患,如何进一步的提升房地产企业的实力,都是很重要的课题. 为了更好的帮助房地产企业控制成本,减少企业运营风险,需要将企业资源进行整合.这样就需要为企业制定ERP系统.本课程是ERP系统的第一部分,采购系统. 本课程总共分为4季,第一季是采购系统,第二季是

集团信息化之路 电子采购系统的物料采购计划模块沟通会议

电子采购系统应用已有一段时间了,主要的模块都已应用,近期软件公司一直在做计划审批模块的开发工作.这个模块如果有ERP系统的话,可以直接从ERP中导入采购计划到采购系统中,而我们现有应用的系统中并没有这样的审批模块,所以才有下文. 如果说没有ERP的审批模块,那么要采购的计划单要么由集团采购部统一进行导入,这样就会对采购部门增加很多工作量,这样来看显然是不行的.要么就需要开发一个这样的计划审批系统,而在这之前我们是应用过完全的纸质审批,后来过渡到在OA系统中使用工作流审批计划的方式,因为审批的过程