mybatis批量删除、插入

继承

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

在service层的写法示例:

package com.autosys.parts.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.autosys.common.exception.ServiceException;
import com.autosys.common.util.Constants;
import com.autosys.parts.mapper.PartsMapper;
import com.autosys.parts.model.*;
import com.autosys.parts.service.IPartsService;
import com.autosys.utils.ConstantUtils;
import com.autosys.utils.StrUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;

/**
 * @Auther: QuanFeng.Liu
 * @Date: 2019/12/04 14:17
 * @Description:
 */
@Slf4j
@Service
public class PartsService extends ServiceImpl<PartsMapper, BesiParts> implements IPartsService {

    @Autowired
    PartsMapper partsMapper;

    public void saveParts(List<Besi2Raw> besi2List, List<BesiParts> partList) {
        Map<String, Object> besi2Map = new HashMap<>();
        Map<String, Object> besiMap = new HashMap<>();
        besi2List.forEach(item -> {
            besi2Map.put(item.getPartCode() + "_" + item.getPlantCode() + "_" + item.getModelCode() + "_" + item.getRegPlantCode(), item);
        });
        partList.forEach(item -> {
            besiMap.put(item.getPartNo() + "_" + item.getPlantCode() + "_" + item.getModelCode() + "_" + item.getRegPlant(), item);
        });

        List<BesiParts> addPartList = new ArrayList<>();
        List<String> minPartList = new ArrayList<>();

        besi2List.forEach(item -> {
            String key = item.getPartCode() + "_" + item.getPlantCode() + "_" + item.getModelCode() + "_" + item.getRegPlantCode();
            if(!besiMap.containsKey(key)) {
                BesiParts besiParts = new BesiParts();
                besiParts.setPartNo(item.getPartCode());
                besiParts.setModelCode(item.getModelCode());
                besiParts.setPartName(item.getPartName());
                besiParts.setPartNameEn(item.getPartNameEn());
                besiParts.setPowerFlag(item.getPowerFlag());
                besiParts.setPurcasingCode(item.getPurcasingCode());
                besiParts.setRegPlant(item.getRegPlantCode());
                besiParts.setUsePlant(item.getUsePlant());
                besiParts.setProduceCode(item.getProduceCode());
                besiParts.setPlantCode(item.getPlantCode());
                besiParts.setNewFlag(Constants.Flag_Yes);
                besiParts.setStatus(Constants.Status_Valid);
                besiParts.setCreateBy(Constants.Ver_Type_B2);
                besiParts.setPartType(ConstantUtils.Parts_Yipei);
                besiParts.setCreateTime(new Date());
                addPartList.add(besiParts);
            }
        });

        if(addPartList.size() > 0) {
            partsMapper.updPartNewFlag();
            saveBatch(addPartList);
        }

        partList.forEach(item -> {
            String key = item.getPartNo() + "_" + item.getPlantCode() + "_" + item.getModelCode() + "_" + item.getRegPlant();
            if(!besi2Map.containsKey(key)) {
                minPartList.add(item.getId());
            }
        });
        if(minPartList.size() > 0) {
            removeByIds(minPartList);
        }
    }
}
原文地址:https://www.cnblogs.com/xiaofengfree/p/12144754.html