批量插入或更新分批次进行

release
路明慧 2 years ago
parent e21f7d821b
commit caeeca6eea
  1. 24
      dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java
  2. 53
      dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java

@ -41,11 +41,11 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
if (dataFromRecordItems.size()>5000){
int count = dataFromRecordItems.size()%5000==0?dataFromRecordItems.size()/5000:dataFromRecordItems.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = dataFromRecordItems.size();
}
@ -70,11 +70,11 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
if (dataFromRecordItems.size()>5000){
int count = dataFromRecordItems.size()%5000==0?dataFromRecordItems.size()/5000:dataFromRecordItems.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = dataFromRecordItems.size();
}
@ -97,11 +97,11 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
if (dataFromRecordItems.size()>5000){
int count = dataFromRecordItems.size()%5000==0?dataFromRecordItems.size()/5000:dataFromRecordItems.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = dataFromRecordItems.size();
}

@ -6,6 +6,7 @@ import com.dxhy.core.dao.frTask.RecordToQueryDao;
import com.dxhy.common.enums.KjkmTaxEnmu;
import com.dxhy.core.entity.frJob.FpTaxAmount;
import com.dxhy.core.entity.frJob.VoucherRecordQuery;
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -71,9 +72,29 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
//更新发票认证状态
List<String> uuids = queryDetailDataService.getRzztDetail();
if (uuids != null && uuids.size() > 0){
if (uuids.size() > 5000){
int count = uuids.size()%5000==0?uuids.size()/5000:uuids.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = uuids.size();
}
List<String> subList = uuids.subList(start,end);
queryDetailDataService.updateRzzt(subList);
}
}else {
List<String> rzztList = recordToQueryDao.getRzzt(uuids);
if (rzztList != null && rzztList.size() > 0){
queryDetailDataService.updateRzzt(rzztList);
}
}
}
}
@ -107,11 +128,11 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
}
//8.保存或更新
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
if (voucherRecordQuerys.size()>5000){
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
@ -160,11 +181,11 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
//8.保存或更新
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
if (voucherRecordQuerys.size()>5000){
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
@ -206,11 +227,11 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
}
//6.保存或更新
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
if (voucherRecordQuerys.size()>5000){
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
@ -234,11 +255,11 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
if (dataFromRecordItems.size()>5000){
int count = dataFromRecordItems.size()%5000==0?dataFromRecordItems.size()/5000:dataFromRecordItems.size()/5000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
int start = i*5000;
int end = (i+1)*5000;
if (i == count-1){
end = dataFromRecordItems.size();
}

Loading…
Cancel
Save