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

@ -69,4 +69,14 @@ public interface ExpressInfoMapper
* @return 结果 * @return 结果
*/ */
public int batchInsertExpressInfo(List<ExpressInfo> expressInfoList); 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.core.text.Convert;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
@ -92,6 +94,10 @@ public class ExpImportQueryServiceImpl implements IExpImportQueryService
@Override @Override
public int deleteExpImportQueryByIds(String ids) public int deleteExpImportQueryByIds(String ids)
{ {
for(String str:Arrays.asList(ids.split(",")))
{
expressInfoMapper.deleteExpressInfoByQueryId(str);
}
return expImportQueryMapper.deleteExpImportQueryByIds(Convert.toStrArray(ids)); return expImportQueryMapper.deleteExpImportQueryByIds(Convert.toStrArray(ids));
} }
@ -130,8 +136,19 @@ public class ExpImportQueryServiceImpl implements IExpImportQueryService
ei.setQueryTime(queryTime); ei.setQueryTime(queryTime);
//expressInfoService.insertExpressInfo(ei); //expressInfoService.insertExpressInfo(ei);
expressInfoListForInsert.add(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 //将本次excel导入查询记录到数据表exp_import_query
expImportQuery.setQueryTime(queryTime); expImportQuery.setQueryTime(queryTime);
expImportQuery.setQueryLoginName(ShiroUtils.getLoginName()); expImportQuery.setQueryLoginName(ShiroUtils.getLoginName());

View File

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