wangfeng 4 лет назад
Родитель
Сommit
81a4e6d56c

+ 199 - 0
src/main/java/com/diagbot/entity/KlRulePlan.java

@@ -0,0 +1,199 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+public class KlRulePlan implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 资源ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Long ruleType;
+
+    private Integer number;
+    /**
+     * -1:表示顶级,其他值表示上级菜单的id
+     */
+    private Long parentId;
+
+    /**
+     * 基础规则类型
+     */
+    private String name;
+
+    private Integer type;
+
+    /**
+     * 类型编码
+     */
+    private String code;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    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 LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime 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 getRuleType() {
+        return ruleType;
+    }
+
+    public void setRuleType(Long ruleType) {
+        this.ruleType = ruleType;
+    }
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    @Override
+    public String toString() {
+        return "KlRulePlan{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", ruleType=" + ruleType +
+            ", parentId=" + parentId +
+            ", name=" + name +
+            ", type=" + type +
+            ", code=" + code +
+            ", orderNo=" + orderNo +
+            ", remark=" + remark +
+        "}";
+    }
+}

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

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

+ 53 - 0
src/main/java/com/diagbot/facade/KlRulePlanFacade.java

@@ -0,0 +1,53 @@
+package com.diagbot.facade;
+
+import com.diagbot.entity.wrapper.KlRuleMenuWrapper;
+import com.diagbot.service.impl.KlRulePlanServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.KlRuleMenuVO;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 10:17
+ */
+@Component
+public class KlRulePlanFacade extends KlRulePlanServiceImpl {
+
+    public List<KlRuleMenuWrapper> getMenu(KlRuleMenuVO klRuleMenuVO) {
+        //添加菜单信息
+        List<KlRuleMenuWrapper> menuList = getComeMenu(klRuleMenuVO);
+        Map<Long, List<KlRuleMenuWrapper>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
+        List<KlRuleMenuWrapper> menuRes = menuMap.get(-1L);
+        if (ListUtil.isNotEmpty(menuRes)) {
+            for (KlRuleMenuWrapper bean : menuRes) {
+                getSonMenu(bean, menuMap);
+            }
+        }
+        return  menuRes;
+    }
+    /**
+     * 递归获取菜单结构
+     *
+     * @param menu    当前菜单
+     * @param menuMap 菜单集
+     * @return 菜单结构
+     */
+    public List<KlRuleMenuWrapper> getSonMenu(KlRuleMenuWrapper menu,
+                                           Map<Long, List<KlRuleMenuWrapper>> menuMap) {
+        List<KlRuleMenuWrapper> res = new ArrayList<>();
+        List<KlRuleMenuWrapper> list = menuMap.get(menu.getId());
+        if (ListUtil.isNotEmpty(list)) {
+            menu.setSubMenuList(list);
+            for (KlRuleMenuWrapper bean : list) {
+                getSonMenu(bean, menuMap);
+            }
+        }
+        return res;
+    }
+}

+ 20 - 0
src/main/java/com/diagbot/mapper/KlRulePlanMapper.java

@@ -0,0 +1,20 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlRulePlan;
+import com.diagbot.entity.wrapper.KlRuleMenuWrapper;
+import com.diagbot.vo.KlRuleMenuVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+public interface KlRulePlanMapper extends BaseMapper<KlRulePlan> {
+    List<KlRuleMenuWrapper> getComeMenu(KlRuleMenuVO klRuleMenuVO);
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.KlRulePlan;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.wrapper.KlRuleMenuWrapper;
+import com.diagbot.vo.KlRuleMenuVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+public interface KlRulePlanService extends IService<KlRulePlan> {
+    List<KlRuleMenuWrapper>  getComeMenu(KlRuleMenuVO klRuleMenuVO);
+}

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

@@ -0,0 +1,28 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.KlRulePlan;
+import com.diagbot.entity.wrapper.KlRuleMenuWrapper;
+import com.diagbot.mapper.KlRulePlanMapper;
+import com.diagbot.service.KlRulePlanService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.KlRuleMenuVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+@Service
+public class KlRulePlanServiceImpl extends ServiceImpl<KlRulePlanMapper, KlRulePlan> implements KlRulePlanService {
+
+    @Override
+    public List<KlRuleMenuWrapper> getComeMenu(KlRuleMenuVO klRuleMenuVO) {
+        return baseMapper.getComeMenu(klRuleMenuVO);
+    }
+}

+ 18 - 0
src/main/java/com/diagbot/vo/KlRuleMenuVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 13:35
+ */
+@Setter
+@Getter
+public class KlRuleMenuVO {
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Integer ruleType;
+}

+ 46 - 0
src/main/java/com/diagbot/web/KlRulePlanController.java

@@ -0,0 +1,46 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.KlRulePlan;
+import com.diagbot.entity.wrapper.KlRuleMenuWrapper;
+import com.diagbot.facade.KlRulePlanFacade;
+import com.diagbot.vo.KlRuleMenuVO;
+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.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+@RestController
+@Api(value = "规则下拉菜单API", tags = { "规则下拉菜单API" })
+@RequestMapping("/klRulePlan")
+@SuppressWarnings("unchecked")
+public class KlRulePlanController {
+
+    @Autowired
+    KlRulePlanFacade klRulePlanFacade;
+
+    @ApiOperation(value = "获取规则下拉菜单信息[by:wangfeng]",
+            notes = "")
+    @PostMapping("/getMenu")
+    @SysLogger("getMenu")
+    public RespDTO<List<KlRuleMenuWrapper>> getMenus(@RequestBody KlRuleMenuVO klRuleMenuVO) {
+        return RespDTO.onSuc( klRulePlanFacade.getMenu(klRuleMenuVO));
+    }
+}

+ 28 - 0
src/main/resources/mapper/KlRulePlanMapper.xml

@@ -0,0 +1,28 @@
+<?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.KlRulePlanMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.wrapper.KlRuleMenuWrapper">
+        <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="rule_type" property="ruleType"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="number" property="number"/>
+        <result column="code" property="code"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+    <select id="getComeMenu" resultMap="BaseResultMap">
+        select * from kl_rule_plan where is_deleted = 'N'
+        <if test="ruleType!=null">
+            and rule_type = #{ruleType}
+        </if>
+    </select>
+</mapper>