List对象集合的遍历、对象赋值和向前台传递

List对象集合的遍历、对象赋值和向前台传递

在前几天的编程过程中,发现前台需要的数据不完整。从数据库查出来的字段不够,如果再多表联查或者左联会有我不想要的重复数据,而且会使SQL更加复杂,不利于维护。所有我决定用私有方法单独查出相应字段,然后通过增强for给每一个对象赋值。这样免除了多余条,也给前台传递了完整的数据。

 // 根据entName:企业名称,structureCode:登录人部门代码 roleCodes:权限代码 查询待审查列表部分字段
        DataListByPageDTO<SafetyDeptAuditDTO> list = safetyDeptAuditDao.querySafetyDeptAuditList(entName, structureCode, roleCodes, page, rows);
        //创建一个新SafetyDeptAuditDTO集合用来存放处理后的对象
        List<SafetyDeptAuditDTO> newlist = new ArrayList<>();
        //增强for循环 遍历list
        for(SafetyDeptAuditDTO safetyDeptAuditDTO : list.getDataList()){
     
            //获取对应字典节点值
            CodeForEntDTO codeForEntDTO = safetyDeptAuditDao.enttypeToContent(safetyDeptAuditDTO.getEnttype());
            //设置企业类型,取到节点值则置值,无节点值置空
            if(codeForEntDTO!=null) {
     
                //设置企业类型
                safetyDeptAuditDTO.setEnttype(codeForEntDTO.getContent());
            }else {
     
                //设置企业类型空
                safetyDeptAuditDTO.setEnttype(" ");
            }
            //将处理好的对象放入新集合
            newlist.add(safetyDeptAuditDTO);
        }

私有方法,获取对应企业类型

    public CodeForEntDTO enttypeToContent(String enttype){
     
        // 查询sql
        String sql = "select content from gs_qylx where code=:enttype ";
        // 查询条件map
        Map<String, Object> queryMap = new HashMap<>(2);
        // 市场主体标识
        queryMap.put("enttype", enttype);
        // 中文字段信息
        return basicDao.getByMap(sql, queryMap, CodeForEntDTO.class);
    }

SQL

 // 组装查询SQL头语句
        StringBuilder querySql = new StringBuilder(" select t1.id,t1.pripid,t1.openo,t2.entname,t2.enttype,t2.dom ");
        // 组装统计SQL头语句
        StringBuilder countSql = new StringBuilder(" select count(1)  ");
        // 组装表名语句 公司企业登记安全审查流程表,公司企业登记流程表
        StringBuilder tableSql = new StringBuilder(" from gs_qydj_aqsc_lc t1,gs_qydj_lc t2 ");
        // 定义一个where查询sql的字符串 状态为1的待审查
        StringBuilder whereSql = new StringBuilder(" where t2.pripid=t1.pripid and t1.status='1' ");

这样的话,我无需因为一个字段继续联查第三张表,前台需要的所有字段都放在对象内传递了。同时如果后期要对前台增加字段或其他操作,在for内做相应赋值即可。

你可能感兴趣的:(java,java)