Commit 5c1c8a0c by caoyin

解决电子固证结果入库保存失败后,后续线程运行时导致数据重复入库的问题(入库全部完成后删除重复数据)

parent 8ed491b3
...@@ -78,6 +78,7 @@ public class DzgzScheduledServer{ ...@@ -78,6 +78,7 @@ public class DzgzScheduledServer{
updateTaskStates(taskId,"2","STARTING",result_str); updateTaskStates(taskId,"2","STARTING",result_str);
getAndSaveInfo(result_str,task); getAndSaveInfo(result_str,task);
updateTaskStates(taskId,"1",state,null); updateTaskStates(taskId,"1",state,null);
taskResultMapper.deleteRepeatDzgzTaskResult(taskId);//删除指定task_id重复的电子固证结果数据
System.out.println("电子固证信息保存成功++++++++++++++++++++++++++"); System.out.println("电子固证信息保存成功++++++++++++++++++++++++++");
} }
} }
...@@ -148,7 +149,6 @@ public class DzgzScheduledServer{ ...@@ -148,7 +149,6 @@ public class DzgzScheduledServer{
int size = taskResults.size(); int size = taskResults.size();
long threadNum = size / limit; long threadNum = size / limit;
for (int i = 0; i < threadNum + 1; i++) { for (int i = 0; i < threadNum + 1; i++) {
System.out.println("电子固证返回的数量:+++"+i);
HandleThread thread = new HandleThread(taskResults, i * limit, ((i + 1) * limit)); HandleThread thread = new HandleThread(taskResults, i * limit, ((i + 1) * limit));
thread.start(); thread.start();
} }
...@@ -386,7 +386,6 @@ public class DzgzScheduledServer{ ...@@ -386,7 +386,6 @@ public class DzgzScheduledServer{
ajMap.put("progressZt","0"); ajMap.put("progressZt","0");
List<DzgzTask> ajDzgzList = taskMapper.queryAllAjwfxTask(ajMap); List<DzgzTask> ajDzgzList = taskMapper.queryAllAjwfxTask(ajMap);
if(ajDzgzList!=null&&ajDzgzList.size()==7){//该模型共会发送7个任务,必须7个任务都有从网安返回的结果时才进行数据分析 if(ajDzgzList!=null&&ajDzgzList.size()==7){//该模型共会发送7个任务,必须7个任务都有从网安返回的结果时才进行数据分析
System.out.println("size22222");
//定义模型中7个参数 //定义模型中7个参数
List<String> dzgzTaskResultListNow = new ArrayList<>();//当天该时段 rwsd-0 List<String> dzgzTaskResultListNow = new ArrayList<>();//当天该时段 rwsd-0
List<String> dzgzTaskResultListBefore1 = new ArrayList<>();//前一天该时段 rwsd-1 List<String> dzgzTaskResultListBefore1 = new ArrayList<>();//前一天该时段 rwsd-1
...@@ -396,7 +395,6 @@ public class DzgzScheduledServer{ ...@@ -396,7 +395,6 @@ public class DzgzScheduledServer{
List<String> dzgzTaskResultListBefore5 = new ArrayList<>();//前五天该时段 rwsd-5 List<String> dzgzTaskResultListBefore5 = new ArrayList<>();//前五天该时段 rwsd-5
List<String> dzgzTaskResultListAfter3 = new ArrayList<>();//后三天该时段 rwsd-6 List<String> dzgzTaskResultListAfter3 = new ArrayList<>();//后三天该时段 rwsd-6
for(int i=0;i<ajDzgzList.size();i++){ for(int i=0;i<ajDzgzList.size();i++){
System.out.println("size33333");
//拿到任务完成状态 //拿到任务完成状态
DzgzTask task = ajDzgzList.get(i); DzgzTask task = ajDzgzList.get(i);
String progress = task.getProgress(); String progress = task.getProgress();
......
...@@ -22,4 +22,6 @@ public interface DzgzTaskResultMapper { ...@@ -22,4 +22,6 @@ public interface DzgzTaskResultMapper {
int existsDzgzTaskResult(DzgzTaskResult dzgzTask); int existsDzgzTaskResult(DzgzTaskResult dzgzTask);
List<String> getAllImsiResultsByTaskid(String taskId); List<String> getAllImsiResultsByTaskid(String taskId);
void deleteRepeatDzgzTaskResult(String type);
} }
...@@ -165,4 +165,16 @@ ...@@ -165,4 +165,16 @@
where TASK_ID = #{taskId} and OBJECT_TYPE_NAME = 'IMSI' where TASK_ID = #{taskId} and OBJECT_TYPE_NAME = 'IMSI'
</select> </select>
<delete id="deleteRepeatDzgzTaskResult" parameterType="String">
delete from TB_ST_DZGZTASKRESULT a
where (a.TASK_ID, a.OBJECT_TYPE, a.OBJECT_VALUE) in
(select TASK_ID, OBJECT_TYPE, OBJECT_VALUE
from TB_ST_DZGZTASKRESULT where TASK_ID=#{taskId}
group by TASK_ID, OBJECT_TYPE, OBJECT_VALUE
having count(*) > 1)
and rowid not in (select min(rowid)
from TB_ST_DZGZTASKRESULT where TASK_ID=#{taskId}
group by TASK_ID, OBJECT_TYPE, OBJECT_VALUE
having count(*) > 1 )
</delete>
</mapper> </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