package com.ruoyi.system.service.impl; import com.ruoyi.system.domain.vo.TaskCreateVO; import com.ruoyi.system.service.ILegacyTransferSyncService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.HashMap; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest public class LegacyTransferSyncServiceImplTest { @Autowired private ILegacyTransferSyncService legacyTransferSyncService; @Test public void testBuildCreateTaskVo() { // 准备测试数据 String serviceOrdID = "12345"; String dispatchOrdID = "67890"; Map order = new HashMap<>(); order.put("ServiceOrdID", serviceOrdID); order.put("DispatchOrdID", dispatchOrdID); order.put("ServiceOrdPtName", "张三"); order.put("ServiceOrdCoPhone", "13800138000"); order.put("ServiceOrdPtIDCard", "110101199001011234"); order.put("ServiceOrdPtCondition", "病情稳定"); order.put("ServiceOrdCoName", "李四"); order.put("ServiceOrdPtOutHospID", 1001L); order.put("ServiceOrdPtServicesID", "2001"); order.put("ServiceOrdPtInHospID", 1002L); order.put("ServiceOrdPtInServicesID", "2002"); order.put("ServiceOrdTraStreet", "北京市朝阳区某某街道123号"); order.put("ServiceOrdTraEnd", "北京市海淀区某某医院"); order.put("ServiceOrdTraTxnPrice", "500.00"); order.put("ServiceOrdClass", "A001"); order.put("ServiceOrdType", "T001"); order.put("DispatchOrdStartDate", "2025-11-20 09:00:00"); order.put("DispatchOrd_NS_Time", "2025-11-19 14:30:00"); // 调用方法 TaskCreateVO taskCreateVO = legacyTransferSyncService.buildCreateTaskVo(serviceOrdID, dispatchOrdID, order); // 验证结果 assertNotNull(taskCreateVO); assertEquals("EMERGENCY_TRANSFER", taskCreateVO.getTaskType()); assertEquals("从旧系统同步的转运单", taskCreateVO.getTaskDescription()); // 验证患者信息 assertNotNull(taskCreateVO.getPatient()); assertEquals("张三", taskCreateVO.getPatient().getName()); assertEquals("13800138000", taskCreateVO.getPatient().getPhone()); assertEquals("110101199001011234", taskCreateVO.getPatient().getIdCard()); assertEquals("病情稳定", taskCreateVO.getPatient().getCondition()); assertEquals("李四", taskCreateVO.getPatient().getContact()); // 验证转出医院信息 assertNotNull(taskCreateVO.getHospitalOut()); assertEquals(Long.valueOf(1001), taskCreateVO.getHospitalOut().getId()); assertEquals("2001", taskCreateVO.getHospitalOut().getDepartmentId()); // 验证转入医院信息 assertNotNull(taskCreateVO.getHospitalIn()); assertEquals(Long.valueOf(1002), taskCreateVO.getHospitalIn().getId()); assertEquals("2002", taskCreateVO.getHospitalIn().getDepartmentId()); // 验证地址信息 assertEquals("北京市朝阳区某某街道123号", taskCreateVO.getDepartureAddress()); assertEquals("北京市海淀区某某医院", taskCreateVO.getDestinationAddress()); // 验证价格信息 assertEquals("500.00", taskCreateVO.getPrice().toString()); // 验证单据类型和任务类型 assertEquals("A001", taskCreateVO.getDocumentTypeId()); assertEquals("T001", taskCreateVO.getTaskTypeId()); // 验证备注信息 assertTrue(taskCreateVO.getRemark().contains("服务单ID: " + serviceOrdID)); assertTrue(taskCreateVO.getRemark().contains("调度单ID: " + dispatchOrdID)); } @Test public void testIsTransferOrderSyncedWithInvalidParams() { // 测试服务单ID为空的情况 boolean result1 = legacyTransferSyncService.isTransferOrderSynced(null, "12345"); assertFalse(result1); // 测试服务单ID为空字符串的情况 boolean result2 = legacyTransferSyncService.isTransferOrderSynced("", "12345"); assertFalse(result2); // 测试服务单ID为非数字字符串的情况 boolean result3 = legacyTransferSyncService.isTransferOrderSynced("abc", "12345"); assertFalse(result3); } @Test public void testSyncSingleTransferOrderWithInvalidParams() { // 测试服务单ID为空的情况 boolean result1 = legacyTransferSyncService.syncSingleTransferOrder(null, "12345"); assertFalse(result1); // 测试服务单ID为空字符串的情况 boolean result2 = legacyTransferSyncService.syncSingleTransferOrder("", "12345"); assertFalse(result2); } }