zhaops 4 роки тому
батько
коміт
6efbd7ea52

+ 24 - 0
src/main/java/com/diagbot/entity/node/Indication.java

@@ -0,0 +1,24 @@
+package com.diagbot.entity.node;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.data.neo4j.annotation.QueryResult;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/17 13:38
+ */
+@Setter
+@Getter
+@QueryResult
+public class Indication {
+    private Long conceptId;
+    private Long relationId;
+    private Long conditionId;
+    private String conceptName;
+    private String relationName;
+    private String conditionName;
+    private String conceptLabel;
+    private String conditionLabel;
+}

+ 27 - 0
src/main/java/com/diagbot/facade/IndicationManFacade.java

@@ -0,0 +1,27 @@
+package com.diagbot.facade;
+
+import com.diagbot.entity.node.Indication;
+import com.diagbot.repository.IndicationRepository;
+import com.diagbot.vo.IndicationPageVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/17 13:53
+ */
+@Component
+public class IndicationManFacade {
+    @Autowired
+    IndicationRepository indicationRepository;
+
+    public Page<Indication> getPage(IndicationPageVO indicationPageVO) {
+        Pageable pageable = PageRequest.of(indicationPageVO.getNumber(), indicationPageVO.getSize());
+        Page<Indication> page = indicationRepository.getPage(indicationPageVO.getLabels(), pageable);
+        return page;
+    }
+}

+ 33 - 0
src/main/java/com/diagbot/repository/IndicationRepository.java

@@ -0,0 +1,33 @@
+package com.diagbot.repository;
+
+import com.diagbot.entity.node.Indication;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/17 13:26
+ */
+public interface IndicationRepository extends Neo4jRepository<Indication,Long> {
+
+    @Query(value = "match(m)-[r]-(n) \n" +
+            "where 1 = 1 \n" +
+            "and labels(m)[0] in $labels \n" +
+            "and type(r) contains('禁忌') \n" +
+            "return id(m) as conceptId,m.name as conceptName,labels(m)[0] as conceptType,\n" +
+            "id(r) as relationId,type(r) as relationName,\n" +
+            "id(n) as conditionId,n.name as conditionName,labels(n)[0] as conditionType  \n" +
+            "order by id(r) desc",
+            countQuery = "match(m)-[r]-(n) \n" +
+                    "where 1 = 1 \n" +
+                    "and labels(m)[0] in $labels \n" +
+                    "and type(r) contains('禁忌') \n" +
+                    "return count(n)")
+    Page<Indication> getPage(@Param("labels") List<String> labels, Pageable pageable);
+}

+ 21 - 0
src/main/java/com/diagbot/vo/IndicationPageVO.java

@@ -0,0 +1,21 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/17 16:53
+ */
+@Getter
+@Setter
+public class IndicationPageVO {
+    private int number;
+    private int size;
+    private List<String> labels;
+    private String conceptName;
+    private String conditionName;
+}

+ 36 - 0
src/main/java/com/diagbot/web/IndicationManController.java

@@ -0,0 +1,36 @@
+package com.diagbot.web;
+
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.node.Indication;
+import com.diagbot.facade.IndicationManFacade;
+import com.diagbot.vo.IndicationPageVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/17 13:56
+ */
+@RestController
+@RequestMapping("/indicationman")
+@Api(value = "开单合理项维护相关API", tags = { "开单合理项维护相关API" })
+@SuppressWarnings("unchecked")
+public class IndicationManController {
+    @Autowired
+    IndicationManFacade indicationManFacade;
+
+    @ApiOperation(value = "获取列表[zhaops]",
+            notes = "")
+    @PostMapping("/getPage")
+    public RespDTO<Indication> getPage(@RequestBody IndicationPageVO indicationPageVO) {
+        Page<Indication> data = indicationManFacade.getPage(indicationPageVO);
+        return RespDTO.onSuc(data);
+    }
+}