| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.common.dao.ICarInoutServiceDao; |
| | | import com.java110.core.base.dao.BaseServiceDao; |
| | | import com.java110.po.car.CarInoutPo; |
| | | import com.java110.utils.constant.ResponseConstant; |
| | | import com.java110.utils.exception.DAOException; |
| | | import com.java110.utils.util.DateUtil; |
| | | import org.activiti.engine.impl.util.CollectionUtil; |
| | | import org.slf4j.Logger; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int[] batchSaveCarInout(List<CarInoutPo> successRecords) { |
| | | if (CollectionUtil.isEmpty(successRecords)) { |
| | | return new int[0]; |
| | | } |
| | | |
| | | int totalSize = successRecords.size(); |
| | | int[] result = new int[totalSize]; // 存储每条记录的插入结果(默认 0 表示失败) |
| | | int batchSize = 500; // 每批插入 500 条 |
| | | int batchCount = 0; // 记录当前处理到第几批 |
| | | |
| | | for (int i = 0; i < totalSize; i += batchSize) { |
| | | // 截取当前批次数据 |
| | | List<CarInoutPo> batchList = successRecords.subList(i, Math.min(i + batchSize, totalSize)); |
| | | |
| | | // 执行批量插入,返回当前批次总影响行数 |
| | | int batchAffectedRows = sqlSessionTemplate.insert( |
| | | "carInoutServiceDaoImpl.batchInsert", |
| | | batchList |
| | | ); |
| | | |
| | | // 标记当前批次记录为成功(简单处理:假设要么全成功,要么全失败) |
| | | if (batchAffectedRows == batchList.size()) { |
| | | for (int j = i; j < i + batchSize && j < totalSize; j++) { |
| | | result[j] = 1; // 1 表示插入成功 |
| | | } |
| | | } else { |
| | | // 批次插入失败(如主键冲突、字段错误),标记为 0 |
| | | for (int j = i; j < i + batchSize && j < totalSize; j++) { |
| | | result[j] = 0; // 0 表示插入失败 |
| | | } |
| | | } |
| | | |
| | | batchCount++; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | } |