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 | 652 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 614 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 2e89198..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
@@ -1,23 +1,31 @@
package com.doumee.service.business.impl.hksync;
+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;
import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest;
-import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKService;
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.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;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -30,53 +38,621 @@
@Slf4j
public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl {
@Autowired
- private EmpowerJoinMapper empowerJoinMapper;
+ private EmpowerJoinMapper empowerMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MemberMapper memberMapper;
+ @Autowired
+ private DeviceMapper deviceMapper;
+ @Autowired
+ private MemberCardMapper memberCardMapper;
/**
- * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
+ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
*/
@Override
- public void syncEmpowerData(){
- if(Constants.DEALING_HK_EMPOWER){
+ public void syncEmpowerDetailData(){
+ if(Constants.DEALING_HK_EMPOWER_DETAIL){
return ;
}
- Constants.DEALING_HK_EMPOWER =true;
+ Constants.DEALING_HK_EMPOWER_DETAIL = true;
try {
- //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+ //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
+ List<Empower> list = getDealListDetail();
+ if(list == null || list.size() ==0){
+ return;
+ }
+ 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<>());
- MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
- queryWrapper.selectAll(Empower.class);
- queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName)
- .select("t1.hk_id as receptMemberHkId")
- .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
- queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//瀹℃壒閫氳繃
- .eq(Visits::getHkStatus,Constants.ZERO)//鏈悓姝ュ埌娴峰悍
- .orderByAsc(Visits::getCreateDate);
- List<Empower> list = empowerJoinMapper.selectJoinList(Empower.class,queryWrapper);
- if(list ==null || list.size()==0){
- return;
- }
- Date date = new Date();
- for(Empower c : list) {
- //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
- VisitAppointmentRequest request = new VisitAppointmentRequest();
- BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(request);
- if (response != null
- && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
- &&response.getData()!=null
- &&StringUtils.isNotBlank(response.getData().getAppointRecordId())) {
- //娴峰悍涓嬪彂鎴愬姛
- c.setHkId( response.getData().getAppointRecordId());//棰勭害鏍囪瘑
- } else {
- //娴峰悍涓嬪彂鎴愬姛
+ 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));
+ }
+ } 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));
+ }
+ }
+ checkDelMemberTask(c.getMemberId());
+ }
+ }
+ }catch (Exception e){
+
+ }finally {
+ Constants.DEALING_HK_EMPOWER_DETAIL=false;
+ }
}
- empowerJoinMapper.updateById(c);
+ });
+ t1.start();
+
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+
+ }
+ /**
+ * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
+ * @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<>());
+
+ param.setPersonIds(new String[]{c.getMemberHkId()});
+ param.setQueryType(c.getDeviceType());
+ TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
+ rec.setResourceIndexCode(c.getDeviceIndexCode());
+ rec.setResourceType(c.getDeviceType());
+// rec.setChannelNos(c.getDeviceChannelNo().split(","));
+ List<TaskDataAdditionResourceRequest> resourceRequests = new ArrayList<>();
+ resourceRequests.add(rec);
+// param.setResourceInfos(resourceRequests);
+ //鏌ヨ宸蹭笅杞�
+// param.setPersonStatus(new Integer[]{3});
+ //鏌ヨ涓嬪彂鐘舵��
+ BaseResponse<AuthItemListResponse> response = HKService.authItemList(param);
+ if(response!=null
+ && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+ && response.getData()!=null
+ && response.getData().getList() != null
+ && response.getData().getList().size()>0 ){
+ //鏇存柊宸插畬鎴愪笅杞戒换鍔�
+ empowerMapper.update(null,new UpdateWrapper<Empower>()
+ .lambda()
+ .eq(Empower::getId,c.getId() )
+ .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) );
+ }
+ }
}catch (Exception e){
e.printStackTrace();
}finally {
- Constants.DEALING_HK_EMPOWER =false;
+ Constants.DEALING_HK_EMPOWER_DETAIL=false;
}
+
+ }
+ /**
+ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
+ */
+ @Override
+ public void syncEmpowerResultData(){
+ if(Constants.DEALING_HK_EMPOWER_RESULT){
+ return ;
+ }
+ Constants.DEALING_HK_EMPOWER_RESULT=true;
+ try {
+ //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹�
+ List<Empower> list = getIngTaskListResult();
+ if(list == null || list.size() ==0){
+ return;
+ }
+ 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();
+ }
+ }
+
+
+
+ /**
+ * 澶勭悊浜哄憳鎺堟潈鏁版嵁锛屽畾鏃朵笅鍙�
+ */
+ @Override
+ public Integer syncEmpowerData(Integer endId) {
+// if(Constants.DEALING_HK_EMPOWER){
+// return null ;
+// }
+// Constants.DEALING_HK_EMPOWER =true;
+ try {
+ //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
+ 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;
+ }
+ 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 {
+ }
+ }
+
+ /**
+ * 鍒嗘璇锋眰涓嬪彂鏉冮檺
+ * @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;
+ }
+ Date date = new Date();
+ //鍒涘缓浠诲姟
+ String taskId = hkTaskAddtion();
+ 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.getId());
+ }else{
+ errorList.add(c.getId());
+ }
+ }
+ if(successList.size()>0){
+ //寮�濮嬫墽琛屼笅鍙�
+ boolean status = startTask(taskId);
+ 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));
+ }
+
+ 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));
+ }
+ 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){
+ return;
+ }
+// clearAllEmpowerFirst(list);
+ Date date = new Date();
+ //鍒涘缓浠诲姟
+ String taskId = hkTaskAddtion();
+ List<Empower> successList = new ArrayList<>();
+ List<Empower> errorList = new ArrayList<>();
+ for(Empower c : list) {
+ //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
+ if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.ADD.getKey())){
+ successList.add(c);
+ }else{
+ errorList.add(c);
+ }
+ }
+ 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.setSendInfo(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
+ //涓嬪彂涓�
+ update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
+ empowerMapper.updateById(update);
+ }
+ }
+
+ 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( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+ update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+ empowerMapper.updateById(update);
+ }
+
+
+ }
+
+ private void clearAllEmpowerFirst(List<Empower> list) {
+ //鏌ヨ鍏ㄩ儴鏁版嵁
+ List<Device> allDevice = deviceMapper.selectList(new QueryWrapper<Device>().lambda().isNotNull(Device::getHkId));
+ //鍒涘缓浠诲姟
+ String taskId = hkTaskAddtion();
+ for(Empower c : list) {
+ //鍚戜换鍔″埅闄や汉鍛樼殑鎵�鏈夎澶囦俊鎭暟鎹�
+ addTaskDataAllDel(c.getHkId(),taskId,allDevice);
+ }
+ startTask(taskId);
+ }
+
+ private boolean addTaskData(Empower c,String taskId,int type) {
+ if(StringUtils.isBlank(c.getMemberHkId() )
+ ||StringUtils.isBlank(c.getDeviceChannelNo())
+ ||StringUtils.isBlank(c.getDeviceType())
+ ||StringUtils.isBlank(c.getDeviceIndexCode())){
+ //蹇呭~鍙傛暟鏍¢獙
+ c.setSendInfo("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
+ c.setRemark("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
+ return false;
+ }
+ TaskDataAdditionRequest param = new TaskDataAdditionRequest();
+ param.setTaskId(taskId);
+ List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();// object[] True 璧勬簮瀵硅薄
+ TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest();
+ res.setChannelNos(c.getDeviceChannelNo().split(","));
+ res.setResourceType(c.getDeviceType());
+ res.setResourceIndexCode(c.getDeviceIndexCode());
+ resourceInfos.add(res);
+ List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>();
+ TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest();
+ pinfo.setName(c.getMemberName());
+ pinfo.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime()));
+ pinfo.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime()));
+ pinfo.setOperatorType(type);
+ pinfo.setPersonId(c.getMemberHkId());
+ 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;
+ }
+ }
+ 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 ,int start,int end) {
+ 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,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() {
+ 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(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;
+ }
+ private List<Empower> getIngTaskListResult() {
+ MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Empower.class);
+ queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing);
+ queryWrapper.groupBy(Empower::getHkId);
+ List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+ return list;
}
}
--
Gitblit v1.9.3