139 lines
4.7 KiB
Java
139 lines
4.7 KiB
Java
package com.gunshi.project.xyt.service;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.gunshi.project.xyt.entity.so.RescueTeamPageSo;
|
|
import com.gunshi.project.xyt.entity.vo.RescueTeamVo;
|
|
import com.gunshi.project.xyt.mapper.RescueTeamBMapper;
|
|
import com.gunshi.project.xyt.mapper.RescueTeamFileMapper;
|
|
import com.gunshi.project.xyt.model.RescueTeamB;
|
|
import com.gunshi.project.xyt.model.RescueTeamDetail;
|
|
import com.gunshi.project.xyt.model.RescueTeamFile;
|
|
import com.gunshi.project.xyt.model.RescueTeamFileAutoDao;
|
|
import jakarta.annotation.Resource;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
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.Date;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* Description:
|
|
* Created by wanyan on 2024/3/18
|
|
*
|
|
* @author wanyan
|
|
* @version 1.0
|
|
*/
|
|
@Service
|
|
@Slf4j
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public class RescueTeamService extends AbstractModelWithAttachService<RescueTeamB, com.gunshi.project.xyt.model.RescueTeamBAutoMapper, com.gunshi.project.xyt.model.RescueTeamBAutoDao, RescueTeamFile, com.gunshi.project.xyt.model.RescueTeamFileAutoMapper, RescueTeamFileAutoDao>{
|
|
@Autowired
|
|
private com.gunshi.project.xyt.model.RescueTeamBAutoDao autoDao;
|
|
|
|
@Autowired
|
|
private RescueTeamFileAutoDao attachFileAutoDao;
|
|
|
|
|
|
@Resource
|
|
private RescueTeamBMapper rescueTeamMapper;
|
|
|
|
@Resource
|
|
private RescueTeamFileMapper rescueTeamFileMapper;
|
|
|
|
@Resource
|
|
private com.gunshi.project.xyt.model.RescueTeamDetailAutoDao detailAutoDao;
|
|
|
|
public Page<RescueTeamVo> pageQuery(RescueTeamPageSo rescueTeamPageSo) {
|
|
return rescueTeamMapper.pageQuery(rescueTeamPageSo.getPageSo().toPage(),rescueTeamPageSo);
|
|
}
|
|
|
|
public RescueTeamB detail(Long teamId) {
|
|
RescueTeamB team = rescueTeamMapper.selectById(teamId);
|
|
LambdaQueryWrapper<RescueTeamDetail> queryWrapper = Wrappers.lambdaQuery();
|
|
queryWrapper.eq(RescueTeamDetail::getTeamId, teamId);
|
|
team.setDetails(detailAutoDao.list(queryWrapper));
|
|
|
|
team.setFiles(rescueTeamFileMapper.queryFiles(teamId));
|
|
|
|
return team;
|
|
}
|
|
|
|
public void saveDetailAndObj(RescueTeamB model, long teamId) {
|
|
List<RescueTeamDetail> details = model.getDetails();
|
|
if(CollectionUtils.isNotEmpty(details)){
|
|
detailAutoDao.saveBatch(details.stream().map(o->{
|
|
o.setDetailId(IdWorker.getId());
|
|
o.setTeamId(teamId);
|
|
return o;
|
|
}).collect(Collectors.toList()));
|
|
}
|
|
}
|
|
|
|
public void updateDetailAndObj(RescueTeamB model) {
|
|
//根据teamId删除队伍明细和服务对象
|
|
Long teamId = model.getTeamId();
|
|
deleteDetailAndObj(teamId);
|
|
saveDetailAndObj(model,teamId);
|
|
}
|
|
|
|
private void deleteDetailAndObj(Long teamId){
|
|
LambdaQueryWrapper<RescueTeamDetail> queryWrapper = Wrappers.lambdaQuery();
|
|
queryWrapper.eq(RescueTeamDetail::getTeamId,teamId);
|
|
detailAutoDao.remove(queryWrapper);
|
|
|
|
}
|
|
|
|
public Boolean delete(Long teamId) {
|
|
deleteDetailAndObj(teamId);
|
|
rescueTeamFileMapper.delete(new LambdaUpdateWrapper<RescueTeamFile>()
|
|
.eq(RescueTeamFile::getTeamId,teamId));
|
|
int i = rescueTeamMapper.deleteById(teamId);
|
|
return i > 0 ;
|
|
}
|
|
|
|
@Override
|
|
com.gunshi.project.xyt.model.RescueTeamBAutoDao getAutoDao() {
|
|
return autoDao;
|
|
}
|
|
|
|
@Override
|
|
RescueTeamFileAutoDao getAttachFileAutoDao() {
|
|
return attachFileAutoDao;
|
|
}
|
|
|
|
@Override
|
|
List<RescueTeamFile> createAttachList(RescueTeamB RescueTeamB) {
|
|
List<String> fileIds = RescueTeamB.getFileIds();
|
|
if (fileIds == null) return null;
|
|
List<RescueTeamFile> attachList = new ArrayList<>();
|
|
for (String fileId : fileIds) {
|
|
RescueTeamFile attach = new RescueTeamFile();
|
|
attach.setFileId(Long.valueOf(fileId));
|
|
attach.setTeamId(RescueTeamB.getTeamId());
|
|
attach.setTm(new Date());
|
|
attach.setId(IdWorker.getId());
|
|
attachList.add(attach);
|
|
}
|
|
return attachList;
|
|
}
|
|
|
|
@Override
|
|
Object getModelId(RescueTeamB rescueTeamB) {
|
|
return rescueTeamB.getTeamId();
|
|
}
|
|
|
|
@Override
|
|
public String getAttachBzIdName() {
|
|
return "team_id";
|
|
}
|
|
}
|