Commit 1f6df762 by huangZW

同步

parent 77c51b05
...@@ -150,7 +150,12 @@ public interface PreDealLogMapper { ...@@ -150,7 +150,12 @@ public interface PreDealLogMapper {
* @return * @return
*/ */
public int countByDataId(@Param("taskId") String taskId, @Param("dataId") String dataId,@Param("dataType") int dataType); public int countByDataId(@Param("taskId") String taskId, @Param("dataId") String dataId,@Param("dataType") int dataType);
/**
* 获取列表
* @param taskId
* @param dataType
*/
public List<String> listDataIdByTaskIdAndDataType(@Param("taskId") String taskId,@Param("dataType") int dataType);
/** /**
* 统计任务数量 * 统计任务数量
* countExcepAndPreByTaskId * countExcepAndPreByTaskId
......
...@@ -138,7 +138,13 @@ public interface PreDealService { ...@@ -138,7 +138,13 @@ public interface PreDealService {
* @return * @return
*/ */
public boolean existDataId(String taskId, String dataId); public boolean existDataId(String taskId, String dataId);
/**
* 获取dataIdList
* @param taskId
* @param dateType
* @return
*/
public List<String> listDataIdByTaskIdAndDataType(String taskId, Integer dateType);
/** /**
* 获取最近的数据 * 获取最近的数据
* *
......
...@@ -122,7 +122,13 @@ public class PreDealServiceImpl implements PreDealService { ...@@ -122,7 +122,13 @@ public class PreDealServiceImpl implements PreDealService {
int i = preDealLogMapper.countByDataId(taskId, dataId,PreDealTypeEnum.clerk.getVal()); int i = preDealLogMapper.countByDataId(taskId, dataId,PreDealTypeEnum.clerk.getVal());
return i > 0; return i > 0;
} }
@Override
public List<String> listDataIdByTaskIdAndDataType(String taskId, Integer dateType) {
List<String> list = preDealLogMapper.listDataIdByTaskIdAndDataType(taskId,dateType);
return list;
}
@Override @Override
public PreDealLogInfoDTO getLastPreDataByTaskId(String taskId) { public PreDealLogInfoDTO getLastPreDataByTaskId(String taskId) {
TabHaobanPreDealLog preDealLog = preDealLogMapper.getLastPreDataByTaskId(taskId); TabHaobanPreDealLog preDealLog = preDealLogMapper.getLastPreDataByTaskId(taskId);
......
...@@ -31,6 +31,7 @@ import com.gic.wechat.api.dto.qywx.UserDTO; ...@@ -31,6 +31,7 @@ import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxDepartmentApiService; import com.gic.wechat.api.service.qywx.QywxDepartmentApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.vdurmont.emoji.EmojiParser; import com.vdurmont.emoji.EmojiParser;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -195,34 +196,46 @@ public class QywxGroupSyncOperation implements BaseSyncOperation { ...@@ -195,34 +196,46 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
logger.info("没有配置secret:{},{}",taskId,wxEnterpriseId); logger.info("没有配置secret:{},{}",taskId,wxEnterpriseId);
return ; return ;
} }
/*List<UserDTO> list = this.qywxUserApiService.listSelfDepartmentUser(wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal(), dataId, 0); TabHaobanPreDealLog preData = preDealService.getByDataId(taskId, dataId, PreDealTypeEnum.group.getVal(), -1);
if (null == list) { String pDataId = preData.getpDataId();
logger.info("微信获取部门成员异常:{},{}",taskId,dataId); if("0".equals(pDataId)){
return; //根级部门
List<UserDTO> list = this.qywxUserApiService.listSelfDepartmentUser(wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal(), dataId, 1);
if (null == list) {
logger.info("微信获取部门成员异常:{},{}",taskId,dataId);
return;
}
logger.info("是否已经进来了,进来");
//预处理门店 写入预处理表
if (CollectionUtils.isNotEmpty(list)) {
List<String> dataList = preDealService.listDataIdByTaskIdAndDataType(taskId, PreDealTypeEnum.clerk.getVal());
List<TabHaobanPreDealLog> preDealLogList = list.stream().filter(mid -> !dataList.contains(mid.getUserid())
).map(userDTO -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(userDTO.getUserid());
dealLog.setpDataId(dataId);
dealLog.setDataType(PreDealTypeEnum.clerk.getVal());
dealLog.setStatusFlag(0);
dealLog.setDataContent(EmojiFilterUtil.removeAllEmoji(userDTO.getName()));
dealLog.setTaskId(taskId);
dealLog.setWxEnterpriseId(wxEnterpriseId);
dealLog.setEnterpriseId(enterpriseId);
return dealLog;
}).collect(Collectors.toList());
//插入不存在的我们pre表的企业微信数据
int count = preDealLogList.size();
int pre = count/1000+1;
int i= 0;
while(i<pre){
i++;
int fromIndex = (i-1)*1000;
int toIndex = (count-fromIndex) > 1000 ? (fromIndex+1000):count;
List<TabHaobanPreDealLog>subList = preDealLogList.subList(fromIndex, toIndex);
preDealService.insert(subList);
}
}
} }
//预处理门店 写入预处理表
if (CollectionUtils.isNotEmpty(list)) {
List<TabHaobanPreDealLog> preDealLogList = list.stream().filter(mid -> {
boolean flag = preDealService.existDataId(taskId, mid.getUserid());
if (flag) {
return false;
}
return true;
}).map(userDTO -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(userDTO.getUserid());
dealLog.setpDataId(dataId);
dealLog.setDataType(PreDealTypeEnum.clerk.getVal());
dealLog.setStatusFlag(0);
dealLog.setDataContent(EmojiFilterUtil.removeAllEmoji(userDTO.getName()));
dealLog.setTaskId(taskId);
dealLog.setWxEnterpriseId(wxEnterpriseId);
dealLog.setEnterpriseId(enterpriseId);
return dealLog;
}).collect(Collectors.toList());
preDealService.insert(preDealLogList);
}*/
boolean b = preDealService.updateStatusByDataId(taskId, dataId,PreDealTypeEnum.group.getVal(), PreDealStatusEnum.computed.getVal(), "成功"); boolean b = preDealService.updateStatusByDataId(taskId, dataId,PreDealTypeEnum.group.getVal(), PreDealStatusEnum.computed.getVal(), "成功");
if (!b) { if (!b) {
logger.info("成功修改错误!{}", dataId); logger.info("成功修改错误!{}", dataId);
...@@ -233,7 +246,8 @@ public class QywxGroupSyncOperation implements BaseSyncOperation { ...@@ -233,7 +246,8 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
Set<String> mid = preList.stream().map(tab -> tab.getDataId()).collect(Collectors.toSet()); Set<String> mid = preList.stream().map(tab -> tab.getDataId()).collect(Collectors.toSet());
dealDepartmentToMq(taskId, mid, SyncTaskStatusEnum.group_sync); dealDepartmentToMq(taskId, mid, SyncTaskStatusEnum.group_sync);
} else { } else {
checkSelfDepartmentTask(taskId,wxEnterpriseId,enterpriseId,wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal()); // checkSelfDepartmentTask(taskId,wxEnterpriseId,enterpriseId,wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal());
checkDepartmentTask(taskId);
} }
} }
...@@ -253,13 +267,9 @@ public class QywxGroupSyncOperation implements BaseSyncOperation { ...@@ -253,13 +267,9 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
logger.info("是否已经进来了,进来"); logger.info("是否已经进来了,进来");
//预处理门店 写入预处理表 //预处理门店 写入预处理表
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
List<TabHaobanPreDealLog> preDealLogList = list.stream().filter(mid -> { List<String> dataList = preDealService.listDataIdByTaskIdAndDataType(taskId, PreDealTypeEnum.clerk.getVal());
boolean flag = preDealService.existDataId(taskId, mid.getUserid()); List<TabHaobanPreDealLog> preDealLogList = list.stream().filter(mid -> !dataList.contains(mid.getUserid())
if (flag) { ).map(userDTO -> {
return false;
}
return true;
}).map(userDTO -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog(); TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(userDTO.getUserid()); dealLog.setDataId(userDTO.getUserid());
dealLog.setpDataId(dataId); dealLog.setpDataId(dataId);
...@@ -271,7 +281,17 @@ public class QywxGroupSyncOperation implements BaseSyncOperation { ...@@ -271,7 +281,17 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
dealLog.setEnterpriseId(enterpriseId); dealLog.setEnterpriseId(enterpriseId);
return dealLog; return dealLog;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
preDealService.insert(preDealLogList); //插入不存在的我们pre表的企业微信数据
int count = preDealLogList.size();
int pre = count/1000+1;
int i= 0;
while(i<pre){
i++;
int fromIndex = (i-1)*1000;
int toIndex = (count-fromIndex) > 1000 ? (fromIndex+1000):count;
List<TabHaobanPreDealLog>subList = preDealLogList.subList(fromIndex, toIndex);
preDealService.insert(subList);
}
} }
//处理导购任务 //处理导购任务
checkDepartmentTask(taskId); checkDepartmentTask(taskId);
......
...@@ -318,6 +318,15 @@ ...@@ -318,6 +318,15 @@
and data_type=#{dataType} and data_type=#{dataType}
</if> </if>
</select> </select>
<select id="listDataIdByTaskIdAndDataType" resultType="java.lang.String">
select
data_id
from tab_haoban_pre_deal_log
where task_id = #{taskId}
and data_type =#{dataType}
</select>
<select id="getLastPreDataByTaskId" resultMap="BaseResultMap"> <select id="getLastPreDataByTaskId" resultMap="BaseResultMap">
select select
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment