k94314517
2024-07-05 e992f6c13602feadd60f9df16c65ffccc1cdcb6a
代码初始化
已修改13个文件
333 ■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/resources/mappers/SystemUserMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
@@ -24,7 +24,7 @@
    @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," +
            " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUser ," +
            " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN a.END_TIME < now() AND a.`STATUS` = 0  THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            " b.IMGURL as imgUrl ," +
            " a.remark  " +
            " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -464,7 +464,7 @@
        queryWrapper.selectAs(Rooms::getName, Bookings::getRoomName);
        queryWrapper.selectAs(SystemUser::getRealname, Bookings::getRealName);
        queryWrapper.selectAs(Company::getName, Bookings::getDepartmentName);
        queryWrapper.select(" CASE WHEN t.START_TIME > now() AND t.`STATUS` = 0 THEN 1  WHEN ( (t.END_TIME < now()  AND t.`STATUS` = 0 ) or t.`STATUS` = 2 ) THEN 3 WHEN t.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ");
        queryWrapper.leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId);
        queryWrapper.leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator);
        queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId);
@@ -476,6 +476,28 @@
        queryWrapper.eq(pageWrap.getModel().getStatus() != null, Bookings::getStatus, pageWrap.getModel().getStatus());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getRealName()), SystemUser::getRealname, pageWrap.getModel().getRealName());
        queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, Company::getId, pageWrap.getModel().getDepartmentId());
        queryWrapper.apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
                " ( now() < t.START_TIME and t.status = 0 ) "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO),
                " ( now() >= t.START_TIME and t.END_TIME >= now() and t.status = 0 ) "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE),
                " ( ( now() > t.END_TIME  and  t.`STATUS` = 0  ) or   t.`STATUS` = 2  )  "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR),
                " now() < t.START_TIME  AND SUBDATE( t.START_TIME, INTERVAL 120 MINUTE ) < NOW() "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE),
                " t.STATUS = 1  "
        );
        if (pageWrap.getModel().getStartTime() != null) {
            queryWrapper.ge(Bookings::getStartTime, pageWrap.getModel().getStartTime());
@@ -492,12 +514,14 @@
        SimpleDateFormat format1 = new SimpleDateFormat("HH:mm");
        IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper);
        result.getRecords().stream().forEach(s -> {
            if(s.getStartTime().getTime()>System.currentTimeMillis()&&s.getStatus().equals(Constants.ZERO)){
                s.setMeetingStatus(Constants.ONE);
            }else if(s.getEndTime().getTime()<System.currentTimeMillis()||Constants.equalsInteger(s.getStatus(),Constants.ONE) || Constants.equalsInteger(s.getStatus(),Constants.TWO) ){
                s.setMeetingStatus(Constants.THREE);
            }else{
                s.setMeetingStatus(Constants.TWO);
            if(s.getMeetingStatus().equals(Constants.ZERO)){
                if(s.getMeetingStatus()==Constants.ONE){
                    //开始前120分钟 大于当前时间 则显示即将开始
                    if(DateUtil.afterMinutesDate(s.getStartTime(),-120).getTime()>System.currentTimeMillis()){
                        s.setMeetingStatus(4);
                    }
                }
            }
            MPJLambdaWrapper<Multifile> bookquery = new MPJLambdaWrapper<>();
            bookquery.eq(Multifile::getIsdeleted, MeetConstants.ZERO);
@@ -792,20 +816,20 @@
                .eq("b.STATUS",MeetConstants.ZERO)
                .eq("a.ISDELETED",MeetConstants.ZERO)
                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
                        " now() > a.START_TIME and a.status = 0 "
                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
                        " ( now() < a.START_TIME and a.status = 0 ) "
                )
                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO),
                        " now() >= a.START_TIME and a.END_TIME >= now() "
                        " ( now() >= a.START_TIME and a.END_TIME >= now() and a.status = 0 ) "
                )
                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE),
                        " now() > a.END_TIME or a.status  = 2 "
                        " ( ( now() > a.END_TIME  and  a.`STATUS` = 0  ) or   a.`STATUS` = 2  )  "
                )
                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR),
                        " now() > a.START_TIME  and   SUBDATE(NOW(), INTERVAL 120 MINUTE) > a.START_TIME "
                        " now() < a.START_TIME  AND SUBDATE( a.START_TIME, INTERVAL 120 MINUTE ) < NOW() "
                )
                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE),
