admin/src/components/business/OperaPlatformApproveTemplWindow.vue
@@ -353,6 +353,8 @@ companyName: i.companyName } }) }else{ item.objIds = [] } }) this.apprList = arr admin/src/components/business/cardOpeningRecord.vue
@@ -36,8 +36,8 @@ <el-table-column prop="memberName" label="åå·¥å§å" min-width="100px"></el-table-column> <el-table-column prop="memberPhone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="companyName" label="ç»ç»" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å¼å¡æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å¼å¡æ¶é´" min-width="140px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="140px"></el-table-column> <el-table-column label="æä½" min-width="120" admin/src/views/business/approvalConfiguration.vue
@@ -316,6 +316,7 @@ this.apprList.forEach((item, index) => { if (i === index) { item.active = true console.log("====================",item.objIds) if (item.objIds && item.objIds.length > 0) { const objIds = item.objIds.map(i => { return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}` @@ -343,6 +344,8 @@ companyName: i.companyName } }) }else{ item.objIds = [] } }) this.apprList = arr admin/src/views/business/approvalReport.vue
@@ -330,6 +330,8 @@ companyName: i.companyName } }) }else{ item.objIds = [] } }) this.apprList = arr admin/src/views/business/device.vue
@@ -61,7 +61,7 @@ </el-switch> </template> </el-table-column> <el-table-column prop="no" label="设å¤å·"></el-table-column> <el-table-column prop="no" width="200px" label="设å¤å·"></el-table-column> </el-table> <pagination @size-change="handleSizeChange" admin/src/views/business/deviceBroadcast.vue
@@ -2,7 +2,7 @@ <TableLayout :permissions="['business:device:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="åç§°" prop="name"> <el-form-item title="åç§°" prop="name"> <el-input v-model="searchForm.name" placeholder="请è¾å ¥åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> admin/src/views/business/deviceLed.vue
@@ -2,7 +2,7 @@ <TableLayout :permissions="['business:device:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="åç§°" prop="name"> <el-form-item title="åç§°" prop="name"> <el-input v-model="searchForm.name" placeholder="请è¾å ¥åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> admin/src/views/business/deviceRole.vue
@@ -2,7 +2,7 @@ <TableLayout :permissions="['business:devicerole:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="110px" inline> <el-form-item label="é¨ç¦ç¹åç»åç§°" prop="name"> <el-form-item title="é¨ç¦ç¹åç»åç§°" prop="name"> <el-input v-model="searchForm.name" placeholder="请è¾å ¥é¨ç¦ç¹åç»åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> admin/src/views/business/deviceRole_f.vue
@@ -2,7 +2,7 @@ <TableLayout :permissions="['business:devicerole:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="é¨ç¦ç»åç§°" prop="name"> <el-form-item title="é¨ç¦ç»åç§°" prop="name"> <el-input v-model="searchForm.name" placeholder="请è¾å ¥é¨ç¦ç»åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> admin/src/views/business/internalCompany.vue
@@ -20,7 +20,7 @@ <li><el-button type="primary" v-permissions="['business:company:create']" @click="$refs.OperaInternalCompanyWindow.open('æ°å»ºä¼ä¸',null,null)">æ°å»º</el-button></li> <li><el-button @click="sort('top')" :loading="sorting" icon="el-icon-sort-up" v-permissions="['business:company:sort']">ä¸ç§»</el-button></li> <li><el-button @click="sort('bottom')" :loading="sorting" icon="el-icon-sort-down" v-permissions="['business:company:sort']">ä¸ç§»</el-button></li> <!--<li><el-button type="primary" v-permissions="['business:company:sync']" :loading="loading" @click="synchronous()">忥</el-button></li>--> <li><el-button type="primary" v-permissions="['business:company:sync']" :loading="loading" @click="synchronous()">忥</el-button></li> </ul> <el-table v-loading="isWorking.search" @@ -108,7 +108,7 @@ }, // åæ¥ä¿¡æ¯ async synchronous () { this.$dialog.actionConfirm('æä½ç¡®è®¤æé', 'æ¨ç¡®è®¤åæ¥å ¨é¨ä¿¡æ¯åï¼') this.$dialog.actionConfirm('该æä½å°ç³»ç»æ¸ 空已æç»ç»ä¿¡æ¯ï¼æ¨ç¡®è®¤åæ¥å ¨é¨ä¿¡æ¯åï¼', 'æä½ç¡®è®¤æé') .then(() => { this.loading = true companySync({}) admin/src/views/business/internalMember.vue
@@ -45,16 +45,14 @@ <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <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,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»ºåå·¥</el-button></li> <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('人åå¯¼å ¥',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> <li style="float: right"> <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> <li style="float: right"> <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search" >æ¯å¦å å«ä¸çº§ç»ç»</el-checkbox> </li> </li> </ul> <el-table v-loading="isWorking.search" admin/src/views/business/memberCard.vue
@@ -2,20 +2,20 @@ <TableLayout :permissions="['business:membercard:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="å¡å·" prop="code"> <el-input v-model="searchForm.code" placeholder="请è¾å ¥å¡å·" @keypress.enter.native="search"></el-input> <el-form-item title="å¡å·" prop="code"> <el-input v-model="searchForm.code" placeholder="å¡å·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å§å/ææºå·" prop="keyword"> <el-input v-model="searchForm.keyword" placeholder="请è¾å ¥åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> <el-form-item title="å§å/ææºå·" prop="keyword"> <el-input v-model="searchForm.keyword" placeholder="åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç¨æ·ç±»å" prop="memberType"> <el-select v-model="searchForm.memberType" placeholder="è¯·éæ©"> <el-form-item title="ç¨æ·ç±»å" prop="memberType"> <el-select v-model="searchForm.memberType" placeholder="ç¨æ·ç±»å"> <el-option label="å³å¡äººå" :value="0"></el-option> <el-option label="å é¨åå·¥" :value="2"></el-option> </el-select> </el-form-item> <el-form-item label="ç¶æ" prop="status"> <el-select v-model="searchForm.status" placeholder="è¯·éæ©"> <el-form-item title="ç¶æ" prop="status"> <el-select v-model="searchForm.status" placeholder="ç¶æ"> <el-option label="ç¦ç¨" :value="0"></el-option> <el-option label="å¯ç¨" :value="1"></el-option> <el-option label="éå¡" :value="2"></el-option> @@ -60,8 +60,8 @@ <el-table-column prop="memberName" label="åå·¥å§å" min-width="100px"></el-table-column> <el-table-column prop="memberPhone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="companyName" label="ç»ç»" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å¼å¡æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å¼å¡æ¶é´" min-width="140px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="140px"></el-table-column> <el-table-column label="æä½" min-width="120" admin/src/views/operation/serviceCar/apprConfig.vue
@@ -349,6 +349,8 @@ companyName: i.companyName } }) }else{ item.objIds = [] } }) this.apprList = arr admin/src/views/task/visSubDetail.vue
@@ -350,8 +350,11 @@ 2: '审æ¹éè¿', 3: 'å®¡æ¹æªéè¿', 4: '已忶', 5: 'ä»äººæç¾', 6: 'ä»äººæç»' 5: 'é¢çº¦æå', 6: 'é¢çº¦å¤±è´¥', 7: 'æè®¿ä¸', 8: 'å·²ç¾ç¦»', 9: '已失æ' }, cateList: { 0: '访客ç³è¯·', admin/src/views/vehicle/cars.vue
@@ -1,24 +1,24 @@ <template> <TableLayout :permissions="['business:member:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline> <el-form-item label="车çå·" prop="code"> <el-input v-model="searchForm.code" clearable placeholder="请è¾å ¥è½¦çå·" @keypress.enter.native="search"></el-input> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="" prop="code" title="车çå·"> <el-input v-model="searchForm.code" clearable placeholder="车çå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="车主å§å/ææºå·" prop="memberName"> <el-form-item label="" prop="memberName" title="车主å§å/ææºå·"> <el-input v-model="searchForm.memberName" clearable placeholder="车主å§å/ææºå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="车主é¨é¨" prop="companyName"> <el-form-item label="" prop="companyName" title="车主é¨é¨åç§°"> <el-input v-model="searchForm.companyName" clearable placeholder="车主é¨é¨åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ææç¶æ" prop="authStatus"> <el-select v-model="searchForm.authStatus" @keypress.enter.native="search" clearable placeholder="æ¯å¦ææ"> <el-option label="æ¯" value="1"></el-option> <el-option label="å¦" value="0"></el-option> <el-form-item label="" prop="authStatus" title="æ¯å¦ææ"> <el-select v-model="searchForm.authStatus" @change="search" clearable 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="type"> <el-select v-model="searchForm.type" @keypress.enter.native="search" clearable placeholder="车è¾ç±»å"> <el-form-item label="" prop="type" title="车è¾ç±»å"> <el-select v-model="searchForm.type" @change="search" clearable placeholder="车è¾ç±»å"> <el-option label="宿³°å ¬å¡è½¦" value="0"></el-option> <el-option label="宿³°èªæç©æµè½¦" value="1"></el-option> <el-option label="å ¶ä»" value="2"></el-option> @@ -59,7 +59,7 @@ <span v-else style="color: red">å¦</span> </template> </el-table-column> <el-table-column prop="parksName" label="å·²ææå车åº" min-width="200px"> <el-table-column prop="parksName" align="center" label="å·²ææå车åº" min-width="200px"> <template slot-scope="{row}"> <div v-if="row.parkBookList && row.parkBookList.length" > <span v-for="item in row.parkBookList" :key="item.id" style="display: block"> @@ -69,24 +69,25 @@ <span v-if="row.parkBookList ==null ||row.parkBookList.length ==0">-</span> </template> </el-table-column> <el-table-column label="ä¸åæææ" min-width="170px"> <el-table-column label="ä¸åæææ" align="center" min-width="170px"> <template slot-scope="{row}"> <div v-if="row.authStatus !=null && row.authStatus == 1 && row.parkBookList!=null && row.parkBookList.length>0"> <div v-if="!row.startTime || !row.endTime">é¿æææ</div> <div v-else> <span>èµ·ï¼{{row.startTime}}</span><br/> <span>æ¢ï¼{{row.endTime}}</span> <span style="color: green">èµ·ï¼{{row.startTime}}</span><br/> <span style="color: red">æ¢ï¼{{row.endTime}}</span> </div> </div> <div v-else >-</div> </template> </el-table-column> <el-table-column prop="editorName" label="æä½äºº" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æä½æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æä½æ¶é´" min-width="140px"></el-table-column> <el-table-column v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" label="æä½" min-width="250" min-width="200" align="center" fixed="right" > <template slot-scope="{row}"> admin/src/views/vehicle/parkBook.vue
@@ -1,18 +1,18 @@ <template> <TableLayout :permissions="['business:member:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline> <el-form-item label="车çå·" prop="carCode"> <el-input v-model="searchForm.carCode" placeholder="请è¾å ¥è½¦çå·" @keypress.enter.native="search"></el-input> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item title="车çå·" prop="carCode"> <el-input v-model="searchForm.carCode" placeholder="车çå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="车主å§å/ææºå·" prop="memberName"> <el-input v-model="searchForm.memberName" placeholder="请è¾å ¥åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> <el-form-item title="车主å§å/ææºå·" prop="memberName"> <el-input v-model="searchForm.memberName" placeholder="åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="车主ç»ç»" prop="companyName"> <el-input v-model="searchForm.companyName" placeholder="请è¾å ¥è½¦ä¸»ç»ç»" @keypress.enter.native="search"></el-input> <el-form-item title="车主ç»ç»" prop="companyName"> <el-input v-model="searchForm.companyName" placeholder="车主ç»ç»åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å车åºåç§°" prop="parksName"> <el-input v-model="searchForm.parksName" placeholder="请è¾å ¥å车åºåç§°" @keypress.enter.native="search"></el-input> <el-form-item title="å车åºåç§°" prop="parksName"> <el-input v-model="searchForm.parksName" placeholder="å车åºåç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> @@ -33,8 +33,27 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="carCode" label="车çå·" min-width="100px"></el-table-column> <el-table-column prop="parksName" label="å车åº" min-width="100px"></el-table-column> <el-table-column prop="carCode" label="车çå·" fixed min-width="100px"></el-table-column> <el-table-column prop="parksName" label="å车åº" fixed min-width="100px"></el-table-column> <el-table-column prop="startTime" label="æææ" align="center" fixed min-width="150px"> <template slot-scope="{row}"> <div v-if="!row.startTime || !row.endTime">é¿æææ</div> <div v-else> <span style="color: green">èµ·ï¼{{row.startTime}}</span><br/> <span style="color: red">æ¢ï¼{{row.endTime}}</span> </div> </template> </el-table-column> <el-table-column prop="startTime" label="ç¶æ" fixed min-width="100px"> <template slot-scope="{row}"> <div v-if="row.isdeleted==1" style="color: red">å·²å é¤</div> <div v-else style="color: green"> <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> </div> </template> </el-table-column> <el-table-column label="ç¨æ·ç±»å" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.memberType === 0">å³å¡è®¿å®¢</span> @@ -45,29 +64,12 @@ <el-table-column prop="memberName" label="å§å" min-width="100px"></el-table-column> <el-table-column prop="memberPhone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="companyName" label="ç»ç»" min-width="100px"></el-table-column> <el-table-column prop="startTime" label="æææ" min-width="130px"> <template slot-scope="{row}"> <span>{{validity(row.startTime, row.endTime)}}</span> <!-- <span v-if="!row.startTime || !row.endTime">é¿æ</span>--> <!-- <span v-else>{{row.startTime}} è³ {{row.endTime}}</span>--> </template> </el-table-column> <el-table-column prop="startTime" label="ç¶æ" min-width="100px"> <template slot-scope="{row}"> <div v-if="row.isdeleted==1" style="color: red">å·²å é¤</div> <div v-else style="color: green"> <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> </div> </template> </el-table-column> <el-table-column prop="remark" label="夿³¨" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.isdeleted !=2">{{row.remark}}</span> </template> </el-table-column> <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å建æ¶é´" min-width="140px"></el-table-column> <!-- <el-table-column--> <!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"--> <!-- label="æä½"--> admin/src/views/vehicle/parks.vue
@@ -32,8 +32,8 @@ > <el-table-column prop="name" label="å车åºåç§°" min-width="100px"></el-table-column> <el-table-column prop="parentName" label="æå±å车åº" min-width="100px"></el-table-column> <el-table-column prop="parkCreateDate" label="å建æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="parkEditDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> </el-table> <pagination @size-change="handleSizeChange" server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@ spring: profiles: active: test active: dev application: name: systemTimer # å®å ¨é ç½® server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
@@ -38,7 +38,7 @@ public ApiResponse syncOrgData() { if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ //妿æ¯ERPç³»ç»åæ¥ä¸å hkSyncOrgUserService.syncOrgData(); hkSyncOrgUserService.syncOrgData(null); } return ApiResponse.success("å¼å¯å®æ¶åæ¥æµ·åº·ç»ç»æ°æ®æå"); } @@ -53,7 +53,7 @@ public ApiResponse syncUserData() { if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) { //妿æ¯ERPç³»ç»åæ¥ä¸å hkSyncOrgUserService.syncUserData(); hkSyncOrgUserService.syncUserData(null); } return ApiResponse.success("å¼å¯å®æ¶åæ¥æµ·åº·äººåæ°æ®æå"); } server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
@@ -173,7 +173,11 @@ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ return ApiResponse.success( erpSyncService.syncCompany(null)); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){ hkSyncOrgUserFHKService.syncOrgData(); hkSyncOrgUserFHKService.syncOrgData(this.getLoginUser(null)); return ApiResponse.success("忥æå"); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self){ //妿æ¯èªå»ºç³»çµ±ï¼åæ¥å®é²å¹³å°åå§åæ°æ® hkSyncOrgUserFHKService.syncOrgData(this.getLoginUser(null)); return ApiResponse.success("忥æå"); } return ApiResponse.failed("æ ææä½"); server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -231,7 +231,7 @@ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ erpSyncService.syncUsers(null); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){ hkSyncOrgUserFHKService.syncUserData(); hkSyncOrgUserFHKService.syncUserData(this.getLoginUser(null)); } return ApiResponse.success("忥æå"); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
@@ -15,6 +15,7 @@ import com.doumee.service.business.CompanyService; import com.doumee.service.business.ext.ERPSyncService; import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl; import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -42,6 +43,8 @@ private ERPSyncService erpSyncService; @Autowired private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService; @Autowired private HkSyncOrgUserFromSelfServiceImpl hkSyncOrgUserFromSelfService; @Autowired private DataSyncConfig dataSyncConfig; @@ -171,11 +174,14 @@ @ApiOperation("å ¨éé¨é¨ä¿¡æ¯åæ¥") @PostMapping("/syncAll") @CloudRequiredPermission("business:company:sync") public ApiResponse sync(){ public ApiResponse sync(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ return ApiResponse.success( erpSyncService.syncCompany(null)); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){ hkSyncOrgUserFHKService.syncOrgData(); hkSyncOrgUserFHKService.syncOrgData(this.getLoginUser(token)); return ApiResponse.success("忥æå"); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self){ hkSyncOrgUserFromSelfService.syncOrgData(this.getLoginUser(token)); return ApiResponse.success("忥æå"); } return ApiResponse.failed("æ ææä½"); server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -2,6 +2,7 @@ import com.doumee.api.BaseController; import com.doumee.config.annotation.CloudRequiredPermission; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; @@ -101,19 +102,22 @@ // @PreventRepeat @ApiOperation("ãæµ·åº·ãé¨ç¦äºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/acs") public ApiResponse pushAcs( HttpServletRequest request,@RequestBody EventAcsRequest param, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ @LoginNoRequired public ApiResponse pushAcs( HttpServletRequest request,@RequestBody EventAcsRequest param, HttpServletResponse response ){ String result = hkSyncPushService.dealAcsEvent(param,response); return ApiResponse.success(result); } // @PreventRepeat @ApiOperation("ãæµ·åº·ã访客äºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/visit") public ApiResponse pushVisit(@RequestBody EventVisitRequest param, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ @LoginNoRequired public ApiResponse pushVisit(@RequestBody EventVisitRequest param, HttpServletResponse response){ String result = hkSyncPushService.dealVisitEvent(param,response); return ApiResponse.success(result); } @ApiOperation("ãæµ·åº·ã访客ICCMäºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/visitIccm") @LoginNoRequired public ApiResponse pushVisitIccm(@RequestBody EventVisitIccmRequest param, HttpServletResponse response) { String result = hkSyncPushService.dealVisitEventIccm(param,response); return ApiResponse.success(result); @@ -121,14 +125,16 @@ // @PreventRepeat @ApiOperation("ãæµ·åº·ãå车åºäºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/parks") public ApiResponse pushParks(@RequestBody EventParkRequest param, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ @LoginNoRequired public ApiResponse pushParks(@RequestBody EventParkRequest param, HttpServletResponse response ){ String result = hkSyncPushService.dealParkEvent(param,response); return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ãåæ¶è®¢é äºä»¶") @PostMapping("/cancelEventSub") public ApiResponse cancelEventSub(@RequestBody EventSubRequest param, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ @LoginNoRequired public ApiResponse cancelEventSub(@RequestBody EventSubRequest param, HttpServletResponse response){ hkSyncPushService.cancelEventSub(); return ApiResponse.success(null); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -23,6 +23,7 @@ import com.doumee.service.business.MemberService; import com.doumee.service.business.ext.ERPSyncService; import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl; import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl; import io.swagger.annotations.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +47,8 @@ private ERPSyncService erpSyncService; @Autowired private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService; @Autowired private HkSyncOrgUserFromSelfServiceImpl hkSyncOrgUserFromSelfService; @Autowired private DataSyncConfig dataSyncConfig; @@ -321,11 +324,14 @@ @ApiOperation("å ¨éä¿¡æ¯åæ¥") @PostMapping("/syncAll") @CloudRequiredPermission("business:member:sync") public ApiResponse sync(){ public ApiResponse sync(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ erpSyncService.syncUsers(null); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){ hkSyncOrgUserFHKService.syncUserData(); hkSyncOrgUserFHKService.syncUserData(this.getLoginUser(token)); }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self){ hkSyncOrgUserFromSelfService.syncUserData(this.getLoginUser(token)); return ApiResponse.success("忥æå"); } return ApiResponse.success("忥æå"); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
@@ -43,8 +43,6 @@ @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/public") @Slf4j public class PublicCloudController extends BaseController { @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -303,9 +301,6 @@ e.printStackTrace(); } } public void uploadFileLocal(HttpServletRequest request, String folder, HttpServletResponse response, String rootPath,String dir) throws Exception { response.setCharacterEncoding("UTF-8"); server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
@@ -45,10 +45,8 @@ @Slf4j public class WebPublicController extends BaseController { @Autowired private SystemDictDataBiz systemDictDataBiz; @ApiOperation(value = "ä¸ä¼ ", notes = "ä¸ä¼ ", httpMethod = "POST", position = 6) @ApiImplicitParams({ server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -488,16 +488,16 @@ * @return */ public static BaseResponse<IccmAppointmentMDJResponse> iccmAppiontmentMDJ(IccmAppointmentMDJRequest param){ log.info("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================iccmå¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param)); String res = HKTools.iccmAppointmentMDJ(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<IccmAppointmentMDJResponse> >(){}; BaseResponse<IccmAppointmentMDJResponse> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客å ç»è®°é¢çº¦"); return result; }catch (Exception e){ log.error("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================失败====ï¼\n"+ e.getMessage()); log.error("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================iccm失败====ï¼\n"+ e.getMessage()); } return null; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -8,6 +8,7 @@ import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse; import com.doumee.core.model.LoginUserInfo; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.ParkBook; import io.swagger.models.auth.In; @@ -59,10 +60,10 @@ String downHKImgs(int type); void cancelEventSub(); void syncOrgData(); void syncOrgData(LoginUserInfo user); void getOutTimeVisitRecordIccm(); void syncUserData(); void syncUserData(LoginUserInfo user); void syncVistAppointData(Date date); void syncVehicleData(); String syncPlatforms(PlatformsListRequest param); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -104,6 +104,7 @@ } } idPath = parent.getCompanyPath(); company.setHkParentId(parent.getHkId()); company.setCompanyPath(parent.getCompanyPath()+company.getId()+"/"); company.setCompanyNamePath(parent.getCompanyNamePath()+"/"+company.getName()); } @@ -156,6 +157,7 @@ } private boolean delHkOrg(Company company) { OrgDelRequest request =new OrgDelRequest(); request.setIndexCodes(new String[]{company.getHkId()}); BaseResponse<List<OrgUpdateFailureResponse>> result = HKService.delBatchOrg(request); if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ @@ -232,6 +234,7 @@ .eq(Member::getIsdeleted,Constants.ZERO)) >0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对ä¸èµ·ï¼è¯¥é¨é¨ä¸åå¨äººåä¿¡æ¯ï¼ä¸è½è¿è¡å 餿ä½ï¼"); } Company company = new Company(); company.setId(id); company.setEditDate(new Date()); @@ -241,7 +244,7 @@ company.setHkDate(company.getHkDate()); companyMapper.updateById(company); //ä¸å海康å®é²å¹³å° if(StringUtils.isBlank(model.getHkId()) && Constants.equalsInteger(Constants.ONE,model.getHkStatus()) && !delHkOrg(model)){ if(StringUtils.isNotBlank(model.getHkId()) && Constants.equalsInteger(Constants.ONE,model.getHkStatus()) && !delHkOrg(model)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对ä¸èµ·ï¼ç»ç»å é¤ä¸å失败ï¼è¯·ç¡®è®¤è¯¥ç»ç»æ ä¸çº§ç»ç»æç»ç»äººåä¿¡æ¯~"); } } @@ -483,13 +486,11 @@ companyMapper.updateById(company); } @Override public long count(Company company) { QueryWrapper<Company> wrapper = new QueryWrapper<>(company); return companyMapper.selectCount(wrapper); } @Override public List<CompanyDTO> findCompanyTreePage(Integer type) { @@ -501,7 +502,6 @@ List<Company> companies = companyMapper.selectList(wrapper); return getCompanyTree( companies, null); } private List<CompanyDTO> getCompanyTree(List<Company> companies, String parentId){ if (CollectionUtils.isEmpty(companies)){ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -98,8 +98,8 @@ @Autowired private EmpowerMapper empowerMapper; @Autowired private DeviceMapper deviceMapper; @Autowired @@ -152,7 +152,7 @@ //å建系ç»ç»éè´¦å·ï¼é»è®¤æ ä»»ä½è§è²ï¼ if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ //妿æ¯å é¨ç»ç»äººåï¼æ°å¢ç³»ç»ç»éè´¦å· systemUserMapper.insert(createSystemUser(insert)); systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz)); //å¤çå¹è®æææä¸å¡ dealTrainTIme(member,0,loginUserInfo); } @@ -166,7 +166,7 @@ } return insert; } private SystemUser createSystemUser(Member insert) { public static SystemUser createSystemUser(Member insert,SystemDictDataBiz systemDictDataBiz) { SystemUser user = new SystemUser(); // çæå¯ç ç String salt = RandomStringUtils.randomAlphabetic(6); @@ -186,6 +186,7 @@ user.setUpdateUser(insert.getEditor()); user.setUpdateTime(insert.getEditDate()); user.setMemberId(insert.getId()); user.setSource(Constants.ZERO); user.setDeleted(Boolean.FALSE); user.setFixed(Boolean.FALSE); user.setStatus(Constants.ZERO); @@ -1589,7 +1590,7 @@ .eq(Member::getType,Constants.memberType.internal) .eq(Member::getStatus,Constants.ZERO) .isNotNull(Member::getHkId) .apply("to_days(lastVisitDate)+ "+days+" < to_days(now())" )); .apply("to_days(LAST_VISIT_DATE)+ "+days+" < to_days(now())" )); if(CollectionUtils.isEmpty(memberList)){ return; } @@ -1862,7 +1863,7 @@ //å建系ç»ç»éè´¦å·ï¼é»è®¤æ ä»»ä½è§è²ï¼ if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){ //妿æ¯å é¨ç»ç»äººåï¼æ°å¢ç³»ç»ç»éè´¦å· userList.add(createSystemUser(insert)); userList.add(createSystemUser(insert,systemDictDataBiz)); } } if(userList.size()>0){ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -14,6 +14,7 @@ import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse; import com.doumee.core.haikang.model.param.respose.TaskAdditionResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.model.LoginUserInfo; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.ParkBook; import com.doumee.service.business.ext.HkSyncService; @@ -115,7 +116,7 @@ return null; } @Override public void syncUserData(){ public void syncUserData(LoginUserInfo user){ } @Override public void syncUserUpdateData(Date start, Date end){ @@ -135,7 +136,7 @@ public void syncVehicleUpdateData(Date date){ } @Override public void syncOrgData( ){ public void syncOrgData( LoginUserInfo user){ } @Override public void syncOrgUpdateData( Date start, Date end){ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -120,11 +120,17 @@ if(model !=null){ //妿已åå¨ï¼åæ´æ°æ°æ® model = initDataByHkData(model,device,date); if(allHkList.size()==1){ model.setIsDefault(Constants.ZERO); } editList.add(model); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® model = new DeviceRole(); model = initDataByHkData(model,device,date); if(allHkList.size()==1){ model.setIsDefault(Constants.ZERO); } addList.add(model); } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -11,6 +11,7 @@ import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.respose.*; import com.doumee.core.haikang.service.HKService; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; @@ -71,7 +72,7 @@ * åæ¥æµ·åº·ç»ç»ä¿¡æ¯,æ ¹æ®erp忥ç»ç»ç»æï¼å®æ¶æ£æ¥éè¦ä¸åå°æµ·åº·çç»ç»ä¿¡æ¯ */ @Override public void syncOrgData(){ public void syncOrgData(LoginUserInfo user){ if(Constants.DEALING_HK_ORG || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){ return ; } @@ -261,7 +262,7 @@ * @return */ @Override public void syncUserData(){ public void syncUserData(LoginUserInfo user){ if(Constants.DEALING_HK_USER || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){ return ; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
@@ -56,7 +56,7 @@ */ @Override @Transactional public void syncOrgData(){ public void syncOrgData(LoginUserInfo user){ if(Constants.DEALING_HK_ORG){ return ; } @@ -65,7 +65,6 @@ if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.hk){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æç»ç»åæ¥æä½~"); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); TimeRangeListRequest param = new TimeRangeListRequest(); //è·åERPç»ç»ä¿¡æ¯ï¼å ¨éåæ¥ï¼ boolean hasNext = true; @@ -142,7 +141,7 @@ * @return */ @Override public void syncUserData(){ public void syncUserData(LoginUserInfo user){ if(Constants.DEALING_HK_USER){ return ; } @@ -151,7 +150,6 @@ if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.hk){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æç»ç»åæ¥æä½~"); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); List<Company> companies = companyMapper.selectList(new QueryWrapper<>()); if(companies == null || companies.size() == 0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼è¯·å 忥ä¼ä¸ç»ç»ä¿¡æ¯~"); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,337 @@ package com.doumee.service.business.impl.hksync.fhk; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.DataSyncConfig; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.BaseListPageResponse; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.TimeRangeListRequest; import com.doumee.core.haikang.model.param.respose.OrgInfoResponse; import com.doumee.core.haikang.model.param.respose.UserInfoResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.dao.CompanyMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.vo.CompanyTree; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.MemberService; import com.doumee.service.business.impl.MemberServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 海康ç»ç»äººåéè¿æ¥Serviceå®ç°(èªè¡ç»´æ¤æ åµï¼ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service @Slf4j public class HkSyncOrgUserFromSelfServiceImpl extends HkSyncBaseServiceImpl { @Autowired private CompanyMapper companyMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private MemberMapper memberMapper; @Autowired private SystemUserMapper systemUserMapper; @Autowired private DataSyncConfig dataSyncConfig; @Autowired private RedisTemplate<String, Object> redisTemplate; /** * åæ¥æµ·åº·ç»ç»ä¿¡æ¯å°ä¸å¡ç³»ç» */ @Override @Transactional public void syncOrgData(LoginUserInfo user ){ if(Constants.DEALING_HK_ORG){ return ; } Constants.DEALING_HK_ORG =true; try { if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.self){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æç»ç»åæ¥æä½~"); } TimeRangeListRequest param = null; //è·åERPç»ç»ä¿¡æ¯ï¼å ¨éåæ¥ï¼ boolean hasNext = true; int curTotal = 0; int curPage = 1; List<Company> allHkList = new ArrayList<>(); while (hasNext){ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new TimeRangeListRequest(); param.setPageNo(curPage); param.setPageSize(100); BaseResponse<BaseListPageResponse<OrgInfoResponse>> response = HKService.orgAllList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } if(response.getData() == null || response.getData().getTotal() ==0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªåæ¥å°ä»»ä½ä¿¡æ¯ï¼"); } BaseListPageResponse<OrgInfoResponse> r = response.getData(); curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(getNewOrgModelBYList(r.getList(),user.getId())); } curPage++; } if(allHkList .size() == 0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªåæ¥å°ä»»ä½ç»ç»ä¿¡æ¯ï¼"); } companyMapper.delete(new UpdateWrapper<>());//æ¸ ç©ºåææ°æ® companyMapper.update(null,new UpdateWrapper<Company>().lambda() .eq(Company::getType,Constants.ONE) .eq(Company::getIsdeleted,Constants.ZERO) .set(Company::getIsdeleted,Constants.ONE));//æ¸ ç©ºåææ°æ® companyMapper.insert(allHkList);//æå ¥æ°æ°æ® dealTreePathInfo(allHkList);//å¤çæ å½¢ç»ææ°æ® }catch (BusinessException e){ throw e; }catch (Exception e){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); }finally { Constants.DEALING_HK_ORG =false; } } private void dealTreePathInfo(List<Company> allHkList) { List<Company> tree = new CompanyTree(allHkList,DataSyncConfig.origin.hk).buildTree(); if(tree!=null || tree.size()>0){ for(Company t : tree){ t.setCompanyPath(t.getId()+"/"); t.setCompanyNamePath(t.getName()); companyMapper.updateById(t); dealChildParentId(t,t.getChildList()); } } } private void dealChildParentId(Company t, List<Company> childList) { if(childList ==null || childList.size()==0){ return; } for(Company c : childList){ c.setParentId(t.getId()); c.setCompanyPath(t.getCompanyPath()+c.getId()+"/"); c.setCompanyNamePath(t.getCompanyNamePath()+"/"+c.getName()); companyMapper.updateById(c); if(t.getChildList()!=null || t.getChildList().size()==0){ //éå½å¤çåé dealChildParentId(c,c.getChildList()); } } } private List<Company> getNewOrgModelBYList(List<OrgInfoResponse> list, Integer userid) { List<Company> newList = new ArrayList<>(); if(list == null || list.size()==0){ return newList; } for(OrgInfoResponse model :list){ Company c = new Company(); c.setHkId(model.getOrgIndexCode()); c.setCode(model.getOrgNo()); c.setName(model.getOrgName()); c.setHkStatus(Constants.ONE); c.setHkDate(new Date()); c.setIsdeleted(Constants.ZERO); c.setCreateDate(c.getHkDate()); c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime())); c.setCreator(userid); c.setEditor(userid); c.setStatus(Constants.ZERO); c.setType(Constants.ONE); if(!StringUtils.equals(model.getOrgIndexCode(),systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode())){ c.setHkParentId(model.getParentOrgIndexCode()); } newList.add(c); } return newList; } /** * åæ¥æµ·åº·äººåä¿¡æ¯ * @return */ @Override public void syncUserData(LoginUserInfo user){ if(Constants.DEALING_HK_USER){ return ; } Constants.DEALING_HK_USER =true; try { if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.self){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æç»ç»åæ¥æä½~"); } List<Company> companies = companyMapper.selectList(new QueryWrapper<>()); if(companies == null || companies.size() == 0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼è¯·å 忥ä¼ä¸ç»ç»ä¿¡æ¯~"); } TimeRangeListRequest param = new TimeRangeListRequest(); //è·åERPç»ç»ä¿¡æ¯ï¼å ¨éåæ¥ï¼ boolean hasNext = true; int curTotal = 0; int curPage = 1; List<Member> allHkList = new ArrayList<>(); List<SystemUser> allUserList = new ArrayList<>(); while (hasNext){ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new TimeRangeListRequest(); param.setPageNo(curPage); param.setPageSize(100); BaseResponse<BaseListPageResponse<UserInfoResponse>> response = HKService.userAllList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } if(response.getData() == null || response.getData().getTotal() ==0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªåæ¥å°ä»»ä½ä¿¡æ¯ï¼"); } BaseListPageResponse<UserInfoResponse> r = response.getData(); curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(getNewUserModelBYList(r.getList(),companies,user.getId())); } curPage++; } if(allHkList .size() == 0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªåæ¥å°ä»»ä½ç»ç»ä¿¡æ¯ï¼"); } memberMapper.update(null,new UpdateWrapper<Member>().lambda() .eq(Member::getType,Constants.TWO) .eq(Member::getIsdeleted,Constants.ZERO) .set(Member::getIsdeleted,Constants.ONE));//æ¸ ç©ºåææ°æ® systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .eq(SystemUser::getType,Constants.TWO) .eq(SystemUser::getDeleted,Boolean.FALSE) .set(SystemUser::getDeleted,Boolean.TRUE));//æ¸ ç©ºåææ°æ® memberMapper.insert(allHkList);//æå ¥æ°æ°æ® for(Member c :allHkList){ allUserList.add(MemberServiceImpl.createSystemUser(c,systemDictDataBiz));//å建ç»éè´¦å· } systemUserMapper.insert(allUserList); }catch (BusinessException e){ throw e; }catch (Exception e){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); }finally { Constants.DEALING_HK_USER =false; } } private List<Member> getNewUserModelBYList(List<UserInfoResponse> list, List<Company> companies,Integer userid) { List<Member> newList = new ArrayList<>(); if(list == null || list.size()==0){ return newList; } for(UserInfoResponse model :list){ Member c = new Member(); String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,model.getCertificateNo()); c.setIdcardNo(encryptIdNo); c.setIdcardDecode(Constants.getTuominStr(model.getCertificateNo())); c.setIdcardType(getIdcardTypeByHk(model.getCertificateType())); c.setCode(model.getJobNo()); c.setPhone(model.getPhoneNo()); c.setHkId(model.getPersonId()); c.setName(model.getPersonName()); c.setHkStatus(Constants.ONE); c.setHkDate(new Date()); c.setCanVisit(Constants.ZERO); c.setWorkStatus(Constants.ZERO); c.setHighCheckor(Constants.ZERO); c.setSex(model.getGender()); c.setIsdeleted(Constants.ZERO); c.setCreateDate(c.getHkDate()); c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime())); c.setCreator(userid); c.setEditor(userid); c.setStatus(Constants.ZERO); c.setType(Constants.TWO); c.setCompanyId(getCompanyId(companies,model.getOrgIndexCode())); if(model.getPersonPhoto()!=null && model.getPersonPhoto().size()>0){ c.setFaceId(model.getPersonPhoto().get(0).getPersonPhotoIndexCode()); c.setFaceImg(HKConstants.IMG_INDEX+model.getPersonPhoto().get(0).getPicUri()); c.setFaceServerIndexCode(model.getPersonPhoto().get(0).getServerIndexCode()); } newList.add(c); } return newList; } private Integer getCompanyId(List<Company> companies, String orgIndexCode) { if(companies == null){ return null; } for(Company c : companies){ if(StringUtils.equals(c.getHkId(),orgIndexCode)){ return c.getId(); } } return null; } /** * //è¯ä»¶ç±»å111:身份è¯414:æ¤ç §113:æ·å£ç°¿335:驾驶è¯131:å·¥ä½è¯133:å¦çè¯990:å ¶ä» ; * // è¯ä»¶ç±»å 0èº«ä»½è¯ 1港澳è¯ä»¶ 2æ¤ç § * @param certificateType * @return */ private Integer getIdcardTypeByHk(Integer certificateType) { if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.SHENFENZHENG.getKey())){ return 0; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.HUZHAO.getKey())){ return 2; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.JIASHIZHENG.getKey())){ return 3; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.XUESHENGZHENG.getKey())){ return 4; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.GONGXUOZHENG.getKey())){ return 5; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.GONGXUOZHENG.getKey())){ return 6; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.HUKOUBEN.getKey())){ return 7; }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.QITA.getKey())){ return 8; } return null; } }