package com.yuanchu.mom.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.dto.FactoryDto; import com.yuanchu.mom.mapper.StandardMethodListMapper; import com.yuanchu.mom.mapper.StandardProductListMapper; import com.yuanchu.mom.pojo.StandardMethodList; import com.yuanchu.mom.pojo.StandardProductList; import com.yuanchu.mom.pojo.StandardTree; import com.yuanchu.mom.service.StandardMethodListService; import com.yuanchu.mom.service.StandardProductListService; import com.yuanchu.mom.service.StandardTreeService; import com.yuanchu.mom.mapper.StandardTreeMapper; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author Administrator * @description 针对表【standard_tree(标准树)】的数据库操作Service实现 * @createDate 2024-03-01 15:06:44 */ @Service @AllArgsConstructor public class StandardTreeServiceImpl extends ServiceImpl implements StandardTreeService { private StandardTreeMapper standardTreeMapper; private StandardMethodListMapper standardMethodListMapper; private StandardMethodListService standardMethodListService; private StandardProductListMapper standardProductListMapper; private StandardProductListService standardProductListService; @Override public List selectStandardTreeList() { return standardTreeMapper.selectStandardTreeList(); } @Override @Transactional(rollbackFor = Exception.class) public int addStandardTree(StandardTree standardTree) { List productList = standardTreeMapper.getStandardProductListBySample(standardTree.getSampleType()); List methodList = standardTreeMapper.getStandardMethodListBySample(standardTree.getSampleType()); for (StandardMethodList standardMethod : methodList) { standardMethod.setFactory(standardTree.getFactory()); standardMethod.setLaboratory(standardTree.getLaboratory()); standardMethod.setSampleType(standardTree.getSampleType()); standardMethod.setSample(standardTree.getSample()); standardMethod.setModel(standardTree.getModel()); standardMethodListMapper.insert(standardMethod); for (StandardProductList standardProductList : productList) { standardProductList.setFactory(standardTree.getFactory()); standardProductList.setLaboratory(standardTree.getLaboratory()); standardProductList.setSampleType(standardTree.getSampleType()); standardProductList.setSample(standardTree.getSample()); standardProductList.setModel(standardTree.getModel()); standardProductList.setStandardMethodListId(standardMethod.getId()); standardProductList.setState(1); standardProductList.setId(null); standardProductList.setCreateUser(null); standardProductList.setCreateTime(null); standardProductList.setUpdateUser(null); standardProductList.setUpdateTime(null); standardProductListMapper.insert(standardProductList); } } return standardTreeMapper.insert(standardTree); } @Override @Transactional(rollbackFor = Exception.class) public int delStandardTree(String tree) { String[] trees = tree.split(" - "); switch (trees.length) { case 5: standardTreeMapper.delete(Wrappers.lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4])); break; case 4: standardTreeMapper.delete(Wrappers.lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3])); break; case 3: standardTreeMapper.delete(Wrappers.lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2])); break; case 2: standardTreeMapper.delete(Wrappers.lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1])); break; case 1: standardTreeMapper.delete(Wrappers.lambdaUpdate().eq(StandardTree::getFactory, trees[0])); break; } Map> listMap = standardMethodListService.selectsStandardMethodByFLSSM2(tree); if (listMap.get("standardMethodList").size() != 0) { for (Object o : listMap.get("standardMethodList")) { JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(o)); List list = standardProductListService.selectStandardProductListByMethodId((Integer) jsonObject.get("id")); if(list.size()!=0){ standardProductListMapper.deleteBatchIds(list); } } standardMethodListMapper.deleteBatchIds(listMap.get("standardMethodList")); } return 1; } @Override @Transactional(rollbackFor = Exception.class) public int addStandardProduct(String ids, String tree) { String[] trees = tree.split(" - "); JSONArray jsonArray = JSON.parseArray(ids); for (Object o : jsonArray) { StandardProductList standardProductList = standardTreeMapper.selectStandardProductById(Integer.parseInt("" + o)); standardProductList.setFactory(trees[0]); try { standardProductList.setLaboratory(trees[1]); } catch (Exception e) { } try { standardProductList.setSampleType(trees[2]); } catch (Exception e) { } try { standardProductList.setSample(trees[3]); } catch (Exception e) { } try { standardProductList.setModel(trees[4]); } catch (Exception e) { } standardProductListMapper.insert(standardProductList); } return 1; } }