k94314517
2023-12-19 165078645b8cfe800aeda7206e89ebd901c7e6c8
ERP接口
已修改15个文件
已重命名3个文件
261 ■■■■ 文件已修改
server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/web/ApiController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/web/BizResourceController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/web/ErpResourceController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
@@ -92,6 +92,7 @@
        companyService.updateStatusById(company);
        return ApiResponse.success(null);
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:company:exportExcel")
@@ -130,4 +131,13 @@
        return ApiResponse.success(companyService.findCompanyTreePage(type));
    }
    @ApiOperation("部门信息同步")
    @PostMapping("/sync")
//    @RequiresPermissions("business:company:sync")
    public ApiResponse sync(){
        //TODO æ‰‹åŠ¨åŒæ­¥ éƒ¨é—¨ä¿¡æ¯
        return ApiResponse.success("同步成功");
    }
}
server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -6,6 +6,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.admin.request.LaborMemberDTO;
import com.doumee.dao.admin.request.MemberQuery;
import com.doumee.dao.admin.response.MemberInfoDTO;
@@ -102,6 +103,21 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("批量拉黑/冻结")
    @GetMapping("/batchBlock")
    @RequiresPermissions("business:member:delete")
    public ApiResponse batchBlock(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        memberService.batchBlock(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("是否可拜访状态修改")
    @PostMapping("/updateCanVisitById")
    @RequiresPermissions("business:member:update")
@@ -149,7 +165,13 @@
    @PostMapping("/findMemberInfoPage")
    @RequiresPermissions("business:member:query")
    public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap){
        return ApiResponse.success(memberService.findMemberInfoPage(pageWrap));
        if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
            return ApiResponse.success(memberService.findVisitPage(pageWrap));
        }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){
            return ApiResponse.success(memberService.findMemberInfoPage(pageWrap));
        }else {
            return ApiResponse.success(null);
        }
    }
    @ApiOperation("分页查询访客人员信息")
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
@@ -84,7 +84,7 @@
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:visits:query")
    public ApiResponse findById(@PathVariable Integer id) {
    public ApiResponse<Visits> findById(@PathVariable Integer id) {
        return ApiResponse.success(visitsService.findById(id));
    }
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -45,10 +45,10 @@
     * å®šæ—¶åŒæ­¥ç»„织信息到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncOrgData() {
        hkSyncOrgUserService.syncOrgData();
    }
//    @Scheduled(fixedDelay= 60*1000)
//    public void syncOrgData() {
//        hkSyncOrgUserService.syncOrgData();
//    }
    /**
     * å®šæ—¶åŒæ­¥ç»„织信息到海康系统
     * @throws Exception
@@ -61,9 +61,9 @@
     * å®šæ—¶åŒæ­¥ç”¨æˆ·ä¿¡æ¯åˆ°æµ·åº·ç³»ç»Ÿ
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncUserData()  {
        hkSyncImgService.syncUserData();
    }
//    @Scheduled(fixedDelay= 60*1000)
//    public void syncUserData()  {
//        hkSyncImgService.syncUserData();
//    }
}
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java
@@ -14,7 +14,7 @@
@Data
@ApiModel(value = "车辆授权停车场请求信息" )
public class CarAuthorRequest {
    @ApiModelProperty(value = "人员唯一标识(ERP端ID),如果为空,则清空车辆归属人信息")
    @ApiModelProperty(value = "人员唯一标识(ERP端ID),如果为空,则清空车辆归属人信息", required = true)
    private String userId;
    @ApiModelProperty(value = "车牌号" , required = true)
    private String carCode;
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -262,8 +262,8 @@
public interface  memberType{
    int visitor = 0;//普通访客
    int lw_visitor = 1;//劳务访客
    int lw_visitor = 0;//劳务访客
    int visitor = 1;//普通访客
    int internal = 2;//内部人员
}
    public static void main(String[] args) {
server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java
@@ -13,6 +13,8 @@
@ApiModel("组织模型")
public class CompanyDTO {
    @ApiModelProperty(value = "主键")
    private Integer id;
    @ApiModelProperty(value = "名称")
    private String name;
server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
@@ -1,7 +1,10 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Empower;
import com.doumee.dao.business.model.ParkBook;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
@@ -9,4 +12,5 @@
 */
public interface ParkBookMapper extends BaseMapper<ParkBook> {
    void insertBatchSomeColumn(List<ParkBook> list);
}
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -200,6 +200,7 @@
    @ApiModelProperty(value = "ERP组织编码")
    @ExcelColumn(name="ERP组织编码")
    private String erpOrgId;
    @ApiModelProperty(value = "组织名称")
    @TableField(exist = false)
    private String companyName;
@@ -209,4 +210,24 @@
    @ApiModelProperty(value = "角色编码查询")
    @TableField(exist = false)
    private String roleIdParam;
    //暂无使用
    @ApiModelProperty(value = "姓名/手机号/工号")
    @TableField(exist = false)
    private String keyword;
    @ApiModelProperty(value = "是否有人脸:0=无;1=有;")
    @TableField(exist = false)
    private Integer isFace;
    @ApiModelProperty(value = "访问次数")
    @TableField(exist = false)
    private Integer visitTimes;
    @ApiModelProperty(value = "最后访问时间")
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastVisitDate;
}
server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -59,6 +59,8 @@
     */
    void deleteByIdInBatch(List<Integer> ids);
    void batchBlock(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -267,7 +267,7 @@
                   /*   .selectAs(Member::getName,Company::getHeadName)
                    .selectAs(Member::getPhone,Company::getHeadPhone)
                    .select("count(t1.id) as countNum");*/
        queryWrapper.eq(Company::getType,Constants.ZERO);
//        queryWrapper.eq(Company::getType,Constants.ZERO);
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getStatus()),Company::getStatus,Constants.ZERO);
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Company::getName,pageWrap.getModel().getName());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getParentName()),"c.name",pageWrap.getModel().getParentName());
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
@@ -167,13 +168,35 @@
        Member member=new Member();
        ids.stream().forEach(s ->{
            member.setId(s);
            member.setIsdeleted(Constants.ZERO);
            member.setIsdeleted(Constants.ONE);
            member.setEditor(loginUserInfo.getId());
            member.setEditDate(new Date());
            memberMapper.updateById(member);
        });
      /*  memberMapper.deleteBatchIds(ids);*/
    }
    @Override
    public void batchBlock(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Member member=new Member();
        for (Integer id:ids) {
            member = memberMapper.selectById(id);
            if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){
                member.setStatus(Constants.TWO);
                member.setEditor(loginUserInfo.getId());
                member.setEditDate(new Date());
                memberMapper.updateById(member);
            }
        }
        /*  memberMapper.deleteBatchIds(ids);*/
    }
    @Override
    public void updateById(Member member) {
@@ -296,6 +319,24 @@
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getKeyword() != null) {
            queryWrapper.lambda().and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword())
                            .or().like(Member::getPhone,pageWrap.getModel().getKeyword())
                    .or().like(Member::getCode,pageWrap.getModel().getKeyword()));
        }
        if(pageWrap.getModel().getType() != null){
            if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
                queryWrapper.select(" * , (select v.COMPANY_NAME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 ) as companyName  , " +
                        " (select v.STARTTIME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 )  as lastVisitDate , " +
                        " (select count(1) from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2 ) as visitTimes  ");
            }
        }
        if (pageWrap.getModel().getIsFace() != null) {
            queryWrapper.lambda().isNull(pageWrap.getModel().getIsFace()==Constants.ZERO,Member::getFaceImg);
            queryWrapper.lambda().isNotNull(pageWrap.getModel().getIsFace()==Constants.ONE,Member::getFaceImg);
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(Member::getId, pageWrap.getModel().getId());
        }
