Commit 1ad6454e 1ad6454eda4d52c258e82200f0a765629c7ab420 by lWoHvYe

逻辑调整。引入接收表相关逻辑

1 parent bbafa142
......@@ -2,6 +2,7 @@ package com.topdraw.platform.executor;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.topdraw.platform.util.DbUtil;
import lombok.extern.slf4j.Slf4j;
......@@ -9,10 +10,8 @@ import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Connection;
import java.util.Date;
import java.util.Map;
@Component
......@@ -29,17 +28,27 @@ public class AutoOnlineProcessor {
String today = DateUtil.today();
try {
connection = dbUtil.getConnection();
String quSql = "select xm.id from `x_media` xm LEFT JOIN x_content_status_change xcsc on xm.id = xcsc.content_id and xcsc.content_class = 'media' " +
String quSql = "select xm.id,xm.external_code from `x_media` xm LEFT JOIN x_content_status_change xcsc on xm.id = xcsc.content_id and xcsc.content_class = 'media' " +
"where xm.`status` = '000' and xm.file_status = '001' and xm.update_time >= ? and xcsc.id is null ";
var mapList = dbUtil.queryList(connection, quSql, today);
dbUtil.beginTransaction(connection);
if (CollUtil.isNotEmpty(mapList)) {
for (Map<String, Object> map : mapList) {
var id = (Long) map.get("id");
var externalCode = (String) map.get("external_code");
String chkSql = "select wrc.operation from ws_c2_recieve_cmd wrc where wrc.obj_code = ? and wrc.obj_type = 'media' and `status` = 200 ORDER BY wrc.create_time desc limit 1 ";
// 查询最新的接收工单状态
var wrcRecord = dbUtil.queryUniqueResult(connection, chkSql, externalCode);
if (ObjectUtil.isNotNull(wrcRecord)) {
var operation = (String) wrcRecord.get("operation");
// 最新为注入再处理。避免对C2正在处理的回收进行操作
if (ObjectUtil.equal("REGIST", operation)) {
String upSql = StrUtil.format(" update `x_media` set `status` = '001',`update_time` = '{}' where id = ?", DateUtil.now());
dbUtil.doExecute(connection, upSql, id);
}
}
}
}
dbUtil.commitTransaction(connection);
} catch (Exception ex) {
ex.printStackTrace();
......