AdmSystemServiceImpl.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.persagy.proxy.adm.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.persagy.proxy.adm.model.AdmDict;
  4. import com.persagy.proxy.adm.model.AdmEquipment;
  5. import com.persagy.proxy.adm.model.AdmObjectType;
  6. import com.persagy.proxy.adm.model.AdmSystem;
  7. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  8. import com.persagy.proxy.adm.request.AdmResponse;
  9. import com.persagy.proxy.adm.service.IAdmDictService;
  10. import com.persagy.proxy.adm.service.IAdmEquipmentService;
  11. import com.persagy.proxy.adm.service.IAdmSystemService;
  12. import com.persagy.proxy.common.entity.InstanceUrlParam;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * ADM 系统 实现类
  20. * @author lvxy
  21. * @date 2021/8/18
  22. */
  23. @Service
  24. public class AdmSystemServiceImpl extends AbstractAdmBaseServiceImpl<AdmSystem> implements IAdmSystemService {
  25. @Autowired
  26. private IAdmDictService dictService;
  27. @Autowired
  28. private IAdmEquipmentService equipmentService;
  29. @Override
  30. public AdmResponse doQuery(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmSystem> clazz) {
  31. AdmResponse response = super.doQuery(context, request, clazz);
  32. // 系统需要补充分类名称属性
  33. ensureSpecialValues(context, (List<AdmSystem>) response.getContent());
  34. return response;
  35. }
  36. @Override
  37. public void ensureSpecialValues(InstanceUrlParam context, List<AdmSystem> vos) {
  38. if(CollUtil.isEmpty(vos)) {
  39. return;
  40. }
  41. // 查询对象类型 - 只找到这个接口,应提供一个按编码查编码名称Map的接口
  42. AdmDict admDict = AdmDict.builder().type(AdmSystem.OBJ_TYPE).build();
  43. AdmResponse dicRs = dictService.queryCategory(context, admDict, AdmObjectType.class);
  44. List<AdmObjectType> dicList = (List<AdmObjectType>) dicRs.getContent();
  45. if(CollUtil.isEmpty(dicList)) {
  46. return;
  47. }
  48. // 转换为编码名称Map
  49. Map<String, String> codeNameMap = CollUtil.fieldValueAsMap(dicList, "code", "name");
  50. // 给系统赋值 - 同时收集设备对象,扩展设备对象赋值
  51. List<AdmEquipment> equipmentList = new ArrayList<>();
  52. for(AdmSystem vo:vos) {
  53. vo.setCategoryName(codeNameMap.get(vo.getClassCode()));
  54. // 收集设备对象
  55. if(CollUtil.isEmpty(vo.getEquipmentList())) {
  56. continue;
  57. }
  58. equipmentList.addAll(vo.getEquipmentList());
  59. }
  60. // 对象扩展属性赋值
  61. equipmentService.ensureSpecialValues(context, equipmentList);
  62. }
  63. }