package com.yuanchu.mom.service.impl;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.yuanchu.mom.common.GetLook;
|
import com.yuanchu.mom.mapper.StandardProductListMapper;
|
import com.yuanchu.mom.mapper.StandardTreeMapper;
|
import com.yuanchu.mom.pojo.InsSample;
|
import com.yuanchu.mom.pojo.StandardProductList;
|
import com.yuanchu.mom.service.StandardProductListService;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.concurrent.CompletableFuture;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author Administrator
|
* @description 针对表【standard_product_list(标准树下的检验项目)】的数据库操作Service实现
|
* @createDate 2024-03-05 10:33:29
|
*/
|
@Service
|
@AllArgsConstructor
|
public class StandardProductListServiceImpl extends ServiceImpl<StandardProductListMapper, StandardProductList>
|
implements StandardProductListService {
|
|
private StandardProductListMapper standardProductListMapper;
|
|
private StandardTreeMapper standardTreeMapper;
|
|
private GetLook getLook;
|
|
@Override
|
public int upStandardProductList(StandardProductList list) {
|
return standardProductListMapper.updateById(list);
|
}
|
|
@Override
|
public int delStandardProduct(JSONArray list) {
|
return standardProductListMapper.deleteBatchIds(list);
|
}
|
|
@Override
|
public List<StandardProductList> selectStandardProductList(InsSample insSample) {
|
List<StandardProductList> list = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery().eq(StandardProductList::getStandardMethodListId, insSample.getStandardMethodListId()).eq(StandardProductList::getState, 1).eq(StandardProductList::getModel, insSample.getModel()));
|
list = list.stream().filter(a -> {
|
try {
|
if (a.getSection() != null && !Objects.equals(a.getSection(), "")) {
|
if (a.getSection().contains("~")) {
|
String[] split = a.getSection().split("~");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(split[0])) > -1 && new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(split[1])) < 1;
|
} else if (a.getSection().contains("≥") || a.getSection().contains(">=")) {
|
String param = a.getSection().replace("≥", "").replace(">=", "");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(param)) > -1;
|
} else if (a.getSection().contains("≤") || a.getSection().contains("<=")) {
|
String param = a.getSection().replace("≤", "").replace("<=", "");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(param)) < 1;
|
} else if (a.getSection().contains(">")) {
|
String param = a.getSection().replace(">", "");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(param)) > 0;
|
} else if (a.getSection().contains("<")) {
|
String param = a.getSection().replace("<", "");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(param)) < 0;
|
} else if (a.getSection().contains("=")) {
|
String param = a.getSection().replace("=", "");
|
return new BigDecimal(insSample.getModel()).compareTo(new BigDecimal(param)) == 0;
|
}
|
}
|
} catch (Exception ignored) {
|
return false;
|
}
|
return true;
|
}).collect(Collectors.toList());
|
return list;
|
}
|
|
@Override
|
public List<StandardProductList> selectStandardProductListByMethodId(Integer id, String tree) {
|
String[] trees = tree.split(" - ");
|
StringBuffer str = new StringBuffer();
|
List<StandardProductList> list = new ArrayList<>();
|
if (trees.length == 3) {
|
str.append("\"").append(trees[2]).append("\"");
|
} else {
|
str.append("\"").append(trees[2]).append("\",\"").append(trees[3]).append("\"");
|
list.addAll(standardTreeMapper.selectStandardProductListByTree("\"" + trees[2] + "\""));
|
}
|
list.addAll(standardTreeMapper.selectStandardProductListByTree(str + ""));
|
List<StandardProductList> standardProductLists = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery().eq(StandardProductList::getStandardMethodListId, id).eq(StandardProductList::getTree, tree));
|
for (StandardProductList sp : standardProductLists) {
|
for (StandardProductList pl : list) {
|
if (Objects.equals(sp.getInspectionItem(), pl.getInspectionItem())
|
&& Objects.equals(sp.getInspectionItemSubclass(), pl.getInspectionItemSubclass())) {
|
pl.setId(sp.getId());
|
pl.setState(sp.getState());
|
pl.setFactory(sp.getFactory());
|
pl.setLaboratory(sp.getLaboratory());
|
pl.setSampleType(sp.getSampleType());
|
pl.setSample(sp.getSample());
|
pl.setModel(sp.getModel());
|
pl.setMethodS(sp.getMethodS());
|
pl.setTemplateId(sp.getTemplateId());
|
if(sp.getAsk()!=null&&!sp.getAsk().equals("")){
|
pl.setAsk(sp.getAsk());
|
}
|
if(sp.getTell()!=null&&!sp.getTell().equals("")){
|
pl.setTell(sp.getTell());
|
}
|
break;
|
}
|
}
|
}
|
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
|
CompletableFuture.supplyAsync(() -> {
|
standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, id).eq(StandardProductList::getTree, tree));
|
saveBatch(list.stream().map(a->{
|
a.setFactory(trees[0]);
|
a.setLaboratory(trees[1]);
|
a.setSampleType(trees[2]);
|
try {
|
a.setSample(trees[3]);
|
}catch (Exception e){}
|
try {
|
a.setModel(trees[4]);
|
}catch (Exception e){}
|
a.setTree(tree);
|
a.setCreateUser(userId);
|
a.setUpdateUser(userId);
|
a.setStandardMethodListId(id);
|
return a;
|
}).collect(Collectors.toList()));
|
return null;
|
}).thenAccept(res -> {
|
}).exceptionally(e -> {
|
e.printStackTrace();
|
return null;
|
});
|
;
|
return list;
|
}
|
}
|