@@ -813,7 +837,7 @@
                )
//                        .orderByDesc(!Objects.isNull(pageWrap.getModel().getStatus())&&pageWrap.getModel().getStatus().equals(MeetConstants.TWO),"a.START_TIME")
//                        .orderByAsc(Objects.isNull(pageWrap.getModel().getStatus())||pageWrap.getModel().getStatus().equals(MeetConstants.ONE),"a.START_TIME")
                .orderByDesc( Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.TWO),"a.CREATE_DATE")
                .orderByDesc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.TWO),"a.CREATE_DATE")
                .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE),"a.START_TIME");
        IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), queryWrapper);
server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
@@ -42,4 +42,11 @@
    @ApiModelProperty(value = "用户状态")
    private Integer status;
    @ApiModelProperty(value = "用户类型:0=司机 , 2=内部人员" ,hidden = true)
    private Integer memberType;
    @ApiModelProperty(value = "用户类型:0=劳务;1=内部" ,hidden = true)
    private Integer companyType;
}
server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
@@ -87,7 +87,6 @@
    @TableField(exist = false)
    private String typeDetail;
    @ApiModelProperty(value = "存储 消息展示JSON" ,notes = "存储 消息展示JSON ")
    @ExcelColumn(name="关联参数1")
    private String param1;
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
@@ -181,6 +181,11 @@
        queryWrapper.eq(StringUtils.isNotBlank(noticesDTO.getTitle()),Notices::getTitle,noticesDTO.getTitle());
        queryWrapper.orderByDesc(Notices::getCreateDate);
        PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper));
        if(noticesDTO.getQueryType().equals(Constants.ZERO)){
            for (Notices notices:pageData.getRecords()) {
                notices.setInfo("待我处理");
            }
        }
        return pageData;
    }
