Explorar el Código

医生端手术新增更新接口拆分

wangzl hace 3 meses
padre
commit
7f4207c941

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

@@ -85,6 +85,7 @@ public class AppClinicRoomController extends BaseController {
     @ApiOperationSupport(author = "lf",order = 6)
     @ApiOperation(value="添加患者手术信息",notes = "权限: 无")
     @PostMapping("/add")
+    @Deprecated
     public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizClinicAddOrEditDTO source) {
         return CommonResult.success(clinicRoomService.stdAddDoctorApp(source));
     }
@@ -117,10 +118,16 @@ public class AppClinicRoomController extends BaseController {
         return CommonResult.success(clinicRoomService.stdAppSelectListByPatientCodeLast(source));
     }
     @ApiOperationSupport(author = "wangzl",order = 9)
-    @ApiOperation(value="绑定最新一条手术信息",notes = "权限: 无")
+    @ApiOperation(value="绑定手术信息",notes = "权限: 无")
     @PostMapping("/bindLastClinic")
     public CommonResult<Boolean> stdBindLastClinic(@RequestBody@Validated(Insert.class) BizClinicAddOrEditDTO source) {
         return CommonResult.success(clinicRoomService.stdBindLastClinic(source));
     }
 
+    @ApiOperationSupport(author = "wangzl",order = 10)
+    @ApiOperation(value="新增手术信息",notes = "权限: 无")
+    @PostMapping("/insert")
+    public CommonResult<Boolean> stdInsertDoctorApp(@RequestBody@Validated(Insert.class) BizClinicAddOrEditDTO source) {
+        return CommonResult.success(clinicRoomService.stdInsertDoctorApp(source));
+    }
 }

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

@@ -189,4 +189,12 @@ public interface IBizClinicRoomService {
      * @date 2025/9/22
      */
     Boolean stdBindLastClinic(BizClinicAddOrEditDTO source);
+
+    /**
+     * @description: 医生端新增手术信息
+     * @author wangzl
+     * @date 2025/9/23
+     */
+    Boolean stdInsertDoctorApp(BizClinicAddOrEditDTO source);
+
 }

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

@@ -16,7 +16,6 @@ import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomThumbnailVO;
 import cn.tr.module.smart.common.dto.BizClinicAddOrEditDTO;
 import cn.tr.module.smart.common.dto.BizClinicRoomDTO;
 import cn.tr.module.smart.common.dto.BizClinicRoomQueryDTO;
-import cn.tr.module.smart.common.dto.BizDeptDTO;
 import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
 import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
 import cn.tr.module.smart.common.enums.InfusionBindType;
@@ -695,13 +694,48 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
         //若未监护,则证明该手术是由医生端发起的,添加监护信息(手术信息以医生输入为主,如果医生没有输入,则按照病人输入的来)
         clinicRoomDoctorUserService.stdInsertBizClinicRoomDoctor(userId, clinicRoom.getId());
         //更新医生录入手术信息
-        clinicRoom.setClinicStatus(ClinicPhaseEnums.BEFORE);
+        if (ObjectUtil.compare(source.getClinicStartTime(), new Date()) > 0) {
+            clinicRoom.setClinicStatus(ClinicPhaseEnums.BEFORE);
+            clinicRoom.setClinicEndTime(null);
+        }
         clinicRoom.setClinicStartTime(clinicStartTime);
-        clinicRoom.setClinicEndTime(null);
         clinicRoom.setDeptId(source.getDeptId());
         clinicRoom.setDeptName(source.getDeptName());
         clinicRoom.setClinicName(source.getClinicName());
-        return baseRepository.updateById(clinicRoom)!=0;
+        return baseRepository.updateById(clinicRoom) != 0;
+    }
+
+    /**
+     * @param source
+     * @description: 医生端新增手术信息
+     * @author wangzl
+     * @date 2025/9/23
+     */
+    @Override
+    public Boolean stdInsertDoctorApp(BizClinicAddOrEditDTO source) {
+        String userId = LoginUserStrategy.tr.getCurrentUserId();
+        String patientCode = source.getPatientCode();
+        //1、先判断是否已经添加过了患者信息
+        BizPatientPO patient = patientRepository.selectOne(new LambdaQueryWrapper<BizPatientPO>()
+                .eq(BizPatientPO::getPatientCode, patientCode)
+                .last("limit 1"));
+        if (ObjectUtil.isNull(patient)) {
+            patient = patientService.insertBizPatientAndReturnObj(source);
+        }
+        BizClinicRoomPO clinicRoom = BizClinicRoomMapper.INSTANCE.convertPO(source);
+        clinicRoom.setPatientId(patient.getId());
+        clinicRoom.setFollowUpCount(0);
+        clinicRoom.setFollowUp(Boolean.FALSE);
+        clinicRoom.setLastModifyUserType(UserTypeEnums.APP_DOCTOR);
+        clinicRoom.setLastModifyUserBy(userId);
+        clinicRoom.setClinicStatus(ClinicPhaseEnums.BEFORE);
+        this.baseRepository.insert(clinicRoom);
+        //更新患者绑定的最新手术id
+        patient.setCurrentClinicId(clinicRoom.getId());
+        patientRepository.updateById(patient);
+        //更新医生看护列表
+        clinicRoomDoctorUserService.stdInsertBizClinicRoomDoctor(userId, clinicRoom.getId());
+        return Boolean.TRUE;
     }
 
     /**