package com.gkhy.exam.system.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.gkhy.exam.common.api.CommonPage;
|
import com.gkhy.exam.common.api.CommonResult;
|
import com.gkhy.exam.common.constant.UserConstant;
|
import com.gkhy.exam.common.utils.PageUtils;
|
import com.gkhy.exam.common.utils.SecurityUtils;
|
import com.gkhy.exam.system.domain.OutsourcedReview;
|
import com.gkhy.exam.system.domain.OutsourcedReviewSubsidiary;
|
import com.gkhy.exam.system.domain.WarehousingRecordDetails;
|
import com.gkhy.exam.system.mapper.OutsourcedReviewMapper;
|
import com.gkhy.exam.system.mapper.OutsourcedReviewSubsidiaryMapper;
|
import com.gkhy.exam.system.service.OutsourcedReviewService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 外包过程评审 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-08-13 09:16:37
|
*/
|
@Service
|
public class OutsourcedReviewServiceImpl extends ServiceImpl<OutsourcedReviewMapper, OutsourcedReview> implements OutsourcedReviewService {
|
|
@Autowired
|
private OutsourcedReviewMapper outsourcedReviewMapper;
|
|
@Autowired
|
private OutsourcedReviewSubsidiaryMapper outsourcedReviewSubsidiaryMapper;
|
|
@Override
|
public CommonPage selectOutsourcedReviewList(OutsourcedReview outsourcedReview) {
|
PageUtils.startPage();
|
List<OutsourcedReview> outsourcedReviewList = outsourcedReviewMapper.getOutsourcedReviewList(outsourcedReview);
|
return CommonPage.restPage(outsourcedReviewList);
|
}
|
|
@Override
|
@Transactional
|
public CommonResult saveOutsourcedReview(OutsourcedReview outsourcedReview) {
|
List<OutsourcedReviewSubsidiary> outsourcedReviewSubsidiaryList = outsourcedReview.getOutsourcedReviewSubsidiaryList();
|
if (ObjectUtils.isEmpty(outsourcedReviewSubsidiaryList)){
|
return CommonResult.failed("保存参数不能为空");
|
}
|
int i = 0;
|
if (outsourcedReview.getId() == null){
|
outsourcedReview.setCreateBy(SecurityUtils.getUsername());
|
outsourcedReview.setCreateTime(LocalDateTime.now());
|
i = outsourcedReviewMapper.insert(outsourcedReview);
|
}else {
|
outsourcedReview.setUpdateTime(LocalDateTime.now());
|
outsourcedReview.setUpdateBy(SecurityUtils.getUsername());
|
i = outsourcedReviewMapper.updateById(outsourcedReview);
|
}
|
if (i > 0){
|
batchSaveSubsidiary(outsourcedReview.getId(), outsourcedReviewSubsidiaryList, outsourcedReview.getDelOutsourcedReviewSubsidiaryIds());
|
}
|
return i > 0 ? CommonResult.success() : CommonResult.failed();
|
}
|
|
private void batchSaveSubsidiary(Long outsourcedReviewId, List<OutsourcedReviewSubsidiary> outsourcedReviewSubsidiaryList,List<Long> delOutsourcedReviewSubsidiaryIds) {
|
|
if (ObjectUtils.isNotEmpty(delOutsourcedReviewSubsidiaryIds)){
|
int update = outsourcedReviewSubsidiaryMapper.update(new OutsourcedReviewSubsidiary(),
|
new LambdaUpdateWrapper<OutsourcedReviewSubsidiary>().eq(OutsourcedReviewSubsidiary::getId, delOutsourcedReviewSubsidiaryIds).set(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(OutsourcedReviewSubsidiary::getUpdateTime, LocalDateTime.now()).set(OutsourcedReviewSubsidiary::getUpdateBy, SecurityUtils.getUsername())
|
);
|
if (update <= 0){
|
throw new RuntimeException("操作失败");
|
}
|
}
|
outsourcedReviewSubsidiaryList.forEach(outsourcedReviewSubsidiary -> {
|
if (outsourcedReviewSubsidiary.getId() == null){
|
outsourcedReviewSubsidiary.setReviewId(outsourcedReviewId);
|
outsourcedReviewSubsidiary.setCreateTime(LocalDateTime.now());
|
outsourcedReviewSubsidiary.setCreateBy(SecurityUtils.getUsername());
|
outsourcedReviewSubsidiaryMapper.insert(outsourcedReviewSubsidiary);
|
}else {
|
outsourcedReviewSubsidiary.setUpdateTime(LocalDateTime.now());
|
outsourcedReviewSubsidiary.setUpdateBy(SecurityUtils.getUsername());
|
outsourcedReviewSubsidiaryMapper.updateById(outsourcedReviewSubsidiary);
|
}
|
});
|
|
}
|
|
@Override
|
public CommonResult getOutsourcedReview(Long id) {
|
|
OutsourcedReview outsourcedReview = outsourcedReviewMapper.selectById(id);
|
if (outsourcedReview != null){
|
List<OutsourcedReviewSubsidiary> outsourcedReviewSubsidiaryList = outsourcedReviewSubsidiaryMapper.selectList(
|
new LambdaQueryWrapper<>(OutsourcedReviewSubsidiary.class).eq(OutsourcedReviewSubsidiary::getReviewId, id)
|
.eq(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.ENABLE).orderByDesc(OutsourcedReviewSubsidiary::getCreateTime)
|
);
|
outsourcedReview.setOutsourcedReviewSubsidiaryList(outsourcedReviewSubsidiaryList);
|
}
|
return CommonResult.success(outsourcedReview);
|
}
|
|
@Override
|
@Transactional
|
public CommonResult deletedOutsourcedReview(Long id) {
|
int i = outsourcedReviewMapper.update(new OutsourcedReview(),
|
new LambdaUpdateWrapper<OutsourcedReview>().eq(OutsourcedReview::getId, id).set(OutsourcedReview::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(OutsourcedReview::getUpdateTime, LocalDateTime.now()).set(OutsourcedReview::getUpdateBy, SecurityUtils.getUsername())
|
);
|
if (i > 0){
|
outsourcedReviewSubsidiaryMapper.update(new OutsourcedReviewSubsidiary(),
|
new LambdaUpdateWrapper<OutsourcedReviewSubsidiary>().eq(OutsourcedReviewSubsidiary::getReviewId, id)
|
.set(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(OutsourcedReviewSubsidiary::getUpdateTime, LocalDateTime.now())
|
.set(OutsourcedReviewSubsidiary::getUpdateBy, SecurityUtils.getUsername()));
|
}
|
return CommonResult.success();
|
}
|
}
|