@@ -201,7 +206,7 @@
        if(Constants.equalsInteger(notices.getSendacopy(),Constants.ONE)){
            if(Constants.equalsInteger(Constants.ZERO,notices.getReaded())){
                noticesMapper.update(null,new UpdateWrapper<Notices>().lambda()
                        .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,notices));
                        .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,noticesId));
            }
        }else{
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非抄送数据,无法进行标记");
server/system_service/src/main/resources/mappers/SystemUserMapper.xml
@@ -32,11 +32,13 @@
    LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = usr.CREATE_USER
    LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = usr.UPDATE_USER
    LEFT JOIN `company` sd ON sd.ID = usr.COMPANY_ID AND sd.ISDELETED = 0
    LEFT JOIN `member` m ON usr.MEMBER_ID = m.id
    <if test="dto.roleId != null">
      RIGHT JOIN system_user_role sur on sur.USER_ID = usr.ID and sur.ROLE_ID = #{dto.roleId}
    </if>
    <where>
      usr.DELETED = 0
      and usr.SOURCE = 0
<!--      <if test="dto.positionId != null">-->
<!--        AND spu.POSITION_ID = #{dto.positionId}-->
<!--      </if>-->
@@ -61,6 +63,12 @@
      <if test="dto.status != null ">
        AND  usr.`status` = #{dto.status}
      </if>
      <if test="dto.memberType != null ">
        AND  m.`type` = #{dto.memberType}
      </if>
      <if test="dto.companyType != null ">
        AND  sd.`type` = #{dto.companyType}
      </if>
    </where>
    ${orderByClause}
  </select>
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java
@@ -102,7 +102,7 @@
    @ApiOperation("申请撤销")
    @GetMapping("/revoke")
    public ApiResponse  revoke (@RequestParam Integer id, @RequestParam String info, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse  revoke (@RequestParam Integer id,String info, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        carUseBookService.revoke(id,info,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -218,7 +218,7 @@
    @ApiModelProperty(value = "最后操作人")
    @TableField(exist = false)
    private String editorName;
    @ApiModelProperty(value = "组织类型")
    @ApiModelProperty(value = "组织类型 0劳务公司 1内部组织")
    @TableField(exist = false)
    private Integer companyType;
    @ApiModelProperty(value = "组织编码路径")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -144,8 +144,8 @@
    @ExcelColumn(name="接待人员")
    private Integer receptMemberId;
    @ApiModelProperty(value = "审核状态 0待审核 1已提交ERP审批  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7拜访中 8已签离", example = "1")
    @ExcelColumn(name="审核状态 0待审核 1已提交ERP审批  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7拜访中 8已签离")
    @ApiModelProperty(value = "审核状态 0待审核 1审批中  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7拜访中 8已签离", example = "1")
    @ExcelColumn(name="审核状态 0待审核 1审批中  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7拜访中 8已签离")
    private Integer status;
    @ApiModelProperty(value = "初审人编码", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -375,10 +375,9 @@
        //处理抄送数据
        if(CollectionUtils.isNotEmpty(approveCopyList)){
            this.organizeApproveCopyData(approveTempl,approveParamList,businessId,approveList);
            this.organizeApproveCopyData(approveTempl,approveCopyList,businessId,approveList);
        }
        approveJoinMapper.insert(approveList);
//        approveJoinMapper.insert(approveList);
    }
@@ -414,15 +413,21 @@
        createUserApprove.setType(Constants.ZERO);
        approveList.add(createUserApprove);
        //查询所有待处理人
        //审批业务数据
        for (int i = 0; i < approveParamList.size(); i++) {
            ApproveParam approveParam = approveParamList.get(i);
            List<Integer> ids = this.getApproveUserIds(approveParam,createMember);
            List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().in(Member::getId,ids));
            List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList());
            String memberNames = String.join(",",memberNameList);
            Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType());
            String title = "【访客申请】申请人 - ";
            Map<String,Object> jsonMap = new HashMap<>();
            for (int j = 0; j < ids.size(); j++) {
                Integer memberId = ids.get(j);
            for (int j = 0; j < memberList.size(); j++) {
                Member member = memberList.get(j);
                Integer memberId = member.getId();
                //生成待办 notices 表数据
                if(i==0){
                    if(jsonMap.isEmpty()){
@@ -446,6 +451,9 @@
                        notices.setInfo("处理中");
                        noticesJoinMapper.insert(notices);
                    }
                    if(CollectionUtils.isEmpty(memberList)){
                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到审批人信息");
                    }
                    Notices notices = new Notices();
                    notices.setCreateDate(new Date());
                    notices.setIsdeleted(Constants.ZERO);
@@ -461,7 +469,13 @@
                    notices.setSendacopy(Constants.ZERO);
                    notices.setParam2("0");
                    notices.setParam3("");
                    notices.setInfo("待处理");
                    notices.setParam5(memberNames);
                    notices.setRemark(member.getName());
                    if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
                        notices.setInfo("待"+memberNameList.get(0)+"处理中");
                    }else{
                        notices.setInfo("待"+memberNameList.get(0)+"等"+memberList.size()+"人处理中");
                    }
                    noticesJoinMapper.insert(notices);
                }
                Approve approve = new Approve();
@@ -575,6 +589,7 @@
                    approve.setIsdeleted(Constants.ZERO);
                    approve.setTemplatId(approveTempl.getId());
                    approve.setChekorId(memberId);
                    approve.setObjType(approveTempl.getType());
                    approve.setObjId(businessId);
                    approve.setType(Constants.ONE);
                    approveList.add(approve);
@@ -608,7 +623,7 @@
            if(Objects.isNull(memberCompany)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误[指定审批部门未查询到]");
            }
            Company auditCompany = this.getAuditCompanyHead(memberCompany.getParentId(),approveParam.getObjLevel());
            Company auditCompany = this.getAuditCompanyHead(memberCompany.getId(),approveParam.getObjLevel());
            if(Objects.isNull(auditCompany)){
                //审批部门为空 自动流转下一级审批配置
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误[指定审批部门未查询到]");
@@ -617,7 +632,7 @@
                Member headMember = memberMapper.selectById(auditCompany.getHeadId());
                if(Objects.isNull(headMember)){
                    //未查询到部门负责人  根据配置处理   由上级主管代替审核/直接结束流程
                    if(approveParam.getNoleaderOpt().equals(Constants.ONE)&&!Objects.isNull(auditCompany.getParentId())){
                    if(Constants.equalsInteger(approveParam.getNoleaderOpt(),Constants.ONE)&&Objects.nonNull(auditCompany.getParentId())){
                        auditCompany = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getId,auditCompany.getParentId()));
                        //无父级 直接流传下一级审批
                        if(Objects.isNull(auditCompany)){
@@ -632,9 +647,11 @@
                            userIds.add(headMember.getId());
                        }
                    }else{
                        //添加审批人
                        userIds.add(headMember.getId());
                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误[指定审批部门主管未查询到]");
                    }
                }else{
                    //添加审批人
                    userIds.add(headMember.getId());
                }
            }
        }
@@ -649,9 +666,9 @@
     * @param objLevel  查询级别
     */
    public Company getAuditCompanyHead(Integer companyId, Integer objLevel){
        Integer queryLevel = Constants.ZERO;
        Company auditCompany =  companyMapper.selectById(companyId);
        while(queryLevel.equals(objLevel)){
        Integer queryLevel = Constants.ONE;
        while(queryLevel<objLevel){
            auditCompany = companyMapper.selectById(auditCompany.getParentId());
            if(Objects.isNull(auditCompany)){
                return null;
@@ -680,6 +697,8 @@
                        .eq(Approve::getObjId,businessId)
                        .eq(Approve::getObjType,businessType)
                        .orderByAsc(Approve::getLevel)
                        .orderByAsc(Approve::getStatus)
        );
        //查找全部levelList
@@ -697,6 +716,7 @@
        if (CollectionUtils.isNotEmpty(copyList)) {
            Approve waitModel = new Approve();
            waitModel.setApproveType(Constants.ONE);
            waitModel.setCheckDate(copyList.get(Constants.ZERO).getCheckDate());
            waitModel.setTitle("抄送人");
            waitModel.setStatus(copyList.get(Constants.ZERO).getStatus());
            waitModel.setType(Constants.ONE);
@@ -1006,6 +1026,7 @@
                .eq(Notices::getUserId,approve.getChekorId())
                .eq(Notices::getSendacopy,Constants.ZERO)
                .eq(Notices::getIsdeleted,Constants.ZERO)
                .eq(Notices::getStatus,Constants.ZERO)
                .last(" limit 1 ")
        );
        if(Objects.isNull(notices)){
@@ -1057,29 +1078,29 @@
                    .eq(Approve::getObjType,approve.getObjType())
                    .ne(Approve::getId,approve.getId()));
            //处理所有Notice通知为已处理
            if(approve.getApproveType().equals(Constants.ZERO)){
                //修改自己的通知记录
            //修改自己的通知记录
            noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                    .set(Notices::getEditDate,new Date())
                    .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                    .set(Notices::getInfo,"审批未通过")
                    .set(Notices::getReaded,Constants.ONE)
                    .set(Notices::getParam2,Constants.TWO)
                    .set(Notices::getStatus,Constants.ONE)
                    .eq(Notices::getId,notices.getId())
            );
            //修改 未处理的 通知数据 为抄送
            if (!Constants.equalsInteger(approve.getApproveType(),Constants.TWO)){
                noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                        .set(Notices::getEditDate,new Date())
                        .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                        .set(Notices::getReaded,Constants.ONE)
                        .set(Notices::getParam2,Constants.TWO)
                        .set(Notices::getSendacopy,Constants.ONE)
                        .set(Notices::getStatus,Constants.ONE)
                        .eq(Notices::getId,notices.getId())
                        .set(Notices::getParam2,Constants.TWO)
                        .set(Notices::getInfo,"审批未通过")
                        .eq(Notices::getObjId,notices.getObjId())
                        .eq(Notices::getObjType,notices.getObjType())
                        .eq(Notices::getReaded,Constants.ZERO)
                        .ne(Notices::getId,notices.getId())
                );
                //修改 未处理的 通知数据 为抄送
                if (!Constants.equalsInteger(approve.getApproveType(),Constants.TWO)){
                    noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                            .set(Notices::getEditDate,new Date())
                            .set(Notices::getSendacopy,Constants.ONE)
                            .set(Notices::getStatus,Constants.ONE)
                            .set(Notices::getParam2,Constants.TWO)
                            .eq(Notices::getObjId,notices.getObjId())
                            .eq(Notices::getObjType,notices.getObjType())
                            .eq(Notices::getReaded,Constants.ZERO)
                            .ne(Notices::getId,notices.getId())
                    );
                }
            }
        }else{
            //处理其他业务数据
@@ -1116,7 +1137,20 @@
                        .eq(Approve::getObjType,approve.getObjType())
                        .eq(Approve::getLevel,(approve.getLevel()+1))
                );
                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
                    Visits visits = visitsMapper.selectById(approve.getObjId());
                    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(),"未查询到业务数据对象!请刷新重试");
                        }
                    }
                }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                        Constants.approveObjectType.unCityUseCar)){
                    this.updDriver(approveDTO,approve,false);
                }
