YrdzModel package cn.hnisi.gdrk.models.hjdj.yrdz; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.faces.context.FacesContext; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallbackWithoutResult; import cn.hnisi.architecture.AbstractModel; import cn.hnisi.gdrk.data.dzgl.xxdz.Xxdz; import cn.hnisi.gdrk.data.hjdj.rkjbxx.Rkjbxx; import cn.hnisi.gdrk.data.hjdj.rkjbxx.RkjbxxDAO; import cn.hnisi.gdrk.data.hjdj.rkjbxx.RkjbxxDAOEx; import cn.hnisi.gdrk.data.hjdj.yrdzdj.Yrdzdj; import cn.hnisi.gdrk.data.hjdj.yrdzdj.YrdzdjDAOEx; import cn.hnisi.gdrk.models.hjsp.common.XxdzModel; import cn.hnisi.gdrk.utils.BizGlobalConstants; import cn.hnisi.gdrk.utils.CommonFunction; import cn.hnisi.gdrk.utils.GenarateConnection; import cn.hnisi.gdrk.utils.GlobalConstants; import cn.hnisi.gdrk.workflow.jbpmengine.util.QueryConVo; /** * * @author yanghanming * @function 户籍登记一户多址登记 */ public class YrdzModel extends AbstractModel { private static final Log log = LogFactory.getLog(YrdzModel.class); private RkjbxxDAOEx rkjbxxDAOEx; private YrdzdjDAOEx yrdzdjDAOEx; private Yrdzdj yrdzdj; private Xxdz xxdzmx; private Rkjbxx rkjbxx; // 进入修改页面时,临时存储yrdzdjList中的对象,并将对应修改对象付给tempYrdzdjForModify private Yrdzdj tempYrdzdj; // 用来保存删除的对象 private Yrdzdj tempYrdzdjForRemove; private XxdzModel xxdzModel; // 通过查询条件查询的结果放到此list中 private List<Rkjbxx> rkjbxxList; // 通过公民身份号码查询一人多址登记表放到此list中 private List<Yrdzdj> yrdzList; // 查询地址结果 private List<Xxdz> xxdzList; // 将选择的人员存到此list中 private List<Rkjbxx> selectedList; // 查询条件变量 private String gmsfhm4BriefQuery; private String xm4BriefQuery; private String hh4BriefQuery; private String yrdzdjJzzkmc; private String yrdzdjJzzk; private String[] dsxx;// 地市数组 private String ywlsh;// 业务流水号 // 控制新增按钮 private boolean bolCanAdd = true; // 控制增加居住地址页面的保存按钮 private boolean bolCanSave = true; private String selectedValue; // 页面配置 // 从立户地址页面跳转到本页面 private final static String FROMJZDZ_OUTCOME = "YRDZJZDZ_PARENT"; // 转到立户地址页面 private final static String JZDZ_OUTCOME = "JZDZ"; // 转到修改居住地址页面 private final static String MODIFY_OUTCOME = "MODIFY"; // 转到新增居住地址页面 private final static String ADDQTJZDZ_OUTCOME = "AddQtjzdzPane"; // 转到首页面 private final static String YRDZPANE_OUTCOME = "YrdzPane"; private final static String SELF_OUTCOME = "SELF"; /* 分页变量 */ // 记录数 protected int rowCount2 = 0; // 总页数 protected int pageCount2 = 0; // 每页显示的条数 protected int pageSize2 = GlobalConstants.DEFAULT_PAGE_SIZE; // 当前页码 protected int currentPageNumber2 = GlobalConstants.DEFAULT_PAGE_NUMBER; protected int gotoPageNumber2 = GlobalConstants.DEFAULT_PAGE_NUMBER; @SuppressWarnings("unchecked") public YrdzModel() { selectedList = new ArrayList(); } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 查询 */ protected String doBriefQuery() { // 清空一人多址列表 yrdzList = null; this.setRowCount2(0); String errMsg = findByQueryCondition(); fromOutcome = SELF_OUTCOME; return errMsg; } @SuppressWarnings("unchecked") public String findByQueryCondition() { String errMessage = null; List list = new ArrayList<QueryConVo>(); // 构造查询条件 if (StringUtils.isNotBlank(this.getGmsfhm4BriefQuery())) { QueryConVo conVo = new QueryConVo(RkjbxxDAO.GMSFHM, this .getGmsfhm4BriefQuery()); list.add(conVo); } if (StringUtils.isNotBlank(this.getXm4BriefQuery())) { QueryConVo conVo = new QueryConVo(RkjbxxDAO.XM, this .getXm4BriefQuery()); list.add(conVo); } if (StringUtils.isNotBlank(this.getHh4BriefQuery())) { QueryConVo conVo = new QueryConVo(RkjbxxDAO.HH, this .getHh4BriefQuery()); list.add(conVo); } GenarateConnection gc = (GenarateConnection) getCtx().getBean( BizGlobalConstants.X_GCONNECTION); // 根据条件从人口基本信息表里面查找数据 String hql = "from Rkjbxx as ti where 1=1 and ti.zt='1'"; try { rkjbxxList = gc.findListForPage(hql, list, this .getCurrentPageNumber(), this.getPageSize(), null); rowCount = gc.findCountForPage(hql, list, this .getCurrentPageNumber(), this.getPageSize()); setRowCount4Tmp(rowCount); } catch (Exception e) { e.printStackTrace(); log.equals(e); errMessage = e.toString(); } bolCanAdd = false; return errMessage; } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 点击查询出来的某个人,通过参数来查询yrdzdj表 */ @SuppressWarnings("unchecked") public String doSelectBriefQueryResult() { List list = new ArrayList<QueryConVo>(); String hql = null; GenarateConnection gc = (GenarateConnection) getCtx().getBean( BizGlobalConstants.X_GCONNECTION); Map requestParams = FacesContext.getCurrentInstance() .getExternalContext().getRequestParameterMap(); String id = (String) requestParams.get("taskid"); for (int i = 0; rkjbxxList != null && i < rkjbxxList.size(); i++) { if (id.equals(rkjbxxList.get(i).getId())) { rkjbxx=(Rkjbxx)rkjbxxList.get(i); break; } } hql = "from Yrdzdj as ti where ti.gmsfhm='" + rkjbxx.getGmsfhm() + "'"; try { this.yrdzList = gc.findListForPage(hql, list, this .getCurrentPageNumber2(), this.getPageSize2(), null); this.rowCount2 = gc.findCountForPage(hql, list, this .getCurrentPageNumber2(), this.getPageSize2()); this.setRowCount4Tmp(rowCount2); } catch (Exception e) { e.printStackTrace(); } bolCanAdd = false; return null; } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 进入修改页面 */ @SuppressWarnings("unchecked") public String toModify() { Map requestParams = FacesContext.getCurrentInstance() .getExternalContext().getRequestParameterMap(); String id = (String) requestParams.get("id"); for (int i = 0; yrdzList != null && i < yrdzList.size(); i++) { if (StringUtils.equals(yrdzList.get(i).getId(), id)) { tempYrdzdj = (Yrdzdj) yrdzList.get(i); break; } } return MODIFY_OUTCOME; } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 修改后进行保存 */ public String update() { transactionTemplate.execute(new TransactionCallbackWithoutResult() { public void doInTransactionWithoutResult( TransactionStatus transactionStatus) { yrdzdjDAOEx.attachDirty(tempYrdzdj); } }); return null; } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 删除居住地址 */ @SuppressWarnings("unchecked") public String remove() { transactionTemplate.execute(new TransactionCallbackWithoutResult() { public void doInTransactionWithoutResult( TransactionStatus transactionStatus) { Map requestParams = FacesContext.getCurrentInstance() .getExternalContext().getRequestParameterMap(); String id = (String) requestParams.get("id"); for (int i = 0; yrdzList != null && i < yrdzList.size(); i++) { tempYrdzdjForRemove = (Yrdzdj) yrdzList.get(i); if (tempYrdzdjForRemove.getId().equals(id)) { yrdzList.remove(i); break; } } yrdzdjDAOEx.delete(tempYrdzdjForRemove); } }); this.setRowCount2(yrdzList.size()); this.setRowCount(rkjbxxList.size()); return null; } /** * * @author yanghanming * @createTime Sep 4, 2009 * @function 点击新增时,进行跳转,跳转到增加居住地址页面 */ @SuppressWarnings("unchecked") public String addButton() { // 返回点第二次新增,不会出现空指针 selectedList = new ArrayList(); Map requestParams = FacesContext.getCurrentInstance() .getExternalContext().getRequestParameterMap(); String id = (String) requestParams.get("rkjbxxList_selected&#