Selaa lähdekoodia

诊断量表结构

zhoutg 6 vuotta sitten
vanhempi
commit
706a98bf31

+ 0 - 1
icss-service/src/main/java/com/diagbot/facade/ScaleContentFacade.java

@@ -31,7 +31,6 @@ public class ScaleContentFacade extends ScaleContentServiceImpl {
         //看需是否要调用大数据
         for (ScaleContent scaleContent : data) {
             if (ScaleTypeEnum.PUSH.getKey() == scaleContent.getType()) {
-                //TODO 调用推理
                 scaleContent.setContent("大数据json字符串");
                 break;
             }

+ 83 - 0
icssman-service/src/main/java/com/diagbot/entity/ScaleContent.java

@@ -0,0 +1,83 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 量表内容表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+@TableName("icss_scale_content")
+@Getter
+@Setter
+public class ScaleContent 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 scaleId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 0:文本,1:大数据接口填充
+     */
+    private Integer type;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 10 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -19,6 +19,7 @@ import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.QuestionMapping;
 import com.diagbot.entity.RetrievalMapping;
+import com.diagbot.entity.ScaleContent;
 import com.diagbot.entity.VitalOrder;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.entity.wrapper.QuestionMappingWrapper;
@@ -100,6 +101,8 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
     DisTypeFacade disTypeFacade;
     @Autowired
     DisScaleFacade disScaleFacade;
+    @Autowired
+    ScaleContentFacade scaleContentFacade;
 
     /**
      * 标签保存
@@ -533,6 +536,13 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                         .set("gmt_modified", now)
                         .set("modifier", person)
                         .set("is_deleted", IsDeleteEnum.Y.getKey()));
+
+                scaleContentFacade.update(new ScaleContent(), new UpdateWrapper<ScaleContent>()
+                        .eq("scale_id", id)
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .set("gmt_modified", now)
+                        .set("modifier", person)
+                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
             }
 
             //TODO 删除映射关系或检查抛异常

+ 102 - 0
icssman-service/src/main/java/com/diagbot/facade/ScaleContentFacade.java

@@ -0,0 +1,102 @@
+/**
+ *
+ */
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.QuestionPageDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.ScaleContentService;
+import com.diagbot.service.impl.ScaleContentServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.QuestionPageVO;
+import com.diagbot.vo.ScaleContentSaveVO;
+import com.diagbot.vo.ScaleContentVO;
+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.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhoutg
+ * @Description
+ * @time 2018年12月5日下午4:53:59
+ */
+@Component
+public class ScaleContentFacade extends ScaleContentServiceImpl {
+
+	@Autowired
+	@Qualifier("scaleContentServiceImpl")
+	ScaleContentService scaleContentService;
+	@Autowired
+	UserServiceClient userServiceClient;
+
+	/**
+	 * 量表内容新增或更新
+	 *
+	 * @param scaleContentSaveVO
+	 */
+	public void  insertOrUpdate(ScaleContentSaveVO scaleContentSaveVO) {
+		Long scaleId = scaleContentSaveVO.getScaleId();
+		Date now = DateUtil.now();
+		String userId = "ddd";
+		//删除原关联内容
+		if(scaleId != null) {
+			this.update(new ScaleContent(), new UpdateWrapper<ScaleContent>()
+					.eq("scale_id", scaleId)
+					.eq("is_deleted", IsDeleteEnum.N.getKey())
+					.set("gmt_modified", now)
+					.set("modifier", userId)
+					.set("is_deleted", IsDeleteEnum.Y.getKey()));
+		}
+		//新增关联内容
+		List<ScaleContent> list = new ArrayList<>();
+		List<ScaleContentVO> scaleContentVOS = scaleContentSaveVO.getContent();
+		for(ScaleContentVO scaleContentVO : scaleContentVOS) {
+			ScaleContent bean = new ScaleContent();
+			BeanUtil.copyProperties(scaleContentVO, bean);
+			bean.setScaleId(scaleId);
+			bean.setModifier(userId);
+			bean.setCreator(userId);
+			bean.setGmtCreate(now);
+			bean.setGmtModified(now);
+			list.add(bean);
+		}
+		scaleContentService.saveBatch(list);
+	}
+
+
+	/**
+	 * 量表列表
+	 *
+	 * @param questionPageVO
+	 * @return
+	 */
+	public IPage<QuestionPageDTO> getListFac(QuestionPageVO questionPageVO) {
+		IPage<QuestionPageDTO> res = this.getList(questionPageVO);
+		if (res.getTotal() <= 0) {
+			return res;
+		}
+		List<String> personIds = res.getRecords().stream().map(row -> row.getModifier()).collect(Collectors.toList());
+		RespDTO<Map<String, String>> mapRespDTO = userServiceClient.getUserInfoByIds(personIds);
+		if (mapRespDTO == null || !CommonErrorCode.OK.getCode().equals(mapRespDTO.code)) {
+			throw new CommonException(CommonErrorCode.RPC_ERROR, "获取操作人失败");
+		}
+		for (QuestionPageDTO bean : res.getRecords()) {
+			bean.setModifier(mapRespDTO.data.get(bean.getModifier()));
+		}
+		return res;
+	}
+}

+ 26 - 0
icssman-service/src/main/java/com/diagbot/mapper/ScaleContentMapper.java

@@ -0,0 +1,26 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.QuestionPageDTO;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.vo.QuestionPageVO;
+
+/**
+ * <p>
+ * 量表内容表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+public interface ScaleContentMapper extends BaseMapper<ScaleContent> {
+
+    /**
+     * 获取标签列表
+     *
+     * @param questionPageVO
+     * @return
+     */
+    public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO);
+}

