liukangdong
2024-05-31 bc2cda03481cd62a1b04959d2653678053e60b18
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -550,6 +550,7 @@
                        .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                        .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                        .eq(Approve::getIsdeleted,Constants.ZERO)
                        .ne(Approve::getStatus,Constants.approveStatus.cancel)
                        .eq(Approve::getObjId,businessId)
                        .eq(Approve::getObjType,businessType)
                        .orderByAsc(Approve::getLevel)
@@ -573,8 +574,8 @@
        if (CollectionUtils.isNotEmpty(copyList)) {
            Approve waitModel = new Approve();
            waitModel.setApproveType(Constants.ONE);
            waitModel.setStatusInfo("抄送");
            waitModel.setStatus(Constants.ONE);
            waitModel.setTitle("抄送人");
            waitModel.setStatus(copyList.get(Constants.ZERO).getStatus());
            waitModel.setType(Constants.ONE);
            waitModel.setApproveList(copyList);
            approveDateVO.getApproveList().add(waitModel);
@@ -594,6 +595,7 @@
    private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
        List<Approve> list = new ArrayList<>();
        if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){
            level.setApproveType(Constants.ZERO);
            //如果是单人审批
            list.add(level);
            return list;
@@ -603,36 +605,56 @@
        Approve  refuseModel = new Approve();//已拒绝的记录
        List<Approve> waitList = new ArrayList<>();  //查询全部未处理的集合
        List<Approve> otherPassList = new ArrayList<>();//他人已处理的记录集
        List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList());
        dealGroupListBiz(level,levelApprove,approveGroupList,passList,refuseModel,waitList,otherPassList);
        int appType = Constants.formatIntegerNum(level.getApproveType());//当前审批类型
        dealGroupListBiz(level,approveGroupList,passList,refuseModel,waitList,otherPassList);
        if(Objects.nonNull(refuseModel) && Objects.nonNull(refuseModel.getId())){
            //存在拒绝的,只需要返回一条处理数据,后续不需要回显
            refuseModel.setApproveType(Constants.ZERO);
            list.add(refuseModel);
            return list;
        }
        list.addAll(sortByCreateTime(passList));
        if(Constants.equalsInteger(level.getApproveType(),Constants.ONE)){
        if(Constants.equalsInteger(appType,Constants.ONE)){
            //如果是会签
            if(waitList.size()>0){
            if(waitList.size()>1){
                Approve waitModel = new Approve();
                waitModel.setApproveType(Constants.ONE);
                waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"处理中");
                waitModel.setType(Constants.ZERO);
                waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"审批人"));
                waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
                waitModel.setStatusInfo("处理中");
                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setMemberName(waitList.size() +"人会签");
                }
                waitModel.setApproveList(waitList);
                list.add(waitModel);
            }else if(waitList.size()>0){
                Approve approve = waitList.get(Constants.ZERO);
                approve.setApproveType(Constants.ZERO);
                approve.setType(Constants.ZERO);
                list.add(approve);
            }
        }else {
            if((waitList.size()> 0 || otherPassList.size()>0)){
                Approve waitModel = new Approve();
                waitModel.setApproveType(Constants.ONE);
                waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setStatus(Constants.approveStatus.pass);
                    waitModel.setType(Constants.ONE);
                    waitModel.setTitle("审批人(抄送或签审批人)");
                }else{
                    waitModel.setType(Constants.ZERO);
                    waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                    waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
                }
                List<Approve> approveList = new ArrayList<>();
                approveList.addAll(waitList);
                //如果是或签
                if(passList.size()>0){
                    approveList.addAll(otherPassList);
                }
                waitModel.setMemberName("已抄送"+ approveList.size() +"人");
                waitModel.setApproveList(approveList);
                list.add(waitModel);
            }
@@ -652,10 +674,15 @@
    }
    private void dealGroupListBiz(Approve level, List<Approve> levelApprove,List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
    private void dealGroupListBiz(Approve level, List<Approve> approveGroupList,  List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
        //查询是否存在拒绝数据
        List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList());
        for (Approve approve:levelApprove) {
            if(!Constants.equalsInteger(level.getLevel(),approve.getLevel())){
                continue;
            }
            if(Constants.equalsInteger(Constants.approveStatus.pass,approve.getStatus())){
                approve.setApproveType(Constants.ZERO);
                passList.add(approve);
            }else if(Constants.equalsInteger(Constants.approveStatus.otherDeal,approve.getStatus())){
                otherPassList.add(approve);