k94314517
2024-01-09 b89c0df6f99cff6a852306da467b053aa4f90df8
ERP接口
已修改5个文件
55 ■■■■■ 文件已修改
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/VisitListRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -18,8 +18,8 @@
 * @date 2021-10-10 14:40:35
 * https://www.bejson.com/othertools/cron/  cron 表达式生成地址
 */
@Component
@EnableScheduling
//@Component
//@EnableScheduling
public class ScheduleTool {
    @Autowired
server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.erp.model.openapi.request.erp.ApproveAddRequest;
import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest;
import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
@@ -10,6 +11,7 @@
import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse;
import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse;
import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.HttpsUtil;
@@ -82,7 +84,7 @@
                if(response!=null && response.getData()!=null && response.getData().getRecords()!=null){
                    list.addAll(response.getData().getRecords());
                    if(pageSize*page < response.getData().getTotal() ){
                        hasLast =true;//还有下一页
                        hasLast =false;//还有下一页
                    }
                    page++;
                }
@@ -102,12 +104,6 @@
        System.out.println(JSONObject.toJSONString(param));
        String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param));
        if(StringUtils.isNotBlank(result)){
//            TypeReference typeReference =
//                    new TypeReference<ERPApiResponse<ApproveInfoResponse>>(){};
//            ERPApiResponse<ApproveInfoResponse> response = JSONObject.parseObject(result, typeReference.getType());
//            if(response!=null && response.isSuccess()){
//                return response.getData();
//            }
            TypeReference typeReference =
                    new TypeReference<ERPApiResponse<String>>(){};
            ERPApiResponse<String> response = JSONObject.parseObject(result, typeReference.getType());
@@ -115,9 +111,9 @@
                ApproveInfoResponse approveInfoResponse = new ApproveInfoResponse();
                approveInfoResponse.setId(response.getData());
                return approveInfoResponse;
            }else if(response!=null && !response.isSuccess()){
                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),response.getMessage());
            }
        }
        return  null;
    }
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/VisitListRequest.java
@@ -12,8 +12,8 @@
@Data
@ApiModel("访客出入事件同步请求信息")
public class VisitListRequest extends BaseRequst {
    @ApiModelProperty(value = "唯一标识" ,example = "1")
    private Integer eventId;
    @ApiModelProperty(value = "唯一标识" )
    private String eventId;
    @ApiModelProperty(value = "访客名称,支持模糊匹配" )
    private String visitorName;
    @ApiModelProperty(value = "访客身份证号" )
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -126,14 +126,15 @@
        visits.setMemberId(member.getId());
        //初始化访客信息
        initVisitInfo(visits,date);
        visitsMapper.insert(visits);
        //发起ERP审批申请
        String erpId = startSendErpCheck(visits,visitMember);
        if(StringUtils.isNotBlank(erpId)){
            visits.setErpId(erpId);
            visitsMapper.updateById(visits);
        }else{
//            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,发起拜访审批申请失败!");
            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,发起拜访审批申请失败!");
        }
        visitsMapper.insert(visits);
        initWithVisitInfo(visits);
        updateProblemLog(visits,problemLog,member);
        //创建审批记录
@@ -560,6 +561,15 @@
        ApproveAddRequest param = new ApproveAddRequest();
        List<Visits> withUserVisitsList = visits.getWithUserList();
        List<UserInfoRequest> withUserList = new ArrayList<>();
        UserInfoRequest mainUser = new UserInfoRequest();
        mainUser.setName(visits.getName());
        mainUser.setIdNo(DESUtil.decrypt(Constants.EDS_PWD, visits.getIdcardNo()));
        mainUser.setSex(visits.getSex());
        mainUser.setPhone(visits.getPhone());
        mainUser.setFaceImg(visits.getFaceImg());
        mainUser.setHealthImg(visits.getImgurl());
        withUserList.add(mainUser);
        if(CollectionUtils.isNotEmpty(withUserVisitsList)){
            for (Visits v:withUserVisitsList) {
                UserInfoRequest userInfoRequest = new UserInfoRequest();
@@ -571,14 +581,17 @@
                userInfoRequest.setHealthImg(v.getImgurl());
                withUserList.add(userInfoRequest);
            }
            param.setWithUserList(withUserList);
        }
        param.setWithUserList(withUserList);
        param.setId(visits.getId());
        param.setBeVisitedUserId(visitMember.getErpId());
        param.setVisitorWorkUint(visits.getCompanyName());
        param.setPurpose(visits.getReason());
        param.setStartTime(DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss"));
        param.setEndTime(DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss"));
        param.setStartTime(DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss"));
        param.setEndTime(DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss"));
        param.setBeVisitedOrgId(visitMember.getErpOrgId());
        if(StringUtils.isNotBlank(visits.getCarNos())){
            param.setCarNo(Arrays.asList(visits.getCarNos().split(",")));
        }
@@ -591,7 +604,7 @@
        }
        ApproveInfoResponse response = ErpTool.submitApprove(ErpConstants.approveUrl,param);
        if(!Objects.isNull(response)){
            return response.getId().toString();
            return visits.getId().toString();
        }
        return  null;
    }
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -620,10 +620,10 @@
            queryWrapper.selectAs(DeviceEvent::getUserType,DoorEventListResponse::getType);
            queryWrapper.selectAs(DeviceEvent::getExtEventInOut,DoorEventListResponse::getEventInOut);
            queryWrapper.selectAs(DeviceEvent::getExtAccessChannel,DoorEventListResponse::getExtAccessChannel);
            queryWrapper.selectAs(DeviceEvent::getCreateDate,DoorEventListResponse::getCreateTime);
            queryWrapper.selectAs(DeviceEvent::getHappenTime,DoorEventListResponse::getCreateTime);
            queryWrapper.selectAs(Member::getPhone,DoorEventListResponse::getPhone);
            queryWrapper.selectAs(Member::getErpId,DoorEventListResponse::getUserId);
            queryWrapper.selectAs(Member::getCompanyId,DoorEventListResponse::getOrgId);
            queryWrapper.selectAs(Member::getErpOrgId,DoorEventListResponse::getOrgId);
            queryWrapper.leftJoin(Member.class,Member::getHkId,DeviceEvent::getExtEventPersonNo);
            if(!Objects.isNull(doorEventListRequest)){
@@ -799,7 +799,7 @@
                    ||Objects.isNull(param.getIdType())//证件类型
                    ||Objects.isNull(param.getSex())//性别
                    ||Objects.isNull(param.getOrgId())//所属组织编码
                    ||StringUtils.isBlank(param.getFaceImg())//人脸照片
//                    ||StringUtils.isBlank(param.getFaceImg())//人脸照片
                    ||StringUtils.isBlank(param.getCode())//工号
                    ||StringUtils.isBlank(param.getPhone())//手机号
             ){
@@ -830,7 +830,6 @@
                member.setErpOrgId(param.getOrgId());
                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                memberMapper.insert(member);
                //TODO 海康数据创建-------------修改-------------------
            }else{
                Integer id = member.getId();
                BeanUtils.copyProperties(param,member);
@@ -848,7 +847,6 @@
                memberMapper.updateById(member);
                //删除用户卡片数据  人员角色关联
                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
                //TODO 海康数据更新
            }
            //如果有授权门禁数据,进行用户授权数据下发任务创建
            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());