Agent原生系统实战:从任务规划到异常处理,搭建任务执行流程
2026/10/16 13:41:29
以下是一套基于Java技术的多端医护上门系统源码方案,涵盖系统架构、核心功能、技术选型及创新亮点:
分层架构:
微服务架构:
安全架构:
用户服务:
订单服务:
医护调度服务:
支付服务:
数据库设计:
sql
CREATE TABLE `medical_order` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `order_no` varchar(32) NOT NULL COMMENT '订单编号', `patient_id` bigint(20) NOT NULL COMMENT '患者ID', `nurse_id` bigint(20) DEFAULT NULL COMMENT '护士ID', `service_type` tinyint(4) NOT NULL COMMENT '服务类型', `appointment_time` datetime NOT NULL COMMENT '预约时间', `address` varchar(255) NOT NULL COMMENT '上门地址', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单状态', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_no` (`order_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='医护订单表';MyBatis-Plus数据访问层实现:
java
@Data @TableName("medical_order") public class MedicalOrder { @TableId(type = IdType.AUTO) private Long id; private String orderNo; private Long patientId; private Long nurseId; private Integer serviceType; private Date appointmentTime; private String address; private Integer status; private Date createTime; private Date updateTime; }java
public interface MedicalOrderMapper extends BaseMapper<MedicalOrder> { @Select("SELECT * FROM medical_order WHERE status = #{status}") List<MedicalOrder> selectByStatus(@Param("status") Integer status); }java
@Service public class MedicalOrderServiceImpl extends ServiceImpl<MedicalOrderMapper, MedicalOrder> implements MedicalOrderService { @Override public Page<MedicalOrder> queryOrdersByPage(OrderQueryDTO queryDTO) { Page<MedicalOrder> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize()); LambdaQueryWrapper<MedicalOrder> wrapper = Wrappers.lambdaQuery(); wrapper.eq(MedicalOrder::getStatus, queryDTO.getStatus()) .ge(queryDTO.getStartTime() != null, MedicalOrder::getCreateTime, queryDTO.getStartTime()) .le(queryDTO.getEndTime() != null, MedicalOrder::getCreateTime, queryDTO.getEndTime()) .orderByDesc(MedicalOrder::getCreateTime); return baseMapper.selectPage(page, wrapper); } }JWT认证与权限控制:
java
@Component public class JwtTokenUtil { private String secret = "medical-secret-key"; private Long expiration = 86400L; // 24小时 public String generateToken(UserDetails userDetails) { Map<String, Object> claims = new HashMap<>(); claims.put("username", userDetails.getUsername()); // 其他claims... return Jwts.builder() .setClaims(claims) .setSubject(userDetails.getUsername()) .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis() + expiration * 1000)) .signWith(SignatureAlgorithm.HS512, secret) .compact(); } }AI智能匹配:
实时服务跟踪:
智能通讯与记录:
健康数据管理: