Forráskód Böngészése

量表维护代码

wangfeng 4 éve
szülő
commit
15327eb9d5
26 módosított fájl, 1251 hozzáadás és 0 törlés
  1. 49 0
      src/main/java/com/diagbot/dto/KlScaleByIdDTO.java
  2. 83 0
      src/main/java/com/diagbot/dto/KlScaleDetailDTO.java
  3. 47 0
      src/main/java/com/diagbot/dto/KlScaleInfoDTO.java
  4. 234 0
      src/main/java/com/diagbot/entity/KlConceptScale.java
  5. 19 0
      src/main/java/com/diagbot/entity/wrapper/KlScaleDetailWrapper.java
  6. 63 0
      src/main/java/com/diagbot/facade/KlConceptScaleFacade.java
  7. 180 0
      src/main/java/com/diagbot/facade/KlScaleFacade.java
  8. 21 0
      src/main/java/com/diagbot/mapper/KlConceptScaleMapper.java
  9. 10 0
      src/main/java/com/diagbot/mapper/KlConceptStaticMapper.java
  10. 20 0
      src/main/java/com/diagbot/service/KlConceptScaleService.java
  11. 10 0
      src/main/java/com/diagbot/service/KlConceptStaticService.java
  12. 28 0
      src/main/java/com/diagbot/service/impl/KlConceptScaleServiceImpl.java
  13. 15 0
      src/main/java/com/diagbot/service/impl/KlConceptStaticServiceImpl.java
  14. 17 0
      src/main/java/com/diagbot/vo/KlScaleByIdVO.java
  15. 15 0
      src/main/java/com/diagbot/vo/KlScaleClearVO.java
  16. 17 0
      src/main/java/com/diagbot/vo/KlScaleDetailMenuVO.java
  17. 19 0
      src/main/java/com/diagbot/vo/KlScaleInfoVO.java
  18. 15 0
      src/main/java/com/diagbot/vo/KlScaleSatartOrdisaVO.java
  19. 55 0
      src/main/java/com/diagbot/vo/KlScaleSaveUpDetailVO.java
  20. 57 0
      src/main/java/com/diagbot/vo/KlScaleSaveUpParentVO.java
  21. 42 0
      src/main/java/com/diagbot/vo/KlScaleSaveUpVO.java
  22. 53 0
      src/main/java/com/diagbot/vo/KlScaleSubDetailVO.java
  23. 20 0
      src/main/java/com/diagbot/web/KlConceptScaleController.java
  24. 82 0
      src/main/java/com/diagbot/web/KlScaleController.java
  25. 30 0
      src/main/resources/mapper/KlConceptScaleMapper.xml
  26. 50 0
      src/main/resources/mapper/KlConceptStaticMapper.xml

+ 49 - 0
src/main/java/com/diagbot/dto/KlScaleByIdDTO.java

@@ -0,0 +1,49 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:36
+ */
+@Setter
+@Getter
+public class KlScaleByIdDTO {
+
+    private Long id;
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    private String conceptName;
+
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+
+    /**
+     * 量表明细
+     */
+    private List<KlScaleDetailWrapper> klScaleDetail ;
+}

+ 83 - 0
src/main/java/com/diagbot/dto/KlScaleDetailDTO.java

@@ -0,0 +1,83 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:32
+ */
+@Setter
+@Getter
+public class KlScaleDetailDTO {
+
+    private Long id;
+
+
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * -1:表示顶级,其他值表示上级菜单的id
+     */
+    private Long parentId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    private String remark;
+
+    private List<KlScaleDetailDTO> klScaleDetailSub = new ArrayList<>();
+}

+ 47 - 0
src/main/java/com/diagbot/dto/KlScaleInfoDTO.java

@@ -0,0 +1,47 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:30
+ */
+@Setter
+@Getter
+public class KlScaleInfoDTO {
+
+    private Long id;
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    private String conceptName;
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 量表明细
+     */
+   // private List<KlScaleDetailDTO> klScaleDetail = new ArrayList<>();
+}

+ 234 - 0
src/main/java/com/diagbot/entity/KlConceptScale.java

