Commit 5c1c8a0c by caoyin

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

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