k94314517
2023-12-20 01c009651c453d0299581ad6e8c76a0394611420
ERP接口
已修改4个文件
81 ■■■■ 文件已修改
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserListRequest.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/web/BizResourceController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserListRequest.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 分类信息表
 * @author 江蹄蹄
@@ -21,7 +23,7 @@
    @ApiModelProperty(value = "身份证号" )
    private String idNo;
    @ApiModelProperty(value = "时间范围-开始,格式yyyy-MM-dd HH:mm:ss,如2023-11-24 09:17:11" )
    private String startTime ;
    private Date startTime ;
    @ApiModelProperty(value = "时间范围-截止,格式yyyy-MM-dd HH:mm:ss,如2023-11-24 09:17:11" )
    private String endTime ;
    private Date endTime ;
}
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -211,6 +211,10 @@
    @TableField(exist = false)
    private String roleIdParam;
    @ApiModelProperty(value = "授权门禁组编码集合,【访客端】唯一标识",hidden = true )
    @TableField(exist = false)
    private Integer[] roleIds;
    //暂无使用
    @ApiModelProperty(value = "姓名/手机号/工号")
    @TableField(exist = false)
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -271,31 +271,46 @@
            List<Member> addList = new ArrayList<>();
            List<Member> updateList = new ArrayList<>();
            List<Integer> delIds = new ArrayList<>(); 
            List<Member> delList = new ArrayList<>();
            List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
                    .eq(Member::getIsdeleted,Constants.ZERO)
                    .eq(Member::getType, Constants.memberType.internal));
            dealUserChangeList(list,addList,updateList,delIds,allList);
            dealUserChangeList(list,addList,updateList,delList,allList);
            if(addList.size()>0){
                for (Member member:addList) {
                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
                }
                memberMapper.insertBatchSomeColumn(addList);
            }
            if(updateList.size()>0){
                for(Member c : updateList){
                    dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
                    memberMapper.updateById(c);
                }
            }
            if(delIds.size()>0){
                //删除所有需要删除的组织信息(逻辑删除)
            if(delList.size()>0){
                for (Member member:delList) {
                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
                }
                delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList());
                memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getHkStatus,Constants.ZERO)
                        .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds));
            }
        }else{
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "同步ERP数据为空!");
        }
        return  null;
    }
    private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList, List<Integer> delIds, List<Member> allList) {
    public void dealRoleEmpower(Member member,Date startTime , Date endTime){
        List<Integer> doorIds = null;
        doorIds = getRoleIdByParam(member.getRoleIds(),member);
        //如果有授权门禁数据,进行用户授权数据下发任务创建
        dealMemberRoleEmpower(member,doorIds,startTime,endTime);
    }
    private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList,List<Member> delList, List<Member> allList) {
        Date date = new Date();
        for(UserListRespone response : list){
            //根据 erpId 查询用户信息,判断是新增还是更新
@@ -311,7 +326,10 @@
                //如果是更新
                if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){
                    //如果已删除,加入删除集合中
                    delIds.add(member.getId());
                    member.setRoleIds(response.getRoleIds());
                    delList.add(member);
//                    delIds.add(member.getId());
                    continue;
                }
                updateList.add(addUpdateMemberModel(response,member,date));
@@ -320,7 +338,8 @@
        if(allList!=null && allList.size()>0){
            for(Member  c : allList){
                if(isUserDeleted(c,list)){
                    delIds.add(c.getId());
                    delList.add(c);
//                    delIds.add(c.getId());
                }
            }
        }
@@ -341,6 +360,7 @@
        member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
        member.setCompanyId(param.getOrgId());
        member.setHkStatus(Constants.ZERO);
        member.setRoleIds(param.getRoleIds());
        return  member;
    }
@@ -353,12 +373,14 @@
        member.setEditDate(new Date());
        member.setErpDate(new Date());
        member.setHkStatus(Constants.ZERO);
        member.setRoleIds(param.getRoleIds());
        return  member;
    }
    private boolean isUserDeleted(Member c, List<UserListRespone> list) {
        for(UserListRespone m : list){
            if(StringUtils.equals(c.getErpId(),m.getId().toString())){
                c.setRoleIds(m.getRoleIds());
                return  true;
            }
        }
server/openapi/src/main/java/com/doumee/web/BizResourceController.java
@@ -1,11 +1,13 @@
package com.doumee.web;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.ErpLoginRequired;
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.ERPSyncService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -15,7 +17,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by IntelliJ IDEA.
@@ -32,6 +36,9 @@
    @Autowired
    private ERPSyncService erpSyncService;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @ApiOperation(value = "调用凭据获取接口", notes = "访客端提供,供ERP端调用,向ERP提供统接口调用凭证")
@@ -147,6 +154,34 @@
        erpSyncService.approveApply(param);
        return  ApiResponse.success(null);
    }
    @ApiOperation(value = "FTP账户信息", notes = "访客端提供,供ERP端调用,FTP账户信息")
    @GetMapping("/resource/ftpAccount")
    public ApiResponse<Map<String,Object>> ftpAccount() {
        Map<String,Object> map = new HashMap<>();
        map.put("FTP主机地址IP",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode());
        map.put("FTP访问端口",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode());
        map.put("FTP访问登录名",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode());
        map.put("FTP访问登陆密码",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
        map.put("FTP访客事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.VISIT_EVENT_IMG).getCode());
        map.put("FTP车辆事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.CAR_EVENT_IMG).getCode());
        map.put("FTP门禁事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.DEVICE_EVENT_IMG).getCode());
        map.put("FTP用户图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
        return  ApiResponse.success(map);
    }
}