From 995436f56f93874f19b8094fe5537e96d413b6fd Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 七月 2024 18:07:49 +0800
Subject: [PATCH] 修复bug
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java | 198 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 149 insertions(+), 49 deletions(-)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index 0fe2776..0073884 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl.hksync.ferp;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -19,6 +20,7 @@
import com.doumee.dao.business.model.*;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
@@ -55,6 +57,8 @@
private MemberCardMapper memberCardMapper;
@Autowired
private MemberJoinMapper memberMapper;
+ @Autowired
+ private MemberMapper memberMapper1;
@Autowired
private ERPSyncService erpSyncService;
@Autowired
@@ -288,6 +292,85 @@
Constants.DEALING_HK_USER =false;
}
}
+ /**
+ * 鍚屾娴峰悍浜哄憳淇℃伅
+ * @return
+ */
+ @Override
+ public void syncMemberDelData(){
+ if(Constants.DEALING_HK_DEL_USER || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
+ return ;
+ }
+ Constants.DEALING_HK_DEL_USER =true;
+ try {
+ dealWaitDelMemberData();//绛夊緟鍒犻櫎鏉冮檺鏁版嵁鐨勫垹闄や笅鍙�
+// dealFailDelMemberData();//澶勭悊鍒犻櫎澶辫触鏁版嵁閲嶆柊涓嬪彂
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ Constants.DEALING_HK_DEL_USER =false;
+ }
+ }
+
+ /**
+ * 澶勭悊鍒犻櫎澶辫触鏁版嵁閲嶆柊涓嬪彂
+ */
+ private void dealFailDelMemberData() {
+ //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+ List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+ .selectAll(Member.class )
+ .eq(Member::getHkStatus,Constants.TWO)//绛夊緟涓嬪彂瀹屾垚鐨�
+ .eq(Member::getIsdeleted,Constants.ONE)//宸插垹闄ょ殑
+ .eq(Member::getType,Constants.memberType.internal)
+ .orderByAsc(Member::getEditDate));
+ if(list ==null || list.size()==0){
+ return;
+ }
+ Date date = new Date();
+ for(Member member : list){
+ if(member!=null && Constants.equalsInteger(member.getIsdeleted(),Constants.ONE) ){
+ if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
+ .eq(Empower::getMemberId, member.getId())
+ .eq(Empower::getIsdeleted,Constants.ONE)
+ .ne(Empower::getFailFlag,Constants.ONE)
+ .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0) {
+ //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
+ HkSyncEmpowerServiceImpl.doHkDeleteUser(member.getId(),member.getHkId(),new Date(),memberMapper1,memberCardMapper);
+ }
+ }
+ }
+ }
+
+ /**
+ * 绛夊緟鍒犻櫎鏉冮檺鏁版嵁鐨勫垹闄や笅鍙�
+ */
+ private void dealWaitDelMemberData() {
+ //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+ List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+ .selectAll(Member.class )
+ .eq(Member::getHkStatus,Constants.FOUR)//绛夊緟涓嬪彂瀹屾垚鐨�
+ .eq(Member::getIsdeleted,Constants.ONE)//宸插垹闄ょ殑
+ .eq(Member::getType,Constants.memberType.internal)
+ .orderByAsc(Member::getEditDate));
+ if(list ==null || list.size()==0){
+ return;
+ }
+ Date date = new Date();
+ for(Member member : list){
+ if(member!=null && Constants.equalsInteger(member.getIsdeleted(),Constants.ONE) ){
+ if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
+ .eq(Empower::getMemberId, member.getId())
+ .eq(Empower::getIsdeleted,Constants.ONE)
+ .ne(Empower::getFailFlag,Constants.ONE)
+ .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0) {
+ //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
+
+ HkSyncEmpowerServiceImpl.doHkDeleteUser(member.getId(),member.getHkId(),date,memberMapper1,memberCardMapper);
+ }
+ }
+ }
+ }
+
public static List<Integer> getRoleIdByParam( Member member,DeviceRoleMapper deviceRoleMapper) {
//鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
@@ -305,14 +388,15 @@
String doorids =deviceRole.getDoorIds();
if(StringUtils.isNotBlank(doorids)){
String[] ss = doorids.split(",");
- try {
- for(String s :ss){
+ for(String s :ss){
+ try {
Integer ts =Integer.parseInt(s);
r.add(ts);
+ }catch (Exception e){
+ //鑴忔暟鎹笉澶勭悊
}
- }catch (Exception e){
- //鑴忔暟鎹笉澶勭悊
}
+
}
}
return r;
@@ -352,10 +436,19 @@
.set(ParkBook::getIsdeleted,Constants.ONE)
.eq(ParkBook::getIsdeleted,Constants.ZERO)
.set(ParkBook::getHkStatus,Constants.ZERO));
+ //鎶婃墍鏈夊緟涓嬪彂鐨勪换鍔℃敼鎴� 宸插彇娑�
+ empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+ .eq(Empower::getMemberId,member.getId())
+ .eq(Empower::getIsdeleted,Constants.ZERO)
+ .eq(Empower::getSendStatus,Constants.EmpowerStatus.wait)
+ .set(Empower::getIsdeleted,Constants.ONE)
+ .set(Empower::getSendStatus,Constants.EmpowerStatus.cancel));
return empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
.eq(Empower::getMemberId,member.getId())
.set(Empower::getIsdeleted,Constants.ONE)
+ .notIn(Empower::getSendStatus,Constants.EmpowerStatus.fail)
.set(Empower::getRemark,"绛夊緟鍚屾鍒犻櫎瀹夐槻骞冲彴")
+ .eq(Empower::getIsdeleted,Constants.ZERO)
.eq(Empower::getIsdeleted,Constants.ZERO)
.set(Empower::getSendStatus,Constants.ZERO));
}
@@ -382,10 +475,10 @@
return;
}
- List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚�
- List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚�
- if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)
- && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+ if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)){
+// && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+ List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚�
+ List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚�
//濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛�
List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
if(deviceList == null || deviceList.size() == 0){
@@ -401,6 +494,7 @@
model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
model.setStartTime(member.getStartTime());
+ model.setFailFlag(Constants.ZERO);
model.setEndTime(member.getEndTime());
//榛樿缁欎簬铏氭嫙鍗�
model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
@@ -409,22 +503,22 @@
deviceIds.add(deviceRole.getId());
list.add(model);
}
- }
- //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
- empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
- .eq(Empower::getMemberId,member.getId())
- .set(Empower::getIsdeleted,Constants.ONE)
- .eq(Empower::getIsdeleted,Constants.ZERO)
- .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds)
- .set(Empower::getSendStatus,Constants.ZERO));
- //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
- if(list.size()>0){
- //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲
- empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+ //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
+ empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
.eq(Empower::getMemberId,member.getId())
+ .set(Empower::getIsdeleted,Constants.ONE)
.eq(Empower::getIsdeleted,Constants.ZERO)
- .in(Empower::getDeviceId,deviceIds) );
- empowerMapper.insertBatchSomeColumn(list);
+ .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds)
+ .set(Empower::getSendStatus,Constants.ZERO));
+ //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+ if(list.size()>0){
+ //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲
+ empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+ .eq(Empower::getMemberId,member.getId())
+ .eq(Empower::getIsdeleted,Constants.ZERO)
+ .in(Empower::getDeviceId,deviceIds) );
+ empowerMapper.insertBatchSomeColumn(list);
+ }
}
}
public static void dealChangeDeviceRoleEmpower( Member member ,List<Integer> addDoorIds,List<Integer> delDoorIds, DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) {
@@ -460,6 +554,7 @@
model.setCreateDate(new Date());
model.setMemberId(member.getId());
model.setIsdeleted(Constants.ZERO);
+ model.setFailFlag(Constants.ZERO);
model.setDeviceId(deviceRole.getId());
model.setSendStatus(Constants.ZERO);
model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
@@ -577,15 +672,13 @@
if(rr >0){
//濡傛灉鏈夋瑠闄愬緟鍒櫎锛岀瓑寰呭垹闄ゅ畬鎴愬啀鍒犻櫎浜哄憳
c.setHkStatus(Constants.FOUR );
+ c.setFaceStatus(Constants.ONE);//鎶婂紓甯镐汉鑴哥姸鎬佹敼涓烘甯革紝鐢ㄤ簬鍒犻櫎鏉冮檺鏁版嵁
c.setRemark( "绛夊緟鍒犻櫎鎺堟潈锛�");
+ c.setEditDate(date);
+ memberMapper.updateById(c);
}else{
//娌℃湁鏉冮檺鐩存帴鍒犻櫎浜哄憳
- boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
- c.setHkStatus(r?Constants.ONE:Constants.TWO);
- c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
- c.setIsdeleted(r? Constants.ONE: Constants.ZERO);//鍒犻櫎澶辫触锛屾仮澶嶆暟鎹�
- //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
- memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,c.getId()));
+ HkSyncEmpowerServiceImpl.doHkDeleteUser(c.getId(),c.getHkId(),new Date(),memberMapper1,memberCardMapper);;
}
}else{
//澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
@@ -597,16 +690,16 @@
//濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾
String faceid = dealMemberFace(c,path);
if(StringUtils.isBlank(faceid)){
- noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
c.setHkStatus(Constants.TWO);
c.setFaceStatus(Constants.TWO);
c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�"+result.getMsg());
+ noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
}else{
c.setFaceId(faceid);
c.setFaceStatus(Constants.ONE);
//濡傛灉浜鸿劯璺熶綘锛岄噸鏂颁笅鍙戞潈闄愭暟鎹�
c.setRemark("浜哄憳鍜屼汉鑴镐俊鎭悓姝ユ垚鍔�"+result.getMsg());
- dealMemberRoleEmpower(c);
+ dealMemberRoleEmpower(c);
}
}
}else{
@@ -614,10 +707,10 @@
c.setHkStatus(Constants.TWO);
c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
}
-
+ c.setHkDate(date);
+ c.setEditDate(date);
+ memberMapper.updateById(c);
}
- c.setHkDate(date);
- memberMapper.updateById(c);
}
/**
@@ -680,20 +773,25 @@
* @return
*/
public static 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{
- FaceEditRequest param =getFaceUpdateModel(c,path);
- if(param !=null){
- BaseResponse response = HKService.editFace(param);
- if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){
- return c.getFaceId();
+ try {
+ 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{
+ FaceEditRequest param =getFaceUpdateModel(c,path);
+ if(param !=null){
+ BaseResponse response = HKService.editFace(param);
+ if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+ return c.getFaceId();
+ }
}
}
+ }catch (Exception e){
+
}
+
return null;
}
@@ -711,12 +809,12 @@
//閫氱煡ERP浜鸿劯鏁版嵁涓嶆纭�
erpSyncService.noticeUserFail(r);
}
-
- /**
+/*
+ *//**
* 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
* @param id
* @param date
- */
+ *//*
private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) {
if(StringUtils.isBlank(delHkIds)){
return true;
@@ -725,25 +823,26 @@
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)
+ .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触:"+ JSONObject.toJSONString(result.getData().get(0) ))
.in(Member::getId, id));
}else{
//鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
memberMapper.update(null,new UpdateWrapper<Member>().lambda()
.set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
.set(Member::getHkDate,date)
+ .set(Member::getRemark,"宸插悓姝�")
.in(Member::getId, id));
}
return true;
}
return false;
- }
+ }*/
/**
* 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭�
@@ -811,4 +910,5 @@
return model;
}
+
}
--
Gitblit v1.9.3