From f2d095dd7f3df56b09564ba46dcaa36d912ae4a8 Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期一, 18 三月 2024 18:05:45 +0800 Subject: [PATCH] 整理 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java | 317 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 231 insertions(+), 86 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 22d0f6c..a0b2d69 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 @@ -2,6 +2,7 @@ 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.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; @@ -21,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -37,6 +39,8 @@ public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl { @Autowired private EmpowerJoinMapper empowerMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @Autowired private MemberMapper memberMapper; @Autowired @@ -59,66 +63,105 @@ if(list == null || list.size() ==0){ return; } - for(Empower c : list){ - TaskPersonDetailRequest param = new TaskPersonDetailRequest(); - param.setPageNo(1); - param.setPageSize(100); + Thread t1=new Thread(new Runnable() { + @Override + public void run() { + try { + 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()); + 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()+" "; + 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)); } - cardInfo += "銆戜笅鍙戞垚鍔�"; + } else { + //濡傛灉鏄凡鍒犻櫎鐨勬暟鎹紝涓嬪彂澶辫触锛堥槻姝㈣澶囩绾匡級锛屽垯灏濊瘯閲嶆柊涓嬪彂浠诲姟 + if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){ +// && Constants.formatIntegerNum(c.getTryNum())+1 < tryNum ){ + empowerMapper.update(null, new UpdateWrapper<Empower>() + .lambda() + .eq(Empower::getId, c.getId()) + .set(Empower::getRemark, "涓嬪彂澶辫触锛岀瓑寰呴噸鏂板垹闄ゆ潈闄�") +// .set(Empower::getHkId,null) +// .set(Empower::getSendDate,null) + .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) + .set(Empower::getSendInfo, "涓嬪彂澶辫触锛岀瓑寰呴噸鏂板垹闄ゆ潈闄�") + .set(Empower::getSendStatus, Constants.EmpowerStatus.wait)); + empowerMapper.update(null, new UpdateWrapper<Empower>() + .lambda() + .eq(Empower::getId, c.getId()) + .set(Empower::getRemark, "鍒犻櫎鏉冮檺涓嬪彂澶辫触") + .set(Empower::getSendInfo, "鍒犻櫎鏉冮檺涓嬪彂澶辫触") + .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); + }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)); + } } - 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()); + } } - checkDelMemberTask(c.getMemberId()); - } - } + }catch (Exception e){ + + }finally { + Constants.DEALING_HK_EMPOWER_DETAIL=false; + } + } + }); + t1.start(); + + }catch (Exception e){ e.printStackTrace(); - }finally { - Constants.DEALING_HK_EMPOWER_DETAIL=false; } } @@ -165,7 +208,7 @@ private void checkDelMemberTask(Integer memberId) { Date date = new Date(); Member member = memberMapper.selectById(memberId); - if(member!=null ){ + 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) @@ -240,30 +283,41 @@ if(list == null || list.size() ==0){ return; } - for(Empower c : list){ - TaskProgressRequest param = new TaskProgressRequest(); - param.setTaskId(c.getHkId()); - //鏌ヨ涓嬪彂鐘舵�� - BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param); - if(response!=null - && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) - && response.getData()!=null - && response.getData().getIsDownloadFinished() != null - && response.getData().getIsDownloadFinished() ){ - //鏇存柊宸插畬鎴愪笅杞戒换鍔� - empowerMapper.update(null,new UpdateWrapper<Empower>() - .lambda() - .eq(Empower::getHkId,c.getHkId() ) - .set(Empower::getSendInfo,"浠诲姟宸蹭笅杞藉畬鎴�" ) - .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); - } - } + Thread t1=new Thread(new Runnable() { + @Override + public void run() { + try { + for(Empower c : list){ + TaskProgressRequest param = new TaskProgressRequest(); + param.setTaskId(c.getHkId()); + //鏌ヨ涓嬪彂鐘舵�� + BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param); + if(response!=null + && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) + && response.getData()!=null){ + //鏇存柊宸插畬鎴愪笅杞戒换鍔� + if( response.getData().getIsDownloadFinished() != null + && response.getData().getIsDownloadFinished() ){ + empowerMapper.update(null,new UpdateWrapper<Empower>() + .lambda() + .eq(Empower::getHkId,c.getHkId() ) + .set(Empower::getSendInfo,"浠诲姟宸蹭笅杞藉畬鎴�" ) + .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); + + } + } + } + }catch (Exception e1){ + e1.printStackTrace(); + }finally { + Constants.DEALING_HK_EMPOWER_RESULT =false; + } + } + }); + t1.start(); }catch (Exception e){ e.printStackTrace(); - }finally { - Constants.DEALING_HK_EMPOWER_RESULT =false; } - } @@ -272,20 +326,58 @@ * 澶勭悊浜哄憳鎺堟潈鏁版嵁锛屽畾鏃朵笅鍙� */ @Override - public void syncEmpowerData() { - if(Constants.DEALING_HK_EMPOWER){ - return ; - } - Constants.DEALING_HK_EMPOWER =true; + public Integer syncEmpowerData(Integer endId) { +// if(Constants.DEALING_HK_EMPOWER){ +// return null ; +// } +// Constants.DEALING_HK_EMPOWER =true; try { //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 - dealDelListTask(getDealList(Constants.ONE)); - //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙� - dealNewListTask(getDealList(Constants.ZERO)); + List<Empower> allList =getAllWaitDealList( endId); + if(allList !=null && allList.size()>0){ + //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙� +// dealNewListTask(getDealList(Constants.ZERO,endId)); + List<Empower> dellist = new ArrayList<>(); + List<Empower> addlist = new ArrayList<>(); + for(Empower e : allList){ + if(Constants.equalsInteger(e.getIsdeleted(),Constants.ONE)){ + dellist.add(e); + }else { + addlist.add(e); + } + } + Thread t1=new Thread(new Runnable() { + @Override + public void run() { + if(dellist!=null &&dellist.size()>0) { + dealDelListTask(dellist); + } + if(addlist!=null &&addlist.size()>0) { + dealNewListTask(addlist); + } + } + }); + t1.start(); + return allList.get(allList.size()-1).getId(); + } + }catch (Exception e){ e.printStackTrace(); }finally { - Constants.DEALING_HK_EMPOWER =false; +// Constants.DEALING_HK_EMPOWER =false; + } + return null; + } + @Override + public void syncEmpowerDataNew(int start,int end) { + try { + //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 + dealDelListTask(getDealList(Constants.ONE,start,end)); + //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙� + dealNewListTask(getDealList(Constants.ZERO,start,end)); + }catch (Exception e){ + e.printStackTrace(); + }finally { } } @@ -354,7 +446,21 @@ .set(Empower::getEditDate,date) .in(Empower::getId,errorList)); } + public class TaskRuner implements Runnable{ + private List<Empower> list ; + @Override + public void run() { + dealNewListTask(list); + } + public List<Empower> getList() { + return list; + } + + public void setList(List<Empower> list) { + this.list = list; + } + } private void dealNewListTask(List<Empower> list) { //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁 if(list ==null || list.size()==0){ @@ -469,9 +575,44 @@ return false; } } + private List<Empower> getDealList(int del ,Integer endId ) { + MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(Empower.class); + queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); + queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); + queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); + queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); + queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); + queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); + queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); +// queryWrapper.eq( Empower::getIsdeleted,del); + queryWrapper.gt(Empower::getId,endId); + queryWrapper.orderByAsc(Empower::getId ); +// queryWrapper.orderByAsc(Empower::getCreateDate ); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� + List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); + return list; + } + private List<Empower> getAllWaitDealList(int endId ) { + MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(Empower.class); + queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); + queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); + queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); + queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); + queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); + queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); + queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); +// queryWrapper.eq( Empower::getIsdeleted,del); + queryWrapper.gt(Empower::getId,endId); + queryWrapper.orderByAsc(Empower::getId ); +// queryWrapper.orderByAsc(Empower::getCreateDate ); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� + List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); + return list; + } - - private List<Empower> getDealList(int del ) { + private List<Empower> getDealList(int del ,int start,int end) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); @@ -482,7 +623,11 @@ queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); queryWrapper.eq( Empower::getIsdeleted,del); -// queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� + queryWrapper.gt( Empower::getId,start); + queryWrapper.le( Empower::getId,end); + queryWrapper.orderByDesc(Empower::getId ); +// queryWrapper.orderByAsc(Empower::getCreateDate ); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } -- Gitblit v1.9.3