+ 26 - 0
icssman-service/src/main/java/com/diagbot/service/ScaleContentService.java

@@ -0,0 +1,26 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.QuestionPageDTO;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.vo.QuestionPageVO;
+
+/**
+ * <p>
+ * 量表内容表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+public interface ScaleContentService extends IService<ScaleContent> {
+
+    /**
+     * 获取标签列表
+     *
+     * @param questionPageVO
+     * @return
+     */
+    IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO);
+}

+ 27 - 0
icssman-service/src/main/java/com/diagbot/service/impl/ScaleContentServiceImpl.java

@@ -0,0 +1,27 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.QuestionPageDTO;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.mapper.ScaleContentMapper;
+import com.diagbot.service.ScaleContentService;
+import com.diagbot.vo.QuestionPageVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 量表内容表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+@Service
+public class ScaleContentServiceImpl extends ServiceImpl<ScaleContentMapper, ScaleContent> implements ScaleContentService {
+
+    @Override
+    public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO) {
+        return baseMapper.getList(questionPageVO);
+    }
+}

+ 1 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionPageVO.java

@@ -20,4 +20,5 @@ public class QuestionPageVO extends Page {
     private List<Integer> tagTypeList;
     private List<Integer> controlTypeList;
     private Integer disType;
+    private List<Integer> notTypeList;
 }

+ 30 - 0
icssman-service/src/main/java/com/diagbot/vo/ScaleContentSaveVO.java

@@ -0,0 +1,30 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 量表内容表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+@Getter
+@Setter
+public class ScaleContentSaveVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 量表标签id
+     */
+    private Long scaleId;
+    private List<ScaleContentVO> content = new ArrayList<>();
+
+}

+ 43 - 0
icssman-service/src/main/java/com/diagbot/vo/ScaleContentVO.java

@@ -0,0 +1,43 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 量表内容表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+@Getter
+@Setter
+public class ScaleContentVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 0:文本,1:大数据接口填充
+     */
+    private Integer type;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 54 - 0
icssman-service/src/main/java/com/diagbot/web/ScaleContentController.java

