admin/src/api/business/staging.js
@@ -19,3 +19,6 @@ export function level (visitId) { return request.get(`/business/staging/level?visitId=${visitId}`) } export function visitCancel (visitId) { return request.get(`/business/visits/visitCancel?visitId=${visitId}`) } admin/src/views/business/visits.vue
@@ -95,7 +95,9 @@ fixed="right" > <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('详情', row.id)" v-permissions="['business:visits:update']">查看详情</el-button> <el-button type="text" @click="departure(row.id)" v-permissions="['business:visits:level']" icon="el-icon-delete" style="color: red" v-if="row.status == 7">离厂</el-button> <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']" icon="el-icon-delete" style="color: red" v-if="row.status == 5">取消预约</el-button> <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('详情', row.id)" icon="el-icon-view">详情</el-button> <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">查询审批结果</el-button>--> </template> </el-table-column> @@ -142,5 +144,37 @@ }) this.search() }, methods: { departure(id) { this.$confirm('确定离场吗, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { level(id) .then(res => { this.page = 1 this.getData() }) }).catch(() => { }); }, cancel(id) { this.$confirm('确定取消预约吗, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { visitCancel(id) .then(res => { this.page = 1 this.getData() }) }).catch(() => { }); }, } } </script> admin/src/views/business/visits_hk.vue
@@ -88,7 +88,7 @@ fixed="right" > <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('详情', row.id)" v-permissions="['business:visits:update']">查看详情</el-button> <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('详情', row.id)" >查看详情</el-button> <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">查询审批结果</el-button>--> </template> </el-table-column> @@ -137,6 +137,7 @@ this.search() }, methods: { } } </script> server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
@@ -58,7 +58,7 @@ @ApiModelProperty(value = "角色编码(关联door_role),多个英文逗号隔开") @ExcelColumn(name="角色编码(关联door_role)") private String roleId; private Integer roleId; @ApiModelProperty(value = "可使用门禁编码集合,多个英文逗号隔开") @TableField(exist = false) private String doorIds; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -857,6 +857,7 @@ model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); model.setSendType(Constants.ZERO); model.setFailFlag(Constants.ZERO); list.add(model); } //导入新增的授权信息 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -927,13 +927,57 @@ } } } private List<Integer> getRoleIdByParam(Integer[] param, Member member) { private Integer getRoleIdByParam(Integer[] param, Member member) { //添加人员角色关联数据 member.setRoleId(null); if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){ List<MemberRole> roleList = memberRoleMapper.selectList( new QueryWrapper<MemberRole>().lambda() .eq(MemberRole::getIsdeleted,Constants.ZERO) .eq(MemberRole::getMemberId,member.getId())); if((param == null || param.length==0 ) &&( roleList==null || roleList.size()==0)){ //检查用户权限是否发现变化 return 0; } if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){ //如果原来有权限,接口进行权限删除 memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); return 1; } if(!Objects.isNull(param)&¶m.length>Constants.ZERO){ if(roleList!=null && roleList.size()>0) { //和原有权限进行对比,看是否权限发生变化 boolean ischange1=false; for (MemberRole role : roleList) { ischange1=false; for (int j = 0; j < param.length; j++) { if(Constants.equalsInteger(role.getRoleId(),param[j])){ ischange1=true; break; } } if(!ischange1){ break; } } boolean ischange2 =false; for (int j = 0; j < param.length; j++) { ischange2=false; for (MemberRole role : roleList) { if(Constants.equalsInteger(role.getRoleId(),param[j])){ ischange2=true; break; } } if(!ischange2){ break; } } if(ischange2 && ischange1){ return 0;//权限未发生改变 } } //如果原来有权限,接口进行权限删除 memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); //查询数据库存在的权限 List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getType,Constants.TWO) @@ -964,15 +1008,16 @@ memberRole.setCreateDate(new Date()); memberRole.setMemberId(member.getId()); memberRole.setIsdeleted(Constants.ZERO); memberRole.setRoleId(deviceRole.getId().toString()); memberRole.setRoleId(deviceRole.getId()); memberRoleList.add(memberRole); } member.setRoleId(ids); memberRoleMapper.insertBatchSomeColumn(memberRoleList); member.setRoleId(ids); return r; return 1; } } return null; return 0; } @@ -992,22 +1037,22 @@ if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,用户信息不存在!"); } List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member); Integer ischange = getRoleIdByParam(param.getRoleIds(),member); if(ischange == 0){ return;//未发现权限变化,直接返回 } if(param.getRoleIds()!=null && param.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,未查询到有效门禁组数据"); } memberMapper.update(null,new UpdateWrapper<Member>().lambda() .eq(Member::getId,member.getId()) .set(Member::getRoleId,member.getRoleId()) .set(Member::getStartTime,param.getValidStartTime()) .set(Member::getEndTime,param.getValidEndTime()) .set(Member::getEditDate,new Date()) ); //重新授权 HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper); /* memberMapper.update(null,new UpdateWrapper<Member>().lambda() .eq(Member::getId,member.getId()) .set(Member::getRoleId,member.getRoleId()) .set(Member::getRemark,"待同步安防平台") .set(Member::getStartTime,param.getValidStartTime()) .set(Member::getEndTime,param.getValidEndTime()) .set(Member::getEditDate,new Date()) .set(Member::getHkStatus,Constants.ZERO ));*/ } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -92,7 +92,7 @@ boolean iscard = false;//是否有卡片下发成功 //更新已完成下载任务 String remark = ""; String cardInfo = "卡片下发失败"; String cardInfo =""; TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail(); if (d.getCards() != null && d.getCards().size() > 0) { for (TaskPersonDetailCardInfoResponse card : d.getCards()) { @@ -103,7 +103,11 @@ } if(iscard){ cardInfo = "卡片【"+cardInfo+"】下发成功"; }else{ cardInfo = "卡片下发失败"; } }else { cardInfo = "卡片下发失败"; } if (d.getFaces() == null || d.getFaces().size() == 0) { remark = cardInfo + ", 无人脸下发!"; @@ -393,6 +397,11 @@ // } // Constants.DEALING_HK_EMPOWER =true; //先删除所有需要取消授权的数据 if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda() .eq(Empower::getSendStatus,Constants.EmpowerStatus.ing)) > 1000){ //如果当前任务大于1000个(大概10个任务) return endId; } List<Empower> allList =getAllWaitDealList( endId); if(allList !=null && allList.size()>0){ //查询所有需要同步的数据,重新下发最新人员权限即可 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -402,6 +402,7 @@ model.setSendInfo("待同步安防平台"); model.setRemark("待同步安防平台"); model.setStartTime(member.getStartTime()); model.setFailFlag(Constants.ZERO); model.setEndTime(member.getEndTime()); //默认给于虚拟卡 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); @@ -461,6 +462,7 @@ model.setCreateDate(new Date()); model.setMemberId(member.getId()); model.setIsdeleted(Constants.ZERO); model.setFailFlag(Constants.ZERO); model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); model.setSendInfo("待同步安防平台");