Selaa lähdekoodia

开单合理项维护

zhaops 4 vuotta sitten
vanhempi
commit
0d0d77c87b

+ 42 - 3
src/main/java/com/diagbot/facade/BillManFacade.java

@@ -25,6 +25,7 @@ import com.diagbot.vo.BillSaveVO;
 import com.diagbot.vo.ConceptIndexVO;
 import com.diagbot.vo.ConditionIndexVO;
 import com.diagbot.vo.RelationIdVO;
+import com.diagbot.vo.RelationStatusVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -47,6 +48,8 @@ public class BillManFacade {
     BillManRepository billManRepository;
     @Autowired
     DictionaryFacade dictionaryFacade;
+    @Autowired
+    BaseNodeRepository baseNodeRepository;
 
     @Autowired
     PacsNameRepository pacsNameRepository;
@@ -178,6 +181,14 @@ public class BillManFacade {
                 conditionIndexVO.getConditionName(),
                 100);
 
+        for (BillCondition condition : conditions) {
+            if (condition.getRange() != null && condition.getRange().equals(1)) {
+                Double minValue = condition.getMinValue();
+                condition.setMinValue(condition.getMaxValue());
+                condition.setMaxValue(minValue);
+                condition.setRange(0);
+            }
+        }
         return conditions;
     }
 
