From 91d8d400b10dc2cd8699cd73d636a2b09ec0cf5a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 22 八月 2024 10:53:51 +0800
Subject: [PATCH] 最新版本
---
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 10 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java | 5
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 9
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java | 10 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java | 5
admin/src/views/business/internalCompany.vue | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java | 336 ++++++++++++++++++++++++++++++++++++++++++++++++
admin/src/views/business/internalMember.vue | 14 -
14 files changed, 382 insertions(+), 37 deletions(-)
diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index b797cdb..60279db 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/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({})
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 747d2d7..12dce90 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/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"
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
index 8315ae3..b65d924 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/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("鏃犳晥鎿嶄綔");
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 edf9b7b..31466bd 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
@@ -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("鍚屾鎴愬姛");
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
index 7785c41..464f2bd 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
+++ b/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("鏃犳晥鎿嶄綔");
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 39f5e8b..7343cc6 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
@@ -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("鍚屾鎴愬姛");
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
index 3d3bc10..44d9f8c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
+++ b/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");
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
index 548d308..c04cf08 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
+++ b/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({
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index 9d6623e..4802f9f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/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);
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 23a6c33..06f7454 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
@@ -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);
@@ -1862,7 +1863,7 @@
//鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){
//濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
- userList.add(createSystemUser(insert));
+ userList.add(createSystemUser(insert,systemDictDataBiz));
}
}
if(userList.size()>0){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 9f8ca7d..c07db90 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/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){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index 09da7f9..fb18e3a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/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 ;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
index f471370..21bfeff 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
+++ b/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(), "瀵逛笉璧凤紝璇峰厛鍚屾浼佷笟缁勭粐淇℃伅~");
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
new file mode 100644
index 0000000..0609a80
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
@@ -0,0 +1,336 @@
+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;
+
+/**
+ * 娴峰悍缁勭粐浜哄憳閫氳繃姝ervice瀹炵幇(鑷缁存姢鎯呭喌锛�
+ * @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.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;
+ }
+
+}
--
Gitblit v1.9.3