ソースを参照

医生端绑定手术信息接口处理

wangzl 2 ヶ月 前
コミット
ecaddd3535

+ 7 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/controller/AppClinicRoomController.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.tr.core.pojo.CommonResult;
 import cn.tr.core.pojo.TableDataInfo;
 import cn.tr.core.validation.Insert;
+import cn.tr.module.smart.app.controller.dto.AppDoctorBindClinicDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicQueryByPatientCodeDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicRoomDTO;
@@ -141,4 +142,10 @@ public class AppClinicRoomController extends BaseController {
     public CommonResult<List<WxDoctorClinicRoomThumbnailVO>> queryClinicList(@RequestBody AppDoctorClinicQueryByPatientCodeDTO source) {
         return CommonResult.success(clinicRoomService.queryClinicList(source));
     }
+    @ApiOperationSupport(author = "wangzl", order = 12)
+    @ApiOperation(value = "绑定手术信息", notes = "权限: 无")
+    @PostMapping("/bindClinic")
+    public CommonResult<Boolean> bindClinic(@RequestBody AppDoctorBindClinicDTO source) {
+        return CommonResult.success(clinicRoomService.bindClinic(source));
+    }
 }

+ 23 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/controller/dto/AppDoctorBindClinicDTO.java

@@ -0,0 +1,23 @@
+package cn.tr.module.smart.app.controller.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * TODO
+ *
+ * @author wangzl
+ * @date 2025/10/10 16:00
+ */
+@Data
+@ToString
+@ApiModel("医生绑定手术")
+public class AppDoctorBindClinicDTO {
+
+    @ApiModelProperty("手术id")
+    private List<String> clinicIds;
+}

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

@@ -4,6 +4,8 @@ package cn.tr.module.smart.common.service;
 import cn.tr.module.smart.common.po.BizClinicRoomDoctorUserPO;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * 诊室与医生绑定Service接口
  *
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IBizClinicRoomDoctorUserService extends IService<BizClinicRoomDoctorUserPO> {
 
     void stdInsertBizClinicRoomDoctor(String userId, String id);
+
+    Boolean stdInsertBizClinicRoomDoctors(String userId, List<String> id);
 }

+ 7 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicRoomService.java

@@ -1,5 +1,6 @@
 package cn.tr.module.smart.common.service;
 
+import cn.tr.module.smart.app.controller.dto.AppDoctorBindClinicDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicQueryByPatientCodeDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicRoomDTO;
@@ -209,5 +210,10 @@ public interface IBizClinicRoomService {
      * @date 2025/9/23
      */
     List<WxDoctorClinicRoomThumbnailVO> queryClinicList(AppDoctorClinicQueryByPatientCodeDTO source);
-
+    /**
+     * @description: 医生端绑定手术信息
+     * @author wangzl
+     * @date 2025/10/10
+     */
+    Boolean bindClinic(AppDoctorBindClinicDTO source);
 }

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomDoctorUserServiceImpl.java

@@ -6,6 +6,11 @@ import cn.tr.module.smart.common.service.IBizClinicRoomDoctorUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 诊室与医生绑定Service接口实现类
  *
@@ -25,4 +30,17 @@ public class BizClinicRoomDoctorUserServiceImpl extends ServiceImpl<BizClinicRoo
         baseRepository.insert(clinicRoomDoctorUserPO);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean stdInsertBizClinicRoomDoctors(String userId, List<String> clinicRoomIds) {
+        List<BizClinicRoomDoctorUserPO> collect = clinicRoomIds.stream().map(clinicId -> {
+            BizClinicRoomDoctorUserPO clinicRoomDoctorUserPO = new BizClinicRoomDoctorUserPO();
+            clinicRoomDoctorUserPO.setClinicRoomId(clinicId);
+            clinicRoomDoctorUserPO.setUserId(userId);
+            return clinicRoomDoctorUserPO;
+        }).collect(Collectors.toList());
+
+        return this.saveOrUpdateBatch(collect);
+    }
+
 }

+ 20 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomServiceImpl.java

@@ -8,6 +8,7 @@ import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.strategy.LoginUserStrategy;
 import cn.tr.module.mobile.repository.ImGroupUserRepository;
+import cn.tr.module.smart.app.controller.dto.AppDoctorBindClinicDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicQueryByPatientCodeDTO;
 import cn.tr.module.smart.app.controller.dto.AppDoctorClinicRoomDTO;
@@ -790,6 +791,25 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
         return baseRepository.stdQueryClinicList(source);
     }
 
+    /**
+     * @param source
+     * @description: 医生端绑定手术信息
+     * @author wangzl
+     * @date 2025/10/10
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean bindClinic(AppDoctorBindClinicDTO source) {
+        String userId = LoginUserStrategy.tr.getCurrentUserId();
+
+        List<String> clinicIds = source.getClinicIds();
+        if (clinicIds.stream().anyMatch(Objects::isNull)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手术ID列表中包含空值");
+        }
+        //直接进行插入 因医生端绑定手术信息列表都是未进行绑定的手术信息
+        return clinicRoomDoctorUserService.stdInsertBizClinicRoomDoctors(userId, clinicIds);
+    }
+
     /**
      * 微信小程序基于医生已填写的信息更新数据
      */