k94314517
2024-03-04 c1e7bbbec984e4cd1b9f31490e3d85ae7c923ab0
ERP接口
已修改8个文件
74 ■■■■■ 文件已修改
server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -75,11 +75,11 @@
                        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
                        String redisToken = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,String.class);
                        if(StringUtils.isBlank(redisToken)||!token.equals(redisToken)){
                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未登录");
                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"授权已失效");
                        }
                        request.setAttribute(JwtTokenUtil.HEADER_KEY,token);
                    } catch (IllegalArgumentException | JwtException e) {
                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"授权已失效");
                    }
//                    request.setAttribute("token", token);
                }
server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
@@ -8,6 +8,9 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@@ -21,18 +24,23 @@
@ApiModel("ERP访客申请主类")
public class ErpVisitDTO extends BaseRequst {
    @NotBlank(message = "ERP记录主键不能为空")
    @ApiModelProperty(value = "ERP记录主键")
    private String erpId;
    @NotBlank(message = "访客姓名不能为空")
    @ApiModelProperty(value = "访客姓名")
    private String name;
    @NotBlank(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号")
    private String phone;
    @NotNull(message = "证件类型不能为空")
    @ApiModelProperty(value = "证件类型 0身份证 1港澳证件 2护照")
    private Integer idcardType;
    @NotBlank(message = "证件号不能为空")
    @ApiModelProperty(value = "证件号")
    private String idcardNo;
@@ -42,25 +50,31 @@
    @ApiModelProperty(value = "健康证")
    private String imgurl;
    @NotBlank(message = "公司名称不能为空")
    @ApiModelProperty(value = "公司名称")
    private String companyName;
    @NotBlank(message = "被访人不能为空")
    @ApiModelProperty(value = "被访人 erp 主键 ")
    private String receptMemberId;
    @NotNull(message = "门禁有效起期不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "门禁有效期开始")
    private Date starttime;
    @NotNull(message = "门禁有效止期不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "门禁有效期截止")
    private Date endtime;
    @NotBlank(message = "门禁编码不能为空")
    @ApiModelProperty(value = "门禁编码  海康系统主键 ,多个用英文逗号隔开")
    private String doors;
    @NotBlank(message = "来访事由不能为空")
    @ApiModelProperty(value = "来访事由")
    private String reason;
server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -26,7 +26,7 @@
     */
    Integer create(Visits visits);
    Integer createFk(Visits visits);
    Integer createFk(Visits visits,Boolean isERP);
    void createFKForErp(ErpVisitDTO erpVisitDTO);
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -111,7 +111,6 @@
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void createFKForErp(ErpVisitDTO erpVisitDTO){
        try {
            if (Objects.isNull(erpVisitDTO)
                    || StringUtils.isBlank(erpVisitDTO.getName())
                    || StringUtils.isBlank(erpVisitDTO.getPhone())
@@ -120,6 +119,7 @@
                    || Objects.isNull(erpVisitDTO.getStarttime())
                    || Objects.isNull(erpVisitDTO.getEndtime())
                    || StringUtils.isBlank(erpVisitDTO.getFaceImg())
                    || StringUtils.isBlank(erpVisitDTO.getDoors())
                    || Objects.isNull(erpVisitDTO.getReceptMemberId())
                    || Objects.isNull(erpVisitDTO.getErpId())
            ) {
@@ -159,7 +159,7 @@
                }
                visits.setWithUserList(visitsList);
            }
            this.createFk(visits);
            this.createFk(visits,true);
        }catch (BusinessException e){
            throw e;
        }finally {
@@ -190,12 +190,12 @@
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer createFk(Visits visits) {
    public Integer createFk(Visits visits,Boolean isERP) {
        isValidBaseParam(visits);
        //检查是否必须答题,并且符合答题要求
        ProblemLog problemLog = isValidProblemLog(visits);
        //获取申请的海康访问门禁组信息
        getHkDeviceRoles(visits);
        getHkDeviceRoles(visits,isERP);
        //检验拜访人是否合法
        Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
@@ -577,9 +577,9 @@
                || visits.getReceptMemberId() == null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,信息填写不正确!");
        }
//        if(visits.getStarttime().getTime() < System.currentTimeMillis()){
//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约开始时间必须大于当前时间!");//
//        }
        if(visits.getEndtime().getTime() < System.currentTimeMillis()){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约结束时间必须大于当前时间!");//
        }
        if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约结束时间必须大于开始时间!");//
        }
@@ -944,16 +944,13 @@
     * @param visits
     * @return
     */
    private String[] getHkDeviceRoles(Visits visits) {
    private String[] getHkDeviceRoles(Visits visits,Boolean isERP) {
        String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode();
        if(isERP){
            mustSelectDoors = Constants.ONE+"";
        }
        List<DeviceRole> roles = null;
        if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){
            //如果设置不选择门禁,则提供默认门禁组信息
            if(StringUtils.isBlank(visits.getDoors())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,请选择访问门禁!");
            }
            //校验门禁组信息是否正确
            String[] dIds = visits.getDoors().split(",");
            roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                    .eq(DeviceRole::getIsDefault,Constants.ZERO)
                    .eq(DeviceRole::getIsdeleted,Constants.ZERO)
@@ -963,7 +960,7 @@
            }
        }else{
            //如果必须选择门禁,但未选择
            if(StringUtils.isNotBlank(visits.getDoors())){
            if(StringUtils.isBlank(visits.getDoors())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,请选择有效访问门禁!");
            }
            String[] dIds = visits.getDoors().split(",");
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -1017,12 +1017,16 @@
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,用户信息不存在!");
        }
        List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
        if(StringUtils.isBlank(member.getRoleId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到门禁组数据");
        }
        //更新授权有效期
        Member update = new Member();
        update.setId(member.getId());
        update.setEditDate(new Date());
        update.setStartTime(param.getValidStartTime());
        update.setEndTime(param.getValidEndTime());
        update.setRoleId(StringUtils.isNotBlank(member.getRoleId())?member.getRoleId():null);
        update.setHkStatus(Constants.ZERO);//做一遍更新逻辑
        update.setRemark("待同步安防平台");
        memberMapper.updateById(update);
@@ -1035,8 +1039,10 @@
                ||StringUtils.isBlank(param.getCarCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(param.getValidStartTime()!=null && param.getValidEndTime()!=null&&param.getValidStartTime().getTime()> param.getValidEndTime().getTime()){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,有效期时间不合法!");
        if(Objects.nonNull(param.getValidStartTime())&&Objects.nonNull(param.getValidEndTime())){
            if(param.getValidStartTime().getTime()> param.getValidEndTime().getTime()){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,有效期时间不合法!");
            }
        }
        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
        if(Objects.isNull(member)){
@@ -1048,8 +1054,13 @@
                .set(ParkBook::getIsdeleted,Constants.ONE)
                .set(ParkBook::getHkStatus,Constants.ZERO)
        );
        List<Parks> parksList = new ArrayList<>();
        if(CollectionUtils.isNotEmpty(param.getParkIdList())){
            parksList = parksMapper.selectList(new QueryWrapper<Parks>().lambda()
                    .in(Parks::getId,param.getParkIdList())
            );
        }
        //查询车库信息
        List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>().lambda().in(Parks::getId,param.getParkIdList()));
        if(CollectionUtils.isNotEmpty(parksList)){
            List<ParkBook> parkBookList = new ArrayList<>();
            for (Parks parks:parksList) {
@@ -1060,7 +1071,7 @@
                parkBook.setParkId(parks.getId());
                parkBook.setOrigin(Constants.ZERO);
                parkBook.setStartTime(Objects.isNull(param.getValidStartTime())?new Date():param.getValidStartTime());
                parkBook.setEndTime(param.getValidEndTime());
                parkBook.setEndTime(Objects.isNull(param.getValidEndTime())?null:param.getValidEndTime());
                parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
                parkBook.setMemberId(member.getId());
                parkBook.setHkStatus(Constants.ZERO);
server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java
@@ -24,6 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
@@ -108,7 +109,7 @@
    })
    public ApiResponse createVisit(@RequestBody Visits visits) {
        visits.setCreateMemberId(getMemberId());
        return ApiResponse.success("查询成功", visitsService.createFk(visits));
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false));
    }
    @LoginRequired
server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
@@ -64,7 +64,7 @@
    @PostMapping("/createFk")
    public ApiResponse createFk(@RequestBody Visits visits) {
        visits.setSourceType(Constants.ZERO);
        return ApiResponse.success("查询成功", visitsService.createFk(visits));
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false));
    }
server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -166,7 +167,7 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse  createVisit(@RequestBody ErpVisitDTO param) {
    public ApiResponse  createVisit(@Valid @RequestBody ErpVisitDTO param) {
        param.setToken(this.getToken());
        visitsService.createFKForErp(param);
        return  ApiResponse.success("操作成功");