diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/DoctorScheduleAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/DoctorScheduleAppServiceImpl.java index 9fae7f0c..576e9e1e 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/DoctorScheduleAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/DoctorScheduleAppServiceImpl.java @@ -3,6 +3,7 @@ package com.openhis.web.appointmentmanage.appservice.impl; import cn.hutool.core.util.ObjectUtil; import com.core.common.core.domain.R; import com.openhis.appointmentmanage.domain.DoctorSchedule; +import com.openhis.appointmentmanage.mapper.DoctorScheduleMapper; import com.openhis.appointmentmanage.service.IDoctorScheduleService; import com.openhis.web.appointmentmanage.appservice.IDoctorScheduleAppService; import org.springframework.stereotype.Service; @@ -14,6 +15,9 @@ import java.util.List; public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService { @Resource private IDoctorScheduleService doctorScheduleService; + + @Resource + private DoctorScheduleMapper doctorScheduleMapper; @Override @@ -27,8 +31,35 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService { if (ObjectUtil.isEmpty(doctorSchedule)) { return R.fail("医生排班不能为空"); } - boolean save = doctorScheduleService.save(doctorSchedule); - return R.ok(save); + // 创建新对象,排除id字段(数据库id列是GENERATED ALWAYS,由数据库自动生成) + DoctorSchedule newSchedule = new DoctorSchedule(); + newSchedule.setWeekday(doctorSchedule.getWeekday()); + newSchedule.setTimePeriod(doctorSchedule.getTimePeriod()); + newSchedule.setDoctor(doctorSchedule.getDoctor()); + newSchedule.setClinic(doctorSchedule.getClinic()); + newSchedule.setStartTime(doctorSchedule.getStartTime()); + newSchedule.setEndTime(doctorSchedule.getEndTime()); + newSchedule.setLimitNumber(doctorSchedule.getLimitNumber()); + // call_sign_record 字段不能为null,设置默认值为空字符串 + newSchedule.setCallSignRecord(doctorSchedule.getCallSignRecord() != null ? doctorSchedule.getCallSignRecord() : ""); + newSchedule.setRegisterItem(doctorSchedule.getRegisterItem() != null ? doctorSchedule.getRegisterItem() : ""); + newSchedule.setRegisterFee(doctorSchedule.getRegisterFee() != null ? doctorSchedule.getRegisterFee() : 0); + newSchedule.setDiagnosisItem(doctorSchedule.getDiagnosisItem() != null ? doctorSchedule.getDiagnosisItem() : ""); + newSchedule.setDiagnosisFee(doctorSchedule.getDiagnosisFee() != null ? doctorSchedule.getDiagnosisFee() : 0); + newSchedule.setIsOnline(doctorSchedule.getIsOnline() != null ? doctorSchedule.getIsOnline() : false); + newSchedule.setIsStopped(doctorSchedule.getIsStopped() != null ? doctorSchedule.getIsStopped() : false); + newSchedule.setStopReason(doctorSchedule.getStopReason() != null ? doctorSchedule.getStopReason() : ""); + newSchedule.setDeptId(doctorSchedule.getDeptId()); + // 不设置id字段,让数据库自动生成 + // 使用自定义的insertWithoutId方法,确保INSERT语句不包含id字段 + int result = doctorScheduleMapper.insertWithoutId(newSchedule); + boolean save = result > 0; + if (save) { + // 返回保存后的实体对象,包含数据库生成的ID + return R.ok(newSchedule); + } else { + return R.fail("保存失败"); + } } @Override diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/DoctorSchedule.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/DoctorSchedule.java index 1e8f2317..4e226c83 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/DoctorSchedule.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/DoctorSchedule.java @@ -1,5 +1,7 @@ package com.openhis.appointmentmanage.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; @@ -15,7 +17,8 @@ import java.time.LocalTime; @TableName(value = "adm_doctor_schedule") @Accessors(chain = true) public class DoctorSchedule { - /** id */ + /** id - 数据库GENERATED ALWAYS,由数据库自动生成,插入时不应包含此字段 */ + @TableId(type = IdType.NONE) private Integer id; /** 星期 */ diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/DoctorScheduleMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/DoctorScheduleMapper.java index 0eb56aec..8dc18b2e 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/DoctorScheduleMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/DoctorScheduleMapper.java @@ -2,8 +2,12 @@ package com.openhis.appointmentmanage.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.openhis.appointmentmanage.domain.DoctorSchedule; -import org.springframework.stereotype.Repository; +import org.apache.ibatis.annotations.Mapper; -@Repository +@Mapper public interface DoctorScheduleMapper extends BaseMapper { + /** + * 自定义插入方法,排除id字段(数据库GENERATED ALWAYS) + */ + int insertWithoutId(DoctorSchedule doctorSchedule); } diff --git a/openhis-ui-vue3/src/views/appoinmentmanage/deptManage/doctorschedule/index.vue b/openhis-ui-vue3/src/views/appoinmentmanage/deptManage/doctorschedule/index.vue index 3c68e3e8..eefa96e7 100644 --- a/openhis-ui-vue3/src/views/appoinmentmanage/deptManage/doctorschedule/index.vue +++ b/openhis-ui-vue3/src/views/appoinmentmanage/deptManage/doctorschedule/index.vue @@ -27,8 +27,8 @@ 排班类型
- 普通 - 专家 + 普通 + 专家
@@ -42,7 +42,7 @@ - + @@ -125,6 +127,7 @@ placeholder="请选" class="inline-select" :disabled="!isEditMode" + @change="handleAppointmentItemChange(scope.row)" > @@ -133,7 +136,11 @@ - + + + - + + + - + + + - + + +