Browse Source

静态知识维护

zhaops 4 years ago
parent
commit
2f88dce23b

+ 83 - 0
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -1,8 +1,10 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.dto.KlConceptDetailDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeDetailDTO;
@@ -22,6 +24,8 @@ import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
 import com.diagbot.vo.StaticKnowledgeVO;
@@ -30,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
@@ -293,6 +298,84 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         return true;
     }
 
+    /**
+     * 启用禁用
+     *
+     * @param changeStatusVO
+     * @return
+     */
+    public Boolean changeStatus(ChangeStatusVO changeStatusVO) {
+        //String userId = SysUserUtils.getCurrentPrincipleID();
+        if (changeStatusVO.getUserId() == null) {
+            changeStatusVO.setUserId(0L);
+        }
+        Date now = DateUtil.now();
+        //更新主表
+        this.update(new UpdateWrapper<KlConceptStatic>()
+                .eq("concept_id", changeStatusVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("gmt_modified", now)
+                .set("modifier", changeStatusVO.getUserId())
+                .set("status", changeStatusVO.getStatus()));
+        //更新明细表
+        klConceptDetailService.update(new UpdateWrapper<KlConceptDetail>()
+                .eq("concept_id", changeStatusVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("gmt_modified", now)
+                .set("modifier", changeStatusVO.getUserId()));
+        return true;
+    }
+
+    /**
+     * 根据术语id获取静态信息
+     *
+     * @param idVO
+     * @return
+     */
+    public KlConceptStaticDTO getRecordById(IdVO idVO) {
+        KlConceptStaticDTO klConceptStaticDTO = new KlConceptStaticDTO();
+
+        List<DictionaryInfoDTO> dicTypeName = dictionaryFacade.getListByGroupType(13);
+        Map<String, String> dicTypeNameMap
+                = EntityUtil.makeMapWithKeyValue(dicTypeName, "val", "name");
+
+        KlConcept concept = klConceptFacade.getById(idVO.getId());
+        if (concept == null) {
+            return null;
+        }
+
+        KlConceptStatic staticInfo = this.getOne(new QueryWrapper<KlConceptStatic>()
+                .eq("concept_id", idVO.getId()), false);
+
+        if (staticInfo == null) {
+            return null;
+        }
+
+        List<KlConceptDetail> details = klConceptDetailFacade.list(new QueryWrapper<KlConceptDetail>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", idVO.getId())
+                .orderByAsc("order_no"));
+
+        klConceptStaticDTO.setId(concept.getId());
+        klConceptStaticDTO.setName(concept.getLibName());
+        klConceptStaticDTO.setType(convertType(concept.getLibType(), 2));
+        klConceptStaticDTO.setTypeName(dicTypeNameMap.get(LexiconEnum.getName(concept.getLibType())));
+
+        klConceptStaticDTO.setStatus(staticInfo.getStatus());
+        klConceptStaticDTO.setGmtModified(staticInfo.getGmtModified());
+        klConceptStaticDTO.setModifier(staticInfo.getModifier());
+        klConceptStaticDTO.setClinicalPathwayName(staticInfo.getClinicalPathwayName());
+        klConceptStaticDTO.setNoticeName(staticInfo.getNoticeName());
+
+        klConceptStaticDTO.setTitle(ListUtil.isNotEmpty(details)
+                ? details.stream().map(i -> i.getTitle()).collect(Collectors.joining("、"))
+                : "");
+        klConceptStaticDTO.setDetails(ListUtil.isNotEmpty(details)
+                ? BeanUtil.listCopyTo(details, KlConceptDetailDTO.class)
+                : new ArrayList<>());
+        return klConceptStaticDTO;
+    }
+
 
     public Integer convertType(Integer type, Integer flag) {
         Integer retType = null;

+ 3 - 0
src/main/java/com/diagbot/service/DictionaryInfoService.java

@@ -3,6 +3,8 @@ package com.diagbot.service;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.DictionaryInfo;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -13,6 +15,7 @@ import com.diagbot.entity.DictionaryInfo;
  * @since 2018-12-25
  */
 @DS("master")
+@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
 public interface DictionaryInfoService extends IService<DictionaryInfo> {
 
 }

+ 19 - 0
src/main/java/com/diagbot/vo/ChangeStatusVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/8/24 17:23
+ */
+@Getter
+@Setter
+public class ChangeStatusVO {
+    private Long id;
+    private Integer status;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+}

+ 22 - 0
src/main/java/com/diagbot/web/KlConceptStaticController.java

@@ -6,6 +6,8 @@ import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.facade.KlConceptStaticFacade;
+import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
 import com.diagbot.vo.StaticKnowledgeVO;
@@ -68,4 +70,24 @@ public class KlConceptStaticController {
         Boolean data = klConceptStaticFacade.saveOrUpdateRecord(klConceptStaticVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "静态知识启用禁用[zhaops]",
+            notes = "id: 术语id <br>" +
+                    "status: 启用状态(0:禁用,1:启用)<br>")
+    @PostMapping("/changeStatus")
+    @SysLogger("changeStatus")
+    @Transactional
+    public RespDTO<Boolean> changeStatus(@Valid @RequestBody ChangeStatusVO changeStatusVO) {
+        Boolean data = klConceptStaticFacade.changeStatus(changeStatusVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据术语id获取静态信息[zhaops]",
+            notes = "id: 术语id <br>")
+    @PostMapping("/getRecordById")
+    @SysLogger("getRecordById")
+    public RespDTO<KlConceptStaticDTO> getRecordById(@Valid @RequestBody IdVO idVO) {
+        KlConceptStaticDTO data = klConceptStaticFacade.getRecordById(idVO);
+        return RespDTO.onSuc(data);
+    }
 }