@@ -242,6 +253,14 @@ public class BillManFacade {
             billCondition.setRange(billItem.getConditionRange());
             billCondition.setStatus(billItem.getConditionStatus());
 
+            //如果数值范围取区间外,大小值交换
+            if (billCondition.getRange() != null && billCondition.getRange().equals(1)) {
+                Double minValue = billCondition.getMinValue();
+                billCondition.setMinValue(billCondition.getMaxValue());
+                billCondition.setMaxValue(minValue);
+                billCondition.setRange(0);
+            }
+
             if (dicTypeConvertMap.containsKey(billItem.getConceptLabel())
                     && dicIndicationManTypeMap.containsKey(dicTypeConvertMap.get(billItem.getConceptLabel()))) {
                 billSaveVO.setType(Integer.valueOf(dicIndicationManTypeMap.get(dicTypeConvertMap.get(billItem.getConceptLabel()))));
@@ -257,6 +276,12 @@ public class BillManFacade {
         return billSaveVO;
     }
 
+    /**
+     * 保存
+     *
+     * @param billSaveVO
+     * @return
+     */
     public Boolean saveRecord(BillSaveVO billSaveVO) {
         //文本类型: 开单项-[]->条件明细
         //数值类型: 开单项-[]->开单项+禁忌+条件明细
@@ -286,7 +311,7 @@ public class BillManFacade {
 
         //数值类型特殊处理
         if (billSaveVO.getRuleType() != null
-                && billSaveVO.getRuleType().equals("2")) {
+                && billSaveVO.getRuleType().equals(2)) {
             BillCondition tempCondition = billSaveVO.getCondition();
             if (tempCondition.getMinValue() != null
                     && tempCondition.getMaxValue() != null
@@ -350,7 +375,7 @@ public class BillManFacade {
                 case "手术":
                     break;
                 case "禁忌人群":
-                    Group group=groupRepository.createOrUpdate(conditionName,
+                    Group group = groupRepository.createOrUpdate(conditionName,
                             0,
                             Cn2SpellUtil.converterToFirstSpell(conditionName),
                             1,
@@ -376,7 +401,7 @@ public class BillManFacade {
                 case "禁忌医疗器械及物品":
                     break;
                 case "年龄":
-                    Age age=ageRepository.createOrUpdate(conditionName,
+                    Age age = ageRepository.createOrUpdate(conditionName,
                             0,
                             Cn2SpellUtil.converterToFirstSpell(conditionName),
                             1,
@@ -420,4 +445,18 @@ public class BillManFacade {
         }
         return true;
     }
+
+    /**
+     * 启用禁用
+     *
+     * @param relationStatusVO
+     * @return
+     */
+    public Boolean updateStatus(RelationStatusVO relationStatusVO) {
+        if (relationStatusVO.getStatus() == null) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入启用禁用状态");
+        }
+        baseNodeRepository.updateRelationStatusById(relationStatusVO.getRelationId(), relationStatusVO.getStatus());
+        return true;
+    }
 }

+ 15 - 8
src/main/java/com/diagbot/repository/BaseNodeRepository.java

@@ -4,7 +4,13 @@ package com.diagbot.repository;
 import com.diagbot.entity.DiseaseInfo;
 import com.diagbot.entity.DiseaseProperty;
 import com.diagbot.entity.SymptomNumOfDiS;
-import com.diagbot.entity.node.*;
+import com.diagbot.entity.node.Dept;
+import com.diagbot.entity.node.LisName;
+import com.diagbot.entity.node.LisSet;
+import com.diagbot.entity.node.Medicine;
+import com.diagbot.entity.node.PacsName;
+import com.diagbot.entity.node.YiBaoDiseaseName;
+import com.diagbot.entity.node.YiBaoOperationName;
 import com.diagbot.entity.node.base.BaseNode;
 import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
@@ -16,7 +22,7 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
 
     void delete(BaseNode baseNode);
 
-    <Optional>BaseNode findById(long id);
+    <Optional> BaseNode findById(long id);
 
     List<BaseNode> findByNameIs(String name);
 
@@ -59,15 +65,15 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
 
     //化验查疾病
     @Query("match(d:医保疾病名称)-[r1]->(l:化验套餐名称{name:{lisBig}})-[r:化验套餐名称相关化验细项及结果]->(lr:化验细项及结果{name:{subres}}),(d)-[r2]->(lr) return d.name")
-    List<String> getDisByLis(@Param("lisBig") String lisBig,@Param("subres") String subres);
+    List<String> getDisByLis(@Param("lisBig") String lisBig, @Param("subres") String subres);
 
     //化验查疾病(有特异性)
     @Query("match(d:医保疾病名称)-[r1]->(l:化验套餐名称{name:{lisBig}})-[r:化验套餐名称相关化验细项及结果]->(lr:化验细项及结果{name:{subres}}),(d)-[r2]->(lr) where lr.special='是' return d.name")
-    List<String> getDisByLis_Special(@Param("lisBig") String lisBig,@Param("subres") String subres);
+    List<String> getDisByLis_Special(@Param("lisBig") String lisBig, @Param("subres") String subres);
 
     //化验查疾病(无特异性)
     @Query("match(d:医保疾病名称)-[r1]->(l:化验套餐名称{name:{lisBig}})-[r:化验套餐名称相关化验细项及结果]->(lr:化验细项及结果{name:{subres}}),(d)-[r2]->(lr) where not exists(lr.special) return d.name")
-    List<String> getDisByLis_Other(@Param("lisBig") String lisBig,@Param("subres") String subres);
+    List<String> getDisByLis_Other(@Param("lisBig") String lisBig, @Param("subres") String subres);
 
     @Query("match(d:医保疾病名称)-[r:医保疾病名称相关性别]->(h) return DISTINCT d.name+'&'+h.name")
     List<String> getDisSexClass();
@@ -100,7 +106,7 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
     List<Dept> getDeptbyPinYin(@Param("py") String pycode);
 
     @Query("MATCH (n) WHERE labels(n)[0]={lab} and n.name={nm} set n.静态知识标识={sign}")
-    void updateStaticKnowledgeSign(@Param("lab") String lab,@Param("nm") String nm,@Param("sign") Integer sign);
+    void updateStaticKnowledgeSign(@Param("lab") String lab, @Param("nm") String nm, @Param("sign") Integer sign);
 
     @Query("match(d:医保疾病名称)\n" +
             "return d.name as name, case \n" +
@@ -114,7 +120,7 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
             "case\n" +
             "when d.fbl is not null then d.fbl\n" +
             "else '0'\n" +
-            "end as fbl,\n"+
+            "end as fbl,\n" +
             "case\n" +
             "when d.dept is not null then d.dept\n" +
             "else '医学全科'\n" +
@@ -136,5 +142,6 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
     @Query("match(d:医保疾病名称)-[r:医保疾病名称相关典型症状]->(s:症状) where s.name={py} return d.name")
     List<String> getDisBySymptom_main(@Param("py") String py);
 
-
+    @Query("match ()-[r]->() where id(r)={relationId} set r.状态={status}")
+    void updateRelationStatusById(@Param("relationId") Long relationId, @Param("status") Integer status);
 }

+ 3 - 0
src/main/java/com/diagbot/vo/RelationIdVO.java

@@ -3,6 +3,8 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -11,5 +13,6 @@ import lombok.Setter;
 @Getter
 @Setter
 public class RelationIdVO {
+    @NotNull(message = "请输入关系id")
     private Long relationId;
 }

+ 15 - 0
src/main/java/com/diagbot/vo/RelationStatusVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/11/26 16:00
+ */
+@Getter
+@Setter
+public class RelationStatusVO extends RelationIdVO {
+    private Integer status;
+}

+ 12 - 2
src/main/java/com/diagbot/web/BillManController.java

@@ -10,6 +10,7 @@ import com.diagbot.vo.BillSaveVO;
 import com.diagbot.vo.ConceptIndexVO;
 import com.diagbot.vo.ConditionIndexVO;
 import com.diagbot.vo.RelationIdVO;
+import com.diagbot.vo.RelationStatusVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,8 +38,8 @@ public class BillManController {
     @ApiOperation(value = "获取开单合理项列表[zhaops]",
             notes = "number:页码<br>" +
                     "size:每页条目数<br>" +
-                    "types:术语类型(多选)1-检验套餐、2-检查、3-检查子项、4-手术和操作、5-药品注册名<br>" +
-                    "conceptName:术语名称(模糊匹配)<br>" +
+                    "types:开单类型(多选)1-检验套餐、2-检查、3-检查子项、4-手术和操作、5-药品注册名<br>" +
+                    "conceptName:开单项(模糊匹配)<br>" +
                     "conditionName:条件明细(模糊匹配)<br>" +
                     "relationStatus:启用禁用标志(0-禁用,1-启用)<br>")
     @PostMapping("/getPage")
@@ -82,4 +83,13 @@ public class BillManController {
         Boolean data = billManFacade.saveRecord(billSaveVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "规则启用禁用[zhaops]",
+            notes = "relationId:关系id<br>" +
+                    "status:状态(0-禁用、1-启用)")
+    @PostMapping("/updateStatus")
+    public RespDTO<Boolean> updateStatus(@RequestBody RelationStatusVO relationStatusVO) {
+        Boolean data = billManFacade.updateStatus(relationStatusVO);
+        return RespDTO.onSuc(data);
+    }
 }