Commit c9dbd4df by huangZW

同步任务

parent 323a22ef
......@@ -159,5 +159,14 @@ public interface PreDealLogMapper {
* @return
*/
public TabHaobanPreDealLog getLastPreDataByTaskId(@Param("taskId") String taskId);
/**
* 获取根节点
* @param taskId
* @return
*/
public String getRootDataIdByWxEnterpriseIdAndTaskId(@Param("wxEnterpriseId") String wxEnterpriseId,@Param("taskId") String taskId);
}
\ No newline at end of file
......@@ -145,4 +145,13 @@ public interface PreDealService {
* @return
*/
public PreDealLogInfoDTO getLastPreDataByTaskId(String taskId);
/**
* 获取根节点
*
* @return
*/
public String getRootDataIdByWxEnterpriseIdAndTaskId(String wxEnterpriseId,String taskId);
}
......@@ -13,6 +13,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.service.PreDealService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -127,4 +128,11 @@ public class PreDealServiceImpl implements PreDealService {
TabHaobanPreDealLog preDealLog = preDealLogMapper.getLastPreDataByTaskId(taskId);
return EntityUtil.changeEntityByOrika(PreDealLogInfoDTO.class,preDealLog);
}
@Override
public String getRootDataIdByWxEnterpriseIdAndTaskId(String wxEnterpriseId,
String taskId) {
return preDealLogMapper.getRootDataIdByWxEnterpriseIdAndTaskId( wxEnterpriseId, taskId);
}
}
......@@ -189,7 +189,6 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
@Override
public void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId) {
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.HAOBAN_HELP.getVal());
if (null == secretSetting||secretSetting.getCheckFlag()==0) {
......@@ -234,8 +233,48 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
Set<String> mid = preList.stream().map(tab -> tab.getDataId()).collect(Collectors.toSet());
dealDepartmentToMq(taskId, mid, SyncTaskStatusEnum.group_sync);
} else {
checkDepartmentTask(taskId);
checkSelfDepartmentTask(taskId,wxEnterpriseId,enterpriseId,wxEnterpriseDTO.getCorpid(), secretSetting.getSecretVal());
}
}
private void checkSelfDepartmentTask(String taskId,String wxEnterpriseId,String enterpriseId,String corpid,String secretVal) {
boolean b = preDealService.checkTask(taskId, PreDealTypeEnum.group.getVal());
if (!b) {
return;
}
//TODO 插入pre-clerk
//获取根节点
String dataId = preDealService.getRootDataIdByWxEnterpriseIdAndTaskId(wxEnterpriseId, taskId);
List<UserDTO> list = this.qywxUserApiService.listSelfDepartmentUser(corpid, secretVal, dataId, 1);
if (null == list) {
logger.info("微信获取部门成员异常:{},{}",taskId,dataId);
return;
}
//预处理门店 写入预处理表
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);
}
//处理导购任务
checkDepartmentTask(taskId);
}
@Override
......@@ -248,6 +287,7 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
String key = "haoban_sync_department_task_" + taskId;
RedisUtil.lock(key, 3L);
TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId);
//同步成功 进入门店处理
if (syncTask.getStatusFlag().equals(SyncTaskStatusEnum.group_sync.getVal())) {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.clerk_sync.getVal());
......@@ -262,8 +302,6 @@ public class QywxGroupSyncOperation implements BaseSyncOperation {
}
RedisUtil.unlock(key);
}
/**
* 放入mq处理部门数据
*
......
......@@ -325,4 +325,15 @@
from tab_haoban_pre_deal_log
where task_id = #{taskId,jdbcType=INTEGER} order by update_time desc limit 1
</select>
<select id="getRootDataIdByWxEnterpriseIdAndTaskId" resultType="java.lang.String">
select
data_id
from tab_haoban_pre_deal_log
where task_id = #{taskId}
and pre_data_id =0
and wx_enterprise_id =#{wxEnterpriseId} limit 1
</select>
</mapper>
\ No newline at end of file
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