| | |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.doumee.service.system.NoticesService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | for (int i = 0; i < approveParamList.size(); i++) { |
| | | ApproveParam approveParam = approveParamList.get(i); |
| | | List<Integer> ids = this.getApproveUserIds(approveParam,createMember); |
| | | //生成待办 notices 表数据 |
| | | if(i==0){ |
| | | |
| | | } |
| | | for (Integer memberId:ids) { |
| | | Approve approve = new Approve(); |
| | | approve.setRemark(approveParam.getRemark()); |
| | | approve.setCreateDate(new Date()); |
| | | approve.setIsdeleted(Constants.ZERO); |
| | | approve.setTemplatId(approveTempl.getId()); |
| | |
| | | return auditCompany; |
| | | } |
| | | |
| | | public ApproveDataVO arrangeApprovedDataNew(Integer businessId, Integer businessType, Integer memberId){ |
| | | ApproveDataVO approveDateVO = new ApproveDataVO(); |
| | | approveDateVO.setApproveList(new ArrayList<>()); |
| | | approveDateVO.setCanBeApproved(Constants.ZERO); |
| | | List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class, |
| | | new MPJLambdaWrapper<Approve>(). |
| | | selectAll(Approve.class) |
| | | .eq(Approve::getIsdeleted,Constants.ZERO) |
| | | .eq(Approve::getObjId,businessId) |
| | | .eq(Approve::getObjType,businessType) |
| | | .orderByAsc(Approve::getLevel) |
| | | ); |
| | | |
| | | //查找全部levelList |
| | | List<Approve> levelList = getLevelListFromResult(approveGroupList); |
| | | //遍历level查询每一级别业务数据 |
| | | for(Approve level:levelList){ |
| | | List<Approve> tlist = getLevelInfoFromList(level,approveGroupList); |
| | | approveDateVO.getApproveList().addAll(tlist); |
| | | if(tlist.size() ==0 |
| | | ||Constants.equalsInteger(Constants.approveStatus.unPass, tlist.get(0).getStatus()) |
| | | ||Constants.equalsInteger(Constants.approveStatus.cancel, tlist.get(0).getStatus())){ |
| | | break; |
| | | } |
| | | } |
| | | return approveDateVO; |
| | | } |
| | | |
| | | private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) { |
| | | List<Approve> list = new ArrayList<>(); |
| | | if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){ |
| | | //如果是单人审批 |
| | | list.add(level); |
| | | return list; |
| | | } |
| | | //查找全部已处理的集合 |
| | | List<Approve> passList = new ArrayList<>();//已同意的记录集 |
| | | Approve refuseModel = new Approve();//已拒绝的记录 |
| | | List<Approve> waitList = new ArrayList<>(); //查询全部未处理的集合 |
| | | List<Approve> otherPassList = new ArrayList<>();//他人已处理的记录集 |
| | | dealGroupListBiz(level,passList,refuseModel,waitList,otherPassList); |
| | | if(refuseModel !=null){ |
| | | //存在拒绝的,只需要返回一条处理数据,后续不需要回显 |
| | | list.add(refuseModel); |
| | | return list; |
| | | } |
| | | list.addAll(sortByCreateTime(passList)); |
| | | if(Constants.equalsInteger(level.getApproveType(),Constants.ONE)){ |
| | | //如果是会签 |
| | | if(waitList.size()>0){ |
| | | Approve waitModel = new Approve(); |
| | | waitModel.setApproveType(Constants.ONE); |
| | | waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"处理中"); |
| | | waitModel.setStatus(Constants.ONE); |
| | | waitModel.setApproveList(waitList); |
| | | list.add(waitModel); |
| | | } |
| | | }else { |
| | | //如果是或签 |
| | | if(otherPassList.size()>0){ |
| | | Approve waitModel = new Approve(); |
| | | waitModel.setApproveType(Constants.ONE); |
| | | waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"(抄送或签审批人)"); |
| | | waitModel.setStatus(Constants.ONE); |
| | | waitModel.setApproveList(otherPassList); |
| | | list.add(waitModel); |
| | | } |
| | | } |
| | | |
| | | |
| | | return list; |
| | | |
| | | } |
| | | |
| | | private void dealGroupListBiz(Approve level, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { |
| | | |
| | | //TODO----------rk |
| | | } |
| | | |
| | | private List<Approve> sortByCreateTime(List<Approve> passList) { |
| | | //TODO----------rk |
| | | |
| | | return passList; |
| | | } |
| | | |
| | | |
| | | private List<Approve> getLevelListFromResult(List<Approve> approveGroupList) { |
| | | //TODO----------rk |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 整理 审批数据 |
| | |
| | | .selectAll(Approve.class) |
| | | .selectAs(Member::getName,Approve::getMemberName) |
| | | .selectAs(Member::getPhone,Approve::getMemberPhone) |
| | | .selectAs(Member::getFaceImg,Approve::getFaceImg) |
| | | .selectAs(Company::getName,Approve::getCompanyName) |
| | | .leftJoin(Member.class,Member::getId,Approve::getChekorId) |
| | | .leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | |
| | | .orderByAsc(Approve::getLevel) |
| | | .orderByAsc(Approve::getId) |
| | | ); |
| | | |
| | | |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); |
| | | for (Approve approve:approveAllList ) { |
| | | if(StringUtils.isNotBlank(approve.getFaceImg())){ |
| | | approve.setFaceImg(path + approve.getFaceImg()); |
| | | } |
| | | } |
| | | |
| | | if(CollectionUtils.isEmpty(approveAllList)){ |
| | | return approveDateVO; |
| | | } |
| | | List<Approve> approveList = approveAllList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList()); |
| | | List<Approve> approveList = approveAllList.stream().filter(i->Constants.equalsInteger(i.getType(),(Constants.ZERO))) |
| | | .collect(Collectors.toList()); |
| | | if(CollectionUtils.isEmpty(approveList)){ |
| | | return approveDateVO; |
| | | } |
| | | approveDateVO.setCanBeApproved(this.canBeApproved(approveList,memberId)); |
| | | approveDateVO.setDriverParam(this.canDriverParam(approveList,memberId)); |
| | | //根据审批级别 处理数据 |
| | | for (Approve approve:approveGroupList) { |
| | | approve.setApproveList( |
| | |
| | | return Constants.ZERO; |
| | | } |
| | | |
| | | public Integer canDriverParam(List<Approve> approveList,Integer memberId){ |
| | | //获取所有待审批的数据 |
| | | List<Approve> waitApprovedList = approveList.stream().filter(i->i.getType().equals(Constants.ZERO)&&i.getStatus().equals(Constants.ZERO)).collect(Collectors.toList()); |
| | | if(CollectionUtils.isNotEmpty(waitApprovedList)){ |
| | | //下个审批流程等级 |
| | | Integer nextApprovedLevel = waitApprovedList.get(Constants.ZERO).getLevel(); |
| | | //下个审批流程的 所有数据 |
| | | List<Approve> nextApprovedList = waitApprovedList.stream().filter(i->i.getStatus().equals(Constants.ZERO)&&i.getLevel().equals(nextApprovedLevel)).collect(Collectors.toList()); |
| | | //下个审批流程内 如果存在当前 用户的抓紧 则可以进行审批 |
| | | List<Approve> auditApproveList = nextApprovedList.stream().filter(i->i.getChekorId().equals(memberId)).collect(Collectors.toList()); |
| | | if(auditApproveList.size() >0){ |
| | | Approve auditApprove = auditApproveList.get(Constants.ZERO); |
| | | return auditApprove.getDriverParam(); |
| | | } |
| | | } |
| | | return Constants.ZERO; |
| | | } |
| | | |
| | | |
| | | |
| | | |