wlzboy
2025-11-22 d4fe921568bc29d72644a55fd194adf7f9277cb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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<String, Object> 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);
    }
}