@@ -530,7 +571,8 @@
        queryWrapper.selectAll(Member.class);
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
        queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,Member::getCompanyId,pageWrap.getModel().getCompanyIds())
        queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,
                        Member::getCompanyId,pageWrap.getModel().getCompanyIds())
                .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getKeyWords())
                        .or().like(Member::getName,pageWrap.getModel().getKeyWords())
                        .or().like(Member::getCode,pageWrap.getModel().getKeyWords()))
@@ -538,7 +580,9 @@
                .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
                .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getCanVisit,pageWrap.getModel().getStatus())
                .eq(Member::getIsdeleted,0)
                .eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
                .eq(Member::getType,Constants.memberType.internal)
                .orderByDesc(Member::getCreateDate);
        IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
@@ -548,8 +592,6 @@
    @Override
    public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
@@ -562,7 +604,9 @@
                .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
                .eq(Member::getStatus,Constants.Status.FREEZE)
                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
                .eq(Member::getType,Constants.memberType.visitor)
                .eq(Member::getIsdeleted,Constants.ZERO)
                .orderByDesc(Member::getCreateDate);
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -38,6 +38,7 @@
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -311,7 +312,7 @@
            member.setOpenid(visits.getOpenid());
            member.setType(Constants.memberType.visitor);
            member.setStatus(Constants.ZERO);
            member.setSex(visits.getSex());
            member.setSex(Constants.getSexByCardNo(cardno));
            // æ–°å¢žè®¿å®¢è®°å½•
            addList.add(member);
        }else{
@@ -328,9 +329,19 @@
            member.setName(visits.getName());
            member.setPhone(visits.getPhone());
            member.setOpenid(visits.getOpenid());
            member.setSex(visits.getSex());
            member.setSex(Constants.getSexByCardNo(cardno));
            // æ›´æ–°è®¿å®¢ä¿¡æ¯,
            editList.add(member);
        }
        //根据手机号和身份证号码查询 å½“前预约的时间是否与其他预约记录有冲突
        if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda()
                .eq(Visits::getPhone, member.getPhone())
                .and(ms -> ms.eq(Visits::getPhone, member.getPhone())
                        .or().eq(Visits::getIdcardDecode, member.getIdcardDecode()))
                .and(ms -> ms.apply(" visits.STARTTIME <= '" + visits.getStarttime() + "' and visits.ENDTIME >= '" + visits.getStarttime() + "' ")
                        .or().apply(" visits.STARTTIME <= '" + visits.getEndtime() + "' and visits.ENDTIME >= '" + visits.getEndtime() + "' ")
                )) > Constants.ZERO) {
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,手机号【"+member.getPhone()+"】或身份证【"+ member.getIdcardDecode() +"】存在预约时间冲突,无法申请哦!");
        }
        return  member;
    }
