Acitiviti工作流实现查询待办、已办、办结、撤销等任务

1.首先需要建立几张视图

    由于数据库方言不一样,以及系统的用户角色表也有所差异,根据自己需求改动SQL文件

1.1 V_ACTLIST 任务视图表(用于查询单个审批流程的具体过程以及意见)

SELECT
	T.NAME_ AS NAME,
	T.END_TIME_ AS BLTIME,
	U.USERNAME AS USERNAME,
	T.PROC_INST_ID_ AS procInstId,
	C.MESSAGE_ AS clyj,
	T.START_TIME_,
	D.DeptName
FROM
	ASSETSMETADATA.ACT_HI_TASKINST T
LEFT OUTER JOIN 
(SELECT * FROM IPRIVILAGEMETADATA.USERS)U 
ON T.ASSIGNEE_ = U.PKID
LEFT OUTER JOIN 
(SELECT * FROM IPRIVILAGEMETADATA.DEPARTMENTS)D 
ON D.Pkid = U.DeptId
LEFT OUTER JOIN 
(SELECT * FROM ASSETSMETADATA.ACT_HI_COMMENT)C 
ON T.ID_ = C.TASK_ID_

1.2 V_TASKLIST_WSB 未上报任务视图表

SELECT
	cast('' as nvarchar2(255)) AS PROC_INST_ID_,
	cast('' as nvarchar2(255)) AS END_ACT_ID_,
	cast('未上报' as nvarchar2(255)) AS actName,
	cast('未上报' as nvarchar2(255)) AS actName_T,
	cast('' as nvarchar2(255)) AS assignee,
	cast('' as nvarchar2(255)) AS candidate,
	-1 AS taskstatus,
	cast('' as DATE) AS bltime,
	cast('' as nvarchar2(255)) AS prdekey,
	cast('' as nvarchar2(255)) AS prdename FROM ASSETSMETADATA.ACT_ID_USER

1.3 V_TASKLIST_DB 待办任务视图表

SELECT
	cast(A.PROC_INST_ID_ as nvarchar2(255)) PROC_INST_ID_,
	cast('' as nvarchar2(255)) END_ACT_ID_,
	cast(A.NAME_ as nvarchar2(255)) actName,
	cast(A.NAME_ as nvarchar2(255)) actName_T,
	cast(A.ASSIGNEE_ as nvarchar2(255)) assignee,
	cast(R.UserID as nvarchar2(255)) candidate,
	2 AS taskstatus,
	cast('' as DATE) bltime,
	cast(PRDE.KEY_ as nvarchar2(255)) prdekey,
	cast(PRDE.NAME_ as nvarchar2(255)) prdename
FROM
	ASSETSMETADATA.ACT_RU_TASK A
LEFT OUTER JOIN ASSETSMETADATA.ACT_RE_PROCDEF PRDE ON A.PROC_DEF_ID_ = PRDE.ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RU_IDENTITYLINK IDEN ON IDEN.TASK_ID_ = A.ID_
LEFT OUTER JOIN IPRIVILAGEMETADATA.ROLEUSERREF R ON IDEN.GROUP_ID_ = R.ROLEID

1.4 V_TASKLIST_YB 已办任务视图表

SELECT DISTINCT
	cast(H.PROC_INST_ID_ as nvarchar2(255)) PROC_INST_ID_,
	cast(H.END_ACT_ID_ as nvarchar2(255)) END_ACT_ID_,
	cast(A.NAME_ as nvarchar2(255)) actName,
	cast(T.NAME_ as nvarchar2(255)) actName_T,
	cast(T.ASSIGNEE_ as nvarchar2(255)) assignee,
	cast('' as nvarchar2(255)) candidate,
	2 AS taskstatus,
	T.END_TIME_  bltime,
	cast(PRDE.KEY_ as nvarchar2(255)) prdekey,
	cast(PRDE.NAME_ as nvarchar2(255)) prdename
FROM
	ASSETSMETADATA.ACT_HI_PROCINST H
LEFT OUTER JOIN ASSETSMETADATA.ACT_HI_TASKINST T ON H.PROC_INST_ID_ = T.PROC_INST_ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RE_PROCDEF PRDE ON H .PROC_DEF_ID_ = PRDE.ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RU_TASK A ON H.PROC_INST_ID_ = A.PROC_INST_ID_
WHERE
	(H.END_TIME_ IS NULL)
AND (T.END_TIME_ IS NOT NULL)

1.5 V_TASKLIST_SYYB 所有已办任务视图表

SELECT DISTINCT
	cast(H.PROC_INST_ID_ as nvarchar2(255)) PROC_INST_ID_,
	cast(H.END_ACT_ID_ as nvarchar2(255)) END_ACT_ID_,
	cast(NVL(A.NAME_,NVL2(H.END_ACT_ID_, '任务完结','撤销完结')) as nvarchar2(255))  AS actName,
	cast(T.NAME_ as nvarchar2(255)) AS actName_T,
	cast(T.ASSIGNEE_ as nvarchar2(255)) AS assignee,
	cast('' as nvarchar2(255)) AS candidate,
	2 AS taskstatus,
	T.END_TIME_ AS bltime,
	cast(PRDE.KEY_ as nvarchar2(255)) AS prdekey,
	cast(PRDE.NAME_  as nvarchar2(255)) AS prdename
FROM
	ASSETSMETADATA.ACT_HI_PROCINST H
LEFT OUTER JOIN ASSETSMETADATA.ACT_HI_TASKINST T ON H.PROC_INST_ID_ = T.PROC_INST_ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RE_PROCDEF PRDE ON H.PROC_DEF_ID_ = PRDE.ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RU_TASK A ON H.PROC_INST_ID_ = A.PROC_INST_ID_
WHERE
	(T.END_TIME_ IS NOT NULL)
AND (
	NOT EXISTS (
		SELECT
			PROC_INST_ID_
		FROM
			ASSETSMETADATA.V_TASKLIST_DB D
		WHERE
		(PROC_INST_ID_ = H.PROC_INST_ID_)
		AND (candidate = T.ASSIGNEE_)
		AND (actName_T = T.NAME_)
		OR (
			PROC_INST_ID_ = H.PROC_INST_ID_
		)
		AND (actName_T = T.NAME_)
		AND (assignee = T.ASSIGNEE_)
		OR (PROC_INST_ID_ = H.PROC_INST_ID_)
		AND (candidate = T.ASSIGNEE_)
		AND (actName LIKE '%上报%')
		AND (T.NAME_ LIKE '%上报%')
		OR (PROC_INST_ID_ = H.PROC_INST_ID_)
		AND (assignee = T.ASSIGNEE_)
		AND (actName LIKE '%上报%')
		AND (T.NAME_ LIKE '%上报%')
	)
)
ORDER BY
	bltime DESC

1.5 V_TASKLIST_BJ 办结任务视图表

SELECT DISTINCT
	cast(H.PROC_INST_ID_ as nvarchar2(255)) PROC_INST_ID_,
	cast(H.END_ACT_ID_ as nvarchar2(255)) END_ACT_ID_,
	cast('结束' as nvarchar2(255)) actName,
	cast('结束' as nvarchar2(255)) actName_T,
	cast(T.ASSIGNEE_ as nvarchar2(255))  assignee,
	cast('' as nvarchar2(255))  candidate,
	3 taskstatus,
	T.END_TIME_  bltime,
	cast(PRDE.KEY_ as nvarchar2(255))  prdekey,
	cast(PRDE.NAME_ as nvarchar2(255))  prdename
FROM
	ASSETSMETADATA.ACT_HI_PROCINST H
LEFT OUTER JOIN 
	(SELECT * FROM ASSETSMETADATA.ACT_HI_TASKINST)T
ON H.PROC_INST_ID_ = T.PROC_INST_ID_
LEFT OUTER JOIN 
  (SELECT * FROM ASSETSMETADATA.ACT_RE_PROCDEF)PRDE 
ON H.PROC_DEF_ID_ = PRDE.ID_
WHERE
	(H.END_TIME_ IS NOT NULL) AND (H.END_ACT_ID_ IS NOT NULL)

1.6 V_TASKLIST_CX 撤销任务视图表

