Browse Source

feat: 提交

master
yuanjs@qutke.com 2 months ago
parent
commit
a60aa42276
  1. 4
      src/main/java/cn/ai/springaigu/service/AppointmentService.java
  2. 26
      src/main/java/cn/ai/springaigu/service/impl/AppointmentServiceImpl.java
  3. 15
      src/main/java/cn/ai/springaigu/tools/AppointmentTools.java

4
src/main/java/cn/ai/springaigu/service/AppointmentService.java

@ -3,6 +3,10 @@ package cn.ai.springaigu.service;
import cn.ai.springaigu.domain.Appointment;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface AppointmentService extends IService<Appointment> {
Appointment getOne(Appointment appointment);
List<Appointment> query(Appointment appointment);
}

26
src/main/java/cn/ai/springaigu/service/impl/AppointmentServiceImpl.java

@ -5,8 +5,11 @@ import cn.ai.springaigu.mapper.AppointmentMapper;
import cn.ai.springaigu.service.AppointmentService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.tika.utils.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AppointmentServiceImpl extends ServiceImpl<AppointmentMapper, Appointment> implements AppointmentService {
/**
@ -24,4 +27,27 @@ public class AppointmentServiceImpl extends ServiceImpl<AppointmentMapper, Appoi
queryWrapper.eq(Appointment::getTime, appointment.getTime());
return baseMapper.selectOne(queryWrapper);
}
@Override
public List<Appointment> query(Appointment appointment) {
LambdaQueryWrapper<Appointment> queryWrapper = new LambdaQueryWrapper<>();
if (!StringUtils.isEmpty(appointment.getUsername())) {
queryWrapper.eq(Appointment::getUsername, appointment.getUsername());
}
if (!StringUtils.isEmpty(appointment.getIdCard())) {
queryWrapper.eq(Appointment::getIdCard, appointment.getIdCard());
}
// if (!StringUtils.isEmpty(appointment.getDepartment())) {
// queryWrapper.eq(Appointment::getDepartment, appointment.getDepartment());
// }
// if (!StringUtils.isEmpty(appointment.getDate())) {
// queryWrapper.eq(Appointment::getDate, appointment.getDate());
// }
// if (!StringUtils.isEmpty(appointment.getTime())) {
// queryWrapper.eq(Appointment::getTime, appointment.getTime());
// }
return baseMapper.selectList(queryWrapper);
}
}

15
src/main/java/cn/ai/springaigu/tools/AppointmentTools.java

@ -4,9 +4,12 @@ import cn.ai.springaigu.domain.Appointment;
import cn.ai.springaigu.service.AppointmentService;
import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import dev.langchain4j.internal.Json;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class AppointmentTools {
@ -14,7 +17,7 @@ public class AppointmentTools {
private AppointmentService appointmentService;
// @Tool(name = "预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。")
@Tool(name="预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。如果用户没有提供具体的医生姓名,请从向量存储中找到一位医生。")
@Tool(name = "预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。如果用户没有提供具体的医生姓名,请从向量存储中找到一位医生。")
public String bookAppointment(Appointment appointment) {
//查找数据库中是否包含对应的预约记录
Appointment appointmentDB = appointmentService.getOne(appointment);
@ -45,6 +48,16 @@ public class AppointmentTools {
return "您没有预约记录,请核对预约科室和时间";
}
@Tool(name = "查询预约", value = "根据参数,查询预约数据集合")
public String queryAppointment(Appointment appointment) {
List<Appointment> query = appointmentService.query(appointment);
if (!query.isEmpty()) {
return "查询到预约数据:" + Json.toJson(query);
}
return "您没有预约记录";
}
@Tool(name = "查询是否有号源", value = "根据科室名称,日期,时间和医生查询是否有号源,并返回给用户")
public boolean queryDepartment(
@P(value = "科室名称") String name,

Loading…
Cancel
Save