liujie
2026-04-01 4b33796be3887c81fa40fba2f55dce4489cff041
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package com.estate.expert.admin.initdata;
 
import com.estate.expert.admin.domain.business.archive.ArchiveDto;
import com.estate.expert.admin.domain.business.archive.ArchiveType;
import com.estate.expert.admin.domain.business.car.CarDto;
import com.estate.expert.admin.domain.business.client.ClientDto;
import com.estate.expert.admin.domain.business.client.ClientType;
import com.estate.expert.admin.domain.business.contract.ContractDto;
import com.estate.expert.admin.domain.business.device.DeviceDto;
import com.estate.expert.admin.domain.business.device.DeviceType;
import com.estate.expert.admin.domain.common.EntityRef;
import com.estate.expert.admin.domain.user.UserDto;
import com.estate.expert.admin.initdata.common.ImportUtil;
import com.estate.expert.admin.service.*;
import lombok.Builder;
 
import java.io.File;
import java.util.List;
import java.util.TreeMap;
 
/**
 * 导入业务数据
 */
@Builder
public class ImportBusinessJob {
 
    private RoleService roleService;
 
    private UserService userService;
 
    private UserFileService userFileService;
 
    private ClientService clientService;
 
    private ContractService contractService;
 
    private CarService carService;
 
    private DeviceService deviceService;
 
    private ReportTemplateService reportTemplateService;
 
    private ArchiveService archiveService;
 
    public void importRoles() {
        roleService.createDefaultRoles();
    }
 
    public void importUsers() {
        userService.createSystemUser();
 
        ImportUtil.doImport(i -> {
            var user = UserDto.builder()
                    .name("user" + i)
                    .mobile(String.format("138%08d", i))
                    .departmentPath("/0")
                    .email(String.format("138%08d@example.com", i))
                    .remark("测试用户" + i)
                    .roleId(2) // 检查人员
                    .build();
            userService.add(userService.getSystemUser(), user);
        });
    }
 
    public void importSampleFiles(){
        var userFile = userFileService.upload(userService.getSystemUser(),
                new File("/Volumes/Works/管理平台/Sources/estate-expert-backend/admin-server/src/main/resources/images/sample.jpg"));
 
        var userFile2 = userFileService.upload(userService.getSystemUser(),
                new File("/Volumes/Works/管理平台/Sources/estate-expert-backend/admin-server/src/main/resources/data/sample_doc.docx"));
 
        var userFile3 = userFileService.upload(userService.getSystemUser(),
                new File("/Volumes/Works/管理平台/Sources/estate-expert-backend/admin-server/src/main/resources/data/sample_pdf.pdf"));
 
        userFileService.upload(userService.getSystemUser(),
                new File("/Volumes/Works/管理平台/Sources/estate-expert-backend/admin-server/src/main/resources/images/sample_1.png"));
 
        userFileService.upload(userService.getSystemUser(),
                new File("/Volumes/Works/管理平台/Sources/estate-expert-backend/admin-server/src/main/resources/images/sample_2.png"));
    }
 
    public void importArchives() {
        ImportUtil.doImport(i -> {
            var archive = ArchiveDto.builder()
                    .file(EntityRef.of(1))
                    .type(ArchiveType.values()[i % 5])
                    .remark("测试档案" + i)
                    .build();
            archiveService.add(userService.getSystemUser(), archive);
        });
    }
 
    public void importClients() {
        ImportUtil.doImport(i -> {
            var client = ClientDto.builder()
                    .name("测试委托方" + i)
                    .type(ClientType.DEVELOPER)
                    .intention("测试意向" + i)
                    .build();
            clientService.add(userService.getSystemUser(), client);
        });
    }
 
    public void importContracts(){
        ImportUtil.doImport(i -> {
            var contract = ContractDto.builder()
                    .name("NO_" + i)
                    .client(EntityRef.of(1))
                    .contractFile(EntityRef.of(1))
                    .techServiceFile(EntityRef.of(2))
                    .build();
            contractService.add(userService.getSystemUser(), contract);
        });
    }
 
    public void importCars() {
        ImportUtil.doImport(i -> {
            var car = CarDto.builder()
                    .name("车牌号" + i)
                    .model("车辆型号" + i)
                    .driver(EntityRef.of(i))
                    .initialMileage(1000 + i * 100)
                    .departmentPath("/0")
                    .images(List.of(EntityRef.of(1)))
                    .build();
            carService.add(userService.getSystemUser(), car);
        });
    }
 
    public void importDevices() {
        for(int i = 0; i < 20; i++)
        {
            var properties = new TreeMap<String, String>();
            properties.put("使用单位", "使用单位" + i);
            properties.put("设备出厂日期", "2021-01-01");
            properties.put("设备型号", "设备型号" + i);
            properties.put("工程起重机械生产单位", "生产单位" + i);
            properties.put("工程起重机械租赁单位", "租赁单位" + i);
            properties.put("工程起重机械维保单位", "维保单位" + i);
            properties.put("工程起重机械安拆单位", "安拆单位" + i);
            properties.put("工程起重机械设备备案登记证号", "备案证号" + i);
            properties.put("设备备案登记日期", "2021-01-01");
            properties.put("备案机构", "备案机构" + i);
            properties.put("设备备案登记有效期", "2021-01-01");
            properties.put("设备使用登记证号", "使用证号" + i);
            properties.put("使用登记日期", "2021-01-01");
            properties.put("使用登记机构", "使用登记机构" + i);
            properties.put("使用登记有效期截止日期", "2021-01-01");
            properties.put("初装高度", "100" + i);
            properties.put("最大安装高度", "200" + i);
            properties.put("最终安装高度", "300" + i);
            properties.put("验收日期", "2021-01-01");
            properties.put("安拆人员证件号", "安拆证号" + i);
 
            var device = DeviceDto.builder()
                    .type(DeviceType.values()[i % 10])
                    .name("设备编号" + i)
                    .manufacturerNumber("NO_" + i)
                    .properties(properties)
                    .build();
            deviceService.add(userService.getSystemUser(), device);
        }
    }
 
    public void importReportTemplates(){
        reportTemplateService.createDefaultTemplates();
    }
}