value
2023-08-31 0afd6c073589d5221774dab5cf4a9d21415ec0e8
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -1,10 +1,17 @@
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;
@@ -12,9 +19,12 @@
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;
/**
 * <p>
@@ -30,11 +40,46 @@
    @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) {
        QueryWrapper<LinkBasicInformation> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid());
        LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper);
        Optional<Integer> optionalId = Optional.ofNullable(linkBasicInformation1)
                .map(LinkBasicInformation::getId);
        AtomicBoolean b=new AtomicBoolean(true);
        optionalId.ifPresent(l->{
            QueryWrapper<LinkDetection>queryWrapperLd = new QueryWrapper<>();
            queryWrapperLd.lambda().select(LinkDetection::getInspectionStatus).eq(LinkDetection::getLinkBasicId,linkBasicInformation1.getId());
            List<LinkDetection> linkDetections = linkDetectionMapper.selectList(queryWrapperLd).stream().filter(ld->ld.getInspectionStatus()==2).collect(Collectors.toList());
            if(linkDetections.size()<1){
                //执行删除
                linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId());
                linkBasicInformationMapper.deleteByID(linkBasicInformation1.getId());
                b.set(false);
            }else {
                b.set(true);
            }
        });
        if(b.get()){
            return "提交失败,含有已报检样品";
        }
        //委托编号
        String code = MyUtil.getTimeSixNumberCode("SL", "SL");
        linkBasicInformation.setEntrustCoding(code);
@@ -84,6 +129,11 @@
        return uuid.equals(RedisUtil.get("viewId"));
    }
    @Override
    public LinkBasicInformation getContractsSampleInfo(String viewId) {
        return linkBasicInformationMapper.getLinkBasicInformation(viewId);
    }
    //根据委托样品删除
    @Override
    public void delLink(Integer id) {
@@ -93,5 +143,36 @@
        linkDetectionService.updateById(linkDetection);
    }
    @Override
    public Specifications getSpecificationsName(String id) {
        QueryWrapper<Specifications>queryWrapper=new QueryWrapper<>();
        queryWrapper.lambda().select(Specifications::getName)
                .eq(Specifications::getId,id)
                .eq(Specifications::getState,1);
        return specificationsMapperOn.selectOne(queryWrapper);
    }
    @Override
    public List<Map<String,Object>> lookProByVer(String name, String mcode, String specifications,Integer version, Integer id) {
        LinkDetection linkDetection = linkDetectionMapper.selectById(id);
        List<String> experiments = Arrays.stream(linkDetection.getExperiment().split(",")).collect(Collectors.toList());
        //根据型号id和项目信息查询项目信息
        List<Map<String, Object>> products = new ArrayList<>();
        for (String exper : experiments) {
            List<Map<String, Object>> list = productMapper.selFath(Integer.parseInt(linkDetection.getSpecificationsModels()), exper, version);
            if (ObjectUtils.isEmpty(list)) {
                Map<String, Object> project = productMapper.selNam(Integer.parseInt(linkDetection.getSpecificationsModels()), exper, version);
                products.add(project);
            }
            products.addAll(list);
        }
        return products;
    }
    @Override
    public Object chooseVer( LinkDetection linkDetection) {
        return productMapper.chooseVersion(Integer.parseInt(linkDetection.getSpecificationsModels()));
    }
}