Commit 1f6df762 by huangZW

同步

parent 77c51b05
......@@ -150,7 +150,12 @@ public interface PreDealLogMapper {
* @return
*/
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
......
......@@ -138,7 +138,13 @@ public interface PreDealService {
* @return
*/
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 {
int i = preDealLogMapper.countByDataId(taskId, dataId,PreDealTypeEnum.clerk.getVal());
return i > 0;
}
@Override
public List<String> listDataIdByTaskIdAndDataType(String taskId, Integer dateType) {
List<String> list = preDealLogMapper.listDataIdByTaskIdAndDataType(taskId,dateType);
return list;
}
@Override
public PreDealLogInfoDTO getLastPreDataByTaskId(String taskId) {
TabHaobanPreDealLog preDealLog = preDealLogMapper.getLastPreDataByTaskId(taskId);
......
......@@ -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.QywxUserApiService;
import com.vdurmont.emoji.EmojiParser;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -195,34 +196,46 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
logger.info("没有配置secret:{},{}",taskId,wxEnterpriseId);
return ;
}
/*List<UserDTO> list = this.qywxUserApiService.listSelfDepartmentUser(wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal(), dataId, 0);
if (null == list) {
logger.info("微信获取部门成员异常:{},{}",taskId,dataId);
return;
TabHaobanPreDealLog preData = preDealService.getByDataId(taskId, dataId, PreDealTypeEnum.group.getVal(), -1);
String pDataId = preData.getpDataId();
if("0".equals(pDataId)){
//根级部门
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(), "成功");
if (!b) {
logger.info("成功修改错误!{}", dataId);
......@@ -233,7 +246,8 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
Set<String> mid = preList.stream().map(tab -> tab.getDataId()).collect(Collectors.toSet());
dealDepartmentToMq(taskId, mid, SyncTaskStatusEnum.group_sync);
} 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 {
logger.info("是否已经进来了,进来");
//预处理门店 写入预处理表
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 -> {
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);
......@@ -271,7 +281,17 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
dealLog.setEnterpriseId(enterpriseId);
return dealLog;
}).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);
......
......@@ -318,6 +318,15 @@
and data_type=#{dataType}
</if>
</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
......
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