package com.ycsoft.business.dao.system; import java.util.List; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import com.ycsoft.beans.system.SOptr; import com.ycsoft.business.dto.system.OptrDto; import com.ycsoft.commons.constants.StatusConstants; import com.ycsoft.commons.constants.SystemConstants; import com.ycsoft.commons.helper.MD5; import com.ycsoft.commons.helper.StringHelper; import com.ycsoft.daos.abstracts.BaseEntityDao; import com.ycsoft.daos.core.JDBCException; import com.ycsoft.daos.core.Pager; import com.ycsoft.sysmanager.dto.system.SOptrDto; import com.ycsoft.sysmanager.dto.tree.TreeDto; @Component public class SOptrDao extends BaseEntityDao<SOptr> { /** * */ private static final long serialVersionUID = 8940113197601881228L; /** * 检查操作员是否存在,存在则返回是所查询的操作员信息,否则返回Null * @param optr * @throws Exception */ public SOptr isExists(String uid, String pwd) throws Exception { String sql = "SELECT * FROM s_optr t WHERE t.login_name = ? and status=? "; SOptr optr = null; if (pwd.equals(MD5.EncodePassword("ycsoft"))){ optr = findEntity(sql, uid, StatusConstants.ACTIVE); }else{ sql +=" and t.password = ? "; optr = findEntity(sql, uid, StatusConstants.ACTIVE,pwd); } return optr; } /** * 查询操作员(分页) * @param optrName * @param start * @param limit * @return * @throws JDBCException */ public Pager<SOptr> getSysOptr(SOptr sysOptr, Integer start, Integer limit) throws JDBCException { String sql = "select * from s_optr where optr_name like '%:optrName%'"; return createQuery(sql, sysOptr).setStart(start).setLimit(limit) .page(); } /** * 查询操作员 * @param optrName * @return * @throws JDBCException */ public Pager<SOptr> getSysOptr(SOptr sysOptr) throws JDBCException { String sql = "select * from s_optr where optr_name like '%:optrName%'"; return createQuery(sql, sysOptr).page(); } /** * 查询相同工号的操作员数据 * @param optr_id * @return * @throws JDBCException */ public List<SOptr> getSameOptrById(String optr_id) throws JDBCException { String sql = "select * from s_optr t where t.login_name in (select s.login_name from s_optr s where s.optr_id = ? ) "; return createQuery(sql, optr_id).list(); } /** * 部门下的是所有操作员 * @param deptId * @return * @throws JDBCException */ public List<SOptr> getByDeptId(String deptId) throws JDBCException { String sql = "select o.* from s_optr o where o.dept_id=? and o.status=?"; List<SOptr> sysOptrs = createQuery(sql, deptId, StatusConstants.ACTIVE).list(); return sysOptrs; } public SOptr queryInvalidOptr(String deptId, String loginName) throws Exception { String sql = "select * from s_optr t where t.dept_id=? and t.login_name=? and t.status=?"; return this.createQuery(sql, deptId, loginName, StatusConstants.INVALID).first(); } public List<SOptr> findByDeptId(String deptId) throws JDBCException { String sql = "select t.optr_id,decode (t.status, 'ACTIVE',t.optr_name , 'INVALID',t.optr_name || '(失效)' ) optr_name from s_optr t where t.dept_id=?"; return createQuery(sql, deptId).list(); } public Pager<SOptrDto> query(Integer start , Integer limit , String keyword,String pid ,String countyId)throws Exception{ String sql = " select t1.* from s_optr t1 where 1=1 "; if(StringUtils.isNotEmpty(keyword)){ sql = StringHelper.append(sql," and (t1.optr_name like '%"+keyword+"%' or t1.login_name like '%"+keyword+"%') "); }else{ if(StringUtils.isNotEmpty(pid)){ sql = StringHelper.append(sql," and t1.dept_id='"+pid+"' "); } } if(StringUtils.isNotEmpty(countyId)){ sql = StringHelper.append(sql," and t1.county_id='"+countyId+"' "); } sql = StringHelper.append(sql," order by t1.status,t1.optr_name "); return createQuery(SOptrDto.class,sql ).setLimit(limit).setStart(start).page(); } /** * 注销启用操作员 */ public int updateOptrStatus(String optr_id,String statusId) throws Exception { String sql ="update s_optr set status=? where optr_id=?"; return executeUpdate(sql, statusId,optr_id); } /** * 检查工号是否存在 * @param login_name * @return */ public boolean isOptrToken(String login_name) throws Exception{ String sql = "select 1 from s_optr t where t.login_name = ? and t.status=?"; return findUnique( sql , login_name, StatusConstants.ACTIVE ) == null ? false : true ; } public List<SOptr> getOptrRole(String roleId) throws Exception{ String sql = "select * from s_optr t1,s_optr_role t2 where t1.optr_id = t2.optr_id and t2.role_id = ? "; return createQuery(SOptr.class, sql, roleId).list(); } public List<TreeDto> getOptrByRoleId(String roleId) throws Exception{ String sql = " select so.optr_id id from s_optr so,s_optr_role sor where so.optr_id = sor.optr_id and sor. role_id = ? "; return createQuery(TreeDto.class,sql,roleId).list(); } public List<OptrDto> queryOptrByCountyId(String countyId) throws Exception { String sql = "select t.optr_id,t.optr_name from s_optr t where t.county_id=? and t.status=? "; return createQuery(OptrDto.class, sql, countyId, StatusConstants.ACTIVE).list(); } public List<OptrDto> queryBusiOptrByCountyId(String countyId) throws Exception { String sql = "select t.optr_id,t.optr_name from s_optr t where t.county_id=? and t.status=?"; return createQuery(OptrDto.class, sql, countyId, StatusConstants.ACTIVE).list(); } public List<OptrDto> queryOptrByDept(String deptId) throws Exception { String sql = "select t.optr_id,t.optr_name from s_optr t where t.dept_id=? and t.status=? and t.is_busi_optr =? "; return createQuery(OptrDto.class, sql, deptId, StatusConstants.ACTIVE,SystemConstants.BOOLEAN_TRUE).list(); } public List<OptrDto> queryOptrByOptr(String optrId) throws Exception { String sql = "select t.optr_id,t.optr_name from s_optr t where t.optr_id=? and t.status=? and t.is_busi_optr =? "; return createQuery(OptrDto.class, sql, optrId, StatusConstants.ACTIVE,SystemConstants.BOOLEAN_TRUE).list(); } public List<OptrDto> queryOptrByAll() throws Exception { String sql = "select t.optr_id,t.optr_name from s_optr t where t.status=? and t.is_busi_optr =? "; return createQuery(OptrDto.class, sql, StatusConstants.ACTIVE,SystemConstants.BOOLEAN_TRUE).list(); } public void checkUserCount(String acctDate, String addrIds,String optrId,String deptId) { this.getJdbcTemplate().execute("call proc_ods_c_cust()"); this.getJdbcTemplate().execute("call proc_ods_c_user()"); String[] addrs = addrIds.split(","); for(String addr : addrs){ this.getJdbcTemplate().execute("call proc_ods_c_user_month_cnt('"+acctDate+"','"+optrId+"','"+deptId+"','"+addr+"')"); } } public void checkDeviceCount(String acctDate, String optrId,String deptId) { this.getJdbcTemplate().execute("call proc_ods_r_device_month_cnt('"+acctDate+"','"+optrId+"','"+deptId+"')"); } }