@@ -1125,6 +1159,24 @@
                //无他人审批的情况 则修改数据状态
                if(Constants.equalsInteger(approveList.size(),Constants.ZERO)&&Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE)){
                    dealBusinessBean = true;
                }else{
                    if(Constants.equalsInteger(approveList.size(),Constants.ZERO)&&Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){
                        /**开启下一级别的数据为待审核**/
                        approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                                .lambda()
                                .set(Approve::getStatus,Constants.approveStatus.auditIng)
                                .set(Approve::getTitle,"审批人")
                                .set(Approve::getCheckDate,new Date())
                                .eq(Approve::getStatus,Constants.approveStatus.wait)
                                .eq(Approve::getObjId,approve.getObjId())
                                .eq(Approve::getObjType,approve.getObjType())
                                .eq(Approve::getLevel,(approve.getLevel()+1))
                        );
                    }
                    if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                            Constants.approveObjectType.unCityUseCar)){
                        this.updDriver(approveDTO,approve,false);
                    }
                }
            }
            this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList,approveDTO);
@@ -1142,6 +1194,14 @@
     * @param approveList  同级待审批数据
     */
    public void passNextNotices(Boolean dealBusinessBean,Notices notices,Approve approve,List<Approve> approveList,List<Approve> copyList,ApproveDTO approveDTO){
        //未开启下一级时,操作后的待审批人
        String memberNames =notices.getParam5()
                .replaceAll(","+notices.getRemark(),"")
                .replaceAll(notices.getRemark()+",","")
                .replaceAll(notices.getRemark(),"");
        //1、修改自己的数据记录
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                .set(Notices::getEditDate,new Date())
@@ -1153,70 +1213,82 @@
        );
        if(Constants.equalsInteger(approve.getApproveType(),Constants.ZERO)){
            //或签
            //2、更新他人的同级记录 为抄送
            //2、更新他人的同级记录 为抄送  并更新 info 信息
            noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                    .set(Notices::getEditDate,new Date())
                    .set(Notices::getReaded,Constants.ONE)
                    .set(Notices::getReaded,Constants.ZERO)
                    .set(Notices::getSendacopy,Constants.ONE)
                    .set(Notices::getStatus,Constants.ONE)
                    .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                    .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
                    .eq(Notices::getObjId,notices.getObjId())
                    .eq(Notices::getStatus,Constants.ZERO)
                    .eq(Notices::getObjType,notices.getObjType())
                    .ne(Notices::getId,notices.getId())
            );
            //3、如果不是终审生成下一级的数据记录
            if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)&&!dealBusinessBean){
              this.saveNextNotice(notices,approve);
                memberNames = this.saveNextNotice(notices,approve);
            }
        }else if(Constants.equalsInteger(approve.getApproveType(),Constants.ONE)){
            //会签
            //2、如果是最后一位审批人 且不是终审开启下一级数据
            if(Constants.equalsInteger(Constants.ZERO,approveList.size())){
                if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){
                    this.saveNextNotice(notices,approve);
                    memberNames = this.saveNextNotice(notices,approve);
                }
            }
        }else{
            //单人签
            //2、 是否是终审 开启下一级数据
            if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){
                this.saveNextNotice(notices,approve);
                memberNames = this.saveNextNotice(notices,approve);
            }
        }
        String info = "";
        List<String> memberNameList = Arrays.asList(memberNames.split(","));
        if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
            info = "待 "+memberNameList.get(0)+" 处理中";
        }else{
            info = "待 "+memberNameList.get(0)+" 等"+memberNameList.size()+"人处理中";
        }
        //更新该业务数据的所有记录信息
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                        .set(!dealBusinessBean,Notices::getInfo,info)
                        .set(dealBusinessBean,Notices::getInfo,"审批通过")
                        .set(Notices::getParam5,memberNames)
                        .eq(Notices::getObjId,notices.getObjId())
                        .eq(Notices::getObjType,notices.getObjType()));
        //终审业务 且 处理数据  进行抄送发送
        if (Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE) && dealBusinessBean) {
            if(CollectionUtils.isNotEmpty(copyList)){
                Notices copyNotices = new Notices();
                for (Approve copyApprove:copyList) {
                    if(Objects.isNull(copyNotices)){
                        BeanUtils.copyProperties(notices,copyNotices);
                        notices.setId(null);
                        notices.setCreateDate(new Date());
                        notices.setEditDate(new Date());
                        notices.setParam2("2");
                        notices.setParam3("");
                        notices.setUserId(copyApprove.getChekorId());
                        notices.setStatus(Constants.ZERO);
                        notices.setSendacopy(Constants.ONE);
                        notices.setReaded(Constants.ZERO);
                        noticesJoinMapper.insert(notices);
                    }else{
                        notices.setId(null);
                        notices.setUserId(copyApprove.getChekorId());
                        noticesJoinMapper.insert(notices);
                    }
                    Notices copyNotices = new Notices();
                    BeanUtils.copyProperties(notices,copyNotices);
                    copyNotices.setId(null);
                    copyNotices.setCreateDate(new Date());
                    copyNotices.setEditDate(new Date());
                    copyNotices.setParam2("2");
                    copyNotices.setParam3("");
                    copyNotices.setInfo("审批通过");
                    copyNotices.setUserId(copyApprove.getChekorId());
                    copyNotices.setStatus(Constants.ZERO);
                    copyNotices.setSendacopy(Constants.ONE);
                    copyNotices.setReaded(Constants.ZERO);
                    noticesJoinMapper.insert(copyNotices);
                }
            }
        }
    }
    public void saveNextNotice(Notices notices,Approve approve){
        List<Approve> nextApproveList = approveJoinMapper.selectList(new QueryWrapper<Approve>()
                .lambda()
    public String saveNextNotice(Notices notices,Approve approve){
        List<Approve> nextApproveList = 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,approve.getObjId())
                .eq(Approve::getObjType,approve.getObjType())
                .eq(Approve::getType,Constants.ZERO)
@@ -1225,26 +1297,30 @@
        if(CollectionUtils.isEmpty(nextApproveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流数据异常");
        }
        Notices newNotices = new Notices();
        List<String> memberNameList =nextApproveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
        String memberNames = String.join(",",memberNameList);
        for (Approve nextDealApprove:nextApproveList) {
            if(Objects.isNull(newNotices)){
                BeanUtils.copyProperties(notices,newNotices);
                notices.setId(null);
                notices.setCreateDate(new Date());
                notices.setParam2("0");
                notices.setParam3("");
                notices.setEditDate(new Date());
                notices.setUserId(nextDealApprove.getChekorId());
                notices.setStatus(Constants.ZERO);
                notices.setSendacopy(Constants.ZERO);
                notices.setReaded(Constants.ZERO);
                noticesJoinMapper.insert(notices);
            Notices newNotices = new Notices();
            BeanUtils.copyProperties(notices,newNotices);
            newNotices.setId(null);
            newNotices.setCreateDate(new Date());
            newNotices.setParam2("0");
            newNotices.setParam3("");
            newNotices.setEditDate(new Date());
            newNotices.setUserId(nextDealApprove.getChekorId());
            newNotices.setStatus(Constants.ZERO);
            newNotices.setSendacopy(Constants.ZERO);
            newNotices.setReaded(Constants.ZERO);
            notices.setParam5(memberNames);
            notices.setRemark(nextDealApprove.getMemberName());
            if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
                notices.setInfo("待 "+memberNameList.get(0)+" 处理中");
            }else{
                notices.setId(null);
                notices.setUserId(nextDealApprove.getChekorId());
                noticesJoinMapper.insert(notices);
                notices.setInfo("待 "+memberNameList.get(0)+" 等"+memberNameList.size()+"人处理中");
            }
            noticesJoinMapper.insert(newNotices);
        }
        return memberNames;
    }
    public void dealBusinessData(ApproveDTO approveDTO,Approve approve){
@@ -1269,6 +1345,15 @@
        }else{
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
            //处理通过 显示所有的抄送记录
            approveMapper.update(null,new UpdateWrapper<Approve>().lambda().set(Approve::getStatus,Constants.TWO)
                    .set(Approve::getCheckDate,new Date())
                    .eq(Approve::getObjId,approve.getObjId())
                    .eq(Approve::getObjType,approve.getObjType())
                    .eq(Approve::getType,Constants.ONE)
            );
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -186,6 +186,9 @@
                .eq(CarUseBook::getId,id)
                .last("limit 1"  );
        CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper);
        if(Objects.isNull(model)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        ApproveDataVO approveDataVO = approveService.arrangeApprovedData(id,
                Constants.equalsInteger(model.getType(),Constants.ZERO)?3:4,
                memberId);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -144,7 +144,7 @@
        createNotices.setSendacopy(Constants.ZERO);
        createNotices.setParam2("0");
        createNotices.setParam3(hiddenDanger.getLoginUserInfo().getMemberId().toString());
        createNotices.setInfo("处理中");
        createNotices.setInfo("待 "+member.getName()+" 处理");
        noticesJoinMapper.insert(createNotices);
        //存储处理人的通知消息
@@ -163,6 +163,7 @@
        notices.setStatus(Constants.ZERO);
        notices.setSendacopy(Constants.ZERO);
        notices.setReaded(Constants.ZERO);
        notices.setInfo("待 "+member.getName()+" 处理");
        noticesJoinMapper.insert(notices);
@@ -511,12 +512,15 @@
            BeanUtils.copyProperties(notices,newNotices);
            newNotices.setId(null);
            newNotices.setCreateDate(new Date());
            newNotices.setParam2("3");
            newNotices.setParam2("0");
            newNotices.setUserId(hiddenDanger.getCheckUserId());
            newNotices.setInfo("待 "+member.getName()+" 处理");
            noticesJoinMapper.insert(newNotices);
            notices.setStatus(Constants.ONE);
            notices.setParam2("3");
            notices.setEditDate(new Date());
            notices.setReaded(Constants.ONE);
            notices.setInfo("待 "+member.getName()+" 处理");
            noticesJoinMapper.updateById(notices);
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1108,7 +1108,9 @@
        if(StringUtils.isNotBlank(member.getName())){
            queryWrapper.like(Member::getName,member.getName());
        }
        if(Objects.nonNull(member.getCompanyType())){
            queryWrapper.eq(Company::getType,member.getCompanyType());
        }
        if(null != member.getType()) {
            queryWrapper.eq(Member::getType,member.getType());
        }