77 lines
3.0 KiB
Java
77 lines
3.0 KiB
Java
package com.gunshi.project.hsz.service;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.gunshi.core.result.R;
|
|
import com.gunshi.project.hsz.entity.so.ByPlanPageSo;
|
|
import com.gunshi.project.hsz.mapper.AlarmSetMapper;
|
|
import com.gunshi.project.hsz.mapper.ByPlanDetailMapper;
|
|
import com.gunshi.project.hsz.mapper.ByPlanMapper;
|
|
import com.gunshi.project.hsz.model.AlarmSet;
|
|
import com.gunshi.project.hsz.model.ByPlan;
|
|
import com.gunshi.project.hsz.model.ByPlanDetail;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.ibatis.executor.BatchResult;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.util.Date;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
|
|
@Service
|
|
@Slf4j
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public class ByPlanService extends ServiceImpl<ByPlanMapper, ByPlan> {
|
|
|
|
@Autowired
|
|
private ByPlanDetailMapper byPlanDetailMapper;
|
|
|
|
public boolean update(ByPlan dto) {
|
|
LambdaQueryWrapper<ByPlan> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(ByPlan::getPlanId, dto.getPlanId());
|
|
ByPlan one = getOne(queryWrapper);
|
|
if(Objects.isNull(one)){
|
|
throw new RuntimeException("该计划不存在,请检查");
|
|
}
|
|
boolean save = updateById(dto);
|
|
List<ByPlanDetail> byPlanDetail = dto.getByPlanDetail();
|
|
byPlanDetail.forEach(detail -> {
|
|
detail.setId(IdWorker.getId());
|
|
});
|
|
LambdaQueryWrapper<ByPlanDetail> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
//先删除,再新增
|
|
queryWrapper2.eq(ByPlanDetail::getPlanId, dto.getPlanId());
|
|
int delete = byPlanDetailMapper.delete(queryWrapper2);
|
|
List<BatchResult> insert = byPlanDetailMapper.insert(byPlanDetail);
|
|
return true;
|
|
}
|
|
|
|
public Page<ByPlan> pageQuery(ByPlanPageSo dto) {
|
|
LambdaQueryWrapper<ByPlan> queryWrapper = new LambdaQueryWrapper<>();
|
|
if(!StringUtils.isBlank(dto.getPlanName())){
|
|
queryWrapper.like(ByPlan::getPlanName,dto.getPlanName());
|
|
}
|
|
queryWrapper.orderByDesc(ByPlan::getPlanDateStart);
|
|
Page<ByPlan> byPlanPage = baseMapper.selectPage(dto.getPageSo().toPage(), queryWrapper);
|
|
List<ByPlan> records = byPlanPage.getRecords();
|
|
Iterator<ByPlan> iterator = records.iterator();
|
|
while(iterator.hasNext()){
|
|
ByPlan entity = iterator.next();
|
|
List<ByPlanDetail> details = byPlanDetailMapper.selectList(entity.getPlanId(),dto);
|
|
if(details.isEmpty()){
|
|
iterator.remove();
|
|
continue;
|
|
}
|
|
entity.setByPlanDetail(details);
|
|
}
|
|
return byPlanPage;
|
|
}
|
|
}
|