Selaa lähdekoodia

医生端绑定手术信息返回已绑定数据返回

wangzl 2 kuukautta sitten
vanhempi
commit
28d4dc24b7

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

@@ -141,7 +141,7 @@ public class AppClinicRoomController extends BaseController {
     @ApiOperationSupport(author = "wangzl", order = 12)
     @ApiOperation(value = "绑定手术信息", notes = "权限: 无")
     @PostMapping("/bindClinic")
-    public CommonResult<Boolean> bindClinic(@RequestBody AppDoctorBindClinicDTO source) {
+    public CommonResult<List<String>> bindClinic(@RequestBody AppDoctorBindClinicDTO source) {
         return CommonResult.success(clinicRoomService.bindClinic(source));
     }
 

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

@@ -213,7 +213,7 @@ public interface IBizClinicRoomService {
      * @author wangzl
      * @date 2025/10/10
      */
-    Boolean bindClinic(AppDoctorBindClinicDTO source);
+    List<String> bindClinic(AppDoctorBindClinicDTO source);
 
     /**
      * @description: 医生端泵列表查询

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

@@ -797,7 +797,7 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean bindClinic(AppDoctorBindClinicDTO source) {
+    public List<String> bindClinic(AppDoctorBindClinicDTO source) {
         String userId = LoginUserStrategy.tr.getCurrentUserId();
 
         List<String> clinicIds = source.getClinicIds();
@@ -807,11 +807,20 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
         List<BizClinicRoomDoctorUserPO> bizClinicRoomDoctorUserPOS = clinicRoomDoctorUserRepository.selectList(
                 new LambdaQueryWrapper<BizClinicRoomDoctorUserPO>()
                         .in(BizClinicRoomDoctorUserPO::getClinicRoomId, clinicIds));
+        //获取已绑定的手术ID
+        List<String> collect = new ArrayList<>();
         if (CollectionUtil.isNotEmpty(bizClinicRoomDoctorUserPOS)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手术列表中包含已绑定的手术信息");
+            collect = bizClinicRoomDoctorUserPOS.stream().map(BizClinicRoomDoctorUserPO::getClinicRoomId).collect(Collectors.toList());
+            collect.forEach(t->clinicIds.removeIf(id->id.equals(t)));
         }
         //直接进行插入 因医生端绑定手术信息列表都是未进行绑定的手术信息
-        return clinicRoomDoctorUserService.stdInsertBizClinicRoomDoctors(userId, clinicIds);
+        if(ObjectUtil.isNotEmpty(clinicIds)){
+            Boolean saveResult = clinicRoomDoctorUserService.stdInsertBizClinicRoomDoctors(userId, clinicIds);
+            if (!saveResult) {
+                throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手术信息绑定失败");
+            }
+        }
+        return collect;
     }
 
     /**