|  | @@ -112,6 +112,7 @@ public class CwReimbursementInfoService {
 | 
	
		
			
				|  |  |           * c表是sysUser
 | 
	
		
			
				|  |  |           */
 | 
	
		
			
				|  |  |          queryWrapper.eq("a.del_flag", 0);
 | 
	
		
			
				|  |  | +        queryWrapper.notIn("a.business_flag",'0');
 | 
	
		
			
				|  |  |          // 报销项目
 | 
	
		
			
				|  |  |          if (StringUtils.isNotEmpty(dto.getProject())) {
 | 
	
		
			
				|  |  |              queryWrapper.apply("(b.project_id Like {0} OR b.project_name LIKE {1})", "%" + dto.getProject() + "%", "%" + dto.getProject() + "%");
 | 
	
	
		
			
				|  | @@ -270,6 +271,178 @@ public class CwReimbursementInfoService {
 | 
	
		
			
				|  |  |          return list;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 列表查询
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public IPage<RetureListDto> list2(Page<RetureListDto> page , QueryListDto dto) throws Exception{
 | 
	
		
			
				|  |  | +        QueryWrapper<QueryListDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dto, QueryListDto.class);
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * a表是reimbursementInfo
 | 
	
		
			
				|  |  | +         * b表是reimbursementDetailInfo
 | 
	
		
			
				|  |  | +         * c表是sysUser
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        queryWrapper.eq("a.del_flag", 0);
 | 
	
		
			
				|  |  | +        //苏州分布报销查询
 | 
	
		
			
				|  |  | +        queryWrapper.eq("a.business_flag",'0');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 报销项目
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getProject())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("(b.project_id Like {0} OR b.project_name LIKE {1})", "%" + dto.getProject() + "%", "%" + dto.getProject() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("(b3.project_id = {0} OR p3.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("(b4.project_id = {0} OR b4.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("(b5.project_id = {0} OR b5.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销时间
 | 
	
		
			
				|  |  | +        if (dto.getDates() != null) {
 | 
	
		
			
				|  |  | +            queryWrapper.between("a.approval_time", dto.getDates()[0], dto.getDates()[1]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 经办人
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getHandled())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("(a.create_by_id = {0} OR c.name LIKE {1})", dto.getHandled(), "%" + dto.getHandled() + "%");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销人
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getReimBy())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("( b.user_id = {0} OR us.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b2.user_id = {0} OR us2.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b3.user_id = {0} OR us3.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b4.user_id = {0} OR us4.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b5.user_id = {0} OR us5.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销状态
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.type", dto.getType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销部门
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getDepartment())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("( b.dept_id = {0} OR so.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b2.dept_id = {0} OR so2.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b3.dept_id = {0} OR so3.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b4.dept_id = {0} OR so4.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply("( b5.dept_id = {0} OR so5.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销类别
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getRemiType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply(" (b.type_id = {0} OR t.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply(" (b2.type_id = {0} OR t2.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply(" (b3.type_id = {0} OR t3.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply(" (b4.type_id = {0} OR t4.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 | 
	
		
			
				|  |  | +            queryWrapper.or().apply(" (b5.type_id = {0} OR t5.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销金额
 | 
	
		
			
				|  |  | +        if (dto.getAmounts() != null) {
 | 
	
		
			
				|  |  | +            if (StringUtils.isNotEmpty(dto.getAmounts()[0])) {
 | 
	
		
			
				|  |  | +                queryWrapper.and(w ->
 | 
	
		
			
				|  |  | +                        w.ge("b.number", Double.parseDouble(dto.getAmounts()[0]))
 | 
	
		
			
				|  |  | +                                .or().ge("b2.number", Double.parseDouble(dto.getAmounts()[0]))
 | 
	
		
			
				|  |  | +                                .or().ge("b3.number", Double.parseDouble(dto.getAmounts()[0]))
 | 
	
		
			
				|  |  | +                                .or().ge("b4.number", Double.parseDouble(dto.getAmounts()[0]))
 | 
	
		
			
				|  |  | +                                .or().ge("b5.number", Double.parseDouble(dto.getAmounts()[0]))
 | 
	
		
			
				|  |  | +                );
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (dto.getAmounts().length>1 && StringUtils.isNotEmpty(dto.getAmounts()[1])) {
 | 
	
		
			
				|  |  | +                queryWrapper.and(w ->
 | 
	
		
			
				|  |  | +                        w.le("b.number", Double.parseDouble(dto.getAmounts()[1]))
 | 
	
		
			
				|  |  | +                                .or().le("b2.number", Double.parseDouble(dto.getAmounts()[1]))
 | 
	
		
			
				|  |  | +                                .or().le("b3.number", Double.parseDouble(dto.getAmounts()[1]))
 | 
	
		
			
				|  |  | +                                .or().le("b4.number", Double.parseDouble(dto.getAmounts()[1]))
 | 
	
		
			
				|  |  | +                                .or().le("b5.number", Double.parseDouble(dto.getAmounts()[1]))
 | 
	
		
			
				|  |  | +                );
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报告号
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getReportNumber())) {
 | 
	
		
			
				|  |  | +            queryWrapper.like("b.report_number", dto.getReportNumber());
 | 
	
		
			
				|  |  | +            queryWrapper.or().like("b2.report_number", dto.getReportNumber());
 | 
	
		
			
				|  |  | +            queryWrapper.or().like("b3.report_number", dto.getReportNumber());
 | 
	
		
			
				|  |  | +            queryWrapper.or().like("b4.report_number", dto.getReportNumber());
 | 
	
		
			
				|  |  | +            queryWrapper.or().like("b5.report_number", dto.getReportNumber());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销类型
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.source_type", dto.getSourceType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 报销项状态
 | 
	
		
			
				|  |  | +        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getReimbursementType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.reimbursement_type", dto.getReimbursementType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 报销编号
 | 
	
		
			
				|  |  | +        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getNo())) {
 | 
	
		
			
				|  |  | +            queryWrapper.like("a.no", dto.getNo());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
 | 
	
		
			
				|  |  | +        // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
 | 
	
		
			
				|  |  | +        StringBuilder officeIds = new StringBuilder();
 | 
	
		
			
				|  |  | +//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
 | 
	
		
			
				|  |  | +        List<String> manageOfficeIdList= Lists.newArrayList();
 | 
	
		
			
				|  |  | +        //判定是否为会计所长 或会计部门主任
 | 
	
		
			
				|  |  | +        /*if(CommonUtils.haveRoleKjsz() || CommonUtils.haveRoleCwBmzr()){
 | 
	
		
			
				|  |  | +            //获取当前人管理的部门id
 | 
	
		
			
				|  |  | +            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
 | 
	
		
			
				|  |  | +                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for (int i = 0; i <manageOfficeIdList.size(); i++){
 | 
	
		
			
				|  |  | +                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
 | 
	
		
			
				|  |  | +                if(i < manageOfficeIdList.size()-1){
 | 
	
		
			
				|  |  | +                    officeIds.append(",");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }*/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /*//获取当前登录人信息
 | 
	
		
			
				|  |  | +        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
 | 
	
		
			
				|  |  | +        //获取当前登录人所属角色
 | 
	
		
			
				|  |  | +        //若是评估部门主任,则仅展示部门主任信息
 | 
	
		
			
				|  |  | +        //若是评估员工,则仅展示自己的数据信息
 | 
	
		
			
				|  |  | +        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
 | 
	
		
			
				|  |  | +        for (RoleDTO roleDTO : roleDTOList) {
 | 
	
		
			
				|  |  | +            //根据角色id查询角色信息
 | 
	
		
			
				|  |  | +            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
 | 
	
		
			
				|  |  | +            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
 | 
	
		
			
				|  |  | +                queryWrapper.eq("a.create_by_id", userDTO.getId());
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
 | 
	
		
			
				|  |  | +                queryWrapper.eq("sumo.user_id", userDTO.getId());
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }*/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        IPage<RetureListDto> list = infoMapper.findList(page, queryWrapper, officeIds.toString());
 | 
	
		
			
				|  |  | +        list.getRecords().stream().forEach(item -> {
 | 
	
		
			
				|  |  | +            if (StringUtils.isNotBlank(item.getSourceType()) && "1".equals(item.getSourceType())) { //项目报销
 | 
	
		
			
				|  |  | +                if (StringUtils.isNotBlank(item.getProjectId())) {
 | 
	
		
			
				|  |  | +                    String proName = selectProjectByIds(item.getProjectId());
 | 
	
		
			
				|  |  | +                    item.setProjectName(proName);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (StringUtils.isBlank(item.getDeptName())){
 | 
	
		
			
				|  |  | +                    String name = infoMapper.findUserById(item.getProjectUser());
 | 
	
		
			
				|  |  | +                    item.setName(name);
 | 
	
		
			
				|  |  | +                    String office = infoMapper.findOfficeById(item.getProjectOffice());
 | 
	
		
			
				|  |  | +                    item.setDeptName(office);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (StringUtils.isNotBlank(item.getSourceType()) && "3".equals(item.getSourceType())){//报告报销
 | 
	
		
			
				|  |  | +                if (StringUtils.isBlank(item.getDeptName())){
 | 
	
		
			
				|  |  | +                    String name = infoMapper.findUserById(item.getReportUser());
 | 
	
		
			
				|  |  | +                    item.setName(name);
 | 
	
		
			
				|  |  | +                    String office = infoMapper.findOfficeById(item.getReportOffice());
 | 
	
		
			
				|  |  | +                    item.setDeptName(office);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        return list;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      public IPage<ProgramProjectListInfo> projectList(Page<ProgramProjectListInfo> page, ProgramProjectListInfo info, String tabType) throws Exception{
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //获取当前登录人信息
 |