k94314517
2024-09-11 b2cb07157105f1ad8ba43ce174c8069c7ac8cfd1
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -31,6 +31,7 @@
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import javafx.application.Platform;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.xpath.operations.Bool;
@@ -89,6 +90,14 @@
    private CarUseBookJoinMapper carUseBookJoinMapper;
    @Autowired
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private PlatformBooksMapper platformBooksMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
    @Autowired
    private PlatformReasonMapper platformReasonMapper;
@@ -382,6 +391,52 @@
    }
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void createApproveForPlatfrom(Integer tempId,Integer businessId,Integer createMemberId){
        //查询处理模板
        ApproveTempl approveTempl = approveTemplMapper.selectById(tempId);
        if(Objects.isNull(approveTempl)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到审批流配置模板");
        }
        //查询配置流程
        List<ApproveParam> approveParamAllList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>()
                .lambda().eq(ApproveParam::getIsdeleted,Constants.ZERO)
                .eq(ApproveParam::getTemplId,approveTempl.getId())
                .orderByAsc(ApproveParam::getType)
                .orderByAsc(ApproveParam::getLevel)
        );
        if(Objects.isNull(approveParamAllList)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未配置审批流程");
        }
        //审批配置
        List<ApproveParam> approveParamList = approveParamAllList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList());
        if(Objects.isNull(approveParamList)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未配置审批流程");
        }
        List<ApproveParam> approveCopyList = approveParamAllList.stream().filter(i->i.getType().equals(Constants.ONE)).collect(Collectors.toList());
        Member createMember = memberMapper.selectById(createMemberId);
        if(Objects.isNull(createMember)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"申请人组织信息异常");
        }
        List<Approve> approveList = new ArrayList<>();
        this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList);
        if(CollectionUtils.isEmpty(approveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误");
        }
        //处理抄送数据
        if(CollectionUtils.isNotEmpty(approveCopyList)){
            this.organizeApproveCopyData(approveTempl,approveCopyList,businessId,approveList);
        }
        approveJoinMapper.insert(approveList);
    }
    /**
     * 组织审批流数据
     * @param approveTempl
@@ -485,7 +540,7 @@
                approve.setTemplatId(approveTempl.getId());
                approve.setChekorId(memberId);
                approve.setStatus(i==0?Constants.ONE:Constants.ZERO);
                approve.setStatusInfo(i==0?"审批中":"待审批");
                approve.setStatusInfo(i==0?"审批中":"处理中");
                approve.setTitle("审批人");
                approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO);
                approve.setObjId(businessId);
@@ -549,8 +604,17 @@
            jsonMap.put("eTime", "结束时间:" + DateUtil.DateToStr(carUseBook.getEndTime() , "yyyy-MM-dd HH:mm"));
            jsonMap.put("usrNum", StringUtils.isBlank(carUseBook.getMemberIds())?"乘车人数: 0人": "乘车人数: " +carUseBook.getMemberIds().split(",").length +"人");
            jsonMap.put("mdd", StringUtils.isBlank(carUseBook.getAddr())?"目的地: - ": "目的地:" +carUseBook.getAddr());
        }else {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
        }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.reason)){
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(businessId);
            if(Objects.isNull(platformBooks)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到业务数据信息");
            }
            title = "【物流车入园预约】申请人 - " + platformBooks.getDriverName();
            jsonMap.put("inType", "入库类型:"+(Constants.equalsInteger(platformBooks.getInType(),Constants.ZERO)?"整托盘":"件烟"));
            jsonMap.put("totalNum", "总运输量:"+platformBooks.getTotalNum()+"万支");
            jsonMap.put("arriveDate", "到场时间:" + DateUtil.DateToStr(platformBooks.getArriveDate() , "yyyy-MM-dd HH:mm"));
            jsonMap.put("carNum", "车牌照:"+platformBooks.getCarCodeFront());
        }
        return title;
    }
@@ -738,7 +802,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);
            level.setApproveType(Constants.TWO);
            //如果是单人审批
            list.add(level);
            return list;
@@ -765,11 +829,17 @@
                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() +"人会签");
                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
                    waitModel.setStatusInfo("待处理");
                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.auditIng)){
                    waitModel.setStatusInfo("处理中");
                }
                waitModel.setMemberName(waitList.size() +"人会签");
//                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
//                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
//                    waitModel.setMemberName(waitList.size() +"人会签");
//                }
                if(CollectionUtils.isNotEmpty(waitList)){
                    waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate());
                }
@@ -784,15 +854,17 @@
        }else {
            if((waitList.size()> 0 || otherPassList.size()>0)){
                Approve waitModel = new Approve();
                waitModel.setApproveType(Constants.ONE);
                waitModel.setApproveType(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);
                    waitModel.setType(Constants.ZERO);
                    //waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                    waitModel.setTitle(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                }
                List<Approve> approveList = new ArrayList<>();
                approveList.addAll(waitList);
@@ -806,7 +878,10 @@
                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setMemberName("已抄送"+ approveList.size() +"人");
                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
                    waitModel.setMemberName("处理中");
                    waitModel.setMemberName(waitList.size() +"人或签");
                    waitModel.setStatusInfo("待处理");
                }else{
                    waitModel.setStatusInfo("处理中");
                }
                waitModel.setApproveList(approveList);
                list.add(waitModel);
@@ -986,6 +1061,23 @@
        return Constants.ZERO;
    }
    @Override
    public String getApproveUserName(Integer businessId,Integer businessType){
         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,new MPJLambdaWrapper<Approve>()
                 .selectAll(Approve.class)
                 .selectAs(Member::getName,Approve::getMemberName)
                 .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                .eq(Approve::getObjId,businessId)
                .eq(Approve::getObjType,businessType)
                .eq(Approve::getType,Constants.ZERO)
                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
        );
         if(CollectionUtils.isNotEmpty(approveList)){
             List<String> names = approveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
             return String.join(",",names);
         }
         return null;
    }
@@ -1144,8 +1236,6 @@
                    if(Objects.nonNull(visits)){
                        if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                             visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                        }else{
                            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到业务数据对象!请刷新重试");
                        }
                    }
@@ -1248,9 +1338,9 @@
        String info = "";
        List<String> memberNameList = Arrays.asList(memberNames.split(","));
        if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
            info = "待 "+memberNameList.get(0)+" 处理中";
            info = "待"+memberNameList.get(0)+"处理中";
        }else{
            info = "待 "+memberNameList.get(0)+" 等"+memberNameList.size()+"人处理中";
            info = "待"+memberNameList.get(0)+"等"+memberNameList.size()+"人处理中";
        }
        //更新该业务数据的所有记录信息
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
@@ -1314,9 +1404,9 @@
            notices.setParam5(memberNames);
            notices.setRemark(nextDealApprove.getMemberName());
            if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
                notices.setInfo("待 "+memberNameList.get(0)+" 处理中");
                notices.setInfo("待"+memberNameList.get(0)+"处理中");
            }else{
                notices.setInfo("待 "+memberNameList.get(0)+" 等"+memberNameList.size()+"人处理中");
                notices.setInfo("待"+memberNameList.get(0)+"等"+memberNameList.size()+"人处理中");
            }
            noticesJoinMapper.insert(newNotices);
        }
@@ -1336,11 +1426,40 @@
            visits.setEditDate(new Date());
            visits.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            visitsMapper.updateById(visits);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,true);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){
            //TODO  物流车预约
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(approveDTO.getObjId());
            if(Objects.isNull(platformBooks)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到物流车预约记录");
            }
            platformBooks.setStatus(approveDTO.getStatus());
            platformBooks.setEditDate(new Date());
            platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
            //生成任务记录
            PlatformJob platformJob = platformBooks.toPlatformJob();
            platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
            platformJob.setType(Constants.platformJobType.sgscxh);
            platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
            platformJobMapper.insert(platformJob);
            platformBooks.setJobId(platformJob.getId());
            platformBooksMapper.updateById(platformBooks);
            //生成任务操作记录
            PlatformLog platformLog = new PlatformLog();
            platformLog.setCreateDate(new Date());
            platformLog.setJobId(platformJob.getId());
            platformLog.setIsdeleted(Constants.ZERO);
            platformLog.setParam4(platformJob.getCarCodeFront());
            platformLog.setContent(Constants.PlatformJobLogType.CREATE.getInfo());
            platformLog.setObjType(Constants.PlatformJobLogType.CREATE.getKey());
            platformLog.setObjId(platformJob.getId().toString());
            platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
            platformLogMapper.insert(platformLog);
        }else{
            throw new BusinessException(ResponseStatus.BAD_REQUEST);