@@ -348,6 +359,9 @@
        if(v !=null){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,手机号【"+member.getPhone()+"】存在未签离预约申请,不能重复申请哦!");
        }
    }
    private List<Member> isValideWithUsers(List<Visits> withUserList) {
@@ -519,8 +533,10 @@
        visitQuery.isNotNull(Visits::getParentId);
        visitQuery.eq(Visits::getIsdeleted,Constants.ZERO);
        List<Visits> visitsList = visitsJoinMapper.selectList(visitQuery);
        visitsList.add(0,result);
        result.setVisitsList(visitsList);
        Visits v = new Visits();
        BeanUtils.copyProperties(result,v);
        visitsList.add(0,v);
        result.setWithUserList(visitsList);
        return result;
    }
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -740,9 +740,10 @@
            }
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getId()).last("limit 1"));
            List<Integer> doorIds = null;
            if(Objects.isNull(member)){
              if(Objects.isNull(member)){
                member = new Member();
                BeanUtils.copyProperties(param,member);
                member.setId(null);
                member.setCreateDate(new Date());
                member.setHkStatus(Constants.ZERO);
                member.setErpStatus(Constants.ONE);
@@ -758,20 +759,24 @@
                memberMapper.insert(member);
                //TODO æµ·åº·æ•°æ®åˆ›å»º
            }else{
                Integer id = member.getId();
                BeanUtils.copyProperties(param,member);
                member.setId(id);
                String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                member.setIdcardNo(encryptIdNo);
                member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                member.setCompanyId(param.getOrgId());
                member.setEditDate(new Date());
                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                member.setErpDate(new Date());
                member.setHkStatus(Constants.ZERO);
                memberMapper.updateById(member);
                //删除用户卡片数据  äººå‘˜è§’色关联
                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
                //TODO æµ·åº·æ•°æ®æ›´æ–°
            }
            //如果有授权门禁数据,进行用户授权数据下发任务创建
            dealMemberRoleEmpower(member,doorIds,param);
            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
            //添加人员卡片数据
            dealMemberCard(member,param);
        }catch (Exception e){
@@ -807,18 +812,18 @@
     * //如果有授权门禁数据,进行用户授权数据下发任务创建
     * @param member
     */
    private void dealMemberRoleEmpower(Member member, List<Integer> doorids,UserUpdateRequest param) {
    private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) {
        //删除所有老的授权信息
        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                .eq(Empower::getMemberId,member.getId())
                .set(Empower::getIsdeleted,Constants.ONE)
                .set(Empower::getSendStatus,Constants.ZERO)
                );
        if(doorids==null || doorids.size() == 0){
        if(doorIds==null || doorIds.size() == 0){
          return;
        }
        List<Empower> list = new ArrayList<>();
        List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorids));
        List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
        if(deviceList == null || deviceList.size() == 0){
            return;
        }
