From 959edec9fe35807d6b1b794cce42e9665d50d3a8 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 15 五月 2024 09:01:29 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 39 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 13
admin/src/components/business/OperaMemberImportWindow.vue | 82 +++
admin/src/assets/style/style.scss | 30 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 95 ----
admin/src/components/business/OperaMemberRoleWindow.vue | 218 +++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 18
admin/src/views/business/userAction.vue | 24
admin/src/api/business/member.js | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 231 ++++++++-
admin/src/components/business/OperaInternalCompanyWindow.vue | 12
admin/public/template/member.xlsx | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java | 7
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java | 5
admin/src/components/business/OperaMemberWindow.vue | 13
admin/src/views/business/internalCompany.vue | 4
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java | 6
admin/src/views/business/relativeMember.vue | 399 +++++++++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java | 3
admin/public/template/traintime.xlsx | 0
server/system_service/src/main/java/com/doumee/dao/business/model/Company.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 40 +
admin/src/api/business/device.js | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java | 2
admin/src/views/business/internalMember.vue | 87 ++-
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java | 3
32 files changed, 1,154 insertions(+), 207 deletions(-)
diff --git a/admin/public/template/member.xlsx b/admin/public/template/member.xlsx
new file mode 100644
index 0000000..5516abc
--- /dev/null
+++ b/admin/public/template/member.xlsx
Binary files differ
diff --git a/admin/public/template/traintime.xlsx b/admin/public/template/traintime.xlsx
new file mode 100644
index 0000000..5516abc
--- /dev/null
+++ b/admin/public/template/traintime.xlsx
Binary files differ
diff --git a/admin/src/api/business/device.js b/admin/src/api/business/device.js
index 636da34..12662a9 100644
--- a/admin/src/api/business/device.js
+++ b/admin/src/api/business/device.js
@@ -16,6 +16,9 @@
export function getList (data) {
return request.post('/visitsAdmin/cloudService/business/device/getList', data)
}
+export function getDeviceRoleList (data) {
+ return request.post('/visitsAdmin/cloudService/business/deviceRole/list', data)
+}
// 淇敼
export function updateById (data) {
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index 0c358ae..d100a64 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -45,6 +45,12 @@
export function updateCanVisit (data) {
return request.post('/visitsAdmin/cloudService/business/member/updateCanVisitById', data)
}
+export function importExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/member/importExcel', data)
+}
+export function batchRoleAuth (data) {
+ return request.post('/visitsAdmin/cloudService/business/member/batchRoleAuth', data)
+}
// 鎵归噺鎷夐粦
export function batchBlock (ids) {
diff --git a/admin/src/assets/style/style.scss b/admin/src/assets/style/style.scss
index 44a053b..4718bce 100644
--- a/admin/src/assets/style/style.scss
+++ b/admin/src/assets/style/style.scss
@@ -93,4 +93,34 @@
}
.apply-status5,.change-status7,.settle-status7,.tax-status1,.du-status1,.settle-status4 {
color: #00BA92 !important;
+
+}
+::v-deep .el-dialog{
+ margin-top: 300px;
+ }
+.center-title .el-dialog__title {
+ text-align: center;
+ width: 100%;
+ font-size: 18px;
+ font-weight: bold;
+}
+
+.tip {
+ em {
+ font-style: normal;
+ color: $primary-color;
+ font-weight: bold;
+ }
+}
+.tip-warn {
+ margin: 4px 0 12px 0;
+ font-size: 12px;
+ color: #999;
+ i {
+ color: orange;
+ margin-right: 4px;
+ font-size: 14px;
+ position: relative;
+ top: 1px;
+ }
}
diff --git a/admin/src/components/business/OperaInternalCompanyWindow.vue b/admin/src/components/business/OperaInternalCompanyWindow.vue
index 6445653..5b0d8e1 100644
--- a/admin/src/components/business/OperaInternalCompanyWindow.vue
+++ b/admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -16,7 +16,7 @@
<el-input v-model="form.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" v-trim/>
</el-form-item>
<el-form-item label="缁勭粐绫诲瀷" prop="type">
- <el-radio-group v-model="form.type" >
+ <el-radio-group v-model="form.type" :disabled="form.parentType ==0">
<el-radio :label="0">鐩稿叧鏂圭粍缁�</el-radio>
<el-radio :label="1">鍐呴儴缁勭粐</el-radio>
</el-radio-group>
@@ -78,11 +78,14 @@
name: '',
parentId: null,
disable: false,
- parentName: ''
+ parentName: '',
+ parentType:0
}
if (target != null) {
this.form.parentId = target.id
- this.form.parentName = target.companyPath
+ this.form.parentType = target.type
+ this.form.parentName = target.companyNamePath
+
}
// 鏂板缓缁勭粐
if (row == null) {
@@ -98,6 +101,9 @@
for (const key in this.form) {
this.form[key] = row[key]
}
+ if(target.type == 0){
+ this.form.type = 0
+ }
})
},
// 纭鏂板缓/淇敼
diff --git a/admin/src/components/business/OperaMemberImportWindow.vue b/admin/src/components/business/OperaMemberImportWindow.vue
new file mode 100644
index 0000000..d8ce699
--- /dev/null
+++ b/admin/src/components/business/OperaMemberImportWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <el-dialog
+ class="center-title"
+ :title="title"
+ width="500px"
+ top="30vh"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <p class="tip-warn"><i class="el-icon-warning"></i>瀵煎叆璇存槑锛�<br>
+ 1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br>
+ </p>
+ <el-form class="demo-form-inline" >
+ <el-form-item label="浜哄憳鍚嶅崟" required>
+ <div style="width: 100%;display: flex;align-items: center;">
+ <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
+ <el-button type="text" @click="exportTemplate">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button>
+ </div>
+ <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
+ </el-form-item>
+ </el-form>
+ <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
+ <template v-slot:footer>
+ <el-button @click="visible=false">杩斿洖</el-button>
+ </template>
+ </el-dialog>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { importExcel } from '@/api/business/member'
+export default {
+ name: 'OperaMemberImportWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ fileName: '',
+ companyType: 0
+ }
+ },
+ methods: {
+ open (title, companyType) {
+ this.title = title
+ this.fileName = ''
+ this.visible = true
+ this.companyType = companyType
+ },
+ // 瀵煎嚭妯℃澘
+ exportTemplate () {
+ // 鎶曚繚鐢宠
+ window.open('/template/member.xlsx')
+ },
+ clickRef () {
+ this.$refs.fileExcel.click()
+ },
+ result (e) {
+ const data = new FormData()
+ data.append('file', e.target.files[0])
+ importExcel(data)
+ .then(res => {
+ this.$message.success('瀵煎叆鎴愬姛')
+ this.$emit('success')
+ this.visible = false
+ })
+ .catch(err => {
+ this.$message.error(err)
+ this.fileName = ''
+ })
+ .finally(() => {
+ this.$refs.fileExcel.value = null
+ })
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/admin/src/components/business/OperaMemberRoleWindow.vue b/admin/src/components/business/OperaMemberRoleWindow.vue
new file mode 100644
index 0000000..a581c65
--- /dev/null
+++ b/admin/src/components/business/OperaMemberRoleWindow.vue
@@ -0,0 +1,218 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ width="900px"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ 1.闂ㄧ鏉冮檺閰嶇疆鎴愬姛鍚庯紝鎺堟潈浠诲姟鍗宠繘鍏ユ潈闄愪笅鍙戦槦鍒楋紝鍙墠寰�銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�;<br>
+ 2.濡傛灉闇�瑕佹竻绌哄綋鍓嶉�変腑浜哄憳涓嬪彂鏉冮檺锛屼互涓嬨�愬凡閫夐棬绂佺偣鍒嗙粍銆戜负绌烘彁浜ゅ嵆鍙��
+ </p>
+ <p class="tip" v-if="form.names != null">姝e湪涓�<em>銆恵{ form.names.map(item => `${item}`).join('锛�') }}銆�</em> 閰嶇疆闂ㄧ鏉冮檺</p>
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="闂ㄧ鏈夋晥鏈燂細" prop="timeType">
+ <el-radio-group v-model="form.timeType">
+ <el-radio :label="0">闀挎湡鏈夋晥</el-radio>
+ <el-radio :label="1">鑷畾涔夋椂闂�</el-radio>
+ <el-radio :label="2" v-if="companyType=== 0">鍩硅鏈夋晥鏈�</el-radio>
+ </el-radio-group>
+ <div v-if="form.timeType ==1" style="margin-top: 10px" >
+ <el-date-picker
+ @change="seleTime"
+ v-model="time"
+ type="datetimerange"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </div>
+ </el-form-item>
+ <el-form-item label="闂ㄧ鐐瑰垎缁勶細" prop="roleIds">
+ <el-transfer
+ style="margin-top: 15px;font-size: 12px"
+ :titles="['鏈�夐棬绂佺偣鍒嗙粍', '宸查�夐棬绂佺偣鍒嗙粍']"
+ filterable
+ :filter-method="filterMethod"
+ filter-placeholder="璇疯緭鍏ラ棬绂佺偣鍒嗙粍鍚嶇О"
+ v-model="form.roleIds"
+ :data="roles">
+ </el-transfer>
+ </el-form-item>
+
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import {getDeviceRoleList} from '@/api/business/device'
+export default {
+ name: 'OperaDeviceRoleWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ var validateTime = (rule, value, callback) => {
+ if(this.form.timeType == null ){
+ callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
+ return
+ }
+ if(this.form.timeType === 1 && (this.form.startTime ==null || this.form.endTime == null)){
+ callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
+ return
+ }
+ callback()
+ };
+ return {
+ // 琛ㄥ崟鏁版嵁
+ time:null,
+ companyType:1,
+ form: {
+ ids: [],
+ names: [],
+ timeType: 0,
+ roleIds: [],
+ status: 1,
+ startTime:null,
+ endTime:null,
+ radio: 0
+ },
+ roles:[],
+ rules: {
+ // 楠岃瘉瑙勫垯
+ timeType: [
+ { required: true, validator: validateTime,message: '璇烽�変腑闂ㄧ鏈夋晥鏈�' }
+ ],
+ startTime: [
+ { validator: validateTime, trigger: 'blur' }
+ ],
+ endTime: [
+ { validator: validateTime, trigger: 'blur' }
+ ]
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/member',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ filterMethod(query, item) {
+ if (!query) return item;
+ return item.label.indexOf(query) > -1 ;
+ },
+ seleTime (e) {
+ if(e && e.length >= 2){
+ this.form.startTime = e[0]
+ this.form.endTime = e[1]
+ }else{
+ this.form.startTime = null
+ this.form.endTime = null
+ }
+ },
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ if (this.form.roleIds == null || this.form.roleIds.length == 0) {
+ this.$dialog.actionConfirm('鏉冮檺涓虹┖锛屾彁浜ゅ悗鍗虫竻闄ゆ墍閫変汉鍛樺凡鍒嗛厤鏉冮檺锛佽璋ㄦ厧鎿嶄綔', '鎮ㄧ‘璁よ繘琛岃鎿嶄綔鍚楋紵')
+ .then(() => {
+ this.confirmDo();
+ })
+ .catch(() => {})
+
+ } else {
+ this.confirmDo();
+ }
+ })
+ },
+ confirmDo(){
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ this.api.batchRoleAuth({
+ ids: this.form.ids,
+ timeType: this.form.timeType,
+ startTime: this.form.startTime,
+ endTime: this.form.endTime,
+ roleIds: this.form.roleIds
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ },
+ // 鑾峰彇璁惧
+ getLists (){
+ getDeviceRoleList({type:2})
+ .then(res => {
+ this.roles = res.map(item => {
+ return {
+ label: item.name,
+ area: item.name,
+ key: item.id
+ }
+ })
+ })
+ },
+ open (title, ids,names,companyType) {
+ this.roles = []
+ this.getLists()
+ this.title = title
+ this.visible = true
+ this.companyType = companyType
+ // 鏂板缓
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ this.form.ids = ids;
+ this.form.names =names;
+
+ console.log(names)
+ })
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+@import "@/assets/style/variables.scss";
+// 瑙掕壊閰嶇疆
+.global-window {
+ .tip {
+ em {
+ font-style: normal;
+ color: $primary-color;
+ font-weight: bold;
+ }
+ }
+ .tip-warn {
+ margin: 4px 0 12px 0;
+ font-size: 12px;
+ color: #999;
+ i {
+ color: orange;
+ margin-right: 4px;
+ font-size: 14px;
+ position: relative;
+ top: 1px;
+ }
+ }
+}
+.el-transfer-panel {
+ width: 350px !important;
+}
+</style>
diff --git a/admin/src/components/business/OperaMemberWindow.vue b/admin/src/components/business/OperaMemberWindow.vue
index 19be014..c3eb8db 100644
--- a/admin/src/components/business/OperaMemberWindow.vue
+++ b/admin/src/components/business/OperaMemberWindow.vue
@@ -17,12 +17,16 @@
@change="handleChangeCompany"
:show-all-levels="false"
clearable
+ filterable
:props="departprops"
></el-cascader>
+ <div style="font-size: 12px;color: #F56C6C" >
+ 娉細浠呮敮鎸侀�夋嫨 銆恵{companyType ===0?'鐩稿叧鏂圭粍缁�':'鍐呴儴缁勭粐'}}銆�
+ </div>
</el-form-item>
<el-form-item label="鎵嬫満鍙�" prop="phone">
<el-input v-model="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim/>
- <div style="color: #F56C6C;font-size: 12px">锛堟敞锛氬憳宸ユ墜鏈哄彿灏嗕綔涓哄钩鍙扮櫥褰曡处鍙凤紝鍒濆瀵嗙爜涓虹郴缁熼粯璁ゅ瘑鐮侀厤缃」锛�</div>
+ <div style="color: #F56C6C;font-size: 12px">娉細鍛樺伐鎵嬫満鍙峰皢浣滀负骞冲彴鐧诲綍璐﹀彿锛屽垵濮嬪瘑鐮佷负绯荤粺榛樿瀵嗙爜閰嶇疆椤�</div>
</el-form-item>
<el-form-item label="韬唤璇佸彿" prop="idcardNo" v-if="form.id ==null">
<el-input v-model="form.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" v-trim/>
@@ -30,7 +34,7 @@
<el-form-item label="淇敼韬唤璇佸彿" prop="idcardNoNew" v-if="form.id !=null">
<el-input v-model="form.idcardNoNew" placeholder="鍙慨鏀硅韩浠借瘉鍙�" v-trim/>
<div style="font-size: 12px" v-if="form.id !=null">
- 锛堟敞锛氬綋鍓嶈韩浠借瘉鍙蜂负<span style="color: #F56C6C">銆恵{form.idcardDecode}}銆�</span>锛屽闇�淇敼锛岃鍦ㄨ緭鍏ユ爮濉啓鏂扮殑韬唤璇佸彿!锛�
+ 娉細褰撳墠韬唤璇佸彿涓�<span style="color: #F56C6C">銆恵{form.idcardDecode}}銆�</span>锛屽闇�淇敼锛岃鍦ㄨ緭鍏ユ爮濉啓鏂扮殑韬唤璇佸彿!
</div>
</el-form-item>
<el-form-item label="宸ュ彿" prop="code">
@@ -68,6 +72,7 @@
value: 'id',
checkStrictly: true
},
+ companyType:0,
department: [],
// 琛ㄥ崟鏁版嵁
form: {
@@ -113,10 +118,11 @@
* @title 绐楀彛鏍囬
* @target 缂栬緫鐨勫璞�
*/
- open (title, target, depart) {
+ open (title, target, depart,companyType) {
this.title = title
this.department = depart
this.visible = true
+ this.companyType = companyType
// 鏂板缓
if (target == null) {
this.$nextTick(() => {
@@ -142,7 +148,6 @@
}
})
}
- console.log(that.form.company)
})
},
// 涓婁紶鍥剧墖
diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index 7057fc3..5a29df9 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/admin/src/views/business/internalCompany.vue
@@ -33,7 +33,7 @@
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="缁勭粐绫诲瀷" min-width="100px">
+ <el-table-column prop="name" label="缁勭粐绫诲瀷" min-width="80px">
<template scope="{row}">
<span v-if="row.type == 0">鐩稿叧鏂圭粍缁�</span>
<span v-if="row.type == 1">鍐呴儴缁勭粐</span>
@@ -48,7 +48,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅',{ id: row.parentId,name:row.parentName,companyPath:row.parentCompanyPath}, row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅',{ id: row.parentId,name:row.parentName,type:row.parentType, companyPath:row.parentCompanyPath}, row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
<el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓瀛愮骇', row,null)" icon="el-icon-plus">鏂板缓瀛愮骇</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button>
</template>
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 0777433..45a0ace 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -47,13 +47,14 @@
</template>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:member:delete','business:member:create']">
-<!-- <li><el-button type="primary">闂ㄧ鎺堟潈</el-button></li>-->
+ <ul class="toolbar" v-permissions="['business:member:delete','business:member:create,business:empower:create']">
<!--
<li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
-->
- <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐',null,department)" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
+ <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
+ <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆',department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
<li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -109,12 +110,6 @@
</el-switch>
</template>
</el-table-column>
- <el-table-column label="鍙嫓璁�" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.canVisit != 1">鍚�</span>
- <span v-if="row.canVisit == 1">鏄�</span>
- </template>
- </el-table-column>
<el-table-column label="娴峰悍鍚屾鐘舵��" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.hkStatus == 0" style="color: #435EBE">寰呭悓姝�</span>
@@ -134,6 +129,18 @@
<span>{{(row.roleNames && row.roleNames.length) ?row.roleNames.join(','): '-'}}</span>
</template>
</el-table-column>
+ <el-table-column label="闂ㄧ鏈夋晥鏈�" min-width="170px">
+ <template slot-scope="{row}">
+ <div v-if="row.roleId !=null && row.roleId != ''">
+ <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
+ <div v-else>
+ <span>璧凤細{{row.startTime}}</span><br />
+ <span>姝細{{row.endTime}}</span>
+ </div>
+ </div>
+ <div v-else >-</div>
+ </template>
+ </el-table-column>
<el-table-column prop="code" label="宸ュ彿" min-width="100px"></el-table-column>
<el-table-column label="鍗$墖" min-width="80px">
<template slot-scope="{row}">
@@ -176,6 +183,7 @@
<!-- 鏌ョ湅浜哄憳寮�鍗¤褰� -->
<cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" />
<OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
+ <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" />
</template>
</TableLayout1>
</template>
@@ -187,12 +195,13 @@
import cardOpeningRecord from '@/components/business/cardOpeningRecord'
import Tree from '@/components/common/Tree'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+import OperaMemberRoleWindow from '@/components/business/OperaMemberRoleWindow'
import { fetchList } from '@/api/business/company'
import { memberSync, roleAuth, updateCanVisit, updateHead, updateWorkStatus } from '@/api/business/member'
export default {
name: 'internalMember',
extends: BaseTable,
- components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow },
+ components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow },
data () {
return {
TreeList: [],
@@ -205,6 +214,7 @@
canVisit: '',
keyword: '',
type: 2,
+ companyType:1,
erpOrgId: '',
companyId: '',
hasFace: ''
@@ -228,6 +238,19 @@
this.getfindCompanyTreePage()
},
methods: {
+ startEmpowerBatch () {
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ var ids = []
+ var names = []
+ this.tableData.selectedRows.forEach(item => {
+ ids.push(item.id)
+ names.push(item.name)
+ })
+ this.$refs.OperaMemberRoleWindow.open('鍐呴儴鍛樺伐涓嬪彂鏉冮檺', ids, names,this.searchForm.companyType)
+ },
empower (id) {
var that = this
this.$confirm('纭畾閲嶆柊鎺堟潈鍚�?', '鎻愮ず', {
@@ -241,12 +264,12 @@
that.search()
})
}).catch(() => {
- this.$tip.apiSuccess( '鎿嶄綔澶辫触')
+ this.$tip.apiSuccess('鎿嶄綔澶辫触')
})
},
// 鑾峰彇缁勭粐鏍�
getfindCompanyTreePage () {
- fetchList(1)
+ fetchList()
.then(res => {
if (res && res.length > 0) {
res[0].fsStatus = 1
@@ -270,6 +293,12 @@
this.$delete(newItem, 'children')
} else {
newItem.children = this.getDepartmentTree(newItem.children)
+ }
+
+ if(newItem.type === this.searchForm.companyType){
+ //newItem.disabled =false
+ }else{
+ newItem.disabled = true
}
return newItem
})
@@ -295,21 +324,21 @@
},
async updateHead (row, type) {
this.$dialog.actionConfirm('鎮ㄧ‘璁よ繘琛屽綋鍓嶆搷浣滃悧锛�', '閮ㄩ棬涓荤璁剧疆鎿嶄綔鎻愮ず')
- .then(() => {
- this.heading = true
- updateHead({ id: row.id, headStatus: type })
- .then(res => {
- this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.heading = false
- })
- .catch(() => {})
- })
+ .then(() => {
+ this.heading = true
+ updateHead({ id: row.id, headStatus: type })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.heading = false
+ })
+ .catch(() => {})
+ })
},
changeWorkStatus (e, row) {
this.working = true
@@ -326,7 +355,7 @@
})
.catch(() => {})
},
- changeCanvisit (e, row) {
+ changeCanvisit (e, row) {
this.canvisiting = true
updateCanVisit({ id: row.id, canVisit: e })
.then(res => {
@@ -342,6 +371,8 @@
.catch(() => {})
},
callback (row) {
+ alert(row.name)
+ console.log(row)
this.searchForm.erpOrgId = row.erpId
this.searchForm.companyId = row.id
this.search()
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
new file mode 100644
index 0000000..7c1440f
--- /dev/null
+++ b/admin/src/views/business/relativeMember.vue
@@ -0,0 +1,399 @@
+<template>
+ <TableLayout1 :permissions="['business:member:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="" prop="keyword">
+ <el-input v-model="searchForm.keyword" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�/宸ュ彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="" prop="hasFace">
+ <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" placeholder="鏄惁鏈変汉鑴�">
+ <el-option label="鏃�" value="0"></el-option>
+ <el-option label="鏈�" value="1"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="" prop="canVisit">
+ <el-select v-model="searchForm.canVisit" @keypress.enter.native="search" placeholder="鍙嫓璁�">
+ <el-option label="鏄�" value="1"></el-option>
+ <el-option label="鍚�" value="0"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="" prop="status">
+ <el-select v-model="searchForm.status" @keypress.enter.native="search" placeholder="鐘舵��">
+ <el-option label="姝e父" value="0"></el-option>
+ <el-option label="绂佺敤" value="1"></el-option>
+ <el-option label="鎷夐粦/鍐荤粨" value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="" prop="hkStatus">
+ <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" placeholder="娴峰悍鍚屾鐘舵��">
+ <el-option label="寰呭悓姝�" value="0"></el-option>
+ <el-option label="鍚屾鎴愬姛" value="1"></el-option>
+ <el-option label="鍚屾澶辫触" value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="" >
+ <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" >鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <template v-slot:menu>
+ <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;">浼佷笟缁勭粐鏋舵瀯</div>
+ <div style="width: 100%; height: calc(100vh - 170px); overflow-y: scroll;">
+ <Tree :list="companyTree" :defaultProps="{name: 'name', status: 'fsStatus', children: 'childList', id: 'id'}" @callback="callback" />
+ </div>
+ </template>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:member:delete','business:member:create,business:empower:create','business:traintime:create']">
+<!--
+ <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
+-->
+ <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
+ <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆',department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
+ <li><el-button type="primary" @click="$refs.OperaTrainTimeImportWindow.open('鍩硅鏈熷鍏�',department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:traintime:create']">鍩硅鏈熷鍏�</el-button></li>
+ <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardDecode" label="韬唤璇佸彿" min-width="100px"></el-table-column>
+ <el-table-column label="鎬у埆" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.sex == 1">鐢�</span>
+ <span v-if="row.sex == 2">濂�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.status == 0" style="color: green">姝e父</span>
+ <span v-if="row.status == 1" style="color: red">绂佺敤</span>
+ <span v-if="row.status == 2" style="color: red">鎷夐粦/鍐荤粨</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="閮ㄩ棬绫诲瀷" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.companyType == 0">鐩稿叧鏂圭粍缁�</span>
+ <span v-if="row.companyType == 1">鍐呴儴缁勭粐</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍦ㄨ亴鐘舵��">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeWorkStatus($event, row)"
+ v-model="row.workStatus"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏄惁鍙嫓璁�">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeCanvisit($event, row)"
+ v-model="row.canVisit"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column label="娴峰悍鍚屾鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.hkStatus == 0" style="color: #435EBE">寰呭悓姝�</span>
+ <span v-if="row.hkStatus == 1" style="color: green">鍚屾鎴愬姛</span>
+ <span v-if="row.hkStatus == 2" style="color: red">鍚屾澶辫触</span>
+ <span v-if="row.hkStatus == 3" style="color: red">涓嶇鍚堜笅鍙戞潯浠�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏄惁鎺堟潈" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.authStatus == 1" style="color: green">鏄�</span>
+ <span v-if="row.authStatus == 0" style="color: red">鍚�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="闂ㄧ瑙掕壊" min-width="100px">
+ <template slot-scope="{row}">
+ <span>{{(row.roleNames && row.roleNames.length) ?row.roleNames.join(','): '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="闂ㄧ鏈夋晥鏈�" min-width="170px">
+ <template slot-scope="{row}">
+ <div v-if="row.roleId !=null && row.roleId != ''">
+ <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
+ <div v-else>
+ <span>璧凤細{{row.startTime}}</span><br />
+ <span>姝細{{row.endTime}}</span>
+ </div>
+ </div>
+ <div v-else >-</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="code" label="宸ュ彿" min-width="100px"></el-table-column>
+ <el-table-column label="鍗$墖" min-width="80px">
+ <template slot-scope="{row}">
+ <el-button @click="$refs.cardOpeningRecord.open('寮�鍗¤褰�', row.id)" type="text">{{row.memberCardCount || '0'}}</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏈�鍚庢搷浣滄椂闂�" min-width="150px"></el-table-column>
+ <el-table-column fixed="right" label="浜鸿劯淇℃伅" min-width="100px">
+ <template slot-scope="{row}">
+ <el-image
+ v-if="row.faceImgFull"
+ style="width: 60px; height: 60px"
+ :src="row.faceImgFull"
+ :preview-src-list="[row.faceImgFull]">
+ </el-image>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])"
+ label="鎿嶄綔"
+ min-width="280"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('缂栬緫鍛樺伐淇℃伅',row,department)" v-permissions="['business:empower:update']">缂栬緫</el-button>
+ <el-button type="text" :loading="heading" icon="el-icon-delete" @click="updateHead(row,0)" v-if="row.headStatus ==1 " v-permissions="['business:member:head']">鍙栨秷涓荤</el-button>
+ <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row,1)" v-if="row.headStatus == 0" v-permissions="['business:member:head']">璁句负涓荤</el-button>
+ <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">閲嶆柊鎺堟潈</el-button>
+ <el-button type="text" icon="el-icon-delete" @click="empower(row.id)" v-permissions="['business:empower:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ <!-- 鏌ョ湅浜哄憳寮�鍗¤褰� -->
+ <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" />
+ <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
+ <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" />
+ <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" />
+ </template>
+ </TableLayout1>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout1 from '@/layouts/TableLayout1'
+import Pagination from '@/components/common/Pagination'
+import cardOpeningRecord from '@/components/business/cardOpeningRecord'
+import Tree from '@/components/common/Tree'
+import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow'
+import OperaMemberRoleWindow from '@/components/business/OperaMemberRoleWindow'
+import { fetchList } from '@/api/business/company'
+import { memberSync, roleAuth, updateCanVisit, updateHead, updateWorkStatus } from '@/api/business/member'
+export default {
+ name: 'internalMember',
+ extends: BaseTable,
+ components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow ,OperaMemberImportWindow},
+ data () {
+ return {
+ TreeList: [],
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ status: '',
+ hkStatus: '',
+ includeChild: false,
+ canVisit: '',
+ keyword: '',
+ type: 2,
+ companyType:0,
+ erpOrgId: '',
+ companyId: '',
+ hasFace: ''
+ },
+ loading: false,
+ heading: false,
+ working: false,
+ canvisiting: false,
+ companyTree: [],
+ department: []
+ }
+ },
+ created () {
+ this.config({
+ module: '浜哄憳淇℃伅琛�',
+ api: '/business/member',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ // this.search()
+ this.getfindCompanyTreePage()
+ },
+ methods: {
+ startEmpowerBatch () {
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ var ids = []
+ var names = []
+ this.tableData.selectedRows.forEach(item => {
+ ids.push(item.id)
+ names.push(item.name)
+ })
+ this.$refs.OperaMemberRoleWindow.open('鍐呴儴鍛樺伐涓嬪彂鏉冮檺', ids, names,this.searchForm.companyType)
+ },
+ empower (id) {
+ var that = this
+ this.$confirm('纭畾閲嶆柊鎺堟潈鍚�?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ roleAuth(id)
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ that.search()
+ })
+ }).catch(() => {
+ this.$tip.apiSuccess('鎿嶄綔澶辫触')
+ })
+ },
+ // 鑾峰彇缁勭粐鏍�
+ getfindCompanyTreePage () {
+ fetchList()
+ .then(res => {
+ if (res && res.length > 0) {
+ res[0].fsStatus = 1
+ this.companyTree = res
+ // this.searchForm.erpOrgId = res[0].erpId
+ this.search()
+ this.department = this.getDepartmentTree(res)
+ }
+ })
+ },
+ getDepartmentTree (tree) {
+ if (tree == null) {
+ return []
+ }
+ return tree.map(item => {
+ const newItem = { ...item }
+ if (newItem) {
+ newItem.children = newItem.childList
+ }
+ if (item.children && item.children.length == 0) {
+ this.$delete(newItem, 'children')
+ } else {
+ newItem.children = this.getDepartmentTree(newItem.children)
+ }
+ if(newItem.type === this.searchForm.companyType){
+ //newItem.disabled =false
+ }else{
+ newItem.disabled = true
+ }
+ return newItem
+ })
+ },
+ // 鍚屾淇℃伅
+ async synchronous () {
+ this.$dialog.actionConfirm('璇ユ搷浣滈檷瑙﹀彂鍏ㄥ憳淇℃伅鏇存柊鍜岄噸鏂颁笅鍙戯紒璇疯皑鎱庢搷浣�', '鎮ㄧ‘璁ゅ叏閲忓悓姝ュ唴閮ㄤ汉鍛樹俊鎭悧锛�')
+ .then(() => {
+ this.loading = true
+ memberSync({})
+ .then(res => {
+ this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.loading = false
+ })
+ })
+ .catch(() => {})
+ },
+ async updateHead (row, type) {
+ this.$dialog.actionConfirm('鎮ㄧ‘璁よ繘琛屽綋鍓嶆搷浣滃悧锛�', '閮ㄩ棬涓荤璁剧疆鎿嶄綔鎻愮ず')
+ .then(() => {
+ this.heading = true
+ updateHead({ id: row.id, headStatus: type })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.heading = false
+ })
+ .catch(() => {})
+ })
+ },
+ changeWorkStatus (e, row) {
+ this.working = true
+ updateWorkStatus({ id: row.id, workStatus: e })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.working = false
+ })
+ .catch(() => {})
+ },
+ changeCanvisit (e, row) {
+ this.canvisiting = true
+ updateCanVisit({ id: row.id, canVisit: e })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.canvisiting = false
+ })
+ .catch(() => {})
+ },
+ callback (row) {
+ this.searchForm.erpOrgId = row.erpId
+ this.searchForm.companyId = row.id
+ this.search()
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .box {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ .box_menu {
+ width: 100px;
+ height: 100%;
+ flex-shrink: 0;
+ }
+ .box_tab {
+ flex: 1;
+ height: 100%;
+ }
+ }
+</style>
diff --git a/admin/src/views/business/userAction.vue b/admin/src/views/business/userAction.vue
index acdbbdd..7e6109a 100644
--- a/admin/src/views/business/userAction.vue
+++ b/admin/src/views/business/userAction.vue
@@ -21,7 +21,7 @@
<el-form-item label="鎵嬫満鍙�" prop="mobile">
<el-input v-model="searchForm.mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍘嗗彶璐﹀彿鐘舵��" prop="beforeStatus">
+<!-- <el-form-item label="鍘嗗彶璐﹀彿鐘舵��" prop="beforeStatus">
<el-select v-model="searchForm.beforeStatus" placeholder="璇烽�夋嫨">
<el-option label="瑙e喕" :value="0"></el-option>
<el-option label="鍐荤粨" :value="1"></el-option>
@@ -34,7 +34,7 @@
<el-option label="鎵嬪姩绂诲満" :value="8"></el-option>
<el-option label="鍒犻櫎" :value="9"></el-option>
</el-select>
- </el-form-item>
+ </el-form-item>-->
<el-form-item label="鎿嶄綔绫诲瀷" prop="type">
<el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
<el-option label="瑙e喕" :value="0"></el-option>
@@ -77,7 +77,7 @@
</template>
</el-table-column>
<el-table-column prop="mobile" label="鎵嬫満鍙�"></el-table-column>
- <el-table-column label="鍘嗗彶鐘舵��">
+<!-- <el-table-column label="鍘嗗彶鐘舵��">
<template slot-scope="{row}">
<span v-if="row.beforeStatus === 0">瑙e喕</span>
<span v-else-if="row.beforeStatus === 1">鍐荤粨</span>
@@ -91,21 +91,9 @@
<span v-else-if="row.beforeStatus === 9">鍒犻櫎</span>
<span v-else>姝e父</span>
</template>
- </el-table-column>
- <el-table-column label="鎿嶄綔">
- <template slot-scope="{row}">
- <span v-if="row.type === 0">瑙e喕</span>
- <span v-if="row.type === 1">鍐荤粨</span>
- <span v-if="row.type === 2">鎷夐粦</span>
- <span v-if="row.type === 3">鎭㈠</span>
- <span v-if="row.type === 4">璁句负鎷滆浜�</span>
- <span v-if="row.type === 5">鍙栨秷鎷滆浜�</span>
- <span v-if="row.type === 6">璁句负楂樼骇瀹℃壒浜�</span>
- <span v-if="row.type === 7">鍙栨秷楂樼骇瀹℃壒浜�</span>
- <span v-if="row.type === 8">鎵嬪姩绂诲満</span>
- <span v-if="row.type === 9">鍒犻櫎</span>
- </template>
- </el-table-column>
+ </el-table-column>-->
+ <el-table-column prop="typeName" label="鎿嶄綔绫诲瀷" />
+ <el-table-column prop="remark" label="鎿嶄綔鍐呭" width="350"/>
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿"></el-table-column>
</el-table>
<pagination
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index ba0ee22..0c1c29e 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -595,21 +595,24 @@
* 鍛樺伐淇℃伅缁存姢鎿嶄綔鍘嗗彶绫诲瀷 0瑙e喕 1鍐荤粨 2鎷夐粦 3鎭㈠ 4璁句负鎷滆浜� 5鍙栨秷鎷滆浜� 6璁句负楂樼骇瀹℃壒浜� 7鍙栨秷楂樼骇瀹℃壒浜� 8鎵嬪姩绂诲満 9鍒犻櫎 10鏇存柊 11鎺堟潈闂ㄧ鏉冮檺 12绂昏亴 13鎭㈠鍦ㄨ亴
*/
public enum UserActionType {
- CANCEL_FREEZE(0, "瑙e喕","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愯В鍐汇��" ),
- FREEZE(1, "鍐荤粨","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愬喕缁撱��" ),
- BLACKLIST(2, "鎷夐粦","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愭媺榛戙��"),
- CANCEL_BLACKLIST(3, "鎭㈠","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愮Щ鍑洪粦鍚嶅崟銆�" ),
- CANVISIT(4, "璁句负鎷滆浜�","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愯涓烘嫓璁夸汉銆�" ),
- CANCEL_VISIT(5, "鍙栨秷鎷滆浜�","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愬彇娑堟嫓璁夸汉銆�" ),
+ CANCEL_FREEZE(0, "瑙e喕","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愯В鍐汇��" ),
+ FREEZE(1, "鍐荤粨","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬喕缁撱��" ),
+ BLACKLIST(2, "鎷夐粦","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愭媺榛戙��"),
+ CANCEL_BLACKLIST(3, "鎭㈠","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愮Щ鍑洪粦鍚嶅崟銆�" ),
+ CANVISIT(4, "璁句负鎷滆浜�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愯涓烘嫓璁夸汉銆�" ),
+ CANCEL_VISIT(5, "鍙栨秷鎷滆浜�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬彇娑堟嫓璁夸汉銆�" ),
//缁繚閫氱煡
- HIGHCHECKOR(6, "璁句负楂樼骇瀹℃壒浜�","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愯涓洪珮绾у鎵逛汉銆�" ),
- CANCEL_HIGHCHECKOR(7, "鍙栨秷楂樼骇瀹℃壒浜�","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愬彇娑堥珮绾у鎵逛汉銆�" ),
- LEVEL(8, "鎵嬪姩绂诲満","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愭墜鍔ㄧ鍦恒��" ),
- DELETE(9, "鍒犻櫎","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愬垹闄ゃ��" ),
- EDIT(10, "鏇存柊","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愭洿鏂般��" ),
- AUTH_ROLE(11, "鎺堟潈闂ㄧ鏉冮檺","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愭巿鏉冮棬绂佹潈闄愩��" ),
- WORK_OFF(12, "绂昏亴","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愮鑱屻�戞搷浣�" ),
- WORK_ON(13, "鍦ㄨ亴","鐢便��${param1}銆戜簬銆愭搷浣滄椂闂达細${param2}銆戯紝杩涜銆愬湪鑱屻�戞搷浣�" ),
+ HIGHCHECKOR(6, "璁句负楂樼骇瀹℃壒浜�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愯涓洪珮绾у鎵逛汉銆�" ),
+ CANCEL_HIGHCHECKOR(7, "鍙栨秷楂樼骇瀹℃壒浜�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬彇娑堥珮绾у鎵逛汉銆�" ),
+ LEVEL(8, "鎵嬪姩绂诲満","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愭墜鍔ㄧ鍦恒��" ),
+ DELETE(9, "鍒犻櫎","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬垹闄ゃ��" ),
+ EDIT(10, "鏇存柊","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愭洿鏂般��" ),
+ AUTH_ROLE(11, "鎺堟潈闂ㄧ鏉冮檺","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愭巿鏉冮棬绂佹潈闄愩��" ),
+ WORK_OFF(12, "绂昏亴","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愮鑱屻�戞搷浣�" ),
+ WORK_ON(13, "鍦ㄨ亴","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬湪鑱屻�戞搷浣�" ),
+ IMPORT_TRAIMETIME(14, "瀵煎叆鍩硅鏈夋晥","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬鍏ュ煿璁湁鏁堛�戞搷浣�" ),
+ BE_HEAD(15, "璁句负涓荤","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愯涓轰富绠°�戞搷浣�" ),
+ NOT_HEAD(16, "鍙栨秷涓荤","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愬彇娑堜富绠°�戞搷浣�" ),
;
// 鎴愬憳鍙橀噺
@@ -623,6 +626,14 @@
this.info = info;
this.name = name;
}
+ public static String getName(int index) {
+ for (UserActionType c : UserActionType.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
public int getKey() {
return key;
diff --git a/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
index ccf1673..abecdd5 100644
--- a/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -190,6 +190,9 @@
@ApiModelProperty(value = "鐖剁骇閮ㄩ棬绾у埆璺緞", example = "1")
@TableField(exist = false)
private String parentCompanyPath;
+ @ApiModelProperty(value = "鐖剁骇閮ㄩ棬绾у埆绫诲瀷 0鐩稿叧鏂� 1鍐呴儴缁勭粐", example = "1")
+ @TableField(exist = false)
+ private String parentType;
@ApiModelProperty(value = "erp閮ㄩ棬绾у埆璺緞", example = "1")
@ExcelColumn(name="erp閮ㄩ棬绾у埆璺緞")
private String erpCompanyPath;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
index 7da2af5..edf9b7b 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -83,7 +83,7 @@
@GetMapping("/roleAuth/{id}")
@RequiresPermissions("business:empower:create")
public ApiResponse roleAuthById(@PathVariable Integer id) {
- memberService.roleAuthById(id);
+ memberService.roleAuthById(id,this.getLoginUser(null));
return ApiResponse.success(null);
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java
index e287f9d..c9c5446 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java
@@ -93,6 +93,12 @@
public ApiResponse<PageData<DeviceRole>> findPage (@RequestBody PageWrap<DeviceRole> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
return ApiResponse.success(deviceRoleService.findPage(pageWrap));
}
+ @ApiOperation("鏌ヨ鍏ㄩ儴")
+ @PostMapping("/list")
+ @CloudRequiredPermission("business:devicerole:query")
+ public ApiResponse<List<DeviceRole>> findList (@RequestBody DeviceRole pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(deviceRoleService.findList(pageWrap));
+ }
@ApiOperation("瀵煎嚭Excel")
@PostMapping("/exportExcel")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
index 6d923d2..2550487 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -12,6 +12,7 @@
import com.doumee.dao.admin.request.LaborMemberDTO;
import com.doumee.dao.admin.request.MemberQuery;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRole;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
@@ -88,8 +89,8 @@
@ApiOperation("鍛樺伐鏉冮檺涓嬪彂")
@GetMapping("/roleAuth/{id}")
@CloudRequiredPermission("business:empower:create")
- public ApiResponse roleAuthById(@PathVariable Integer id) {
- memberService.roleAuthById(id);
+ public ApiResponse roleAuthById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ memberService.roleAuthById(id,this.getLoginUser(token));
return ApiResponse.success(null);
}
@@ -97,9 +98,17 @@
@ApiOperation("鍚屾浜鸿劯淇℃伅")
@PostMapping("/updateFace")
public ApiResponse updateFace(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ member.setLoginUserInfo(this.getLoginUser(token));
memberService.updateFace(member);
return ApiResponse.success(null);
}
+ @ApiOperation("鍚屾浜鸿劯淇℃伅")
+ @PostMapping("/batchRoleAuth")
+ public ApiResponse batchRoleAuth(@RequestBody Member memberRole, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ memberRole.setLoginUserInfo(this.getLoginUser(token));
+ memberService.batchRoleAuth(memberRole);
+ return ApiResponse.success(null);
+ }
@ApiOperation("寮哄埗鍒犻櫎瀹夐槻骞冲彴浜哄憳淇℃伅")
@PostMapping("/delHkForce")
public ApiResponse delHkForce(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 01dafc1..d84b7de 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -63,6 +63,7 @@
String visitOut= "/api/visitor/v1/visitor/out";//绛剧璁垮棰勭害
String facePicture= "/api/resource/v1/person/picture";//鎻愬彇鐢ㄦ埛浜鸿劯鐓х墖
String privilegeGroup= "/api/visitor/v1/privilege/group";//鏌ヨ璁垮鏉冮檺缁�
+ String privilegIccmeGroup= "/api/iccm/v1/privilege/groups";//鏌ヨ璁垮鏉冮檺缁�
String eventSub= "/api/eventService/v1/eventSubscriptionByEventTypes";//浜嬩欢璁㈤槄
String doorSearch= "/api/resource/v2/door/search";//鏌ヨ闂ㄧ鐐瑰垪琛╲2
String cancelEventSub= "/api/eventService/v1/eventUnSubscriptionByEventTypes";//鍙栨秷浜嬩欢璁㈤槄
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 659794a..298e6b2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -377,6 +377,9 @@
public static String privilegeGroup(String body) {
return startDoPostStringArtemis(HKConstants.InterfacePath.privilegeGroup,body);
}
+ public static String privilegIccmeGroup(String body) {
+ return startDoPostStringArtemis(HKConstants.InterfacePath.privilegIccmeGroup,body);
+ }
/**
* 浜嬩欢璁㈤槄
* @param body
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 8e4f32a..438bab3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -480,6 +480,24 @@
return null;
}
/**
+ *璁垮鏉冮檺缁勫垪琛ㄦ煡璇紙鍒嗛〉锛�
+ * @return
+ */
+ public static BaseResponse<PrivilegeGroupListResponse> privilegIccmeGroup(PrivilegeGroupRequest param){
+ log.info("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================寮�濮�===="+JSONObject.toJSONString(param));
+ try {
+ String res = HKTools.privilegIccmeGroup(JSONObject.toJSONString(param));
+ TypeReference typeReference =
+ new TypeReference< BaseResponse<PrivilegeGroupListResponse> >(){};
+ BaseResponse<PrivilegeGroupListResponse> result = JSONObject.parseObject(res, typeReference.getType());
+ logResult(result,"娴峰悍璁垮鏉冮檺缁勫垪琛ㄦ煡璇�");
+ return result;
+ }catch (Exception e){
+ log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================澶辫触====锛歕n"+ e.getMessage());
+ }
+ return null;
+ }
+ /**
*娴峰悍闂ㄧ鐐规煡璇紙鍒嗛〉锛�
* @return
*/
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
index 07a55a1..8288b21 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -66,6 +66,8 @@
private String erpOrgId;
@ApiModelProperty(value = "鏈烘瀯涓婚敭 ")
private Integer companyId;
+ @ApiModelProperty(value = "缁勭粐绫诲瀷 0鐩稿叧鏂� 1鍐呴儴缁勭粐 ")
+ private Integer companyType;
@ApiModelProperty(value = "鏄惁鍖呭惈涓嬬骇缁勭粐鐢ㄦ埛")
private Boolean includeChild;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index 23ff05f..e559e1c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -247,6 +247,12 @@
@ApiModelProperty(value = "鎺堟潈闂ㄧ缁勭紪鐮侀泦鍚�,銆愯瀹㈢銆戝敮涓�鏍囪瘑",hidden = true )
@TableField(exist = false)
private Integer[] roleIds;
+ @ApiModelProperty(value = "浜哄憳缂栫爜闆嗗悎,銆愯瀹㈢銆戝敮涓�鏍囪瘑",hidden = true )
+ @TableField(exist = false)
+ private List<Integer> ids;
+ @ApiModelProperty(value = "鏈夋晥鏈熺被鍨� 0闀挎湡鏈夋晥 1鑷畾涔�",hidden = true )
+ @TableField(exist = false)
+ private Integer timeType;
//鏆傛棤浣跨敤
@ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/宸ュ彿")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
index ebedc9e..1338577 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("浜哄憳瑙掕壊鍏宠仈淇℃伅")
@TableName("`member_role`")
-public class MemberRole {
+public class MemberRole extends LoginUserModel {
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
@@ -59,6 +60,7 @@
@ApiModelProperty(value = "瑙掕壊缂栫爜锛堝叧鑱攄oor_role),澶氫釜鑻辨枃閫楀彿闅斿紑")
@ExcelColumn(name="瑙掕壊缂栫爜锛堝叧鑱攄oor_role)")
private Integer roleId;
+
@ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
@TableField(exist = false)
private String doorIds;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
index 4de783f..dce756b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
@@ -82,6 +82,9 @@
@ApiModelProperty(value = "璁垮鍏徃鍚嶇О", example = "1")
@TableField(exist = false)
private String visitCompanyName;
+ @ApiModelProperty(value = "绫诲瀷鍚嶇О", example = "1")
+ @TableField(exist = false)
+ private String typeName;
@ApiModelProperty(value = "鎵嬫満鍙�", example = "1")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index a897572..8193db2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -8,6 +8,7 @@
import com.doumee.dao.admin.request.MemberQuery;
import com.doumee.dao.admin.response.StagingDataVO;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRole;
import com.doumee.dao.web.reqeust.AccountLoginDTO;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.reqeust.VisitMemberDTO;
@@ -46,7 +47,7 @@
*/
void deleteById(Integer id,LoginUserInfo user);
- void roleAuthById(Integer id);
+ void roleAuthById(Integer id,LoginUserInfo user);
/**
* 鍒犻櫎
@@ -200,4 +201,6 @@
void updateHead(Member member);
void updateWorkStatus(Member member);
+
+ void batchRoleAuth(Member memberRole);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 73aa6e2..f62d26d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -36,6 +36,7 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -87,6 +88,7 @@
company.setCompanyPath(company.getId()+"/");//鍚嶇О璺緞
company.setCompanyNamePath(company.getName());//鍚嶇О璺緞
company.setHkParentId(rootOrgId);
+ String idPath = "";
if(company.getParentId() !=null){
Company parent = findById(company.getParentId());
if(parent == null || Constants.equalsInteger(parent.getIsdeleted(),Constants.ONE)){
@@ -95,11 +97,17 @@
if(StringUtils.isBlank(parent.getHkId())){
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瀵逛笉璧凤紝鐖剁骇缁勭粐淇℃伅灏氭湭鍚屾涓嬪彂鎴愬姛~");
}
- company.setHkParentId(parent.getHkId());
+ if(Constants.equalsInteger(parent.getType(),Constants.ZERO)){
+ //濡傛灉鐖剁骇鏄浉鍏虫柟缁勭粐锛屼笅绾т笉鑳藉缓绔嬪唴閮ㄧ粍缁�
+ if(Constants.equalsInteger(company.getType(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瀵逛笉璧凤紝鐩稿叧鏂圭粍缁囷紝涓嬬骇涓嶈兘寤虹珛鍐呴儴缁勭粐~");
+ }
+ }
+ idPath = parent.getCompanyPath();
company.setCompanyPath(parent.getCompanyPath()+company.getId()+"/");
company.setCompanyNamePath(parent.getCompanyNamePath()+"/"+company.getName());
}
- company.setHkCompanyPath(company.getCompanyPath());
+ company.setHkCompanyPath(company.getCompanyNamePath());
company.setCreateDate(new Date());
company.setCreator(user.getId());
company.setIsdeleted(Constants.ZERO);
@@ -115,6 +123,10 @@
if(!addHkOrg(company)){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝缁勭粐鍚屾涓嬪彂澶辫触锛岃绋嶅悗閲嶈瘯");
}
+ Company com = new Company();
+ com.setId(company.getId());
+ com.setCompanyPath(idPath+company.getId()+"/");
+ companyMapper.updateById(com);
return company.getId();
}
@@ -275,8 +287,14 @@
if(model == null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝缁勭粐淇℃伅涓嶅瓨鍦▇");
}
- if(StringUtils.isBlank(model.getHkId())){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝缁勭粐淇℃伅灏氭湭鍚屾涓嬪彂鎴愬姛,鏆備笉鏀寔淇敼锛岃灏濊瘯鍒犻櫎鍚庨噸鏂版坊鍔爚");
+ if( Constants.equalsObject(Constants.ONE,model.getType())&& Constants.equalsObject(Constants.ZERO,company.getType())){
+ //濡傛灉鐢卞唴閮ㄧ粍缁囧垏鎹㈡垚鍐呴儴缁勭粐锛屾帓鏌ヤ笅绾х粍缁囨槸鍚︽湁鍐呴儴缁勭粐
+ if(companyJoinMapper.selectCount(new QueryWrapper<Company>().lambda()
+ .eq(Company::getIsdeleted,Constants.ZERO )
+ .eq(Company::getType,Constants.ONE )
+ .likeRight(Company::getCompanyPath,company.getCompanyPath())) >0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝涓嬬骇閮ㄩ棬瀛樺湪鍐呴儴缁勭粐锛岃閮ㄩ棬涓嶆敮鎸佸垏鎹负鐩稿叧鏂圭粍缁囷紒~");
+ }
}
company.setEditDate(new Date());
company.setEditor(user.getId());
@@ -285,14 +303,19 @@
company.setHkId(StringUtils.defaultString(model.getHkId(),UUID.randomUUID().toString().replace("-","")));
company.setParentId(null);//涓嶆敮鎸佷慨鏀圭埗绾�
companyMapper.updateById(company);
+ //鏇存柊鐨刢ompanyPath
+ String newName = model.getCompanyNamePath().replace(model.getName(),company.getName());
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .setSql("company_name_path=REPLACE(company_name_path,'"+ model.getCompanyNamePath()+"','"+newName+"')")
+ .setSql("hk_company_path=REPLACE(hk_company_path,'"+ model.getCompanyNamePath()+"','"+newName+"')")
+ .likeRight(Company::getCompanyPath,model.getCompanyPath()));
//涓嬪彂娴峰悍瀹夐槻骞冲彴
- if(StringUtils.isNotBlank(model.getHkId())
- && Constants.equalsObject(Constants.ONE,model.getHkStatus())){
- if(editHkOrg(company)){
+ if(StringUtils.isNotBlank(model.getHkId())){
+ if(!editHkOrg(company)){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝缁勭粐鍚屾涓嬪彂澶辫触锛岃绋嶅悗閲嶈瘯");
}
}else{//濡傛灉娌℃湁涓嬪彂杩囷紝鐩存帴鏂板缓瀹夐槻骞冲彴缁勭粐
- if(addHkOrg(company)){
+ if(!addHkOrg(company)){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝缁勭粐鍚屾涓嬪彂澶辫触锛岃绋嶅悗閲嶈瘯");
}
}
@@ -547,6 +570,7 @@
queryWrapper.selectAs(Member::getPhone,Company::getHeadPhone);
queryWrapper.select("t1.name",Company::getParentName);
queryWrapper.select("t1.company_path",Company::getParentCompanyPath);
+ queryWrapper.select("t1.type",Company::getParentType);
queryWrapper.leftJoin(Company.class,Company::getId,Company::getParentId);
queryWrapper.leftJoin(Member.class,Member::getId,Company::getHeadId);
queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getEditor);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
index 980aa3e..2aac2f6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -371,6 +371,7 @@
@Override
public List<DeviceRole> findList(DeviceRole deviceRole) {
+ deviceRole.setIsdeleted(Constants.ZERO);
QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole);
return deviceRoleMapper.selectList(wrapper);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index cba4c22..d6d06ff 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -128,18 +128,21 @@
//鑴辨晱鎿嶄綔
Member insert = initAddMemberModel(member,loginUserInfo);
//娴峰悍浜哄憳鏂板涓氬姟
- if(dealHkUserBiz(insert)){
- try {
+ try {
+ if(dealHkUserBiz(insert)){
memberMapper.insert(insert);
//鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
- createSystemUser(insert);
- }catch (Exception e){
- //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
- deleteHkUserBiz(insert.getHkId());
- throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鏂板缓澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
+ //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
+ createSystemUser(insert);
+ }
+ }else{
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
}
- }else{
- throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }catch (Exception e){
+ //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
+ deleteHkUserBiz(insert.getHkId());
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鏂板缓澶辫触锛岃绋嶅悗閲嶈瘯锛�");
}
return insert;
}
@@ -150,7 +153,6 @@
// 鐢熸垚瀵嗙爜
user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
user.setSalt(salt);
-
// 鍒涘缓鐢ㄦ埛璁板綍
user.setType(insert.getType());
user.setUsername(insert.getPhone());
@@ -175,6 +177,7 @@
insert.setCreateDate(new Date());
insert.setEditor(loginUserInfo.getId());
insert.setEditDate(new Date());
+ insert.setHkOrgId(member.getHkOrgId());
insert.setIsdeleted(Constants.ZERO);
insert.setCompanyId(member.getCompanyId());
insert.setFaceImg(member.getFaceImg());
@@ -201,6 +204,9 @@
* @param hkId
*/
private void deleteHkUserBiz(String hkId) {
+ if(StringUtils.isBlank(hkId)){
+ return;
+ }
UserDelRequest request = new UserDelRequest();
request.setPersonIds(new String[]{hkId});
BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request);
@@ -214,14 +220,6 @@
private boolean dealHkUserBiz(Member insert) {
String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
- Company company = companyMapper.selectById(insert.getCompanyId());
- if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
- }
- if(StringUtils.isBlank(company.getHkId())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭湭鍚屾瀹夐槻骞冲彴锛岃鍏堝墠寰�銆愮粍缁囩鐞嗐�戣彍鍗曡繘琛岀淮鎶わ紒");
- }
- insert.setHkOrgId(company.getHkId());
UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(insert,path,Constants.ZERO);
if(hkAddRequest == null){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜鸿劯鐓х墖鏈夎锛岃灏濊瘯閲嶆柊涓婁紶锛�");
@@ -305,6 +303,9 @@
}
private void isMemberParamValid(Member member) {
+ if(member.getCompanyId() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢佃瘽鍙风爜鏍煎紡鏈夎");
}
@@ -317,22 +318,32 @@
}
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎");
}
-
- SystemUser queryUserDto = new SystemUser();
- queryUserDto.setUsername(member.getPhone());
- queryUserDto.setDeleted(Boolean.FALSE);
- SystemUser user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
- if (user != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+queryUserDto.getUsername()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
+ Company company = companyMapper.selectById(member.getCompanyId());
+ if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
}
- // 楠岃瘉宸ュ彿
- if (StringUtils.isNotBlank(member.getCode())) {
- queryUserDto = new SystemUser();
+ if(StringUtils.isBlank(company.getHkId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭湭鍚屾瀹夐槻骞冲彴锛岃鍏堝墠寰�銆愮粍缁囩鐞嗐�戣彍鍗曡繘琛岀淮鎶わ紒");
+ }
+ member.setHkOrgId(company.getHkId());
+ member.setCompanyType(company.getType());
+ if(Constants.equalsInteger(company.getType(),Constants.ONE)){
+ SystemUser queryUserDto = new SystemUser();
+ queryUserDto.setUsername(member.getPhone());
queryUserDto.setDeleted(Boolean.FALSE);
- queryUserDto.setEmpNo(member.getCode());
- user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
+ SystemUser user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
if (user != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿銆�"+member.getCode()+"銆戝凡瀛樺湪");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+queryUserDto.getUsername()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
+ }
+ // 楠岃瘉宸ュ彿
+ if (StringUtils.isNotBlank(member.getCode())) {
+ queryUserDto = new SystemUser();
+ queryUserDto.setDeleted(Boolean.FALSE);
+ queryUserDto.setEmpNo(member.getCode());
+ user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿銆�"+member.getCode()+"銆戝凡瀛樺湪");
+ }
}
}
}
@@ -487,7 +498,7 @@
@Override
- public void roleAuthById(Integer id) {
+ public void roleAuthById(Integer id,LoginUserInfo user) {
Member member = memberMapper.selectById(id);
if(member==null || member.getIsdeleted().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍛樺伐淇℃伅宸插垹闄�");
@@ -495,6 +506,157 @@
// List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper);
HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
}
+ @Override
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public void batchRoleAuth(Member memberRole) {
+ if(memberRole.getIds() ==null
+ || memberRole.getIds().size() ==0 ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(memberRole.getRoleIds() ==null || memberRole.getRoleIds().length ==0){
+ //濡傛灉鏄竻绌烘潈闄�
+ }else{
+ if( ! (Constants.equalsObject(memberRole.getTimeType(),Constants.ZERO)
+ || (Constants.equalsObject(memberRole.getTimeType(),Constants.ONE)
+ && memberRole.getStartTime() !=null && memberRole.getEndTime() != null ))){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(Constants.equalsObject(memberRole.getTimeType(),Constants.ONE) && memberRole.getEndTime().getTime() < System.currentTimeMillis()){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡綋鍓嶆椂闂达紒");
+ }
+ if(Constants.equalsObject(memberRole.getTimeType(),Constants.ONE) && memberRole.getEndTime().getTime() <= memberRole.getStartTime().getTime()){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡紑濮嬫椂闂达紒");
+ }
+ }
+ if(Constants.equalsObject(memberRole.getTimeType(),Constants.ZERO) ){
+ memberRole.setStartTime(null);
+ memberRole.setEndTime(null);
+ }
+ for (Integer id : memberRole.getIds()){
+ Member member = memberMapper.selectById(id);
+ if(member==null || member.getIsdeleted().equals(Constants.ONE)){
+ //濡傛灉鍛樺伐淇℃伅涓嶅悎娉曠洿鎺ヨ烦杩�
+ continue;
+ }
+ member.setStartTime(memberRole.getStartTime());
+ member.setEndTime(memberRole.getEndTime());
+ Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
+ if(ischange == 0){
+ return;//鏈彂鐜版潈闄愬彉鍖栵紝鐩存帴杩斿洖
+ }
+ if(memberRole.getRoleIds()!=null && memberRole.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::getAuthStatus,Constants.ONE)
+ .set(Member::getStartTime,memberRole.getStartTime())
+ .set(Member::getEndTime,memberRole.getEndTime())
+ .set(Member::getEditor,memberRole.getLoginUserInfo().getId())
+ .set(Member::getEditDate,new Date()) );
+ saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper);
+ //閲嶆柊鎺堟潈
+ HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
+ }
+ }
+
+ public static Integer getRoleIdByParam(Integer[] param, Member member,MemberRoleMapper memberRoleMapper,DeviceRoleMapper deviceRoleMapper) {
+ //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁
+ member.setRoleId(null);
+ List<MemberRole> roleList = memberRoleMapper.selectList( new QueryWrapper<MemberRole>().lambda()
+ .eq(MemberRole::getIsdeleted,Constants.ZERO)
+ .eq(MemberRole::getMemberId,member.getId()));
+
+ member.setRoleId("");
+ 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)
+ .in(DeviceRole::getId,param));
+
+ String ids = "";
+ if(CollectionUtils.isNotEmpty(deviceRoleList)){
+ List<MemberRole> memberRoleList = new ArrayList<>();
+ List<Integer> r = new ArrayList<>();
+ for (int i = 0; i < deviceRoleList.size(); i++) {
+ DeviceRole deviceRole =deviceRoleList.get(i);
+ if(i>0){
+ ids += ",";
+ }
+ Integer id =deviceRole.getId();
+ ids += "["+id+"]";
+ String doorids =deviceRole.getDoorIds();
+ if(StringUtils.isNotBlank(doorids)){
+ String[] ss = doorids.split(",");
+ try {
+ for(String s :ss){
+ r.add(Integer.parseInt(s));
+ }
+ }catch (Exception e){
+ //鑴忔暟鎹笉澶勭悊
+ }
+ }
+ MemberRole memberRole = new MemberRole();
+ memberRole.setCreateDate(new Date());
+ memberRole.setMemberId(member.getId());
+ memberRole.setIsdeleted(Constants.ZERO);
+ memberRole.setRoleId(deviceRole.getId());
+ memberRoleList.add(memberRole);
+ }
+ memberRoleMapper.insertBatchSomeColumn(memberRoleList);
+ }
+ member.setRoleId(ids);
+ return 1;
+ }
+
+ return 0;
+ }
+
@Override
public void empowerByList(Member member) {
if(member.getIdList()!=null && member.getIdList().size() >0){
@@ -655,6 +817,7 @@
userAction.setIsdeleted(Constants.ZERO);
userAction.setCreateDate(updateMember.getEditDate());
userAction.setCreator(updateMember.getEditor());
+ userAction.setBeforeStatus(updateMember.getStatus());
userAction.setType(type.getKey());
String info = type.getInfo();
userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate())));
@@ -714,12 +877,15 @@
companyMapper.update(null,new UpdateWrapper<Company>().lambda()
.eq(Company::getId,model.getCompanyId())
.set(Company::getHeadId,member.getId()));
+ //璁板綍鎿嶄綔鏃ュ織
+ saveUserActionBiz(member,member.getLoginUserInfo(), Constants.UserActionType.BE_HEAD,userActionJoinMapper);
}else{
//濡傛灉鏄涓轰富绠�
companyMapper.update(null,new UpdateWrapper<Company>().lambda()
.eq(Company::getId,model.getCompanyId())
.set(Company::getHeadId,null)
);
+ saveUserActionBiz(member,member.getLoginUserInfo(),Constants.UserActionType.NOT_HEAD,userActionJoinMapper);
}
}
}
@@ -1050,6 +1216,7 @@
.eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus())
.eq(Objects.isNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,Constants.ZERO)
.eq(Objects.nonNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,pageWrap.getModel().getIsdeleted())
+ .eq(Objects.nonNull(pageWrap.getModel().getCompanyType()),Company::getType,pageWrap.getModel().getCompanyType())
.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
// .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
// .eq(Member::getType,Constants.memberType.internal)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
index bace142..0f6b7f3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.UserActionMapper;
import com.doumee.dao.business.join.UserActionJoinMapper;
@@ -15,6 +16,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -123,6 +125,11 @@
.orderByDesc(UserAction::getCreateDate)
;
IPage<UserAction> result = userActionJoinMapper.selectJoinPage(page,UserAction.class,queryWrapper);
+ if(result!=null &&result.getRecords()!=null){
+ for(UserAction model :result.getRecords()){
+ model.setTypeName(Constants.UserActionType.getName(model.getType()));
+ }
+ }
return PageData.from(result);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index dbef628..7db9c0d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -37,6 +37,7 @@
import com.doumee.dao.business.model.*;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.InterfaceLogService;
+import com.doumee.service.business.impl.MemberServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.Synchronized;
@@ -930,98 +931,6 @@
}
}
}
- private Integer getRoleIdByParam(Integer[] param, Member member) {
- //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁
- member.setRoleId(null);
- 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)
- .in(DeviceRole::getId,param));
- if(CollectionUtils.isNotEmpty(deviceRoleList)){
- List<MemberRole> memberRoleList = new ArrayList<>();
- String ids = "";
- List<Integer> r = new ArrayList<>();
- for (int i = 0; i < deviceRoleList.size(); i++) {
- DeviceRole deviceRole =deviceRoleList.get(i);
- if(i>0){
- ids += ",";
- }
- Integer id =deviceRole.getId();
- ids += "["+id+"]";
- String doorids =deviceRole.getDoorIds();
- if(StringUtils.isNotBlank(doorids)){
- String[] ss = doorids.split(",");
- try {
- for(String s :ss){
- r.add(Integer.parseInt(s));
- }
- }catch (Exception e){
- //鑴忔暟鎹笉澶勭悊
- }
- }
- MemberRole memberRole = new MemberRole();
- memberRole.setCreateDate(new Date());
- memberRole.setMemberId(member.getId());
- memberRole.setIsdeleted(Constants.ZERO);
- memberRole.setRoleId(deviceRole.getId());
- memberRoleList.add(memberRole);
- }
- member.setRoleId(ids);
- memberRoleMapper.insertBatchSomeColumn(memberRoleList);
- member.setRoleId(ids);
- }
- return 1;
- }
- return 0;
- }
@Override
@@ -1040,7 +949,7 @@
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
}
- Integer ischange = getRoleIdByParam(param.getRoleIds(),member);
+ Integer ischange = MemberServiceImpl.getRoleIdByParam(param.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
if(ischange == 0){
return;//鏈彂鐜版潈闄愬彉鍖栵紝鐩存帴杩斿洖
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
index 60d05d1..6e23fda 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -67,6 +67,10 @@
param.setPageSize(100);
BaseResponse<PrivilegeGroupListResponse> response = HKService.privilegeGroup(param);
if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ response = HKService.privilegIccmeGroup(param);//鎺ュ彛V1鐗堟湰涓嶅瓨鍦紝璋冪敤iccm鐗堟湰鎺ュ彛
+ }
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ response = HKService.privilegIccmeGroup(param);
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
}
PrivilegeGroupListResponse r = response.getData();
--
Gitblit v1.9.3