SELECT DISTINCT
	cast(H.PROC_INST_ID_ as nvarchar2(255)) PROC_INST_ID_,
	cast(H.END_ACT_ID_ as nvarchar2(255)) END_ACT_ID_,
	cast('结束' as nvarchar2(255)) AS actName,
	cast('结束' as nvarchar2(255)) AS actName_T,
	cast(T.ASSIGNEE_ as nvarchar2(255)) AS assignee,
	cast('' as nvarchar2(255)) AS candidate,
	5 AS taskstatus,
	T.END_TIME_ AS bltime,
	cast(PRDE.KEY_ as nvarchar2(255)) AS prdekey,
	cast(PRDE.NAME_ as nvarchar2(255)) AS prdename
FROM
	ASSETSMETADATA.ACT_HI_PROCINST H
LEFT OUTER JOIN ASSETSMETADATA.ACT_HI_TASKINST  T ON H.PROC_INST_ID_ = T.PROC_INST_ID_
LEFT OUTER JOIN ASSETSMETADATA.ACT_RE_PROCDEF  PRDE ON H.PROC_DEF_ID_ = PRDE.ID_
WHERE
	(H.END_TIME_ IS NOT NULL)
AND (H.END_ACT_ID_ IS NULL)
2.后台代码逻辑
	@Override
	public ArrayList findActList(Integer rows,Integer page, HashMap paramMap) {
		String sql = "";
		if(paramMap.get("checkmessage")!=null&&StringUtils.isNotEmpty(paramMap.get("checkmessage").toString())){
//			sql = "select * from ASSETSMETADATA.V_ACTLIST V where PROCINSTID= ? and clyj is not null and clyj <> '完成' ORDER BY START_TIME_";
			sql = "select * from ASSETSMETADATA.V_ACTLIST V where PROCINSTID= ? and clyj is not null ORDER BY START_TIME_";
		}else{
			sql = "SELECT V.*" + " FROM ASSETSMETADATA.V_ACTLIST V WHERE procInstId = ? ORDER BY V.START_TIME_";
		}
		List<Object> paramList = new ArrayList<Object>();
		paramList.add(paramMap.get("procInstId").toString());

		Session session = sessionFactory.getCurrentSession();
		SQLQuery query = session.createSQLQuery(sql);
		query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

		int firstNum = (page - 1) * rows;
		int lastNum = firstNum + rows;
		query.setFirstResult(firstNum);
		query.setMaxResults(lastNum);

		for (int i = 0; i < paramList.size(); i++) {
			query.setParameter(i, paramList.get(i));
		}
		return (ArrayList) query.list();
	}

	@Override
	public int findActListCount(HashMap paramMap) {
		String sql = "";
		if(paramMap.get("checkmessage")!=null&&StringUtils.isNotEmpty(paramMap.get("checkmessage").toString())){
			sql = "select count(*) from ASSETSMETADATA.V_ACTLIST V where PROCINSTID= ? and clyj is not null and clyj <> '完成' ORDER BY START_TIME_";
		}else{
			sql = "SELECT count(*)" + " FROM ASSETSMETADATA.V_ACTLIST V WHERE procInstId = ? ORDER BY V.START_TIME_";
		}
		List<Object> paramList = new ArrayList<Object>();
		paramList.add(paramMap.get("procInstId").toString());
		Session session = sessionFactory.getCurrentSession();
		SQLQuery query = session.createSQLQuery(sql);
		for (int i = 0; i < paramList.size(); i++) {
			query.setParameter(i, paramList.get(i));
		}
		List result = query.list();
		if (result.size() > 0) {
			return Integer.parseInt(result.get(0) == null ? "" : result.get(0).toString());
		}
		return 0;
	}

	@Override
	public ArrayList findList(HashMap<String, Object> paramMap, String tableName, String userid, String taskstatus,
			Integer rows,Integer page) {
		// sql 参数
		List<Object> paramList = new ArrayList<Object>();
		String sql = "";
		// 0.查询全部的任务
		if ("0".equals(taskstatus)) {
			sql = "SELECT * FROM (" + "SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_DB V ON tb.procInstId = v.PROC_INST_ID_ WHERE (v.ASSIGNEE = '" + userid
					+ "' OR v.CANDIDATE = '" + userid + "') ";

			sql += " UNION SELECT tb.*,V.* FROM " + tableName;


//			sql += " SELECT * FROM( SELECT tb.*,V.* FROM " + tableName
			sql 	+= " tb left join ASSETSMETADATA.V_TASKLIST_YB V ON tb.procInstId = v.PROC_INST_ID_ WHERE  V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ )  AND (v.ASSIGNEE = '" + userid + "' OR v.CANDIDATE = '"
					+ userid + "') ";


			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_BJ V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "' AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_WSB V ON tb.procInstId = v.PROC_INST_ID_ WHERE tb.reportStatus = 0 and tb.applyuser='"+userid+"'";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_CX V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "'";
			sql += ") t WHERE 1=1 ";

		}
		// 查询代办的任务
		if ("1".equals(taskstatus)) {
			sql = "SELECT * FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_DB V ON t.procInstId = v.PROC_INST_ID_  WHERE (v.ASSIGNEE = ? OR v.CANDIDATE = ?) ";
			paramList.add(userid);
			paramList.add(userid);
		}
		// 查询已办
		if ("2".equals(taskstatus)) {
			sql = "SELECT * FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_YB V ON t.procInstId = v.PROC_INST_ID_ WHERE (v.ASSIGNEE = ? OR v.CANDIDATE = ?) AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ ) ";
			paramList.add(userid);
			paramList.add(userid);
		}
		// 查询办结的
		if ("3".equals(taskstatus)) {
			sql = "SELECT * FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_BJ V ON t.procInstId = v.PROC_INST_ID_ WHERE V.ASSIGNEE = ? AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ ) ";
			paramList.add(userid);
		}
		// 查询办结的
		if ("4".equals(taskstatus)) {
			sql = "SELECT * FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_WSB V ON t.procInstId = v.PROC_INST_ID_ WHERE t.reportStatus = 0 ";
		}
		// 查询撤销的
		if ("5".equals(taskstatus)) {
			sql = "SELECT * FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_CX V ON t.procInstId = v.PROC_INST_ID_ WHERE V.ASSIGNEE = ? ";
			paramList.add(userid);
		}

		// 购置查询
		if ("6".equals(taskstatus)) {
			sql = "SELECT * FROM (";
			sql += " SELECT tb.*,V.* FROM " + tableName
					+ " tb left join  ASSETSMETADATA.V_TASKLIST_YB V ON tb.procInstId = v.PROC_INST_ID_ WHERE  (v.ASSIGNEE = '" + userid
					+ "' OR v.CANDIDATE = '" + userid + "') AND "
					+ " v.PROC_INST_ID_ Not IN(SELECT V.PROC_INST_ID_ FROM  ASSETSMETADATA.V_TASKLIST_DB V WHERE (V.ASSIGNEE = '"
					+ userid + "' OR V.CANDIDATE = '" + userid
					+ "') ) AND V.BLTIME in ( SELECT max(bltime) from  ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join  ASSETSMETADATA.V_TASKLIST_BJ V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "' AND V.BLTIME in ( SELECT max(bltime) from  ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += ") t WHERE 1=1 ";

		}

		// 便利前台查询条件的paramMap
		for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
			if (entry!=null&&entry.getValue() != null && !entry.getValue().equals("")&& !entry.getValue().equals("null")&& !entry.getKey().equals("null")) {
				sql += " AND  t." + entry.getKey() + " like ? ";
				paramList.add(entry.getValue());
			}
		}

		sql += " ORDER BY t.createTime DESC";

		Session session = sessionFactory.getCurrentSession();
		SQLQuery query = session.createSQLQuery(sql);
		query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
		int firstNum = (page - 1) * rows;
		int lastNum = firstNum + rows;
		query.setFirstResult(firstNum);
		query.setMaxResults(lastNum);

		for (int i = 0; i < paramList.size(); i++) {
			query.setParameter(i, paramList.get(i));
		}
		return (ArrayList) query.list();
	}

	@Override
	public int findListCount(HashMap<String, Object> paramMap, String tableName, String userid, String taskstatus) {
		// sql 参数
		List<Object> paramList = new ArrayList<Object>();
		String sql = "";
		// 0.查询全部的任务
		if ("0".equals(taskstatus)) {
			sql = "SELECT count(*) FROM (" + "SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_DB V ON tb.procInstId = v.PROC_INST_ID_ WHERE (v.ASSIGNEE = '" + userid
					+ "' OR v.CANDIDATE = '" + userid + "') ";

			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_YB V ON tb.procInstId = v.PROC_INST_ID_ WHERE  V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ )  AND (v.ASSIGNEE = '" + userid + "' OR v.CANDIDATE = '"
					+ userid + "') ";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_BJ V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "' AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_WSB V ON tb.procInstId = v.PROC_INST_ID_ WHERE tb.reportStatus = 0";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join ASSETSMETADATA.V_TASKLIST_CX V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "'";
			sql += ") t WHERE 1=1 ";

		}
		// 查询代办的任务
		if ("1".equals(taskstatus)) {
			sql = "SELECT count(*) FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_DB V ON t.procInstId = v.PROC_INST_ID_  WHERE (v.ASSIGNEE = ? OR v.CANDIDATE = ?) ";
			paramList.add(userid);
			paramList.add(userid);
		}
		// 查询已办
		if ("2".equals(taskstatus)) {
			sql = "SELECT count(*) FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_YB V ON t.procInstId = v.PROC_INST_ID_ WHERE (v.ASSIGNEE = ? OR v.CANDIDATE = ?) AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ ) ";
			paramList.add(userid);
			paramList.add(userid);
		}
		// 查询办结的
		if ("3".equals(taskstatus)) {
			sql = "SELECT count(*) FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_BJ V ON t.procInstId = v.PROC_INST_ID_ WHERE V.ASSIGNEE = ? AND V.BLTIME in ( SELECT max(bltime) from ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '"
					+ userid + "' group by b.PROC_INST_ID_ ) ";
			paramList.add(userid);
		}
		// 查询办结的
		if ("4".equals(taskstatus)) {
			sql = "SELECT count(*) FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_WSB V ON t.procInstId = v.PROC_INST_ID_ WHERE t.reportStatus = 0 ";
		}
		// 查询撤销的
		if ("5".equals(taskstatus)) {
			sql = "SELECT count(*) FROM " + tableName
					+ " t left join ASSETSMETADATA.V_TASKLIST_CX V ON t.procInstId = v.PROC_INST_ID_ WHERE V.ASSIGNEE = ? ";
			paramList.add(userid);
		}

		// 购置查询
		if ("6".equals(taskstatus)) {
			sql = "SELECT count(*) FROM (";
			sql += " SELECT tb.*,V.* FROM " + tableName
					+ " tb left join  ASSETSMETADATA.V_TASKLIST_YB V ON tb.procInstId = v.PROC_INST_ID_ WHERE  (v.ASSIGNEE = '" + userid
					+ "' OR v.CANDIDATE = '" + userid + "') AND "
					+ " v.PROC_INST_ID_ Not IN(SELECT V.PROC_INST_ID_ FROM  ASSETSMETADATA.V_TASKLIST_DB V WHERE (V.ASSIGNEE = '"
					+ userid + "' OR V.CANDIDATE = '" + userid
					+ "') ) AND V.BLTIME in ( SELECT max(bltime) from  ASSETSMETADATA.V_TASKLIST_YB B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += " UNION SELECT tb.*,V.* FROM " + tableName
					+ " tb left join  ASSETSMETADATA.V_TASKLIST_BJ V ON tb.procInstId = v.PROC_INST_ID_ WHERE v.ASSIGNEE = '" + userid
					+ "' AND V.BLTIME in ( SELECT max(bltime) from  ASSETSMETADATA.V_TASKLIST_BJ B where B.ASSIGNEE = '" + userid
					+ "' group by b.PROC_INST_ID_ ) ";
			sql += ") t WHERE 1=1 ";

		}
		// 便利前台查询条件的paramMap
		for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
			if (entry!=null&&entry.getValue() != null && !entry.getValue().equals("")&& !entry.getValue().equals("null")&& !entry.getKey().equals("null")) {
				sql += " AND  t." + entry.getKey() + " like ? ";
				paramList.add(entry.getValue());
			}
		}

		Session session = sessionFactory.getCurrentSession();
		SQLQuery query = session.createSQLQuery(sql);
		for (int i = 0; i < paramList.size(); i++) {
			query.setParameter(i, paramList.get(i));
		}
		Object obj = query.uniqueResult();
		return  Integer.parseInt(obj.toString());
	}







  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值