From 857a1e6ddac0a5cfdd82c78218b2483534ab397f Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 09 一月 2024 13:45:19 +0800 Subject: [PATCH] 整理 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 111 insertions(+), 6 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 d4654a1..2d51df3 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 @@ -50,6 +50,8 @@ @Autowired private EmpowerMapper empowerMapper; @Autowired + private MemberCardMapper memberCardMapper; + @Autowired private MemberJoinMapper memberMapper; @Autowired private ERPSyncService erpSyncService; @@ -286,7 +288,7 @@ //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺 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()+")")); + .exists("(select b.id from member_role b where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getId()+")")); if(CollectionUtils.isNotEmpty(deviceRoleList)){ List<MemberRole> memberRoleList = new ArrayList<>(); String ids = ""; @@ -318,7 +320,7 @@ //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊 return false; } - if(StringUtils.isBlank(c.getHkId())){ + if(!Constants.equalsInteger(Constants.ONE,c.getIsdeleted()) && StringUtils.isBlank(c.getHkId())){ //濡傛灉鏂板鍚屾鏁告摎 dealUserHkAddBiz(c,date,path); }else{ @@ -328,6 +330,11 @@ return false; } private void dealMemberRoleEmpower(Member member ) { + //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級 + List<MemberCard> cards = dealMemberHkCard(member); + if(cards == null || cards.size() == 0){ + return; + } List<Integer> doorIds = getRoleIdByParam(member); if(doorIds==null || doorIds.size() == 0){ return; @@ -335,9 +342,12 @@ if(StringUtils.isBlank(member.getFaceImg())){ return; } - if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){ - //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄� - List<Empower> list = new ArrayList<>(); + + List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚� + List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚� + if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO) + && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){ + //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛� List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds)); if(deviceList == null || deviceList.size() == 0){ return; @@ -349,17 +359,109 @@ model.setIsdeleted(Constants.ZERO); model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); + model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�"); + model.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); model.setStartTime(member.getStartTime()); model.setEndTime(member.getEndTime()); //榛樿缁欎簬铏氭嫙鍗� model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); model.setSendType(Constants.ZERO); + //鏍囪鏈�鏂扮殑鎺堟潈璁惧缂栫爜闆嗗悎 + 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() + .eq(Empower::getMemberId,member.getId()) + .eq(Empower::getIsdeleted,Constants.ZERO) + .in(Empower::getDeviceId,deviceIds) ); empowerMapper.insertBatchSomeColumn(list); } } + + /** + * 瀵逛汉鍛樺甫寮�鍗℃暟鎹繘琛岃嚜鍔ㄥ紑鍗℃搷浣� + * @param member + * @return + */ + private List<MemberCard> dealMemberHkCard(Member member) { + List<MemberCard> memberCards = memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() + .eq(MemberCard::getMemberId,member.getId()) + .eq(MemberCard::getType,Constants.TWO) + .eq(MemberCard::getHkStatus,Constants.ZERO) ); + if(memberCards==null || memberCards.size()==0){ + //娌℃湁甯﹀鐞嗙殑鏁版嵁锛岀洿鎺ヨ烦杩� + return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() + .eq(MemberCard::getMemberId,member.getId()) + .eq(MemberCard::getType,Constants.TWO) + .eq(MemberCard::getHkStatus,Constants.ONE) ); + } + + List<Integer> allCodes = new ArrayList<>(); + List<String> doneCodes = new ArrayList<>(); + CardBingdingRequest param = new CardBingdingRequest(); + if(member.getStartTime() !=null && member.getEndTime()!=null){ + param.setStartDate(DateUtil.getISO8601Timestamp(member.getStartTime())); + param.setEndDate(DateUtil.getISO8601Timestamp(member.getEndTime())); + } + param.setCardList(new ArrayList<>()); + for(MemberCard m : memberCards){ + allCodes.add(m.getId()); + if(StringUtils.isBlank(m.getCode())){ + continue; + } + CardInfoRequest cr = new CardInfoRequest(); + cr.setCardNo(m.getCode()); + cr.setOrgIndexCode(member.getCompanyHkId()); + cr.setPersonId(member.getHkId()); + cr.setCardType(m.getCardType()); + param.getCardList().add(cr); + } + + //澶勭悊鏂板鏁版嵁 + BaseResponse<List<CardInfoResponse>> result = HKService.cardBingding(param); + if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){ + if(result.getData()!=null ){ + for(CardInfoResponse r : result.getData()){ + doneCodes.add(r.getCardNo()); + } + } + } + if(doneCodes.size()>0){ + memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda() + .eq(MemberCard::getMemberId,member.getId()) + .eq(MemberCard::getHkStatus,Constants.ZERO) + .set(MemberCard::getHkStatus,Constants.ONE) + .set(MemberCard::getHkDate,new Date()) + .set(MemberCard::getRemark,"寮�鍗℃垚鍔�") + .in(MemberCard::getCode,doneCodes)); + } + memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda() + .eq(MemberCard::getMemberId,member.getId()) + .eq(MemberCard::getHkStatus,Constants.ZERO) + .set(MemberCard::getHkStatus,Constants.TWO) + .set(MemberCard::getRemark,"寮�鍗″け璐�") + .set(MemberCard::getHkDate,new Date()) + .notIn(doneCodes.size()>0,MemberCard::getCode,doneCodes) + .in(MemberCard::getId,allCodes)); + + return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() + .eq(MemberCard::getMemberId,member.getId()) + .eq(MemberCard::getType,Constants.TWO) + .eq(MemberCard::getHkStatus,Constants.ONE) ); + } + /** * 濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級 * @param c @@ -373,6 +475,9 @@ 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())); }else{ //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴� UserAddRequest addHkModel = getUserAddModel(c,path,1);//淇敼 -- Gitblit v1.9.3