jiangping
2024-05-29 759fad4aa7b5bdf0aa8b1f6e22882b251c935876
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -441,6 +441,96 @@
        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;
    }
    /**
     * 整理 审批数据
@@ -495,7 +585,8 @@
        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;
        }