From 6c40e04eb7c2060feb2533735cd3089d438965e5 Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期二, 19 三月 2024 17:19:36 +0800 Subject: [PATCH] 整理 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java | 362 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 249 insertions(+), 113 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..3b9e929 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; @@ -38,6 +40,8 @@ @Autowired private EmpowerJoinMapper empowerMapper; @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Autowired private MemberMapper memberMapper; @Autowired private DeviceMapper deviceMapper; @@ -48,80 +52,113 @@ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉 */ @Override - public void syncEmpowerDetailData(){ - if(Constants.DEALING_HK_EMPOWER_DETAIL){ - return ; - } - Constants.DEALING_HK_EMPOWER_DETAIL = true; - try { + public Integer syncEmpowerDetailData(Integer endId){ +// if(Constants.DEALING_HK_EMPOWER_DETAIL){ +// return ; +// } +// Constants.DEALING_HK_EMPOWER_DETAIL = true; //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍 - List<Empower> list = getDealListDetail(); + List<Empower> list = getDealListDetail(endId); if(list == null || list.size() ==0){ - return; + return null; } - 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()+" "; + Thread t1=new Thread(new Runnable() { + @Override + public void run() { + try { + for(Empower c : list){ + TaskPersonDetailRequest param = new TaskPersonDetailRequest(); + param.setPageNo(1); + param.setPageSize(10); + param.setPersonIds(new String[]{c.getMemberHkId()}); + param.setTaskId(c.getHkId()); + TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest(); + rec.setResourceIndexCode(c.getDeviceIndexCode()); + rec.setResourceType(c.getDeviceType()); + 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){ - e.printStackTrace(); - }finally { - Constants.DEALING_HK_EMPOWER_DETAIL=false; - } + }catch (Exception e){ + + }finally { +// Constants.DEALING_HK_EMPOWER_DETAIL=false; + } + } + }); + t1.start(); + return list.get(list.size()-1).getId(); } + + /** * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭� * @param id @@ -165,7 +202,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) @@ -183,7 +220,7 @@ Constants.DEALING_HK_EMPOWER_DETAIL = true; try { //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍 - List<Empower> list = getDealListDetail(); + List<Empower> list = getDealListDetail(0); if(list == null || list.size() ==0){ return; } @@ -229,40 +266,49 @@ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉 */ @Override - public void syncEmpowerResultData(){ - if(Constants.DEALING_HK_EMPOWER_RESULT){ - return ; - } - Constants.DEALING_HK_EMPOWER_RESULT=true; - try { + public Integer syncEmpowerResultData(Integer endId){ +// if(Constants.DEALING_HK_EMPOWER_RESULT){ +// return null ; +// } +// Constants.DEALING_HK_EMPOWER_RESULT=true; //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹� - List<Empower> list = getIngTaskListResult(); + List<Empower> list = getIngTaskListResult(Constants.formatIntegerNum(endId)); if(list == null || list.size() ==0){ - return; + return null; } - 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) ); - } - } - }catch (Exception e){ - e.printStackTrace(); - }finally { - Constants.DEALING_HK_EMPOWER_RESULT =false; - } + 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(); + return list.get(list.size()-1).getId(); } @@ -272,20 +318,51 @@ * 澶勭悊浜哄憳鎺堟潈鏁版嵁锛屽畾鏃朵笅鍙� */ @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; + //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 + 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(); + } + return null; + } + @Override + public void syncEmpowerDataNew(int start,int end) { try { //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 - dealDelListTask(getDealList(Constants.ONE)); + dealDelListTask(getDealList(Constants.ONE,start,end)); //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙� - dealNewListTask(getDealList(Constants.ZERO)); + dealNewListTask(getDealList(Constants.ZERO,start,end)); }catch (Exception e){ e.printStackTrace(); }finally { - Constants.DEALING_HK_EMPOWER =false; } } @@ -354,7 +431,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 +560,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,11 +608,15 @@ 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; } - private List<Empower> getDealListDetail() { + private List<Empower> getDealListDetail(int endId ) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); @@ -497,17 +627,23 @@ queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded); queryWrapper.isNotNull(Member::getHkId) ; + queryWrapper.gt(Empower::getId,endId); queryWrapper.orderByAsc(Empower::getSendDate); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } - private List<Empower> getIngTaskListResult() { + private List<Empower> getIngTaskListResult(int endId) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing); + queryWrapper.gt(Empower::getId,endId); queryWrapper.groupBy(Empower::getHkId); - List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); + queryWrapper.orderByAsc(Empower::getSendDate); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� + List<Empower> list = empowerMapper.selectList(queryWrapper); return list; } + } -- Gitblit v1.9.3