@@ -829,8 +834,8 @@
            model.setIsdeleted(Constants.ZERO);
            model.setDeviceId(deviceRole.getId());
            model.setSendStatus(Constants.ZERO);
            model.setStartTime(param.getValidStartTime());
            model.setEndTime(param.getValidEndTime());
            model.setStartTime(startTime);
            model.setEndTime(endTime);
            model.setSendType(Constants.ZERO);
            list.add(model);
        }
@@ -886,12 +891,59 @@
    @Override
    public void roleUserAuthor(UserAuthorRequest param){
        if(Objects.isNull(param)
                ||StringUtils.isBlank(param.getUserId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
        if(Objects.isNull(member)){
            return;
        }
        List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
        //如果有授权门禁数据,进行用户授权数据下发任务创建
        dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
    }
    @Override
    public void parkCarAuthor(CarAuthorRequest param){
        if(Objects.isNull(param)
                ||StringUtils.isBlank(param.getCarCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
        if(Objects.isNull(member)){
            return;
        }
        //删除车量库记录数据
        parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda()
                .eq(ParkBook::getCarCode,param.getCarCode())
                .set(ParkBook::getIsdeleted,Constants.ONE)
                .set(ParkBook::getHkStatus,Constants.ZERO)
        );
        //查询车库信息
        List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>().lambda().in(Parks::getId,param.getPartIdList()));
        if(CollectionUtils.isNotEmpty(parksList)){
            List<ParkBook> parkBookList = new ArrayList<>();
            for (Parks parks:parksList) {
                ParkBook parkBook = new ParkBook();
                parkBook.setIsdeleted(Constants.ZERO);
                parkBook.setCreateDate(new Date());
                parkBook.setCarCode(param.getCarCode());
                parkBook.setParkId(parks.getId());
                parkBook.setOrigin(Constants.ZERO);
                parkBook.setStartTime(Objects.isNull(param.getValidStartTime())?new Date():param.getValidStartTime());
                parkBook.setEndTime(param.getValidEndTime());
                parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
                parkBook.setMemberId(member.getId());
                parkBook.setHkStatus(Constants.ZERO);
                parkBookList.add(parkBook);
            }
            parkBookMapper.insertBatchSomeColumn(parkBookList);
        }
    }
    @Override
    public void approveApply(ApproveNoticeRequest param){
        try{
server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
@@ -3,6 +3,7 @@
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.WxAuthorizeVO;
@@ -57,4 +58,12 @@
        return ApiResponse.success("查询成功", memberService.getVisitedMember(checkVisitedDTO));
    }
    @ApiOperation(value = "访客记录提交", notes = "访客记录提交")
    @PostMapping("/createFk")
    public ApiResponse createFk(@RequestBody Visits visits) {
        return ApiResponse.success("查询成功", visitsService.createFk(visits));
    }
}
server/openapi/src/main/java/com/doumee/web/ApiController.java
ÎļþÃû´Ó server/openapi/src/main/java/com/doumee/api/web/ApiController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.web;
package com.doumee.web;
import com.doumee.config.Jwt.JwtTokenUtil;
import lombok.extern.slf4j.Slf4j;
server/openapi/src/main/java/com/doumee/web/BizResourceController.java
ÎļþÃû´Ó server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java ÐÞ¸Ä
@@ -1,31 +1,20 @@
package com.doumee.api.web;
package com.doumee.web;
import com.doumee.config.Jwt.JwtPayLoad;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.config.annotation.ErpLoginRequired;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.erp.model.openapi.request.*;
import com.doumee.core.erp.model.openapi.response.*;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.DeviceRoleService;
import com.doumee.service.business.DeviceService;
import com.doumee.service.business.ERPSyncService;
import com.doumee.service.business.MemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
server/openapi/src/main/java/com/doumee/web/ErpResourceController.java
ÎļþÃû´Ó server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.web;
package com.doumee.web;
import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse;
import com.doumee.core.haikang.model.param.respose.OrgListResponse;