|
@@ -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{
|
|
|
|
|
|
//获取当前登录人信息
|