فهرست منبع

add
新增患者小程序患者列表操作

18339543638 7 ماه پیش
والد
کامیت
59c47eb27e
13فایلهای تغییر یافته به همراه468 افزوده شده و 50 حذف شده
  1. 7 4
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicDTO.java
  2. 22 4
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizClinicPO.java
  3. 13 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRepository.java
  4. 30 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicService.java
  5. 118 34
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicServiceImpl.java
  6. 8 8
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizHospitalController.java
  7. 85 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWxAppletClinicController.java
  8. 55 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizClinicAddOrEditDTO.java
  9. 25 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxAppletClinicQueryDTO.java
  10. 26 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxAppletClinicShiftCareDTO.java
  11. 5 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/mapper/BizClinicMapper.java
  12. 51 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/vo/BizWxAppletClinicVO.java
  13. 23 0
      tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicMapper.xml

+ 7 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicDTO.java

@@ -29,7 +29,10 @@ public class BizClinicDTO extends BaseDTO  {
     private Integer patientAge;
 
     @ApiModelProperty(value = "科室", position = 3)
-    private String depId;
+    private String deptId;
+
+    @ApiModelProperty(value = "科室名称", position = 3)
+    private String deptName;
 
     @ApiModelProperty(value = "手术名称", position = 4)
     private String clinicName;
@@ -44,13 +47,13 @@ public class BizClinicDTO extends BaseDTO  {
     private String clinicStatus;
 
     @ApiModelProperty(value = "最后一次随访时间", position = 8)
-    private String lastFollowUpItme;
+    private Date lastFollowUpTime;
 
     @ApiModelProperty(value = "随访次数", position = 9)
     private Integer followUpCount;
 
     @ApiModelProperty(value = "是否已随访", position = 10)
-    private Integer followUp;
+    private Boolean followUp;
 
     @ApiModelProperty(value = "住院号", position = 15)
     private String hospitalNumber;
@@ -59,6 +62,6 @@ public class BizClinicDTO extends BaseDTO  {
     private String patientName;
 
     @ApiModelProperty(value = "是否为看护中的临床,0、否 1、是", position = 18)
-    private Integer care;
+    private Boolean care;
 
 }

+ 22 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizClinicPO.java

@@ -1,7 +1,8 @@
 package cn.tr.module.smart.common.po;
 
-import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import cn.tr.plugin.mybatis.pojo.TenantPO;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -31,7 +32,10 @@ public class BizClinicPO extends TenantPO {
 
     /** 科室 */
     @ApiModelProperty(value = "科室", position = 3)
-    private String depId;
+    private String deptId;
+
+    @ApiModelProperty(value = "科室名称", position = 3)
+    private String deptName;
 
     /** 手术名称 */
     @ApiModelProperty(value = "手术名称", position = 4)
@@ -51,7 +55,7 @@ public class BizClinicPO extends TenantPO {
 
     /** 最后一次随访时间 */
     @ApiModelProperty(value = "最后一次随访时间", position = 8)
-    private String lastFollowUpItme;
+    private Date lastFollowUpTime;
 
     /** 随访次数 */
     @ApiModelProperty(value = "随访次数", position = 9)
@@ -59,6 +63,20 @@ public class BizClinicPO extends TenantPO {
 
     /** 是否已随访 */
     @ApiModelProperty(value = "是否已随访", position = 10)
-    private Integer followUp;
+    private Boolean followUp;
+
+    @ApiModelProperty(value = "是否为看护中的临床,0、否 1、是", position = 18)
+    private Boolean care;
+
+    @ApiModelProperty("微信小程序用户id")
+    private String wxUserId;
+
+    @ApiModelProperty("头像图片链接")
+    private String imageUrl;
+
+    @ApiModelProperty("上一次看护时间")
+    private Date lastCareTime;
 
+    @TableLogic
+    private Integer deleted;
 }

+ 13 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRepository.java

@@ -1,9 +1,16 @@
 package cn.tr.module.smart.common.repository;
 
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
+import cn.tr.module.smart.wx.vo.BizWxAppletClinicVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
 import cn.tr.module.smart.common.po.BizClinicPO;
+
+import java.util.List;
+
 /**
  * 手术信息Mapper接口
  *
@@ -13,4 +20,10 @@ import cn.tr.module.smart.common.po.BizClinicPO;
 @Repository
 @Mapper
 public interface BizClinicRepository extends BaseMapper<BizClinicPO> {
+    List<BizWxAppletClinicVO> stdSelectWxAppletList(@Param("query") BizWxAppletClinicQueryDTO query);
+
+    @Update(
+            "update biz_clinic set care = 0 where wx_user_id = #{userId}}"
+    )
+    void updateWxAppletAllNotCare(@Param("userId") String userId);
 }

+ 30 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicService.java

@@ -2,6 +2,11 @@ package cn.tr.module.smart.common.service;
 
 import cn.tr.module.smart.common.dto.BizClinicDTO;
 import cn.tr.module.smart.common.dto.BizClinicQueryDTO;
+import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicShiftCareDTO;
+import cn.tr.module.smart.wx.vo.BizWxAppletClinicVO;
+
 import java.util.*;
 
 /**
@@ -51,4 +56,29 @@ public interface IBizClinicService{
      * @date    2025/05/23 14:17
      */
     int removeBizClinicByIds(Collection<String> ids);
+
+    /**
+     * 微信小程序查询当前用户当前医院所绑定的患者信息
+     * @param query
+     * @return
+     */
+    List<BizWxAppletClinicVO>  stdSelectWxAppletList(BizWxAppletClinicQueryDTO query);
+
+    /**
+     * 微信小程序查询当前用户当前医院所看护的当前患者信息
+     * @param currentUserId
+     * @return
+     */
+    BizWxAppletClinicVO stdSelectWxAppletCareClinicList(String currentUserId);
+
+    /**
+     * 微信小程序查询切换当前用户当前医院所看护的当前患者信息
+     * @param source
+     * @return
+     */
+    Boolean shiftWxAppletCurrent(BizWxAppletClinicShiftCareDTO source);
+
+    Boolean stdWxAppletAdd(BizClinicAddOrEditDTO source);
+
+    Boolean stdWxAppletEdit(BizClinicAddOrEditDTO source);
 }

+ 118 - 34
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicServiceImpl.java

@@ -1,6 +1,15 @@
 package cn.tr.module.smart.common.service.impl;
 
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.tr.core.exception.TRExcCode;
+import cn.tr.core.strategy.LoginUserStrategy;
+import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicShiftCareDTO;
+import cn.tr.module.smart.wx.vo.BizWxAppletClinicVO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollectionUtil;
@@ -12,6 +21,8 @@ import cn.tr.module.smart.common.po.BizClinicPO;
 import cn.tr.module.smart.common.dto.BizClinicDTO;
 import cn.tr.module.smart.common.dto.BizClinicQueryDTO;
 import java.util.*;
+import java.util.stream.Collectors;
+
 import cn.tr.module.smart.common.service.IBizClinicService;
 import cn.tr.module.smart.wx.mapper.BizClinicMapper;
 /**
@@ -21,72 +32,145 @@ import cn.tr.module.smart.wx.mapper.BizClinicMapper;
  * @date  2025/05/23 14:17
  **/
 @Service
-public class BizClinicServiceImpl implements IBizClinicService {
-    @Autowired
-    private BizClinicRepository baseRepository;
+public class BizClinicServiceImpl extends ServiceImpl<BizClinicRepository,BizClinicPO> implements IBizClinicService {
 
 
     /**
-    * 根据条件查询手术信息
-    * @param    query 查询参数
-    * @author   lf
-    * @date      2025/05/23 14:17
-    */
+     * 根据条件查询手术信息
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 14:17
+     */
     @Override
     public List<BizClinicDTO> selectBizClinicList(BizClinicQueryDTO query){
         return BizClinicMapper.INSTANCE.convertDtoList(
-                baseRepository.selectList(new LambdaQueryWrapper<BizClinicPO>()
+                baseMapper.selectList(new LambdaQueryWrapper<BizClinicPO>()
                 )
         );
     };
 
     /**
-    * 根据id查询手术信息
-    * @param    id 主键id
-    * @author   lf
-    * @date      2025/05/23 14:17
-    */
+     * 根据id查询手术信息
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 14:17
+     */
     @Override
     public BizClinicDTO selectBizClinicById(String id){
-        return BizClinicMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+        return BizClinicMapper.INSTANCE.convertDto(baseMapper.selectById(id));
     };
 
     /**
-    * 编辑手术信息
-    * @param   source 编辑实体类
-    * @author  lf
-    * @date     2025/05/23 14:17
-    */
+     * 编辑手术信息
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 14:17
+     */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean updateBizClinicById(BizClinicDTO source){
-            return baseRepository.updateById(BizClinicMapper.INSTANCE.convertPO(source))!=0;
+        return baseMapper.updateById(BizClinicMapper.INSTANCE.convertPO(source))!=0;
     };
 
     /**
-    * 新增手术信息
-    * @param   source 新增实体类
-    * @author lf
-    * @date  2025/05/23 14:17
-    */
+     * 新增手术信息
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 14:17
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insertBizClinic(BizClinicDTO source){
-        return baseRepository.insert(BizClinicMapper.INSTANCE.convertPO(source))!=0;
+        return baseMapper.insert(BizClinicMapper.INSTANCE.convertPO(source))!=0;
     };
 
     /**
-    * 删除手术信息详情
-    * @param  ids 删除主键集合
-    * @author lf
-    * @date    2025/05/23 14:17
-    */
+     * 删除手术信息详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 14:17
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int removeBizClinicByIds(Collection<String> ids){
         if(CollectionUtil.isEmpty(ids)){
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
         }
-        return baseRepository.deleteBatchIds(ids);
-    };
+        //先判断有没有删除数据的权限
+        String userId = LoginUserStrategy.tr.getCurrentUserId();
+        List<BizClinicPO> clinics = baseMapper.selectBatchIds(ids);
+        Map<String, List<BizClinicPO>> clinicMap = clinics.stream()
+                .collect(Collectors.groupingBy(BizClinicPO::getWxUserId));
+        if(CollectionUtil.size(clinicMap)>1){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"所选患者手术信息和当前账号没有绑定关系");
+        }
+        List<BizClinicPO> clinicList = clinicMap.get(userId);
+        if(CollectionUtil.isNotEmpty(clinicMap)&&CollectionUtil.isEmpty(clinicList)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"所选患者手术信息和当前账号没有绑定关系");
+        }
+        int result = baseMapper.deleteBatchIds(ids);
+
+        //判断是否删除了当前看护
+        Optional<BizClinicPO> careClinic = clinicList.stream()
+                .filter(clinic -> Boolean.TRUE.equals(clinic.getCare()))
+                .findFirst();
+        if(careClinic.isPresent()){
+            //重新设置看护人员信息
+            BizClinicPO nextCare = baseMapper.selectOne(new LambdaQueryWrapper<BizClinicPO>()
+                    .orderByDesc(BizClinicPO::getLastCareTime)
+                    .last("limit 1"));
+            if(ObjectUtil.isNotNull(nextCare)){
+                baseMapper.updateById(nextCare);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public List<BizWxAppletClinicVO> stdSelectWxAppletList(BizWxAppletClinicQueryDTO query) {
+        return BizClinicMapper.INSTANCE.convertWxAppletVOList(
+                baseMapper.selectList(new LambdaQueryWrapper<BizClinicPO>()
+                        .eq(BizClinicPO::getWxUserId, query.getUserId())
+                        .orderByDesc(BizClinicPO::getCare,BizClinicPO::getClinicStartTime))
+        );
+    }
+
+    @Override
+    public BizWxAppletClinicVO stdSelectWxAppletCareClinicList(String currentUserId) {
+        return BizClinicMapper.INSTANCE.convertWxAppletVO(
+                baseMapper.selectOne(new LambdaQueryWrapper<BizClinicPO>()
+                        .eq(BizClinicPO::getWxUserId, currentUserId)
+                        .eq(BizClinicPO::getCare,Boolean.TRUE)
+                        .last("limit 1"))
+        );
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean shiftWxAppletCurrent(BizWxAppletClinicShiftCareDTO source) {
+        BizClinicPO clinic = baseMapper.selectById(source.getClinicId());
+        if (ObjectUtil.isNull(clinic)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"所切换的患者手术信息不存在");
+        }
+        if (!StrUtil.equals(clinic.getWxUserId(),source.getUserId())) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"此患者手术信息和当前账号没有绑定关系");
+        }
+        clinic.setCare(Boolean.TRUE);
+        clinic.setLastCareTime(new Date());
+        baseMapper.updateWxAppletAllNotCare(source.getUserId());
+        baseMapper.updateById(clinic);
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public Boolean stdWxAppletAdd(BizClinicAddOrEditDTO source) {
+        return null;
+    }
+
+    @Override
+    public Boolean stdWxAppletEdit(BizClinicAddOrEditDTO source) {
+        return null;
+    }
+
+    ;
 }

+ 8 - 8
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizHospitalController.java

@@ -47,36 +47,36 @@ public class BizHospitalController extends BaseController{
     }
 
     @ApiOperationSupport(author = "lf",order = 2)
-    @ApiOperation(value = "根据id查询医院信息",notes = "权限: common:hospital:query")
+    @ApiOperation(value = "根据id查询医院信息",notes = "权限: web:hospital:query")
     @GetMapping("/detail/{id}")
-    @SaCheckPermission("common:hospital:query")
+    @SaCheckPermission("web:hospital:query")
     public CommonResult<BizHospitalDTO> findById(@PathVariable("id") String id){
         return CommonResult.success(bizHospitalService.selectBizHospitalById(id));
     }
 
     @ApiOperationSupport(author = "lf",order = 3)
-    @ApiOperation(value="添加医院信息",notes = "权限: common:hospital:add")
+    @ApiOperation(value="添加医院信息",notes = "权限: web:hospital:add")
     @PostMapping("/add")
     @OperateLog
-    @SaCheckPermission("common:hospital:add")
+    @SaCheckPermission("web:hospital:add")
     public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizHospitalDTO source) {
         return CommonResult.success(bizHospitalService.insertBizHospital(source));
     }
 
     @ApiOperationSupport(author = "lf",order = 4)
-    @ApiOperation(value="通过主键id编辑医院信息",notes = "权限: common:hospital:edit")
+    @ApiOperation(value="通过主键id编辑医院信息",notes = "权限: web:hospital:edit")
     @PostMapping("/edit")
     @OperateLog
-    @SaCheckPermission("common:hospital:edit")
+    @SaCheckPermission("web:hospital:edit")
     public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizHospitalDTO source) {
         return CommonResult.success(bizHospitalService.updateBizHospitalById(source));
     }
 
     @ApiOperationSupport(author = "lf",order = 5)
-    @ApiOperation(value="删除医院信息",notes = "权限: common:hospital:remove")
+    @ApiOperation(value="删除医院信息",notes = "权限: web:hospital:remove")
     @PostMapping("/removeByIds")
     @OperateLog
-    @SaCheckPermission("common:hospital:remove")
+    @SaCheckPermission("web:hospital:remove")
     public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
         return CommonResult.success(bizHospitalService.removeBizHospitalByIds(ids));
     }

+ 85 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWxAppletClinicController.java

@@ -0,0 +1,85 @@
+package cn.tr.module.smart.wx.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.tr.core.pojo.CommonResult;
+import cn.tr.core.strategy.LoginUserStrategy;
+import cn.tr.core.utils.JsonUtils;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import cn.tr.module.api.sys.log.annotation.OperateLog;
+import cn.tr.module.smart.common.service.IBizClinicService;
+import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
+import cn.tr.module.smart.wx.dto.BizWxAppletClinicShiftCareDTO;
+import cn.tr.module.smart.wx.vo.BizWxAppletClinicVO;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+import cn.tr.plugin.mybatis.base.BaseController;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import java.util.*;
+/**
+ * 微信用户控制器
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ */
+@Api(tags = "手术患者操作")
+@RestController
+@RequestMapping("/wx/clinic")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizWxAppletClinicController extends BaseController{
+
+    private final IBizClinicService clinicService;
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="查询当前用户所添加的所有患者手术记录(不分页)",notes = "权限: 无")
+    @PostMapping("/query/list")
+    public CommonResult<List<BizWxAppletClinicVO>> selectList(@RequestBody BizWxAppletClinicQueryDTO query) {
+        query.setUserId(LoginUserStrategy.tr.getCurrentUserId());
+        query.setTenantId(LoginUserStrategy.tr.getTenantId());
+        return CommonResult.success(clinicService.stdSelectWxAppletList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value="获取当前看护患者手术信息",notes = "权限: 无")
+    @PostMapping("/query/care")
+    public CommonResult<BizWxAppletClinicVO> selectCurrentClinic() {
+        return CommonResult.success(clinicService.stdSelectWxAppletCareClinicList(LoginUserStrategy.tr.getCurrentUserId()));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="切换当前看护患者手术信息",notes = "权限: 无")
+    @PostMapping("/shift/care")
+    public CommonResult<Boolean> shiftCurrent(@RequestBody BizWxAppletClinicShiftCareDTO source) {
+        source.setUserId(LoginUserStrategy.tr.getCurrentUserId());
+        return CommonResult.success(clinicService.shiftWxAppletCurrent(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="添加患者手术信息)",notes = "权限: 无")
+    @PostMapping("/add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizClinicAddOrEditDTO source) {
+        return CommonResult.success(clinicService.stdWxAppletAdd(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="编辑患者手术信息)",notes = "权限: 无")
+    @PostMapping("/edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizClinicAddOrEditDTO source) {
+        return CommonResult.success(clinicService.stdWxAppletEdit(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 6)
+    @ApiOperation(value="删除患者手术信息",notes = "权限: 无")
+    @PostMapping("/removeByIds")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(clinicService.removeBizClinicByIds(ids));
+    }
+
+
+}

+ 55 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizClinicAddOrEditDTO.java

@@ -0,0 +1,55 @@
+package cn.tr.module.smart.wx.dto;
+
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 手术信息传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@ApiModel("手术信息新增或编辑传输对象")
+@ToString
+public class BizClinicAddOrEditDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+    @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "患者姓名", position = 16)
+    @NotBlank  (message = "患者姓名不能为空",groups = {Update.class, Insert.class})
+    private String patientName;
+
+    @ApiModelProperty(value = "住院号", position = 2)
+    @NotBlank  (message = "住院号不能为空",groups = {Update.class, Insert.class})
+    private String hospitalNumber;
+
+    @ApiModelProperty(value = "年龄", position = 3,required = true)
+    @NotNull  (message = "年龄不能为空",groups = {Update.class, Insert.class})
+    private Integer patientAge;
+
+    @ApiModelProperty(value = "科室", position = 4,required = true)
+    @NotBlank  (message = "科室不能为空",groups = {Update.class, Insert.class})
+    private String deptId;
+
+    @ApiModelProperty(value = "手术名称", position = 6,required = true)
+    @NotBlank  (message = "手术名称不能为空",groups = {Update.class, Insert.class})
+    private String clinicName;
+
+    @ApiModelProperty(value = "手术开始时间", position = 7,required = true)
+    @NotNull  (message = "手术开始时间不能为空",groups = {Update.class, Insert.class})
+    private Date clinicStartTime;
+}

+ 25 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxAppletClinicQueryDTO.java

@@ -0,0 +1,25 @@
+package cn.tr.module.smart.wx.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+/**
+ * 微信用户查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Data
+@ApiModel("患者列表查询")
+@ToString
+public class BizWxAppletClinicQueryDTO {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "当前用户id",hidden = true)
+    private String userId;
+
+    @ApiModelProperty(value = "当前租户id",hidden = true)
+    private String tenantId;
+}

+ 26 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxAppletClinicShiftCareDTO.java

@@ -0,0 +1,26 @@
+package cn.tr.module.smart.wx.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+/**
+ * 微信用户查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Data
+@ApiModel("切换关注的患者信息")
+@ToString
+public class BizWxAppletClinicShiftCareDTO {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("切换后的当期看护id")
+    private String clinicId;
+
+    @ApiModelProperty(value = "当前用户id",hidden = true)
+    private String userId;
+
+}

+ 5 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/mapper/BizClinicMapper.java

@@ -2,6 +2,7 @@ package cn.tr.module.smart.wx.mapper;
 
 import cn.tr.module.smart.common.po.BizClinicPO;
 import cn.tr.module.smart.common.dto.BizClinicDTO;
+import cn.tr.module.smart.wx.vo.BizWxAppletClinicVO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -25,4 +26,8 @@ public interface BizClinicMapper {
 
     List<BizClinicPO> convertPOList(List<BizClinicDTO> source);
 
+    List<BizWxAppletClinicVO> convertWxAppletVOList(List<BizClinicPO> source);
+
+    BizWxAppletClinicVO convertWxAppletVO(BizClinicPO source);
+
 }

+ 51 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/vo/BizWxAppletClinicVO.java

@@ -0,0 +1,51 @@
+package cn.tr.module.smart.wx.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 手术信息传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@ApiModel("微信小程序所展示的手术信息")
+@ToString
+public class BizWxAppletClinicVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 0)
+    private String id;
+
+    @ApiModelProperty(value = "头像图片链接",position = 1)
+    private String imageUrl;
+
+    @ApiModelProperty(value = "患者姓名", position = 2)
+    private String patientName;
+
+    @ApiModelProperty(value = "年龄", position = 3)
+    private Integer patientAge;
+
+    @ApiModelProperty(value = "患者性别", position = 4)
+    private String patientGender;
+
+    @ApiModelProperty(value = "住院号", position = 5)
+    private String hospitalNumber;
+
+    @ApiModelProperty(value = "手术开始时间", position = 6)
+    private Date clinicStartTime;
+
+    @ApiModelProperty("科室名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "手术名称", position = 7)
+    private String clinicName;
+
+    @ApiModelProperty(value = "手术状态", position = 8)
+    private String clinicStatus;
+}

+ 23 - 0
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicMapper.xml

@@ -0,0 +1,23 @@
+<?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="cn.tr.module.smart.common.repository.BizClinicRepository">
+
+    <resultMap id="stdWxAppletResult" type="cn.tr.module.smart.wx.vo.BizWxAppletClinicVO">
+        <result property="id" column="id"/>
+        <result property="patientName" column="patientName"/>
+        <result property="patientAge" column="patientAge"/>
+        <result property="patientGender" column="patientGender"/>
+        <result property="hospitalNumber" column="hospitalNumber"/>
+        <result property="clinicStartTime" column="clinicStartTime"/>
+        <result property="deptName" column="deptName"/>
+        <result property="clinicName" column="clinicName"/>
+        <result property="clinicStatus" column="clinicStatus"/>
+        <result property="care" column="care"/>
+
+    </resultMap>
+    <select id="stdSelectWxAppletList" resultMap="stdWxAppletResult">
+
+    </select>
+</mapper>