From 5169a76246a92ac599846e340045ee8f8d8342ca Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 08 一月 2024 10:54:10 +0800
Subject: [PATCH] 整理
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java | 493 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 438 insertions(+), 55 deletions(-)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
index 610c3ff..d4654a1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -4,71 +4,82 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.erp.model.openapi.request.UserUpdateRequest;
+import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.HKTools;
import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.OrgAddRequest;
-import com.doumee.core.haikang.model.param.request.OrgDelRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.respose.OrgOrUserAddResponse;
-import com.doumee.core.haikang.model.param.respose.OrgOrUserAddSuccessResponse;
-import com.doumee.core.haikang.model.param.respose.OrgUpdateFailureResponse;
-import com.doumee.core.haikang.model.param.respose.ParkListResponse;
+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.utils.Constants;
+import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.CompanyMapper;
-import com.doumee.dao.business.ParksMapper;
+import com.doumee.core.utils.ImageBase64Util;
+import com.doumee.dao.business.*;
import com.doumee.dao.business.join.CompanyJoinMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.Parks;
+import com.doumee.dao.business.join.MemberJoinMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.ERPSyncService;
import com.github.yulichang.query.MPJQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
-import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
/**
- * 娴峰悍鍋滆溅搴撳悓姝ervice瀹炵幇
+ * 娴峰悍缁勭粐浜哄憳閫氳繃姝ervice瀹炵幇
* @author 姹熻箘韫�
* @date 2023/11/30 15:33
*/
@Service
+@Slf4j
public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl {
-
@Autowired
private CompanyMapper companyMapper;
+ @Autowired
+ private DeviceRoleMapper deviceRoleMapper;
+ @Autowired
+ private MemberRoleMapper memberRoleMapper;
+ @Autowired
+ private EmpowerMapper empowerMapper;
+ @Autowired
+ private MemberJoinMapper memberMapper;
+ @Autowired
+ private ERPSyncService erpSyncService;
+ @Autowired
+ private DeviceMapper deviceMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
/**
- * 鍚屾娴峰悍缁勭粐淇℃伅
- * @return
+ * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
*/
@Override
public void syncOrgData(){
- if(Constants.DEALING_HK_IMG){
+ if(Constants.DEALING_HK_ORG){
return ;
}
- Constants.DEALING_HK_IMG =true;
+ Constants.DEALING_HK_ORG =true;
try {
//鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
String rootOrgId = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode();
List<Company> list = companyMapper.selectList(new QueryWrapper<Company>()
- .select("*,(select b.hk_id from company b where company.erp_parent_id = b.id limit 1) as hkParentId")
+ .select("*,(select b.hk_id from company b where company.erp_parent_id = b.erp_id limit 1) as hkParentId")
.lambda()
.eq(Company::getHkStatus,Constants.ZERO)
- .orderByDesc(Company::getErpDate));
+ .orderByAsc(Company::getErpDate));
if(list ==null || list.size()==0){
return;
}
Date date = new Date();
+ List<OrgEditRequest> editHkList = new ArrayList<>();
List<OrgAddRequest> addList = new ArrayList<>();
List<Company> updateList = new ArrayList<>();
List<Integer> delIds = new ArrayList<>();
@@ -95,24 +106,25 @@
c.setHkId(m.getOrgIndexCode());
updateList.add(c);
}else{
- //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
- delIds.add(c.getId());
- delHKIds.add(c.getHkId());
- //鍒犻櫎娴峰悍鍘熸湁鐨勬暟鎹紝鍐嶆柊澧炵粍缁�
- OrgAddRequest m = getOrgAddModel(c,rootOrgId);
- addList.add(m);
- c.setHkId(m.getOrgIndexCode());
+ if(Constants.equalsInteger(c.getIsdeleted(),Constants.ONE)){
+ //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
+ delIds.add(c.getId());
+ delHKIds.add(c.getHkId());
+ }else{
+ //濡傛灉鏇存柊
+ editHkList.add(getOrgHkEditModel(c,rootOrgId));
+ }
updateList.add(c);
}
}
//澶勭悊鍒犻櫎鏁版嵁
doHkDeleteOrg(delIds,delHKIds,date);
//澶勭悊鏂板鏁版嵁
- doHkAddOrg(updateList,addList);
+ doHkAddOrg(updateList,addList,editHkList);
}catch (Exception e){
e.printStackTrace();
}finally {
- Constants.DEALING_HK_IMG =false;
+ Constants.DEALING_HK_ORG =false;
}
}
@@ -122,23 +134,51 @@
* @param updateList
* @param addList
*/
- private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList) {
+ private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList, List<OrgEditRequest> editHkList) {
Date date = new Date();
- BaseResponse<OrgOrUserAddResponse> result = HKService.addBatchOrg(addList);
- if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
- OrgOrUserAddResponse data = result.getData();
- if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
- //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
- for(OrgOrUserAddSuccessResponse r :data.getSuccesses()){
- Integer index = getCompanyId(updateList,r.getOrgIndexCode());
- if(index!=null){
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.ONE)
- .set(Company::getHkDate,date)
- .set(Company::getHkId,r.getOrgIndexCode())
- .eq(Company::getId, index) );
- }
- }
+ if(addList!=null &&addList.size()>0){
+ //澶勭悊鏂板
+ BaseResponse<OrgOrUserAddResponse> result = HKService.addBatchOrg(addList);
+ if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+ OrgOrUserAddResponse data = result.getData();
+ if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
+ //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
+ for(OrgOrUserAddSuccessResponse r :data.getSuccesses()){
+ Integer index = getCompanyId(updateList,r.getOrgIndexCode());
+ if(index!=null){
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getHkStatus,Constants.ONE)
+ .set(Company::getHkDate,date)
+ .set(Company::getHkId,r.getOrgIndexCode())
+ .eq(Company::getId, index) );
+ }
+ }
+ }
+ }
+ }
+ if(editHkList!=null){
+ //鎵ц鏇存柊鎿嶄綔
+ List<String> success = new ArrayList<>();
+ List<String> error = new ArrayList<>();
+ for(OrgEditRequest param : editHkList){
+ BaseResponse result = HKService.editOrg(param);
+ if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+ success.add(param.getOrgIndexCode());
+ }else{
+ error.add(param.getOrgIndexCode());
+ }
+ }
+ if(success.size()>0){
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getHkStatus,Constants.ONE)
+ .set(Company::getHkDate,date)
+ .in(Company::getHkId, success) );
+ }
+ if(error.size()>0){
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getHkStatus,Constants.TWO)
+ .set(Company::getHkDate,date)
+ .in(Company::getHkId, error) );
}
}
}
@@ -156,10 +196,17 @@
private OrgAddRequest getOrgAddModel(Company c,String rootOrgId) {
OrgAddRequest model = new OrgAddRequest();
- model.setOrgIndexCode(HKConstants.RES_INDEX+UUID.randomUUID().toString());
+ model.setOrgIndexCode(HKConstants.RES_ORG_INDEX+UUID.randomUUID().toString().replace("-",""));
+ model.setOrgName(c.getName()+HKConstants.RES_ORG_NAME_INDEX);
+// model.setOrgCode(c.getCode());
+ model.setParentIndexCode(c.getHkParentId());
+ return model;
+
+ }
+ private OrgEditRequest getOrgHkEditModel(Company c,String rootOrgId) {
+ OrgEditRequest model = new OrgEditRequest();
+ model.setOrgIndexCode(c.getHkId());
model.setOrgName(c.getName());
- model.setOrgCode(c.getCode());
- model.setOrgIndexCode(c.getHkParentId());
return model;
}
@@ -170,22 +217,34 @@
* @param date
*/
private void doHkDeleteOrg(List<Integer> delIds,List<String> delHkIds, Date date) {
+ if(delHkIds.size() == 0){
+ return;
+ }
OrgDelRequest request = new OrgDelRequest();
- request.setIndexCodes((String[]) delHkIds.toArray());
+ request.setIndexCodes( delHkIds.toArray(new String[]{}));
BaseResponse<List<OrgUpdateFailureResponse>> result = HKService.delBatchOrg(request);
- if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+ if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
List<String> fIds = new ArrayList<>();
if(result.getData()!=null){
for(OrgUpdateFailureResponse r : result.getData()){
- fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
+ if(!r.getCode().equals("0x00052102")){
+ //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛
+ fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
+ }
}
}
//鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
companyMapper.update(null,new UpdateWrapper<Company>().lambda()
.set(Company::getHkStatus,Constants.ONE)
.set(Company::getHkDate,date)
+ .set(Company::getHkId,null )
.in(Company::getId, delIds)
.notIn(fIds.size()>0,Company::getHkId, fIds));
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getHkStatus,Constants.TWO)
+ .set(Company::getHkDate,date)
+ .in(Company::getId, delIds)
+ .in(fIds.size()>0,Company::getHkId, fIds));
}
}
@@ -195,7 +254,331 @@
*/
@Override
public void syncUserData(){
+ if(Constants.DEALING_HK_USER){
+ return ;
+ }
+ Constants.DEALING_HK_USER =true;
+ try {
+ //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+ List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+ .selectAll(Member.class )
+ .selectAs(Company::getHkId,Member::getCompanyHkId)
+ .isNotNull(Member::getFaceImg)
+ .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+ .eq(Member::getHkStatus,Constants.ZERO)
+ .orderByAsc(Member::getErpDate));
+ if(list ==null || list.size()==0){
+ return;
+ }
+ Date date = new Date();
+ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ for(Member c : list){
+ dealMemberInfoBiz(c,date,path) ;
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ Constants.DEALING_HK_USER =false;
+ }
+ }
+ private List<Integer> getRoleIdByParam( Member member) {
+ //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
+ List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
+ .eq(DeviceRole::getType,Constants.TWO)
+ .exists("(select b.id from member_role b where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getRoleId()+")"));
+ if(CollectionUtils.isNotEmpty(deviceRoleList)){
+ List<MemberRole> memberRoleList = new ArrayList<>();
+ String ids = "";
+ List<Integer> r = new ArrayList<>();
+ for (int i = 0; i < deviceRoleList.size(); i++) {
+ DeviceRole deviceRole =deviceRoleList.get(i);
+ if(i>0){
+ ids += ",";
+ }
+ String doorids =deviceRole.getDoorIds();
+ if(StringUtils.isNotBlank(doorids)){
+ String[] ss = doorids.split(",");
+ try {
+ for(String s :ss){
+ r.add(Integer.parseInt(s));
+ }
+ }catch (Exception e){
+ //鑴忔暟鎹笉澶勭悊
+ }
+ }
+ }
+ return r;
+ }
+ return null;
+ }
+ @Transactional
+ private boolean dealMemberInfoBiz(Member c, Date date, String path) {
+ if( c.getCompanyId() == null){
+ //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
+ return false;
+ }
+ if(StringUtils.isBlank(c.getHkId())){
+ //濡傛灉鏂板鍚屾鏁告摎
+ dealUserHkAddBiz(c,date,path);
+ }else{
+ //濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
+ dealUserHkEditBiz(c,date,path);
+ }
+ return false;
+ }
+ private void dealMemberRoleEmpower(Member member ) {
+ List<Integer> doorIds = getRoleIdByParam(member);
+ if(doorIds==null || doorIds.size() == 0){
+ return;
+ }
+ if(StringUtils.isBlank(member.getFaceImg())){
+ return;
+ }
+ if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+ //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
+ List<Empower> list = new ArrayList<>();
+ List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
+ if(deviceList == null || deviceList.size() == 0){
+ return;
+ }
+ for (Device deviceRole:deviceList) {
+ Empower model = new Empower();
+ model.setCreateDate(new Date());
+ model.setMemberId(member.getId());
+ model.setIsdeleted(Constants.ZERO);
+ model.setDeviceId(deviceRole.getId());
+ model.setSendStatus(Constants.ZERO);
+ model.setStartTime(member.getStartTime());
+ model.setEndTime(member.getEndTime());
+ //榛樿缁欎簬铏氭嫙鍗�
+ model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
+ model.setSendType(Constants.ZERO);
+ list.add(model);
+ }
+ //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+ empowerMapper.insertBatchSomeColumn(list);
+ }
+ }
+ /**
+ * 濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
+ * @param c
+ * @param date
+ * @param path
+ */
+ private void dealUserHkEditBiz(Member c, Date date, String path) {
+ c.setHkStatus(Constants.ONE);
+ if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
+ //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛�
+ boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
+ c.setHkStatus(r?Constants.ONE:Constants.TWO);
+ c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
+ }else{
+ //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
+ UserAddRequest addHkModel = getUserAddModel(c,path,1);//淇敼
+ //澶勭悊鏂板鏁版嵁
+ BaseResponse result = HKService.editUser(addHkModel);
+ if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+ if(StringUtils.isNotBlank(c.getFaceImg())){
+ //濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾
+ String faceid = dealMemberFace(c,path);
+ if(StringUtils.isBlank(faceid)){
+ noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
+ c.setHkStatus(Constants.TWO);
+ c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�"+result.getMsg());
+ }else{
+ c.setFaceId(faceid);
+ }
+ }
+ }else{
+ noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒");
+ c.setHkStatus(Constants.TWO);
+ c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
+ }
+ //閲嶆柊涓嬪彂鏉冮檺鏁版嵁
+ dealMemberRoleEmpower(c);
+ }
+ c.setHkDate(date);
+ memberMapper.updateById(c);
+ }
+ /**
+ * 鏂扮敤鎴峰悓姝ュ埌娴峰悍骞冲彴
+ * @param c
+ * @param date
+ * @param path
+ * @return
+ */
+ private boolean dealUserHkAddBiz(Member c, Date date, String path) {
+ if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
+ //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
+ c.setHkStatus(Constants.TWO);
+ c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎");
+ c.setEditDate(date);
+ c.setErpId(c.getErpOrgId()+"_"+UUID.randomUUID().toString());
+ memberMapper.updateById(c);
+ return false;
+ }
+ UserAddRequest addHkModel = getUserAddModel(c,path,0);//鏂板
+ if(addHkModel == null){
+ //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥�
+ noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
+ c.setHkStatus(Constants.TWO);
+ c.setRemark("浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
+ memberMapper.updateById(c);
+ return false;
+ }
+ //澶勭悊鏂板鏁版嵁
+ BaseResponse<UserAddResponse> result = HKService.addUser(addHkModel);
+ if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+ c.setFaceId(result.getData().getFaceId());
+ c.setHkStatus(Constants.ONE);
+ c.setHkId(addHkModel.getPersonId());
+ memberMapper.updateById(c);
+ dealMemberRoleEmpower(c);
+ return true;
+ }else{
+ noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
+ c.setHkStatus(Constants.TWO);
+ c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+(result!=null?result.getMsg():""));
+ memberMapper.updateById(c);
+ return false;
+ }
+ }
+
+ /**
+ * 澶勭悊鏂板鎴栬�呬慨鏀逛汉鑴镐俊鎭�
+ * @param c
+ * @param path
+ * @return
+ */
+ private String dealMemberFace(Member c,String path) {
+ if(StringUtils.isBlank(c.getFaceId())){
+ BaseResponse<FaceAddOrEditesponse> response = HKService.addFace(getFaceAddModel(c,path));
+ if(response !=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)&& response.getData()!=null ){
+ return response.getData().getFaceId();
+ }
+ }else{
+ BaseResponse response = HKService.editFace(getFaceUpdateModel(c,path));
+ if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+ return c.getFaceId();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 閫氱煡erp绯荤粺锛屼汉鍛樹笅鍙戝悓姝ヤ俊鎭姸鎬佸け璐�
+ * @param c
+ * @param type
+ * @param s
+ */
+ private void noticeErpFail(Member c, int type, String s) {
+ UserFailRequest r = new UserFailRequest();
+ r.setUserId(c.getErpId());
+ r.setInfo(s);
+ r.setType(type);
+ //閫氱煡ERP浜鸿劯鏁版嵁涓嶆纭�
+ erpSyncService.noticeUserFail(r);
+ }
+
+ /**
+ * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
+ * @param id
+ * @param date
+ */
+ private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) {
+ if(StringUtils.isBlank(delHkIds)){
+ return false;
+ }
+ UserDelRequest request = new UserDelRequest();
+ request.setPersonIds(new String[]{delHkIds});
+ BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request);
+ if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+ List<String> fIds = new ArrayList<>();
+ //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+ if(result.getData()!=null && result.getData().size()>0){
+ log.info("娴峰悍鍒犻櫎鐢ㄦ埛澶辫触锛�==============="+result.getData().get(0).getPersonId());
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触
+ .set(Member::getHkDate,date)
+ .in(Member::getId, id));
+ }else{
+ //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
+ .set(Member::getHkDate,date)
+ .in(Member::getId, id));
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭�
+ * @param userId
+ * @param allDevice
+ */
+ private void delUserHkRolle(String userId,List<Device> allDevice) {
+ //鍒涘缓浠诲姟
+ String taskId = hkTaskAddtion();
+ //
+ if(taskId!=null){
+ //鍒犻櫎鎵�鏈夎澶囦笂鐨勬潈闄�
+ addTaskDataAllDel(userId,taskId,allDevice);
+ startTask(taskId);
+ }
+ }
+
+ private UserAddRequest getUserAddModel(Member c,String path,int type) {
+ UserAddRequest model = new UserAddRequest();
+ model.setOrgIndexCode(c.getCompanyHkId());
+ model.setJobNo(c.getCode());
+ model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
+ model.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
+ model.setPersonId(type == 0 ?UUID.randomUUID().toString().replace("-", ""):c.getHkId());
+ model.setGender(Constants.formatIntegerNum(c.getSex())+"");
+ model.setPersonName(c.getName());
+ if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){
+ model.setFaces(new ArrayList<>());
+ UserAddFaceRequest face = new UserAddFaceRequest();
+ String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
+ if(imageBase== null){
+ //浜鸿劯鏁版嵁涓嶆纭紝
+ return null;
+ }
+ face.setFaceData(imageBase);
+ model.getFaces().add(face);
+
+ }
+ return model;
+ }
+ private FaceAddRequest getFaceAddModel(Member c,String path) {
+ FaceAddRequest model = new FaceAddRequest();
+ model.setPersonId(c.getHkId());
+ if(StringUtils.isNotBlank(c.getFaceImg())){
+ String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
+ if(imageBase == null){
+ //浜鸿劯鏁版嵁涓嶆纭紝
+ return null;
+ }
+ model.setFaceData(imageBase);
+ }
+ return model;
+ }
+ private FaceEditRequest getFaceUpdateModel(Member c,String path) {
+ FaceEditRequest model = new FaceEditRequest();
+ model.setFaceId(c.getFaceId());
+ if(StringUtils.isNotBlank(c.getFaceImg())){
+ String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
+ if(imageBase == null){
+ //浜鸿劯鏁版嵁涓嶆纭紝
+ return null;
+ }
+ model.setFaceData(imageBase);
+ }
+ return model;
}
}
--
Gitblit v1.9.3