chengf
2026-03-11 b88a288f4f787b509463678e3cd9ccfa3f37014b
service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java
old mode 100644 new mode 100755
@@ -3,13 +3,19 @@
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.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import org.activiti.engine.impl.util.CollectionUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -131,4 +137,71 @@
    }
    @Autowired
    private CarInoutServiceDaoImpl carInoutServiceDaoImpl;
    @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表示失败,1表示成功)
        for (int i = 0; i < totalSize; i++) {
            CarInoutPo record = successRecords.get(i);
            try {
                CarInoutPo filter = new CarInoutPo();
                filter.setCarNum(record.getCarNum());
                filter.setInTime(record.getInTime());
                filter.setOutTime(record.getOutTime());
                filter.setDirection(record.getDirection());
                filter.setMerchantId(record.getMerchantId());
                int existCount = carInoutServiceDaoImpl.queryCarInoutsCount(BeanConvertUtil.beanCovertMap(filter));
                if (existCount > 0) {
                    // 3. 记录已存在,标记为去重(可用2表示去重,与0/1区分)
                    record.setErrorTest("重复的内容");
                    continue;
                }
                // 逐条插入
                int affectedRows = sqlSessionTemplate.insert(
                        "carInoutServiceDaoImpl.batchInsert", // 注意这里需要改为单条插入的statement ID
                        BeanConvertUtil.beanCovertMap(record)
                );
                // 单条插入成功
                if (affectedRows > 0) {
                    result[i] = 1;
                } else {
                    result[i] = 0;
                }
            } catch (Exception e) {
                // 捕获SQL异常,标记为失败
                result[i] = 0;
                // 可以根据需要记录错误日志
                 record.setErrorTest("插入CarInoutPo失败,记录: "+e);
            }
        }
        return result;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void batchSaveCarInout2(List<CarInoutPo> successRecords) {
        for (CarInoutPo record : successRecords) {
            int affectedRows = sqlSessionTemplate.insert(
                    "carInoutServiceDaoImpl.batchInsert", // 注意这里需要改为单条插入的statement ID
                    BeanConvertUtil.beanCovertMap(record)
            );
            if (affectedRows == 0) {
                throw new IllegalArgumentException("添加失败"+record.getCarNum()+record.getInTime()+record.getOutTime());
            }
        }
    }
}