cc há 2 meses atrás
pai
commit
2a92183467

+ 4 - 0
src/main/java/com/qingjian/module/person/mapper/PersonLibNoMapper.java

@@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qingjian.common.model.person.entity.PersonLibNo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 @Mapper
 public interface PersonLibNoMapper extends BaseMapper<PersonLibNo> {
+
+    int insertOrUpdateBatch(List<PersonLibNo> personLibNos);
 }

+ 13 - 1
src/main/java/com/qingjian/module/person/service/PersonLibNoService.java

@@ -2,11 +2,15 @@ package com.qingjian.module.person.service;
 
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 import com.qingjian.common.model.person.entity.PersonLibNo;
 import com.qingjian.module.dm.clean.CleanCache;
 import com.qingjian.module.person.mapper.PersonLibNoMapper;
 import org.noear.solon.annotation.Managed;
 
+import java.util.List;
+
 @Managed
 public class PersonLibNoService extends ServiceImpl<PersonLibNoMapper, PersonLibNo> {
 
@@ -15,7 +19,15 @@ public class PersonLibNoService extends ServiceImpl<PersonLibNoMapper, PersonLib
             return;
         }
         try {
-            this.saveOrUpdateBatch(CleanCache.PERSON_LIB_NOS);
+            //判断进行超过1000 进行拆分批量执行
+            if (CleanCache.PERSON_LIB_NOS.size() > 1000) {
+                Iterable<List<PersonLibNo>> partition = Iterables.partition(CleanCache.PERSON_LIB_NOS, 1000);
+                for (List<PersonLibNo> personLibNos : partition) {
+                    this.baseMapper.insertOrUpdateBatch(personLibNos);
+                }
+            } else {
+                this.baseMapper.insertOrUpdateBatch(Lists.newArrayList(CleanCache.PERSON_LIB_NOS));
+            }
         } finally {
             CleanCache.PERSON_LIB_NOS.clear();
         }

+ 18 - 0
src/main/resources/mappers/person/PersonLibNoMapper.xml

@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qingjian.module.person.mapper.PersonLibNoMapper">
+    <insert id="insertOrUpdateBatch">
+
+        INSERT OR REPLACE INTO person_lib_no
+        (md5, personName, personNo, personNoCn, libType, startTime, endTime, hasAuto)
+        VALUES
+        <foreach collection="personLibNos" item="item" separator=",">
+            (
+            #{item.md5},
+            #{item.personName},
+            #{item.personNo},
+            #{item.personNoCn},
+            #{item.libType},
+            #{item.startTime},
+            #{item.endTime},
+            #{item.hasAuto}
+            )
+        </foreach>
+    </insert>
 </mapper>