jiangping
2024-06-03 e7b6e88a424a751ac657e150f52d72f1173321c9
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,19 +605,21 @@
        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()>1){
                Approve waitModel = new Approve();
                waitModel.setApproveType(Constants.ONE);
                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("处理中");
@@ -626,7 +630,10 @@
                waitModel.setApproveList(waitList);
                list.add(waitModel);
            }else if(waitList.size()>0){
                list.add(waitList.get(Constants.ZERO));
                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)){
@@ -634,8 +641,10 @@
                waitModel.setApproveType(Constants.ONE);
                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);
                }
@@ -665,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);
@@ -699,7 +713,8 @@
            if(Constants.equalsInteger(approve.getType(),Constants.ONE)){
                continue;
            }
            if(Constants.equalsInteger(approve.getChekorId(),memberId)){
            if(Constants.equalsInteger(approve.getChekorId(),memberId)
                    &&Constants.equalsInteger(approve.getStatus(), Constants.ONE)){
                approveDataVO.setCanBeApproved(Constants.ONE);
                approveDataVO.setDriverParam(approve.getDriverParam());
            }
@@ -707,11 +722,9 @@
                approveList.add(approve);
            }
        }
        if(CollectionUtils.isEmpty(approveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批信息:级别数据异常");
        }
        return  approveList;
    }
@@ -765,8 +778,6 @@
                        .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 ) {
@@ -852,6 +863,9 @@
                .lambda()
                .eq(Approve::getObjId,approveDTO.getObjId())
                .eq(Approve::getObjType,approveDTO.getObjType())
                .eq(Approve::getChekorId,approveDTO.getLoginUserInfo().getMemberId())
                .eq(Approve::getType,Constants.ZERO)
                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
                .last(" limit 1")
        );
        if(Objects.isNull(approve)){
@@ -865,9 +879,9 @@
        approve.setStatus(approveDTO.getStatus());
        approve.setCheckInfo(approveDTO.getCheckInfo());
        approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString());
        approve.setCheckorName(approve.getLoginUserInfo().getRealname());
        approve.setCheckorName(approveDTO.getLoginUserInfo().getRealname());
        approve.setCheckDate(new Date());
        approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"审批通过":approveDTO.getCheckInfo());
        approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"已同意":approveDTO.getCheckInfo());
        Visits visits = new Visits();
        CarUseBook carUseBook = new CarUseBook();
        this.dealBusinessData(approveDTO,approve,visits,carUseBook);
@@ -948,10 +962,9 @@
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                Constants.approveObjectType.unCityUseCar)){
            // 市内外用车申请
            carUseBookMapper.updateById(carUseBook);
            if(dealBusinessBean){
                //TODO 发送审批通过消息
                carUseBookMapper.updateById(carUseBook);
            }else if(approveDTO.getStatus().equals(Constants.THREE)){
                //TODO 审批未通过通知
@@ -1048,7 +1061,7 @@
            carUseBook.setEditDate(new Date());
            carUseBook.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            //如果配置修改司机 且 入参了更换后司机信息
            if(approveDTO.getStatus()==Constants.TWO&&approve.getDriverParam().equals(Constants.ONE)){
            if(approveDTO.getStatus()==Constants.TWO&&Constants.equalsInteger(approve.getDriverParam(),Constants.ONE)){
                CarDriver carDriver = carDriverMapper.selectById(approveDTO.getDriverId());
                if(Objects.isNull(carDriver)){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到司机信息");