修改任务导入sql数量超过2100处理方式

master
hcy 2 years ago
parent ae31e51996
commit c15330c114

@ -1,12 +1,12 @@
package com.emr.service.ImportExcel; package com.emr.service.ImportExcel;
import com.emr.dao.CommomMapper; import com.emr.dao.CommomMapper;
import com.emr.dao.ExportTaskDetailsMapper;
import com.emr.dao.ExportTaskMapper; import com.emr.dao.ExportTaskMapper;
import com.emr.dao.approve.Emr_Apply_ApproveMapper; import com.emr.dao.approve.Emr_Apply_ApproveMapper;
import com.emr.entity.ExportTask; import com.emr.entity.ExportTask;
import com.emr.entity.ExportTaskDetails; import com.emr.entity.ExportTaskDetails;
import com.emr.entity.Power_User; import com.emr.entity.Power_User;
import com.emr.entity.ResultUtil;
import com.emr.entity.approve.Emr_Apply_Approve; import com.emr.entity.approve.Emr_Apply_Approve;
import com.emr.vo.commomSearch.CommomVo; import com.emr.vo.commomSearch.CommomVo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -45,6 +46,9 @@ import java.util.List;
public class ImportExcelJudgeMethod { public class ImportExcelJudgeMethod {
//公共批量插入方法 //公共批量插入方法
private static final String SIMPLEINSERT = "SimpleInsert"; private static final String SIMPLEINSERT = "SimpleInsert";
private static final String TABLE_NAME = "t_scan_assort";
@Autowired @Autowired
private CommomMapper commomMapper; private CommomMapper commomMapper;
@Autowired @Autowired
@ -53,6 +57,9 @@ public class ImportExcelJudgeMethod {
@Autowired @Autowired
private ExportTaskMapper exportTaskMapper; private ExportTaskMapper exportTaskMapper;
@Autowired
private ExportTaskDetailsMapper exportTaskDetailsMapper;
/****************************************导入公共判断******************************************************/ /****************************************导入公共判断******************************************************/
/** /**
* *
@ -96,7 +103,7 @@ public class ImportExcelJudgeMethod {
} }
for (int i = 0; i < list.size(); i++) { /* for (int i = 0; i < list.size(); i++) {
ExportTaskDetails exportTaskDetails = (ExportTaskDetails) list.get(i); ExportTaskDetails exportTaskDetails = (ExportTaskDetails) list.get(i);
exportTaskDetails.setTaskid(task.getTaskId()); exportTaskDetails.setTaskid(task.getTaskId());
} }
@ -107,8 +114,34 @@ public class ImportExcelJudgeMethod {
Class<?> cls = bean.getClass(); Class<?> cls = bean.getClass();
//获取执行方法 //获取执行方法
Method method = cls.getDeclaredMethod(SIMPLEINSERT, List.class); Method method = cls.getDeclaredMethod(SIMPLEINSERT, List.class);
t = (int) method.invoke(bean, list); t = (int) method.invoke(bean, list);*/
///查询表列数
List<ExportTaskDetails> detailsList = new ArrayList<>();
try {
int colCount = commomMapper.selectColByTableName(TABLE_NAME);
// 预防除数为0的情况
if (colCount == 0) {
throw new IllegalArgumentException("Column count cannot be zero.");
}
int simpleInsertCount = 2100/colCount;
for (int i = 0; i < list.size(); i++) {
//处理批量添加sql太长问题设定个数为180
if(i != 0 && detailsList.size()%simpleInsertCount == 0){
detailsList.clear();
}
ExportTaskDetails exportTaskDetails = (ExportTaskDetails) list.get(i);
exportTaskDetails.setTaskid(task.getTaskId());
detailsList.add(exportTaskDetails);
//是180的倍数或最后一个
if(detailsList.size()%simpleInsertCount == 0 || i == list.size() - 1){
exportTaskDetailsMapper.SimpleInsert(detailsList);
detailsList.clear(); // 清空list准备下一次插入
}
}
}catch (Exception e){
e.printStackTrace();
}
} }
return t; return t;
} }

Loading…
Cancel
Save