Selaa lähdekoodia

二期诊断量表关联,分页查询添加操作人,修改时获取已经添加过得关联信息

wangyu 6 vuotta sitten
vanhempi
commit
bf1b0265bc

+ 15 - 3
icssman-service/src/main/java/com/diagbot/dto/GetDisScaleAllInfoDTO.java

@@ -1,9 +1,10 @@
 package com.diagbot.dto;
 
-import com.diagbot.entity.DisScale;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * @Description:
  * @author: wangyu
@@ -11,10 +12,21 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class GetDisScaleAllInfoDTO extends DisScale {
+public class GetDisScaleAllInfoDTO{
+    //id
+    private Long id;
+    //记录修改时间,如果时间是1970年则表示纪录未修改
+    private Date gmtModified;
+    //诊断id
+    private Long disId;
+    //量表id
+    private Long scaleId;
+    //修改人
+    private String modifier;
     //诊断名称
     private String disName;
     //量表名称
     private String scaleName;
-
+    //操作人名称
+    private String userName;
 }

+ 52 - 2
icssman-service/src/main/java/com/diagbot/facade/DisScaleFacade.java

@@ -3,24 +3,28 @@ 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.client.UserServiceClient;
 import com.diagbot.dto.GetDisScaleAllInfoDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DisScale;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.service.DisScaleService;
 import com.diagbot.service.impl.DisScaleServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddDisScaleInfoVO;
 import com.diagbot.vo.GetDisScaleAllInfoVO;
+import com.diagbot.vo.GetDisScaleByDisIdVO;
 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.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -31,6 +35,8 @@ import java.util.List;
 public class DisScaleFacade extends DisScaleServiceImpl{
     @Autowired
     private QuestionFacade questionFacade;
+    @Autowired
+    private UserServiceClient userServiceClient;
 
     /**
      * 添加诊断量表关联信息
@@ -87,6 +93,50 @@ public class DisScaleFacade extends DisScaleServiceImpl{
      */
     public IPage<GetDisScaleAllInfoDTO> getDisScaleAllInfo(GetDisScaleAllInfoVO getDisScaleAllInfoVO){
         IPage<GetDisScaleAllInfoDTO> data = this.getDisScaleInfo(getDisScaleAllInfoVO);
+        List<String> userIds = new ArrayList<>();
+        for (GetDisScaleAllInfoDTO getDisScaleAllInfoDTO: data.getRecords()) {
+            userIds.add(getDisScaleAllInfoDTO.getModifier());
+        }
+        RespDTO<Map<String, String>> userMap = userServiceClient.getUserInfoByIds(userIds);
+        if (userMap == null || !CommonErrorCode.OK.getCode().equals(userMap.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户信息失败");
+        }
+        for (GetDisScaleAllInfoDTO getDisScaleAllInfoDTO: data.getRecords()) {
+            getDisScaleAllInfoDTO.setUserName(userMap.data.get(getDisScaleAllInfoDTO.getModifier()));
+        }
         return data;
     }
+
+    /**
+     * 修改时获取已经添加过得诊断量表关联信息
+     *
+     * @param getDisScaleByDisIdVO
+     * @return
+     */
+    public List<GetDisScaleAllInfoDTO> getDisScaleByDisId(GetDisScaleByDisIdVO getDisScaleByDisIdVO){
+        //查询诊断量表关联信息
+        QueryWrapper<DisScale> disScaleQueryWrapper = new QueryWrapper<>();
+        disScaleQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .eq("dis_id",getDisScaleByDisIdVO.getDisId());
+        List<DisScale> disScales = this.list(disScaleQueryWrapper);
+        List<Long> questionIds = new ArrayList<>();
+        List<GetDisScaleAllInfoDTO> getDisScaleAllInfoDTOS = BeanUtil.listCopyTo(disScales,GetDisScaleAllInfoDTO.class);
+        for (DisScale disScale : disScales) {
+            questionIds.add(disScale.getDisId());
+            questionIds.add(disScale.getScaleId());
+        }
+        //查询相关标签名称
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .in("id",questionIds);
+        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
+        Map<Long, QuestionInfo> questionInfoMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getId,questionInfo -> questionInfo));
+        //将标签名称放入出参
+        for (GetDisScaleAllInfoDTO getDisScaleAllInfoDTO: getDisScaleAllInfoDTOS) {
+            getDisScaleAllInfoDTO.setDisName(questionInfoMap.get(getDisScaleAllInfoDTO.getDisId()).getName());
+            getDisScaleAllInfoDTO.setScaleName(questionInfoMap.get(getDisScaleAllInfoDTO.getScaleId()).getName());
+        }
+        return getDisScaleAllInfoDTOS;
+    }
 }

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/GetDisScaleByDisIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/4/1 16:57
+ */
+@Getter
+@Setter
+public class GetDisScaleByDisIdVO {
+    @NotNull(message="请输入诊断id")
+    private Long disId;
+}

+ 11 - 0
icssman-service/src/main/java/com/diagbot/web/DisScaleController.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.DisScaleFacade;
 import com.diagbot.vo.AddDisScaleInfoVO;
 import com.diagbot.vo.GetDisScaleAllInfoVO;
+import com.diagbot.vo.GetDisScaleByDisIdVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -56,4 +58,13 @@ public class DisScaleController {
         IPage<GetDisScaleAllInfoDTO> data = disScaleFacade.getDisScaleAllInfo(getDisScaleAllInfoVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "【二期】诊断量表关联——根据诊断id获取诊断量表关联信息(修改回读用)[by:wangyu]",
+            notes = "disId: 诊断id,必填<br>")
+    @PostMapping("/getDisScaleByDisId")
+    @SysLogger("getDisScaleByDisId")
+    public RespDTO<List<GetDisScaleAllInfoDTO>> getDisScaleByDisId(@Valid @RequestBody GetDisScaleByDisIdVO getDisScaleByDisIdVO) {
+        List<GetDisScaleAllInfoDTO> data = disScaleFacade.getDisScaleByDisId(getDisScaleByDisIdVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 1 - 1
icssman-service/src/main/resources/mapper/DisScaleMapper.xml

@@ -18,7 +18,7 @@
 
     <select id="getDisScaleInfo" resultType="com.diagbot.dto.GetDisScaleAllInfoDTO">
         SELECT
-	      a.*,b.`name` AS dis_name,c.`name` AS scale_name
+        a.modifier,a.gmt_modified,a.id,a.dis_id,a.scale_id,b.`name` AS dis_name,c.`name` AS scale_name
         FROM
 	      `icss_dis_scale` a
         LEFT JOIN icss_question_info b ON a.dis_id = b.id