Browse Source

信息点/类型变更记录查询新增所属专业类,系统类,设备类

linhuili 3 years ago
parent
commit
4fd6f252e7

+ 3 - 2
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/ClassDefChangeRecordController.java

@@ -4,6 +4,7 @@ import com.persagy.common.criteria.JacksonCriteria;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.dto.ClassDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.service.ClassDefChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -20,8 +21,8 @@ public class ClassDefChangeRecordController {
     private ClassDefChangeRecordService service;
 
     @PostMapping("/query")
-    public PagedResponse<ClassDefChangeRecord> query(@RequestBody JacksonCriteria criteria) {
-        return service.query(criteria);
+    public PagedResponse<ClassDefChangeRecordDTO> query(@RequestBody JacksonCriteria criteria) {
+        return service.queryChangeRecord(criteria);
     }
 
     @PostMapping("/create")

+ 3 - 2
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/FuncidDefChangeRecordController.java

@@ -4,6 +4,7 @@ import com.persagy.common.criteria.JacksonCriteria;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.dto.FuncidDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.service.FuncidDefChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -18,8 +19,8 @@ public class FuncidDefChangeRecordController {
     private FuncidDefChangeRecordService service;
 
     @PostMapping("/query")
-    public PagedResponse<FuncidDefChangeRecord> query(@RequestBody JacksonCriteria criteria) {
-        return service.query(criteria);
+    public PagedResponse<FuncidDefChangeRecordDTO> query(@RequestBody JacksonCriteria criteria) {
+        return service.queryChangeRecord(criteria);
     }
 
     @PostMapping("/create")

+ 24 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/dto/ClassDefChangeRecordDTO.java

@@ -0,0 +1,24 @@
+package com.persagy.dmp.rwd.edit.entity.dto;
+
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName ClassDefChangeRecordDTO
+ * @Description: 类型变更记录DTO
+ * @Author linhuili
+ * @Date 2021/5/18 10:51
+ * @Version V1.0
+ **/
+@Getter
+@Setter
+public class ClassDefChangeRecordDTO extends ClassDefChangeRecord {
+
+    private String majorName;
+
+    private String systemName;
+
+    private String equipClassName;
+
+}

+ 25 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/dto/FuncidDefChangeRecordDTO.java

@@ -0,0 +1,25 @@
+package com.persagy.dmp.rwd.edit.entity.dto;
+
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName FuncidDefChangeRecordDTO
+ * @Description: 信息点变更记录DTO
+ * @Author linhuili
+ * @Date 2021/5/18 10:51
+ * @Version V1.0
+ **/
+@Getter
+@Setter
+public class FuncidDefChangeRecordDTO extends FuncidDefChangeRecord {
+
+    private String majorName;
+
+    private String systemName;
+
+    private String equipClassName;
+
+}

+ 51 - 1
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ClassDefChangeRecordService.java

@@ -10,18 +10,23 @@ import com.persagy.dmp.rwd.edit.config.web.UserUtils;
 import com.persagy.dmp.rwd.edit.entity.ClassDef;
 import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
 import com.persagy.dmp.rwd.edit.entity.QClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.dto.ClassDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
+import com.persagy.dmp.rwd.edit.model.DtDataModel;
 import com.persagy.dmp.rwd.edit.repository.ClassDefChangeRecordRepository;
 import com.persagy.dmp.rwd.edit.repository.ClassDefRepository;
 import com.persagy.dmp.rwd.model.ClassDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
+import io.micrometer.core.instrument.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -39,6 +44,9 @@ public class ClassDefChangeRecordService {
     @Autowired
     ClassDefRepository classDefRepository;
 
+    @Autowired
+    DtDataService dtDataService;
+
     private List<BooleanExpression> parse(ObjectNode object) {
         List<BooleanExpression> list = new LinkedList<>();
         QClassDefChangeRecord qt = QClassDefChangeRecord.classDefChangeRecord;
@@ -65,6 +73,48 @@ public class ClassDefChangeRecordService {
         return criteriaUtils.query(QClassDefChangeRecord.classDefChangeRecord, this::parse, criteria);
     }
 
+    public PagedResponse<ClassDefChangeRecordDTO> queryChangeRecord(JacksonCriteria criteria) {
+        PagedResponse<ClassDefChangeRecordDTO> pagedResponse = new PagedResponse<>();
+        //查询所有专业
+        JacksonCriteria majorCriteria = JacksonCriteria.newInstance();
+        majorCriteria.add("classCode", "sec");
+        PagedResponse<DtDataModel> queryMajorResp = dtDataService.query(majorCriteria);
+        List<DtDataModel> majorData = queryMajorResp.getData();
+        Map<String, String> majorDataMap = majorData.stream().filter(t -> StringUtils.isNotEmpty(t.getCode())).collect(Collectors.toMap(DtDataModel::getCode, DtDataModel::getLabel, (k, v) -> v));
+
+        //查询所有类型定义
+        ListResponse<ClassDefModel> queryClassDefResp = classDefService.queryClass(JacksonCriteria.newInstance());
+        List<ClassDefModel> classDefData = queryClassDefResp.getData();
+        Map<String, String> classDefDataMap = classDefData.stream().filter(t -> StringUtils.isNotEmpty(t.getCode())).collect(Collectors.toMap(ClassDefModel::getCode, ClassDefModel::getName, (k, v) -> v));
+
+        //查询类型变更记录
+        PagedResponse<ClassDefChangeRecord> queryClassDefChangeResp = criteriaUtils.query(QClassDefChangeRecord.classDefChangeRecord, this::parse, criteria);
+        List<ClassDefChangeRecord> classDefChangeRecordList = queryClassDefChangeResp.getData();
+
+        //结果集封装
+        List<ClassDefChangeRecordDTO> result = new ArrayList<>();
+        classDefChangeRecordList.forEach(item->{
+            ClassDefChangeRecordDTO changeRecordDTO = new ClassDefChangeRecordDTO();
+            BeanUtils.copyProperties(item,changeRecordDTO);
+            //设置专业名称
+            if(StringUtils.isNotEmpty(item.getMajorCode())){
+                changeRecordDTO.setMajorName(majorDataMap.get(item.getMajorCode()));
+            }
+            //设置系统名称
+            if(StringUtils.isNotEmpty(item.getSystemCode())){
+                changeRecordDTO.setSystemName(classDefDataMap.get(item.getSystemCode()));
+            }
+            //设置设备类名称
+            if(StringUtils.isNotEmpty(item.getEquipmentCode())){
+                changeRecordDTO.setEquipClassName(classDefDataMap.get(item.getEquipmentCode()));
+            }
+            result.add(changeRecordDTO);
+        });
+        pagedResponse.setData(result);
+        pagedResponse.setCount(queryClassDefChangeResp.getCount());
+        return pagedResponse;
+    }
+
     @Transactional
     public MapResponse create(ClassDefChangeRecord param) {
         MapResponse response = new MapResponse();
@@ -335,7 +385,7 @@ public class ClassDefChangeRecordService {
         classDefRepository.saveAll(classDefList);
     }
 
-    private List<ClassDefModel> queryClassDef(String code, List<String> codeList, String neVersion) {
+    public List<ClassDefModel> queryClassDef(String code, List<String> codeList, String neVersion) {
         JacksonCriteria criteria = JacksonCriteria.newInstance();
         criteria.add("type", "common");
         if (code != null) {

+ 71 - 4
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -9,24 +9,28 @@ import com.persagy.common.web.ListResponse;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.config.web.UserUtils;
-import com.persagy.dmp.rwd.edit.entity.FuncidDef;
-import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
-import com.persagy.dmp.rwd.edit.entity.QFuncidDefChangeRecord;
-import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
+import com.persagy.dmp.rwd.edit.entity.*;
+import com.persagy.dmp.rwd.edit.entity.dto.ClassDefChangeRecordDTO;
+import com.persagy.dmp.rwd.edit.entity.dto.FuncidDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
+import com.persagy.dmp.rwd.edit.model.DtDataModel;
 import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
 import com.persagy.dmp.rwd.edit.repository.FuncidDefRepository;
 import com.persagy.dmp.rwd.enums.FuncidDataType;
+import com.persagy.dmp.rwd.enums.ObjType;
 import com.persagy.dmp.rwd.model.ClassDefModel;
 import com.persagy.dmp.rwd.model.FuncidDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
+import io.micrometer.core.instrument.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -50,6 +54,9 @@ public class FuncidDefChangeRecordService {
     @Autowired
     FuncidDefRepository funcidDefRepository;
 
+    @Autowired
+    DtDataService dtDataService;
+
     private List<BooleanExpression> parse(ObjectNode object) {
         List<BooleanExpression> list = new LinkedList<>();
         QFuncidDefChangeRecord qt = QFuncidDefChangeRecord.funcidDefChangeRecord;
@@ -73,6 +80,66 @@ public class FuncidDefChangeRecordService {
         return result;
     }
 
+    /**
+     * 查询信息点变更记录
+     * @param criteria
+     * @return
+     */
+    public PagedResponse<FuncidDefChangeRecordDTO> queryChangeRecord(JacksonCriteria criteria) {
+        PagedResponse<FuncidDefChangeRecordDTO> pagedResponse = new PagedResponse<>();
+        //查询所有专业
+        JacksonCriteria majorCriteria = JacksonCriteria.newInstance();
+        majorCriteria.add("classCode", "sec");
+        PagedResponse<DtDataModel> queryMajorResp = dtDataService.query(majorCriteria);
+        List<DtDataModel> majorData = queryMajorResp.getData();
+        Map<String, String> majorDataMap = majorData.stream().filter(t -> StringUtils.isNotEmpty(t.getCode())).collect(Collectors.toMap(DtDataModel::getCode, DtDataModel::getLabel, (k, v) -> v));
+
+        //获取所有的类型定义
+        ListResponse<ClassDefModel> queryClassDefResp = classDefService.queryClass(JacksonCriteria.newInstance());
+        List<ClassDefModel> classDefData = queryClassDefResp.getData();
+        Map<String, ClassDefModel> classDefDataMap = classDefData.stream().filter(t -> StringUtils.isNotEmpty(t.getCode())).collect(Collectors.toMap(ClassDefModel::getCode, classDefModel->classDefModel, (k, v) -> v));
+
+        //查询信息点变更记录
+        PagedResponse<FuncidDefChangeRecord> queryFuncidDefChangeResp = criteriaUtils.query(QFuncidDefChangeRecord.funcidDefChangeRecord, this::parse, criteria);
+        List<FuncidDefChangeRecord> funcidDefChangeRecordList = queryFuncidDefChangeResp.getData();
+
+        //结果集封装
+        List<FuncidDefChangeRecordDTO> result = new ArrayList<>();
+        funcidDefChangeRecordList.forEach(item->{
+            FuncidDefChangeRecordDTO changeRecordDTO = new FuncidDefChangeRecordDTO();
+            BeanUtils.copyProperties(item,changeRecordDTO);
+
+            String classCode = item.getClassCode();
+            ClassDefModel classDefModel = classDefDataMap.get(classCode);
+            //设置专业名称
+            if(classDefModel == null){
+                changeRecordDTO.setMajorName(majorDataMap.get(item.getClassCode()));
+                result.add(changeRecordDTO);
+                return;
+            }
+            if(StringUtils.isNotEmpty(classDefModel.getMajorCode())){
+                changeRecordDTO.setMajorName(majorDataMap.get(classDefModel.getMajorCode()));
+            }
+
+            //设置系统及设备类名称
+            if("system".equals(classDefModel.getObjType().name())){
+                changeRecordDTO.setSystemName(classDefDataMap.get(item.getClassCode()).getName());
+                result.add(changeRecordDTO);
+                return;
+            }else{
+                if(StringUtils.isNotEmpty(classDefModel.getSystemCode())){
+                    changeRecordDTO.setSystemName(classDefDataMap.get(classDefModel.getSystemCode()).getName());
+                }
+                changeRecordDTO.setEquipClassName(classDefDataMap.get(classDefModel.getCode()).getName());
+            }
+            result.add(changeRecordDTO);
+        });
+        pagedResponse.setData(result);
+        pagedResponse.setCount(queryFuncidDefChangeResp.getCount());
+        return pagedResponse;
+    }
+
+
     @Transactional
     public MapResponse create(FuncidDefChangeRecord param) {
         MapResponse response = new MapResponse();