package com.aps.core.service.impl.ApsPlate;
|
|
import cn.hutool.core.util.IdUtil;
|
import com.aps.common.security.utils.SecurityUtils;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.aps.core.domain.ApsPlate.ApsPlateRequireDate;
|
import com.aps.core.service.ApsPlate.ApsPlateRequireDateService;
|
import com.aps.core.mapper.ApsPlateRequireDateMapper;
|
import jakarta.annotation.Resource;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* @author zhl
|
* @description 针对表【aps_plate_require_date(工单计划需求日期表)】的数据库操作Service实现
|
* @createDate 2025-05-19 16:51:36
|
*/
|
@Service
|
public class ApsPlateRequireDateServiceImpl extends ServiceImpl<ApsPlateRequireDateMapper, ApsPlateRequireDate>
|
implements ApsPlateRequireDateService {
|
|
@Resource
|
private ApsPlateRequireDateMapper apsPlateRequireDateMapper;
|
|
|
@Transactional
|
@Override
|
public void batchSave(List<ApsPlateRequireDate> list) {
|
if (!list.isEmpty()) {
|
list.forEach(apsPlateRequireDate -> {
|
apsPlateRequireDate.setId(IdUtil.getSnowflakeNextId());
|
apsPlateRequireDate.setCreateBy(SecurityUtils.getUsername());
|
});
|
int batchSize = 1000;
|
for (int i = 0; i < list.size(); i += batchSize) {
|
int end = Math.min(i + batchSize, list.size());
|
List<ApsPlateRequireDate> batch = list.subList(i, end);
|
List<String> docNoList = batch.stream().map(ApsPlateRequireDate::getDocNo).distinct().toList();
|
apsPlateRequireDateMapper.deleteByDocNoList(docNoList, SecurityUtils.getUsername());
|
apsPlateRequireDateMapper.batchInsert(batch);
|
}
|
}
|
}
|
|
|
|
@Override
|
public int batchDelete(List<Long> idList){
|
//TODO: 根据idList批量删除
|
LambdaUpdateWrapper<ApsPlateRequireDate> queryWrapper = new LambdaUpdateWrapper<>();
|
queryWrapper.in(ApsPlateRequireDate::getId, idList);
|
queryWrapper.set(ApsPlateRequireDate::getDelFlag, 1);
|
return apsPlateRequireDateMapper.update(queryWrapper);
|
}
|
|
@Override
|
public Page<ApsPlateRequireDate> pagingList(Page<ApsPlateRequireDate> page, ApsPlateRequireDate requireDate){
|
LambdaQueryWrapper<ApsPlateRequireDate> queryWrapper=new LambdaQueryWrapper<>();
|
queryWrapper.eq(ApsPlateRequireDate::getDelFlag,0);
|
queryWrapper.like( null!=requireDate.getDocNo(), ApsPlateRequireDate::getDocNo,requireDate.getDocNo());
|
return apsPlateRequireDateMapper.selectPage(page, queryWrapper);
|
}
|
}
|