优化批量入库

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

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dxhy.core.dao.frTask.QueryDetailDataDao;
import com.dxhy.core.enmu.FplxEnmu;
import com.dxhy.core.entity.frJob.VoucherRecordQuery;
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -39,7 +40,22 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = dataFromRecordItems.size();
}
List<VoucherRecordQueryDetail> subList = dataFromRecordItems.subList(start,end);
queryDetailDataDao.saveOrUpdate(subList);
}
}else {
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
}
}
}
@ -53,7 +69,21 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = dataFromRecordItems.size();
}
List<VoucherRecordQueryDetail> subList = dataFromRecordItems.subList(start,end);
queryDetailDataDao.saveOrUpdate(subList);
}
}else {
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
}
}
}
@ -67,7 +97,20 @@ public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao,
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx())));
//4.添加入库
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = dataFromRecordItems.size();
}
List<VoucherRecordQueryDetail> subList = dataFromRecordItems.subList(start,end);
queryDetailDataDao.saveOrUpdate(subList);
}
}else {
queryDetailDataDao.saveOrUpdate(dataFromRecordItems);
}
}
}

@ -106,7 +106,21 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh())));
}
//8.保存或更新
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end);
recordToQueryDao.insertOrUpdate(subList);
}
}else {
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
}
flag = true;
}
return flag;
@ -145,7 +159,21 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
}
//8.保存或更新
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end);
recordToQueryDao.insertOrUpdate(subList);
}
}else {
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
}
flag = true;
}
return flag;
@ -178,7 +206,20 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
}
//6.保存或更新
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
if (voucherRecordQuerys.size()>10000){
int count = voucherRecordQuerys.size()%10000==0?voucherRecordQuerys.size()/10000:voucherRecordQuerys.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = voucherRecordQuerys.size();
}
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end);
recordToQueryDao.insertOrUpdate(subList);
}
}else {
recordToQueryDao.insertOrUpdate(voucherRecordQuerys);
}
flag = true;
}
return flag;
@ -193,7 +234,20 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){
recordToQueryDao.insertOrUpdate(dataFromRecordItems);
if (dataFromRecordItems.size()>10000){
int count = dataFromRecordItems.size()%10000==0?dataFromRecordItems.size()/10000:dataFromRecordItems.size()/10000+1;
for (int i = 0; i < count; i++) {
int start = i*10000;
int end = (i+1)*10000;
if (i == count-1){
end = dataFromRecordItems.size();
}
List<VoucherRecordQuery> subList = dataFromRecordItems.subList(start,end);
recordToQueryDao.insertOrUpdate(subList);
}
}else {
recordToQueryDao.insertOrUpdate(dataFromRecordItems);
}
}

Loading…
Cancel
Save