From b6af77669bb4d4fa8c96cfb70dcaf97a607dbfe5 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 08 三月 2024 13:48:53 +0800 Subject: [PATCH] ERP接口 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java | 245 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 207 insertions(+), 38 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java index d400e2e..55256e6 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java @@ -12,12 +12,11 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; +import com.doumee.dao.business.MemberCardMapper; +import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.join.EmpowerJoinMapper; import com.doumee.dao.business.join.VisitsJoinMapper; -import com.doumee.dao.business.model.Device; -import com.doumee.dao.business.model.Empower; -import com.doumee.dao.business.model.Member; -import com.doumee.dao.business.model.Visits; +import com.doumee.dao.business.model.*; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -39,7 +38,11 @@ @Autowired private EmpowerJoinMapper empowerMapper; @Autowired + private MemberMapper memberMapper; + @Autowired private DeviceMapper deviceMapper; + @Autowired + private MemberCardMapper memberCardMapper; /** * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉 @@ -57,20 +60,146 @@ return; } for(Empower c : list){ + TaskPersonDetailRequest param = new TaskPersonDetailRequest(); + param.setPageNo(1); + param.setPageSize(100); +// param.setPersonIds(new ArrayList<>()); + + param.setPersonIds(new String[]{c.getMemberHkId()}); + param.setTaskId(c.getHkId()); + TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest(); + rec.setResourceIndexCode(c.getDeviceIndexCode()); + rec.setResourceType(c.getDeviceType()); +// rec.setChannelNos(c.getDeviceChannelNo().split(",")); + param.setResourceInfo(rec); + //鏌ヨ涓嬪彂鐘舵�� + BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param); + if(response!=null + && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null + ){ + if( response.getData().getList() != null + && response.getData().getList().size()>0 ){ + TaskPersonDetailResponse model = response.getData().getList().get(0); + if(model != null && StringUtils.equals(model.getPersondownloadResult(),"0")){ + //鏇存柊宸插畬鎴愪笅杞戒换鍔� + String remark = ""; + String cardInfo = "鍗$墖涓嬪彂澶辫触"; + TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail(); + if(d.getCards() !=null && d.getCards().size()>0){ + cardInfo = "鍗$墖锛氥��" ; + for(TaskPersonDetailCardInfoResponse card : d.getCards()){ + cardInfo +=card.getId()+" "; + } + cardInfo += "銆戜笅鍙戞垚鍔�"; + } + if(d.getFaces() == null || d.getFaces().size() ==0){ + remark = cardInfo+"锛� 涓嶆敮鎸佷汉鑴歌澶囷紒"; + }else{ + remark = ""+cardInfo+"锛屼汉鑴镐笅鍙戞垚鍔燂紒"; + } + empowerMapper.update(null,new UpdateWrapper<Empower>() + .lambda() + .eq(Empower::getId,c.getId() ) + .set(Empower::getRemark,remark ) + .set(Empower::getSendInfo,remark ) + .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) ); + } + }else{ + empowerMapper.update(null,new UpdateWrapper<Empower>() + .lambda() + .eq(Empower::getId,c.getId() ) + .set(Empower::getRemark,"涓嬪彂澶辫触" ) + .set(Empower::getSendInfo,"涓嬪彂澶辫触" ) + .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) ); + } + checkDelMemberTask(c.getMemberId()); + } + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + Constants.DEALING_HK_EMPOWER_DETAIL=false; + } + + } + /** + * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭� + * @param id + * @param date + */ + private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) { + if(StringUtils.isBlank(delHkIds)){ + return true; + } + 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::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触")//鍚屾澶辫触 + .set(Member::getHkDate,date) + .in(Member::getId, id)); + }else{ + //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛� + memberMapper.update(null,new UpdateWrapper<Member>().lambda() + .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛 + .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触")//鍚屾澶辫触 + .set(Member::getHkDate,date) + .in(Member::getId, id)); + //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅 + memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,id)); + } + return true; + } + return false; + } + + /** + * 妫�鏌ュ垹闄や汉鍛樼殑鏉冮檺鏄惁閮藉垹闄ゅ畬鎴愶紝濡傛灉鏉冮檺鍒犻櫎瀹屾垚锛� 杩涜娴峰悍浜哄憳鐨勫垹闄ゆ搷浣� + */ + private void checkDelMemberTask(Integer memberId) { + Date date = new Date(); + Member member = memberMapper.selectById(memberId); + 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::getSendStatus,Constants.EmpowerStatus.pass)) ==0){ + //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁 + doHkDeleteUser(member.getId(),member.getHkId(),date); + } + } + } + + public void syncEmpowerDetailDataOld(){ + if(Constants.DEALING_HK_EMPOWER_DETAIL){ + return ; + } + Constants.DEALING_HK_EMPOWER_DETAIL = true; + try { + //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍 + List<Empower> list = getDealListDetail(); + if(list == null || list.size() ==0){ + return; + } + for(Empower c : list){ AuthItemListRequest param = new AuthItemListRequest(); param.setPageNo(1); param.setPageSize(100); // param.setPersonIds(new ArrayList<>()); -// AuthItemListPersonRequest p = new AuthItemListPersonRequest(); -// p.setPersonIds(c.getMemberHkId()); + param.setPersonIds(new String[]{c.getMemberHkId()}); - param.setQueryType(c.getDeviceType()); + param.setQueryType(c.getDeviceType()); TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest(); rec.setResourceIndexCode(c.getDeviceIndexCode()); rec.setResourceType(c.getDeviceType()); - rec.setChannelNos(c.getDeviceChannelNo().split(",")); +// rec.setChannelNos(c.getDeviceChannelNo().split(",")); List<TaskDataAdditionResourceRequest> resourceRequests = new ArrayList<>(); - resourceRequests.add(rec); // param.setResourceInfos(resourceRequests); //鏌ヨ宸蹭笅杞� @@ -85,7 +214,7 @@ //鏇存柊宸插畬鎴愪笅杞戒换鍔� empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() - .eq(Empower::getHkId,c.getHkId() ) + .eq(Empower::getId,c.getId() ) .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) ); } } @@ -125,8 +254,8 @@ empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .eq(Empower::getHkId,c.getHkId() ) + .set(Empower::getSendInfo,"浠诲姟宸蹭笅杞藉畬鎴�" ) .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); - } } }catch (Exception e){ @@ -151,7 +280,7 @@ try { //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 dealDelListTask(getDealList(Constants.ONE)); - //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁 + //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙� dealNewListTask(getDealList(Constants.ZERO)); }catch (Exception e){ e.printStackTrace(); @@ -160,7 +289,28 @@ } } + /** + * 鍒嗘璇锋眰涓嬪彂鏉冮檺 + * @param list + */ private void dealDelListTask(List<Empower> list) { + int sublistSize = 100; + int startIndex = 0; + int endIndex = sublistSize; + + while (startIndex < list.size()) { + if (endIndex > list.size()) { + endIndex = list.size(); + } + List<Empower> sublist = list.subList(startIndex, endIndex); + if(sublist.size()>0){ + dealDelListTaskDo(sublist); + } + startIndex = endIndex; + endIndex += sublistSize; + } + } + private void dealDelListTaskDo(List<Empower> list) { //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁 if(list ==null || list.size()==0){ return; @@ -168,41 +318,41 @@ Date date = new Date(); //鍒涘缓浠诲姟 String taskId = hkTaskAddtion(); - List<Empower> successList = new ArrayList<>(); - List<Empower> errorList = new ArrayList<>(); + List<Integer> successList = new ArrayList<>(); + List<Integer> errorList = new ArrayList<>(); for(Empower c : list) { //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹� if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.DEL.getKey())){ - successList.add(c); + successList.add(c.getId()); }else{ - errorList.add(c); + errorList.add(c.getId()); } } if(successList.size()>0){ //寮�濮嬫墽琛屼笅鍙� boolean status = startTask(taskId); - for(Empower model : successList){ - Empower update = new Empower(); - update.setId(model.getId()); - update.setSendDate(date); - update.setEditDate(date); - update.setHkId(taskId); - update.setRemark(status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触"); - //涓嬪彂涓� - update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); - empowerMapper.updateById(update); - } + empowerMapper.update(null,new UpdateWrapper<Empower>() + .lambda() + .set(Empower::getSendDate,date) + .set(Empower::getEditDate,date) + .set(Empower::getSendStatus,status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail) + .set(Empower::getHkId,taskId) + .set(Empower::getSendInfo,status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触") + .set(Empower::getRemark,status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触") + .set(Empower::getEditDate,date) + .in(Empower::getId,successList)); } - for(Empower model : errorList){ - Empower update = new Empower(); - update.setId(model.getId()); - update.setSendDate(date); - update.setEditDate(date); - update.setHkId(taskId); - update.setSendStatus(Constants.EmpowerStatus.fail); -// update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触"); - empowerMapper.updateById(update); - } + + empowerMapper.update(null,new UpdateWrapper<Empower>() + .lambda() + .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) + .set(Empower::getSendDate,date) + .set(Empower::getEditDate,date) + .set(Empower::getHkId,taskId) + .set(Empower::getSendInfo, "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触") + .set(Empower::getRemark, "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触") + .set(Empower::getEditDate,date) + .in(Empower::getId,errorList)); } private void dealNewListTask(List<Empower> list) { @@ -234,6 +384,7 @@ update.setEditDate(date); update.setHkId(taskId); update.setRemark(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触"); + update.setSendInfo(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触"); //涓嬪彂涓� update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); empowerMapper.updateById(update); @@ -248,6 +399,7 @@ update.setHkId(taskId); update.setSendStatus(Constants.EmpowerStatus.fail); update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触"); + update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触"); empowerMapper.updateById(update); } @@ -272,6 +424,7 @@ ||StringUtils.isBlank(c.getDeviceType()) ||StringUtils.isBlank(c.getDeviceIndexCode())){ //蹇呭~鍙傛暟鏍¢獙 + c.setSendInfo("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�"); c.setRemark("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�"); return false; } @@ -293,12 +446,26 @@ personInfos.add(pinfo);// param.setResourceInfos(resourceInfos); param.setPersonInfos(personInfos); + + //--------------鍗$墖娣诲姞---------- + /* if(StringUtils.isNotBlank(c.getCardNos())){ + List<TaskDataAdditionCardRequest> cards = new ArrayList<>(); + for(String s : c.getCardNos().split(",")){ + TaskDataAdditionCardRequest tc = new TaskDataAdditionCardRequest(); + tc.setCard(s); + tc.setStatus(HKConstants.OPERA_TYPE.ADD.getKey()); + tc.setCardType(HKConstants.CARD_TYPE.NORMAL.getKey()); + cards.add(tc); + } + param.setCards(cards); + }*/ BaseResponse response = HKService.taskDataAddition(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ c.setRemark("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():"")); + c.setSendInfo("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():"")); return false; } } @@ -324,11 +491,13 @@ queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); - queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); + queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded); + queryWrapper.isNotNull(Member::getHkId) ; + queryWrapper.orderByAsc(Empower::getSendDate); List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } -- Gitblit v1.9.3