nidapeng
2024-04-02 4167298accee956c10ed1b5e3d6ce909cad38edd
整理
已修改8个文件
133 ■■■■ 文件已修改
admin/src/api/business/staging.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visits.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visits_hk.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)&&param.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("待同步安防平台");