@@ -0,0 +1,234 @@
+package com.diagbot.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+public class KlConceptScale implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * -1:表示顶级,其他值表示上级菜单的id
+     */
+    private Long parentId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+    public String getRuleCode() {
+        return ruleCode;
+    }
+
+    public void setRuleCode(String ruleCode) {
+        this.ruleCode = ruleCode;
+    }
+    public BigDecimal getScore() {
+        return score;
+    }
+
+    public void setScore(BigDecimal score) {
+        this.score = score;
+    }
+    public Integer getTextType() {
+        return textType;
+    }
+
+    public void setTextType(Integer textType) {
+        this.textType = textType;
+    }
+    public Integer getSelectType() {
+        return selectType;
+    }
+
+    public void setSelectType(Integer selectType) {
+        this.selectType = selectType;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlConceptScale{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", parentId=" + parentId +
+            ", content=" + content +
+            ", ruleCode=" + ruleCode +
+            ", score=" + score +
+            ", textType=" + textType +
+            ", selectType=" + selectType +
+            ", orderNo=" + orderNo +
+            ", status=" + status +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 19 - 0
src/main/java/com/diagbot/entity/wrapper/KlScaleDetailWrapper.java

@@ -0,0 +1,19 @@
+package com.diagbot.entity.wrapper;
+
+import com.diagbot.entity.KlConceptScale;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 11:32
+ */
+@Setter
+@Getter
+public class KlScaleDetailWrapper extends KlConceptScale {
+    private List<KlScaleDetailWrapper> subMenuList = new ArrayList<>();
+}

+ 63 - 0
src/main/java/com/diagbot/facade/KlConceptScaleFacade.java

@@ -0,0 +1,63 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.KlConceptScale;
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.KlConceptScaleServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.KlScaleDetailMenuVO;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:45
+ */
+@Component
+public class KlConceptScaleFacade extends KlConceptScaleServiceImpl {
+
+    public List<KlScaleDetailWrapper> getKlScaleDetailData(KlScaleDetailMenuVO klScaleDetailMenuVO) {
+        //添加菜单信息
+        List<KlConceptScale> list = this.list(new QueryWrapper<KlConceptScale>()
+                .in("concept_id", klScaleDetailMenuVO.getConceptId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<KlScaleDetailWrapper> menuList = new ArrayList<>();
+        menuList = BeanUtil.listCopyTo(list, KlScaleDetailWrapper.class);
+        Map<Long, List<KlScaleDetailWrapper>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
+        List<KlScaleDetailWrapper> menuRes = menuMap.get(-1L);
+        if (ListUtil.isNotEmpty(menuRes)) {
+            for (KlScaleDetailWrapper bean : menuRes) {
+                getSonMenu(bean, menuMap);
+            }
+        }
+        return menuRes;
+    }
+
+
+    /**
+     * 递归获取菜单结构
+     *
+     * @param menu    当前菜单
+     * @param menuMap 菜单集
+     * @return 菜单结构
+     */
+    public List<KlScaleDetailWrapper> getSonMenu(KlScaleDetailWrapper menu,
+                                                 Map<Long, List<KlScaleDetailWrapper>> menuMap) {
+        List<KlScaleDetailWrapper> res = new ArrayList<>();
+        List<KlScaleDetailWrapper> list = menuMap.get(menu.getId());
+        if (ListUtil.isNotEmpty(list)) {
+            menu.setSubMenuList(list);
+            for (KlScaleDetailWrapper bean : list) {
+                getSonMenu(bean, menuMap);
+            }
+        }
+        return res;
+    }
+}

+ 180 - 0
src/main/java/com/diagbot/facade/KlScaleFacade.java

@@ -0,0 +1,180 @@
+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.KlScaleByIdDTO;
+import com.diagbot.dto.KlScaleInfoDTO;
+import com.diagbot.entity.KlConceptScale;
+import com.diagbot.entity.KlConceptStatic;
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.KlScaleClearVO;
+import com.diagbot.vo.KlScaleDetailMenuVO;
+import com.diagbot.vo.KlScaleInfoVO;
+import com.diagbot.vo.KlScaleSatartOrdisaVO;
+import com.diagbot.vo.KlScaleSaveUpDetailVO;
+import com.diagbot.vo.KlScaleSaveUpParentVO;
+import com.diagbot.vo.KlScaleSaveUpVO;
+import com.diagbot.vo.KlScaleSubDetailVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:29
+ */
+@Component
+public class KlScaleFacade {
+    @Autowired
+    KlConceptScaleFacade klConceptScaleFacade;
+    @Autowired
+    KlConceptStaticFacade klConceptStaticFacade;
+
+    public IPage<KlScaleInfoDTO> getKlScaleInfoAll(KlScaleInfoVO klScaleInfoVO) {
+        IPage<KlScaleInfoDTO> klScaleInfoPage = klConceptStaticFacade.getKlScaleInfoPage(klScaleInfoVO);
+        return klScaleInfoPage;
+    }
+
+    /**
+     * @param klScaleByIdVO
+     * @return
+     */
+    public List<KlScaleByIdDTO> getKlScaleById(KlScaleByIdVO klScaleByIdVO) {
+        List<KlScaleByIdDTO> klScaleInfoData = klConceptStaticFacade.getklScaleInfo(klScaleByIdVO);
+        List<Long> conceptId = new ArrayList<>();
+        if (ListUtil.isNotEmpty(klScaleInfoData)) {
+            for (KlScaleByIdDTO data : klScaleInfoData) {
+                conceptId.add(data.getConceptId());
+            }
+        }
+        if (ListUtil.isEmpty(conceptId)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在!");
+        }
+        KlScaleDetailMenuVO detailMenuVO = new KlScaleDetailMenuVO();
+        detailMenuVO.setConceptId(conceptId);
+        List<KlScaleDetailWrapper> vteFormDetailData = klConceptScaleFacade.getKlScaleDetailData(detailMenuVO);
+        //把子级数据,放在父级下
+        Map<Long, List<KlScaleDetailWrapper>> mapParentId = vteFormDetailData.stream().collect(Collectors.groupingBy(KlScaleDetailWrapper::getConceptId));
+        for (Long key : mapParentId.keySet()) {
+            for (KlScaleByIdDTO klScaleByIdData : klScaleInfoData) {
+                if (klScaleByIdData.getConceptId().equals(key)) {
+                    klScaleByIdData.setKlScaleDetail(mapParentId.get(key));
+                }
+            }
+        }
+        return klScaleInfoData;
+    }
+
+    public Boolean saveUpKlScaleAll(KlScaleSaveUpVO klScaleSaveUpVO) {
+        boolean res = false;
+        Date now = DateUtil.now();
+        int count = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", klScaleSaveUpVO.getConceptId())
+                .ne("id", klScaleSaveUpVO.getId() == null ? -1 : klScaleSaveUpVO.getId()));
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该量表已存在");
+        }
+        UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
+        KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleSaveUpVO.getConceptId());
+        res = klConceptScaleFacade.remove(KlConceptScaleUp);
+        if (null == klScaleSaveUpVO.getId()) {
+            KlConceptStatic klScale = new KlConceptStatic();
+            klScale.setConceptId(klScaleSaveUpVO.getConceptId());
+            klScale.setGmtModified(now);
+            klScale.setModifier("");
+            klScale.setStatus(1);
+            res = klConceptStaticFacade.save(klScale);
+        } else {
+            UpdateWrapper<KlConceptStatic> klScaleUp = new UpdateWrapper<>();
+            klScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", klScaleSaveUpVO.getId())
+                    .set("concept_id", klScaleSaveUpVO.getConceptId())
+                    .set("modifier", "")
+                    .set("gmt_modified", now);
+            ;
+            res = klConceptStaticFacade.update(klScaleUp);
+        }
+        if (res) {
+            List<KlScaleSaveUpParentVO> klScaleParent = klScaleSaveUpVO.getKlScaleParent();
+            if (ListUtil.isNotEmpty(klScaleParent)) {
+                for (KlScaleSaveUpParentVO data : klScaleParent) {
+                    KlConceptScale klConceptScale = new KlConceptScale();
+                    BeanUtil.copyProperties(data, klConceptScale);
+                    klConceptScale.setGmtModified(now);
+                    klConceptScale.setModifier("");
+                    klConceptScale.setParentId(-1L);
+                    klConceptScale.setConceptId(klScaleSaveUpVO.getConceptId());
+                    res = klConceptScaleFacade.save(klConceptScale);
+                    List<KlScaleSaveUpDetailVO> klScaleSub = data.getKlScaleSub();
+                    if (ListUtil.isNotEmpty(klScaleSub)) {
+                        for (KlScaleSaveUpDetailVO data1 : klScaleSub) {
+                            KlConceptScale klConceptScaleSub = new KlConceptScale();
+                            BeanUtil.copyProperties(data1, klConceptScaleSub);
+                            klConceptScaleSub.setGmtModified(now);
+                            klConceptScaleSub.setModifier("");
+                            klConceptScaleSub.setParentId(klConceptScale.getId());
+                            klConceptScaleSub.setConceptId(klScaleSaveUpVO.getConceptId());
+                            res = klConceptScaleFacade.save(klConceptScaleSub);
+                            List<KlScaleSubDetailVO> klScaleDetail = data1.getKlScaleDetail();
+                            if (ListUtil.isNotEmpty(klScaleDetail)) {
+                                for (KlScaleSubDetailVO data2 : klScaleDetail) {
+                                    KlConceptScale klConceptScaleDetail = new KlConceptScale();
+                                    BeanUtil.copyProperties(data2, klConceptScaleDetail);
+                                    klConceptScaleDetail.setGmtModified(now);
+                                    klConceptScaleDetail.setModifier("");
+                                    klConceptScaleDetail.setParentId(klConceptScaleSub.getId());
+                                    klConceptScaleDetail.setConceptId(klScaleSaveUpVO.getConceptId());
+                                    res = klConceptScaleFacade.save(klConceptScaleDetail);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        return res;
+    }
+
+    public Boolean clearKlScaleAll(KlScaleClearVO klScaleClearVO) {
+        boolean res = false;
+        UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
+        KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
+        res = klConceptScaleFacade.remove(KlConceptScaleUp);
+        UpdateWrapper<KlConceptStatic> klScale = new UpdateWrapper<>();
+        klScale.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
+        res = klConceptStaticFacade.remove(klScale);
+        return res;
+    }
+
+    public Boolean startOrDisableScale(KlScaleSatartOrdisaVO klScaleSatartOrdisaVO, int start) {
+        boolean res = false;
+        Date now = DateUtil.now();
+        int sum = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>().eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", klScaleSatartOrdisaVO.getId()));
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存在!");
+        }
+        UpdateWrapper<KlConceptStatic> klScaleUpdate = new UpdateWrapper<>();
+        klScaleUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", klScaleSatartOrdisaVO.getId())
+                .set("status", start)
+                .set("modifier", "")
+                .set("gmt_modified", now);
+        return klConceptStaticFacade.update(klScaleUpdate);
+    }
+}

+ 21 - 0
src/main/java/com/diagbot/mapper/KlConceptScaleMapper.java

@@ -0,0 +1,21 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.KlConceptScale;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import com.diagbot.vo.KlScaleDetailMenuVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+public interface KlConceptScaleMapper extends BaseMapper<KlConceptScale> {
+
+    List<KlScaleDetailWrapper> getKlScaleDetailMenu(KlScaleDetailMenuVO klScaleDetailMenuVO);
+}

+ 10 - 0
src/main/java/com/diagbot/mapper/KlConceptStaticMapper.java

@@ -3,12 +3,18 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.dto.KlScaleByIdDTO;
+import com.diagbot.dto.KlScaleInfoDTO;
 import com.diagbot.dto.StaticKnowledgeIndexPageDTO;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.vo.KlConceptStaticPageVO;
+import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.KlScaleInfoVO;
 import com.diagbot.vo.StaticKnowledgeIndexPageVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 静态知识标准术语表 Mapper 接口
@@ -22,4 +28,8 @@ public interface KlConceptStaticMapper extends BaseMapper<KlConceptStatic> {
     IPage<KlConceptStaticDTO> getPage(@Param("klConceptStaticPageVO") KlConceptStaticPageVO klConceptStaticPageVO);
 
     IPage<StaticKnowledgeIndexPageDTO> staticIndexPage(@Param("staticKnowledgeIndexPageVO") StaticKnowledgeIndexPageVO staticKnowledgeIndexPageVO);
+
+    IPage<KlScaleInfoDTO> getKlScaleInfoPage(KlScaleInfoVO klScaleInfoVO);
+
+    List<KlScaleByIdDTO> getklScaleInfo(KlScaleByIdVO klScaleByIdVO);
 }

+ 20 - 0
src/main/java/com/diagbot/service/KlConceptScaleService.java

@@ -0,0 +1,20 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.KlConceptScale;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import com.diagbot.vo.KlScaleDetailMenuVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+public interface KlConceptScaleService extends IService<KlConceptScale> {
+    List<KlScaleDetailWrapper>  getKlScaleDetailMenu(KlScaleDetailMenuVO klScaleDetailMenuVO);
+}

+ 10 - 0
src/main/java/com/diagbot/service/KlConceptStaticService.java

@@ -3,12 +3,18 @@ package com.diagbot.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.dto.KlScaleByIdDTO;
+import com.diagbot.dto.KlScaleInfoDTO;
 import com.diagbot.dto.StaticKnowledgeIndexPageDTO;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.vo.KlConceptStaticPageVO;
+import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.KlScaleInfoVO;
 import com.diagbot.vo.StaticKnowledgeIndexPageVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 静态知识标准术语表 服务类
@@ -22,4 +28,8 @@ public interface KlConceptStaticService extends IService<KlConceptStatic> {
     IPage<KlConceptStaticDTO> getPage(@Param("klConceptStaticPageVO") KlConceptStaticPageVO klConceptStaticPageVO);
 
     IPage<StaticKnowledgeIndexPageDTO> staticIndexPage(@Param("staticKnowledgeIndexPageVO") StaticKnowledgeIndexPageVO staticKnowledgeIndexPageVO);
+
+    IPage<KlScaleInfoDTO> getKlScaleInfoPage(KlScaleInfoVO klScaleInfoVO);
+
+    List<KlScaleByIdDTO> getklScaleInfo(KlScaleByIdVO klScaleByIdVO);
 }

+ 28 - 0
src/main/java/com/diagbot/service/impl/KlConceptScaleServiceImpl.java

@@ -0,0 +1,28 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.KlConceptScale;
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
+import com.diagbot.mapper.KlConceptScaleMapper;
+import com.diagbot.service.KlConceptScaleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.KlScaleDetailMenuVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+@Service
+public class KlConceptScaleServiceImpl extends ServiceImpl<KlConceptScaleMapper, KlConceptScale> implements KlConceptScaleService {
+
+    @Override
+    public List<KlScaleDetailWrapper> getKlScaleDetailMenu(KlScaleDetailMenuVO klScaleDetailMenuVO) {
+        return baseMapper.getKlScaleDetailMenu(klScaleDetailMenuVO);
+    }
+}

+ 15 - 0
src/main/java/com/diagbot/service/impl/KlConceptStaticServiceImpl.java

@@ -3,15 +3,21 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.dto.KlScaleByIdDTO;
+import com.diagbot.dto.KlScaleInfoDTO;
 import com.diagbot.dto.StaticKnowledgeIndexPageDTO;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.mapper.KlConceptStaticMapper;
 import com.diagbot.service.KlConceptStaticService;
 import com.diagbot.vo.KlConceptStaticPageVO;
+import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.KlScaleInfoVO;
 import com.diagbot.vo.StaticKnowledgeIndexPageVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 静态知识标准术语表 服务实现类
@@ -32,4 +38,13 @@ public class KlConceptStaticServiceImpl extends ServiceImpl<KlConceptStaticMappe
     public IPage<StaticKnowledgeIndexPageDTO> staticIndexPage(@Param("staticKnowledgeIndexPageVO") StaticKnowledgeIndexPageVO staticKnowledgeIndexPageVO) {
         return baseMapper.staticIndexPage(staticKnowledgeIndexPageVO);
     }
+    @Override
+    public IPage<KlScaleInfoDTO> getKlScaleInfoPage(KlScaleInfoVO klScaleInfoVO) {
+        return baseMapper.getKlScaleInfoPage(klScaleInfoVO);
+    }
+
+    @Override
+    public List<KlScaleByIdDTO> getklScaleInfo(KlScaleByIdVO klScaleByIdVO) {
+        return baseMapper.getklScaleInfo(klScaleByIdVO);
+    }
 }

+ 17 - 0
src/main/java/com/diagbot/vo/KlScaleByIdVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:37
+ */
+@Setter
+@Getter
+public class KlScaleByIdVO {
+    private Long id;
+    private String conceptName;
+    private Integer status;
+}

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

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 17:10
+ */
+@Setter
+@Getter
+public class KlScaleClearVO {
+    private Long conceptId;
+}

+ 17 - 0
src/main/java/com/diagbot/vo/KlScaleDetailMenuVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 13:13
+ */
+@Setter
+@Getter
+public class KlScaleDetailMenuVO {
+    private List<Long> conceptId;
+}

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

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-10 10:38
+ */
+@Setter
+@Getter
+public class KlScaleInfoVO extends Page {
+    private Long conceptId;
+    private Integer status;
+    private String conceptName;
+    private String description;
+}

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

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-05-11 11:35
+ */
+@Setter
+@Getter
+public class KlScaleSatartOrdisaVO {
+    private Long id;
+}

+ 55 - 0
src/main/java/com/diagbot/vo/KlScaleSaveUpDetailVO.java

@@ -0,0 +1,55 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: 问题 第二层
+ * @date 2021-05-10 14:11
+ */
+@Setter
+@Getter
+public class KlScaleSaveUpDetailVO {
+    /**
+     * 内容
+     */
+    private String content;
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    private String remark;
+
+    List<KlScaleSubDetailVO> KlScaleDetail;
+}

+ 57 - 0
src/main/java/com/diagbot/vo/KlScaleSaveUpParentVO.java

@@ -0,0 +1,57 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: 第一层
+ * @date 2021-05-10 14:13
+ */
+@Setter
+@Getter
+public class KlScaleSaveUpParentVO {
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    private String remark;
+
+    List<KlScaleSaveUpDetailVO> klScaleSub;
+
+}

+ 42 - 0
src/main/java/com/diagbot/vo/KlScaleSaveUpVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: 总
+ * @date 2021-05-10 14:08
+ */
+@Setter
+@Getter
+public class KlScaleSaveUpVO {
+    private Long Id;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    private String conceptName;
+
+   /* *//**
+     * 量表描述
+     *//*
+    private String description;
+*/
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private List<KlScaleSaveUpParentVO> KlScaleParent;
+}

+ 53 - 0
src/main/java/com/diagbot/vo/KlScaleSubDetailVO.java

@@ -0,0 +1,53 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wangfeng
+ * @Description: 选项 第三层
+ * @date 2021-05-10 14:15
+ */
+@Setter
+@Getter
+public class KlScaleSubDetailVO {
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    private String remark;
+
+}

+ 20 - 0
src/main/java/com/diagbot/web/KlConceptScaleController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+@Controller
+@RequestMapping("/klConceptScale")
+public class KlConceptScaleController {
+
+}

+ 82 - 0
src/main/java/com/diagbot/web/KlScaleController.java

@@ -0,0 +1,82 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlScaleByIdDTO;
+import com.diagbot.dto.KlScaleInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.facade.KlScaleFacade;
+import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.KlScaleInfoVO;
+import com.diagbot.vo.KlScaleSatartOrdisaVO;
+import com.diagbot.vo.KlScaleSaveUpVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ * 量表结构表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-05-10
+ */
+
+@RestController
+@RequestMapping("/klScale")
+@Api(value = "量表结构表相关API", tags = { "量表结构表相关API" })
+@SuppressWarnings("unchecked")
+public class KlScaleController {
+
+    @Autowired
+    KlScaleFacade klScaleFacade;
+
+    @ApiOperation(value = "分页获取量表结构表列表[by:wangfeng]")
+    @PostMapping("/getKlScaleInfoPage")
+    @SysLogger("getKlScaleInfoPage")
+    public RespDTO<IPage<KlScaleInfoDTO>> getKlScaleInfoPages(@RequestBody KlScaleInfoVO klScaleInfoVO) {
+        return RespDTO.onSuc(klScaleFacade.getKlScaleInfoAll(klScaleInfoVO));
+    }
+
+
+    @ApiOperation(value = "根据id获取量表结构[by:wangfeng]", notes = "根据id获取量表结构[by:wangfeng]")
+    @PostMapping("/getKlScaleById")
+    @SysLogger("getKlScaleById")
+    public RespDTO<List<KlScaleByIdDTO>> getKlScaleByIds(@RequestBody @Valid KlScaleByIdVO klScaleByIdVO) {
+        List<KlScaleByIdDTO> data = klScaleFacade.getKlScaleById(klScaleByIdVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存修改获取量表结构[by:wangfeng]", notes = "保存修改获取量表结构[by:wangfeng]")
+    @PostMapping("/saveUpKlScale")
+    @SysLogger("saveUpKlScale")
+    public RespDTO<Boolean> saveUpKlScales(@RequestBody @Valid KlScaleSaveUpVO klScaleSaveUpVO) {
+        Boolean res = klScaleFacade.saveUpKlScaleAll(klScaleSaveUpVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "停用量表[by:wangfeng]")
+    @PostMapping("/disableKlScale")
+    @SysLogger("disableKlScale")
+    public RespDTO<Boolean> disableKlScales(@RequestBody @Valid KlScaleSatartOrdisaVO klScaleSatartOrdisaVO) {
+        return RespDTO.onSuc(klScaleFacade.startOrDisableScale(klScaleSatartOrdisaVO, StatusEnum.Disable.getKey()));
+    }
+
+    @ApiOperation(value = "启用量表[by:wangfeng]")
+    @PostMapping("/startKlScale")
+    @SysLogger("startKlScale")
+    public RespDTO<Boolean> startKlScales(@RequestBody @Valid KlScaleSatartOrdisaVO klScaleSatartOrdisaVO) {
+        return RespDTO.onSuc(klScaleFacade.startOrDisableScale(klScaleSatartOrdisaVO, StatusEnum.Enable.getKey()));
+    }
+
+}

+ 30 - 0
src/main/resources/mapper/KlConceptScaleMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.KlConceptScaleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.wrapper.KlScaleDetailWrapper">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="concept_id" property="conceptId" />
+        <result column="parent_id" property="parentId" />
+        <result column="content" property="content" />
+        <result column="rule_code" property="ruleCode" />
+        <result column="score" property="score" />
+        <result column="text_type" property="textType" />
+        <result column="select_type" property="selectType" />
+        <result column="order_no" property="orderNo" />
+        <result column="status" property="status" />
+        <result column="remark" property="remark" />
+    </resultMap>
+    <select id="getKlScaleDetailMenu" resultMap="BaseResultMap">
+        select * from kl_concept_scale where is_deleted = 'N'
+        <if test="conceptId!=null">
+            and concept_id = #{conceptId}
+        </if>
+    </select>
+</mapper>

+ 50 - 0
src/main/resources/mapper/KlConceptStaticMapper.xml

@@ -445,4 +445,54 @@
         s.isConcept DESC
         ) f
     </select>
+    <select id="getKlScaleInfoPage" resultType="com.diagbot.dto.KlScaleInfoDTO">
+        SELECT
+        a.`id` AS id,
+        a.`gmt_modified` AS gmtModified,
+        a.`modifier` AS MODIFIER,
+        a.`concept_id` AS conceptId,
+        b.`lib_name` AS conceptName,
+        a.`status`
+        FROM
+        kl_concept_static a
+        LEFT JOIN kl_concept b
+        ON a.concept_id = b.id
+        WHERE a.`is_deleted` = "N"
+        AND b.`is_deleted` = "N"
+        AND b.`lib_type` = 124
+        <if test="conceptId != null">
+            AND a.concept_id = #{conceptId}
+        </if>
+        <if test="conceptName!=null and conceptName!=''">
+            AND UPPER(b.lib_name) LIKE CONCAT('%', UPPER(trim(#{conceptName})), '%')
+        </if>
+        <if test="status != null">
+            AND a.status = #{status}
+        </if>
+    </select>
+    <select id="getklScaleInfo"  resultType="com.diagbot.dto.KlScaleByIdDTO">
+        SELECT
+        a.`id` AS id,
+        a.`gmt_modified` AS gmtModified,
+        a.`modifier` AS MODIFIER,
+        a.`concept_id` AS conceptId,
+        b.`lib_name` AS conceptName,
+        a.`status`
+        FROM
+        kl_concept_static a
+        LEFT JOIN kl_concept b
+        ON a.concept_id = b.id
+        WHERE a.`is_deleted` = "N"
+        AND b.`is_deleted` = "N"
+        AND b.`lib_type` = 124
+        <if test="id != null">
+            AND a.id = #{id}
+        </if>
+        <if test="conceptName!=null and conceptName!=''">
+            AND UPPER(b.lib_name) LIKE CONCAT('%', UPPER(trim(#{conceptName})), '%')
+        </if>
+        <if test="status != null">
+            AND a.status = #{status}
+        </if>
+    </select>
 </mapper>