1、提升Excel批量查询结果插入数据表expressInfo的效率

2、删除exp_import_query的记录时,同时删除expressInfo表中对应queryId的记录。
This commit is contained in:
bo.yang 2021-07-25 15:23:50 +08:00
parent bbdd968254
commit 145db21226
3 changed files with 36 additions and 4 deletions

View File

@ -48,7 +48,7 @@ public interface ExpressInfoMapper
/**
* 删除快递信息
*
*
* @param message 快递信息ID
* @return 结果
*/
@ -69,4 +69,14 @@ public interface ExpressInfoMapper
* @return 结果
*/
public int batchInsertExpressInfo(List<ExpressInfo> expressInfoList);
/**
* 删除快递信息
*
* @param queryId 快递信息queryId
* @return 结果
*/
public int deleteExpressInfoByQueryId(String queryId);
}

View File

@ -10,11 +10,13 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@ -92,6 +94,10 @@ public class ExpImportQueryServiceImpl implements IExpImportQueryService
@Override
public int deleteExpImportQueryByIds(String ids)
{
for(String str:Arrays.asList(ids.split(",")))
{
expressInfoMapper.deleteExpressInfoByQueryId(str);
}
return expImportQueryMapper.deleteExpImportQueryByIds(Convert.toStrArray(ids));
}
@ -130,8 +136,19 @@ public class ExpImportQueryServiceImpl implements IExpImportQueryService
ei.setQueryTime(queryTime);
//expressInfoService.insertExpressInfo(ei);
expressInfoListForInsert.add(ei);
/* for(int i=1;i<1001;i++){ //测试批量插入效率用时打开Mark产生5万条数据
expressInfoListForInsert.add(ei);
}*/
}
int size= expressInfoListForInsert.size();
List<ExpressInfo> expressInfos= new ArrayList<>();
for(int i=1;i<=size;i++){
expressInfos.add(expressInfoListForInsert.get(i-1));
if( (i%400==0 ) ||i== size) {
expressInfoMapper.batchInsertExpressInfo(expressInfos);
expressInfos.clear();
}
}
expressInfoMapper.batchInsertExpressInfo(expressInfoListForInsert);
//将本次excel导入查询记录到数据表exp_import_query
expImportQuery.setQueryTime(queryTime);
expImportQuery.setQueryLoginName(ShiroUtils.getLoginName());

View File

@ -130,8 +130,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteExpressInfoByIds" parameterType="String">
delete from expressInfo where message in
<foreach item="message" collection="array" open="(" separator="," close=")">
delete from expressInfo where sid in
<foreach item="sid" collection="array" open="(" separator="," close=")">
#{sid}
</foreach>
</delete>
@ -148,4 +148,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</insert>
<delete id="deleteExpressInfoByQueryId" parameterType="String">
delete from expressInfo where queryId in (select queryId from exp_import_query where sid= #{sid})
</delete>
</mapper>