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); } }