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,9 +45,7 @@ <!-- è¡¨æ ¼åå页 --> <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" @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> 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/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/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/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){ 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/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,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; /** * 海康ç»ç»äººåéè¿æ¥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.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; } }