| | |
| | | import com.ruoyi.basic.mapper.StandardProductListMapper; |
| | | import com.ruoyi.basic.mapper.StandardTreeMapper; |
| | | import com.ruoyi.basic.mapper.StandardTreeTemplateBindingMapper; |
| | | import com.ruoyi.basic.mapper.StandardTreeTemplateDeviceMapper; |
| | | import com.ruoyi.basic.mapper.StructureItemParameterMapper; |
| | | import com.ruoyi.basic.mapper.StructureTestObjectMapper; |
| | | import com.ruoyi.basic.pojo.Laboratory; |
| | |
| | | import com.ruoyi.basic.pojo.StandardTree; |
| | | import com.ruoyi.basic.pojo.StandardTemplate; |
| | | import com.ruoyi.basic.pojo.StandardTreeTemplateBinding; |
| | | import com.ruoyi.basic.pojo.StandardTreeTemplateDevice; |
| | | import com.ruoyi.basic.pojo.StructureItemParameter; |
| | | import com.ruoyi.basic.pojo.StructureTestObject; |
| | | import com.ruoyi.basic.service.StandardTreeService; |
| | |
| | | import java.util.HashSet; |
| | | import java.util.Comparator; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | private LaboratoryMapper laboratoryMapper; |
| | | |
| | | private StandardTreeTemplateBindingMapper standardTreeTemplateBindingMapper; |
| | | |
| | | private StandardTreeTemplateDeviceMapper standardTreeTemplateDeviceMapper; |
| | | |
| | | private StandardTemplateService standardTemplateService; |
| | | |
| | |
| | | } |
| | | standardTreeTemplateBindingMapper.delete(Wrappers.<StandardTreeTemplateBinding>lambdaQuery() |
| | | .eq(StandardTreeTemplateBinding::getStandardTreeId, standardTree.getId())); |
| | | standardTreeTemplateDeviceMapper.delete(Wrappers.<StandardTreeTemplateDevice>lambdaQuery() |
| | | .eq(StandardTreeTemplateDevice::getStandardTreeId, standardTree.getId())); |
| | | standardTreeMapper.deleteById(standardTree.getId()); |
| | | standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaQuery() |
| | | .eq(StandardProductList::getLaboratory, industry) |
| | |
| | | Wrappers.<StandardTreeTemplateBinding>lambdaQuery() |
| | | .eq(StandardTreeTemplateBinding::getStandardTreeId, standardTreeId) |
| | | .orderByAsc(StandardTreeTemplateBinding::getSort, StandardTreeTemplateBinding::getId)); |
| | | Map<Integer, List<Integer>> deviceIdsByTemplate = standardTreeTemplateDeviceMapper.selectList( |
| | | Wrappers.<StandardTreeTemplateDevice>lambdaQuery() |
| | | .eq(StandardTreeTemplateDevice::getStandardTreeId, standardTreeId) |
| | | .orderByAsc(StandardTreeTemplateDevice::getSort, |
| | | StandardTreeTemplateDevice::getId)) |
| | | .stream().collect(Collectors.groupingBy( |
| | | StandardTreeTemplateDevice::getTemplateId, |
| | | LinkedHashMap::new, |
| | | Collectors.mapping(StandardTreeTemplateDevice::getDeviceId, Collectors.toList()))); |
| | | List<StandardTreeTemplateBindingVo> result = new ArrayList<>(); |
| | | for (StandardTreeTemplateBinding binding : bindings) { |
| | | StandardTemplate template = standardTemplateService.getById(binding.getTemplateId()); |
| | |
| | | vo.setNumber(template.getNumber()); |
| | | vo.setRemark(template.getRemark()); |
| | | vo.setSort(binding.getSort()); |
| | | vo.setDeviceIds(deviceIdsByTemplate.getOrDefault(template.getId(), new ArrayList<>())); |
| | | result.add(vo); |
| | | } |
| | | return result; |
| | |
| | | ensureTwoLevelStandard(dto.getStandardTreeId()); |
| | | List<TemplateBindingItemDto> templates = dto.getTemplates() == null ? new ArrayList<>() : dto.getTemplates(); |
| | | Set<Integer> templateIds = new HashSet<>(); |
| | | Set<Integer> allDeviceIds = new HashSet<>(); |
| | | List<StandardTreeTemplateBinding> bindings = new ArrayList<>(); |
| | | int index = 0; |
| | | for (TemplateBindingItemDto item : templates) { |
| | |
| | | binding.setTemplateId(item.getTemplateId()); |
| | | binding.setSort(item.getSort() == null ? index : item.getSort()); |
| | | bindings.add(binding); |
| | | if (item.getDeviceIds() != null) { |
| | | allDeviceIds.addAll(item.getDeviceIds().stream() |
| | | .filter(Objects::nonNull).collect(Collectors.toSet())); |
| | | } |
| | | index++; |
| | | } |
| | | if (!allDeviceIds.isEmpty()) { |
| | | List<Integer> requestedDeviceIds = new ArrayList<>(allDeviceIds); |
| | | if (standardTreeTemplateDeviceMapper.selectExistingDeviceIds(requestedDeviceIds).size() |
| | | != requestedDeviceIds.size()) { |
| | | throw new BaseException("所选设备不存在,请刷新设备列表后重试"); |
| | | } |
| | | } |
| | | standardTreeTemplateDeviceMapper.delete(Wrappers.<StandardTreeTemplateDevice>lambdaQuery() |
| | | .eq(StandardTreeTemplateDevice::getStandardTreeId, dto.getStandardTreeId())); |
| | | standardTreeTemplateBindingMapper.delete(Wrappers.<StandardTreeTemplateBinding>lambdaQuery() |
| | | .eq(StandardTreeTemplateBinding::getStandardTreeId, dto.getStandardTreeId())); |
| | | for (StandardTreeTemplateBinding binding : bindings) { |
| | | for (int bindingIndex = 0; bindingIndex < bindings.size(); bindingIndex++) { |
| | | StandardTreeTemplateBinding binding = bindings.get(bindingIndex); |
| | | standardTreeTemplateBindingMapper.insert(binding); |
| | | TemplateBindingItemDto item = templates.get(bindingIndex); |
| | | List<Integer> deviceIds = item.getDeviceIds() == null ? new ArrayList<>() |
| | | : item.getDeviceIds().stream().filter(Objects::nonNull).distinct() |
| | | .collect(Collectors.toList()); |
| | | for (int deviceIndex = 0; deviceIndex < deviceIds.size(); deviceIndex++) { |
| | | StandardTreeTemplateDevice relation = new StandardTreeTemplateDevice(); |
| | | relation.setStandardTreeId(dto.getStandardTreeId()); |
| | | relation.setTemplateId(item.getTemplateId()); |
| | | relation.setDeviceId(deviceIds.get(deviceIndex)); |
| | | relation.setSort(deviceIndex); |
| | | standardTreeTemplateDeviceMapper.insert(relation); |
| | | } |
| | | } |
| | | return true; |
| | | } |