package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.mapper.LinkDetectionMapper;
import com.yuanchu.limslaboratory.mapper.ProductMapper;
import com.yuanchu.limslaboratory.mapper.SpecificationsMapper;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper;
import com.yuanchu.limslaboratory.pojo.LinkDetection;
import com.yuanchu.limslaboratory.pojo.Specifications;
import com.yuanchu.limslaboratory.service.InspectionService;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.service.LinkDetectionService;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-08-03
*/
@Service
public class LinkBasicInformationServiceImpl extends ServiceImpl implements LinkBasicInformationService {
@Resource
private LinkBasicInformationMapper linkBasicInformationMapper;
@Resource
private LinkDetectionMapper linkDetectionMapper;
@Autowired
private LinkDetectionService linkDetectionService;
@Autowired
private SpecificationsMapper specificationsMapperOn;
@Resource
private InspectionService inspectionService;
@Resource
private ProductMapper productMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) {
System.err.println(linkBasicInformation);
System.out.println("============>");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid());
LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper);
Optional optionalId = Optional.ofNullable(linkBasicInformation1)
.map(LinkBasicInformation::getId);
AtomicBoolean b=new AtomicBoolean(false);
optionalId.ifPresent(l->{
QueryWrapperqueryWrapperLd = new QueryWrapper<>();
queryWrapperLd.lambda().select(LinkDetection::getInspectionStatus).eq(LinkDetection::getLinkBasicId,linkBasicInformation1.getId());
List linkDetections = linkDetectionMapper.selectList(queryWrapperLd).stream().filter(ld->ld.getInspectionStatus()==2).collect(Collectors.toList());
if(linkDetections.isEmpty()){
//执行删除
linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId());
linkBasicInformationMapper.deleteByID(linkBasicInformation1.getId());
}else {
b.set(true);
}
});
if(b.get()){
return "提交失败,含有已报检样品";
}
//委托编号
String code = MyUtil.getTimeSixNumberCode("SL", "SL");
linkBasicInformation.setEntrustCoding(code);
//新增基本信息表
int insert = linkBasicInformationMapper.insert(linkBasicInformation);
if (insert == 1) {
//新增委托样品表
linkDetectionService.insertListData(linkBasicInformation.getId(), linkBasicInformation.getLinkDetectionList());
return code;
}
return null;
}
@Override
public IPage