@@ -0,0 +1,54 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.QuestionPageDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ScaleContentFacade;
+import com.diagbot.vo.QuestionPageVO;
+import com.diagbot.vo.ScaleContentSaveVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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;
+
+/**
+ * <p>
+ * 量表内容表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-04-08
+ */
+@RestController
+@RequestMapping("/scaleContent")
+@Api(value = "2期-量表内容相关API", tags = { "2期-量表内容相关API" })
+public class ScaleContentController {
+
+    @Autowired
+    ScaleContentFacade scaleContentFacade;
+
+    @ApiOperation(value = "2期-量表内容新增或更新[by:zhoutg]")
+    @PostMapping("/insertOrUpdate")
+    @SysLogger("insertOrUpdate")
+    @Transactional
+    public RespDTO<Boolean> insertOrUpdate(@RequestBody ScaleContentSaveVO scaleContentSaveVO) {
+        scaleContentFacade.insertOrUpdate(scaleContentSaveVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "2期-量表列表[by:zhoutg]",
+            notes = "")
+    @PostMapping("/list")
+    @SysLogger("list")
+    public RespDTO<IPage<QuestionPageDTO>> list(@RequestBody QuestionPageVO questionPageVO) {
+        IPage<QuestionPageDTO> data = scaleContentFacade.getListFac(questionPageVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 6 - 0
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -173,6 +173,12 @@
         <if test="tagName != null and tagName != ''">
             AND a.tag_name like concat ('%', #{tagName}, '%')
         </if>
+        <if test="notTypeList != null and notTypeList.size() > 0 ">
+            and a.type not in
+            <foreach  collection="notTypeList" item="notType" open="("  separator=","  close=")">
+                #{notType}
+            </foreach>
+        </if>
         <if test="tagTypeList != null and tagTypeList.size() > 0 ">
             and a.tag_type in
             <foreach  collection="tagTypeList" item="tagType" open="("  separator=","  close=")">

+ 52 - 0
icssman-service/src/main/resources/mapper/ScaleContentMapper.xml

@@ -0,0 +1,52 @@
+<?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.ScaleContentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.ScaleContent">
+        <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="scale_id" property="scaleId" />
+        <result column="content" property="content" />
+        <result column="type" property="type" />
+        <result column="order_no" property="orderNo" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getList" resultType="com.diagbot.dto.QuestionPageDTO">
+        SELECT a.* FROM `icss_question_info` a where
+        EXISTS (select 1 from icss_scale_content b where a.id = b.scale_id and b.is_deleted = 'N')
+        and a.is_deleted = 'N'
+        <if test="type != null and type != ''">
+            AND a.type = #{type}
+        </if>
+        <if test="tagName != null and tagName != ''">
+            AND a.tag_name like concat ('%', #{tagName}, '%')
+        </if>
+        <if test="notTypeList != null and notTypeList.size() > 0 ">
+            and a.type not in
+            <foreach  collection="notTypeList" item="notType" open="("  separator=","  close=")">
+                #{notType}
+            </foreach>
+        </if>
+        <if test="tagTypeList != null and tagTypeList.size() > 0 ">
+            and a.tag_type in
+            <foreach  collection="tagTypeList" item="tagType" open="("  separator=","  close=")">
+                #{tagType}
+            </foreach>
+        </if>
+        <if test="controlTypeList != null and controlTypeList.size() > 0 ">
+            and a.control_type in
+            <foreach  collection="controlTypeList" item="controlType" open="("  separator=","  close=")">
+                #{controlType}
+            </foreach>
+        </if>
+        order by a.gmt_modified desc
+
+    </select>
+
+</mapper>

+ 1 - 1
icssman-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix(new String[] { "icss_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "icss_dis_type" }); // 需要生成的表
+        strategy.setInclude(new String[] { "icss_scale_content" }); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

+ 2 - 0
pom.xml

@@ -39,6 +39,8 @@
     </parent>
 
     <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>