hxb
2024-02-23 a6c0ac0f20d1d91fbe1fe591a6a9ca46f82399f5
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
package com.hdl.linkpm.sdk.project;
 
import com.google.gson.JsonArray;
import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack;
import com.hdl.linkpm.sdk.core.callback.IResponseCallBack;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.home.bean.GatewayBindBean;
import com.hdl.linkpm.sdk.home.bean.GatewayInfoBean;
import com.hdl.linkpm.sdk.home.bean.HomeInfoBean;
import com.hdl.linkpm.sdk.home.controller.HDLPMHomeController;
import com.hdl.linkpm.sdk.project.bean.HousePageRequestBean;
import com.hdl.linkpm.sdk.project.bean.IrDeviceBrandBean;
import com.hdl.linkpm.sdk.project.bean.IrDeviceCodeBean;
import com.hdl.linkpm.sdk.project.bean.IrDeviceTypeBean;
import com.hdl.linkpm.sdk.project.bean.NewProjectRequestBean;
import com.hdl.linkpm.sdk.project.callback.DriverDetailListCallBack;
import com.hdl.linkpm.sdk.project.callback.DriverDownLoadCallBack;
import com.hdl.linkpm.sdk.project.callback.DriverTypeListCallBack;
import com.hdl.linkpm.sdk.project.callback.IEmployeeInfoCallBack;
import com.hdl.linkpm.sdk.project.callback.IProjectHouseListCallBack;
import com.hdl.linkpm.sdk.project.callback.IProjectInfoListCallBack;
import com.hdl.linkpm.sdk.project.controller.HDLPMProjectController;
 
import java.util.List;
 
 
/**
 * Created by jlchen on 12/8/21.
 * 项目管理相关
 */
public class HDLLinkPMProject {
    //instance
    private volatile static HDLLinkPMProject instance;
 
    /**
     * getInstance
     *
     * @return HDLLinkProject
     */
    public static synchronized HDLLinkPMProject getInstance() {
        if (instance == null) {
            synchronized (HDLLinkPMProject.class) {
                if (instance == null) {
                    instance = new HDLLinkPMProject();
                }
            }
        }
        return instance;
    }
 
 
    /**
     * 获取指定公司员工列表 支持名称模糊查询
     *
     * @param companyId 公司ID
     * @param userName  名称模糊查询
     * @param callBack
     * @return
     */
    public void getDebuggerList(String companyId, String userName, IEmployeeInfoCallBack callBack) {
        HDLPMProjectController.getInstance().getDebuggerList(companyId, userName, callBack);
    }
 
    /**
     * 添加调试人员、转移调试人员
     *
     * @param houseId  住宅id
     * @param userId   用户id
     * @param callBack
     * @return
     */
    public void changeHomeDebugger(String houseId, String userId, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().changeHomeDebugger(houseId, userId, callBack);
    }
 
    /**
     * 批量添加调试人员、转移调试人员
     *
     * @param houseIds      住宅id 列表
     * @param userId        用户id
     * @param communityCode 社区code
     * @param callBack
     * @return
     */
    public void batchChangeHomeDebugger(List<String> houseIds, String userId, String communityCode, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().batchChangeHomeDebugger(houseIds, userId, communityCode, callBack);
    }
 
    /**
     * 获取项目列表、指定项目类型查询所有调试状态
     *
     * @param projectTypes 数组 项目类型 ProjectType.Home、ProjectType.RealEstate、ProjectType.PublicBuilding、ProjectType.Hotel
     * @param pageNo
     * @param pageSize
     * @param callBack
     * @return
     */
    public void getProjectList(List<String> projectTypes, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
        HDLPMProjectController.getInstance().getProjectList(projectTypes, "", null, pageNo, pageSize, callBack);
    }
 
    /**
     * 获取项目列表
     * 支持根据项目类型
     * 支持根据项目名字模糊查询
     * 支持更加调试状态集合查询
     *
     * @param projectTypes  数组 项目类型 ProjectType.Home、ProjectType.RealEstate、ProjectType.PublicBuilding、ProjectType.Hotel
     * @param communityName 通过项目名称模糊查询
     * @param debugStatus   数组 调试状态 To_Be_Debugged(0, "待调试")、Debugging(1, "调试中")、WAIT_DELIVERED(3, "待交付")、Delivered(4, "已交付")、INITIAL_TATE(5,"初始态")
     * @param pageNo
     * @param pageSize
     * @param callBack
     * @return
     */
    public void getProjectList(List<String> projectTypes, String communityName, List<String> debugStatus, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
        HDLPMProjectController.getInstance().getProjectList(projectTypes, communityName, debugStatus, pageNo, pageSize, callBack);
    }
 
    public void getRedebugProjectList(String communityName,String companyId,String debugUserId, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
        HDLPMProjectController.getInstance().getReDebugProjectList(communityName,companyId, debugUserId, pageNo, pageSize, callBack);
    }
 
    public void getProjectListExcuse(List<String> projectTypes, String communityName, List<String> debugStatus, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
        HDLPMProjectController.getInstance().getProjectListExecute(projectTypes, communityName, debugStatus, pageNo, pageSize, callBack);
    }
 
    public void addDownloadCount(String driverVersionId) {
        HDLPMProjectController.getInstance().addDownloadCount(driverVersionId);
    }
 
    public void addDownloadFirmwareCount(String firmwareVersionId) {
        HDLPMProjectController.getInstance().addDownloadFirmwareCount(firmwareVersionId);
    }
 
    public void addDownloadThirdCount(String thirdFirmwareVersionId) {
        HDLPMProjectController.getInstance().addDownloadThirdCount(thirdFirmwareVersionId);
    }
 
 
    /**
     * 新建项目
     *
     * @param newProjectRequestBean 项目信息对象
     * @param callBack
     * @return
     */
    public void addNewHouseProject(NewProjectRequestBean newProjectRequestBean, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().addNewHouseProject(newProjectRequestBean, callBack);
    }
 
    /**
     * 交付项目 所有房屋处于已交付状态才通过 否则提示尚未有未交付的房屋
     * 针对酒店和地产项目
     *
     * @param communityId 小区ID
     * @param callBack
     * @return
     */
    public void deliveryRoject(String communityId, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().deliveryRoject(communityId, callBack);
    }
 
    /**
     * 撤回交付的项目 已交付的项目变为待交付 针对酒店和地产项目
     *
     * @param communityId 小区ID
     * @param callBack
     * @return
     */
    public void withdrawDeliveryProject(String communityId, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().withdrawDeliveryProject(communityId, callBack);
    }
 
    /******************************房屋管理******************************/
    /**
     * 获取项目的房屋信息列表,分页查询
     *
     * @param requestBean 请求参数对象
     * @param callBack
     * @return
     */
    public void getProjecHouseList(HousePageRequestBean requestBean, IProjectHouseListCallBack callBack) {
        HDLPMProjectController.getInstance().getProjecHouseList(requestBean, callBack);
    }
    public void getProjecHouseListExecute(HousePageRequestBean requestBean, IProjectHouseListCallBack callBack) {
        HDLPMProjectController.getInstance().getProjecHouseListExecute(requestBean, callBack);
    }
 
    /**
     * 绑定极光推送
     *
     * @param communityCode 项目code
     * @param debugStatus   调试状态 0:待调试  1:调试中 2:待验收 3:已完成 4:已交付,为空则不过滤
     * @param houseIds      房屋id集合
     * @param callBack
     * @return
     */
 
    /**
     *
     * @param deviceName  设备名称
     * @param pushToken  App的推送Token,在极光为RegId  设备类型,可用值:Android、IOS、WinPhone
     * @param software  软件来源,Evoyo、ON、ON_Plus、DebugTreasure
     * @param callBack
     */
    public void bindJPushId(String deviceName, String pushToken, String software, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().bindJPushId(deviceName, pushToken, software, callBack);
    }
 
    /**
     *
     * @param homeId  住宅id
     * @param homeName  住宅名称
     * @param callBack
     */
    public void syncHome(String homeId, String homeName, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().updateHouseName(homeId, homeName, callBack);
    }
 
 
 
    /**
     * 解绑极光推送
     *
     * @param callBack
     * @return
     */
    public void unBindJPushId(IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().unBindJPushId(callBack);
    }
 
    /**
     * 批量更新房屋调试状态
     *
     * @param communityCode 项目code
     * @param debugStatus   调试状态 0:待调试  1:调试中 2:待验收 3:已完成 4:已交付,为空则不过滤
     * @param houseIds      房屋id集合
     * @param callBack
     * @return
     */
    public void batchChangeHouseDebugstatus(String communityCode, int debugStatus, List<String> houseIds, IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().batchChangeHouseDebugstatus(communityCode, debugStatus, houseIds, callBack);
    }
 
    /**
     * 获取驱动分页列表
     *
     * @param driverTypeId 驱动类型id
     * @param callBack
     * @return
     */
    public void getDriverList(String driverTypeId, DriverTypeListCallBack callBack) {
        HDLPMProjectController.getInstance().driverList(driverTypeId, callBack);
    }
 
    /**
     * 获取驱动分页列表
     *
     * @param driverId 驱动类型id
     * @param callBack
     * @return
     */
    public void getVersionList(String driverId, DriverDetailListCallBack callBack) {
        HDLPMProjectController.getInstance().versionList(driverId, callBack);
    }
 
 
    /**
     * 查询红外设备类型列表
     *
     * @param deviceType 设备类型
     * @param callBack
     * @return
     */
    public void getIrDeviceTypeList(String deviceType, IResponseCallBack<List<IrDeviceTypeBean>> callBack) {
        HDLPMProjectController.getInstance().getIrDeviceTypeList(deviceType, callBack);
    }
 
    /**
     * 查询红外设备类型的品牌列表
     *
     * @param deviceTypeId 设备类型主键Id
     * @param callBack
     * @return
     */
    public void getIrDeviceBrandList(String deviceTypeId, IResponseCallBack<List<IrDeviceBrandBean>> callBack) {
        HDLPMProjectController.getInstance().getIrDeviceBrandList(deviceTypeId, callBack);
    }
 
    /**
     * 查询红外设备类型的品牌红外码库列表
     *
     * @param brandId 品牌主键Id
     * @param callBack
     * @return
     */
    public void getIrDeviceCodeList(String brandId, IResponseCallBack<List<IrDeviceCodeBean>> callBack) {
        HDLPMProjectController.getInstance().getIrDeviceCodeList(brandId, callBack);
    }
 
    /**
     * 驱动上传
     *
     * @param url 驱动下载路径
     * @param callBack
     * @return
     */
    public void downLoadDriver(String url, DriverDownLoadCallBack callBack) {
        HDLPMProjectController.getInstance().downLoadDriver(url, callBack);
    }
 
 
 
 
    /******************************数据上传云端******************************/
    /**
     * house表的数据没有同步到home表、数据存在两张表里面,需要客户端调接口同步
     *
     * @param homeInfoBean 住宅Info
     * @param callBack
     * @return
     */
    public void synchHouseToHome(HomeInfoBean homeInfoBean, IDefaultCallBack callBack) {
        HDLPMHomeController.getInstance().synchHouseToHome(homeInfoBean, callBack);
    }
 
    /**
     * 绑定网关到住宅
     *
     * @param bean     网关信息
     * @param callBack
     * @return
     */
    public void bindGateway(GatewayBindBean bean, IResponseCallBack<GatewayInfoBean> callBack) {
        HDLPMHomeController.getInstance().bindGateway(bean, callBack);
    }
 
    /**
     * 设备基本信息(oid)
     * @param homeId
     * @param devicesInfo
     * @param callBack
     */
    public void fullUpdateDeviceInfo(String homeId, JsonArray devicesInfo,IDefaultCallBack callBack){
        HDLPMProjectController.getInstance().fullUpdateDeviceInfo(homeId, devicesInfo,callBack);
    }
 
    /**
     * 更新功能信息,全量
     * @param homeId
     * @param funtionListInfo
     * @param callBack
     */
    public void fullUpdateFunctionInfo(String homeId ,String gatewayId,JsonArray funtionListInfo ,IDefaultCallBack callBack){
        HDLPMProjectController.getInstance().fullUpdateFunctionListInfo(homeId,gatewayId,funtionListInfo,callBack);
    }
    public void fullUpdateSceneInfo(String homeId ,JsonArray data ,IDefaultCallBack callBack){
        HDLPMProjectController.getInstance().fullUpdateSceneListInfo(homeId,data,callBack);
    }
    public void fullUpdateLogicInfo(String homeId ,JsonArray data ,IDefaultCallBack callBack){
        HDLPMProjectController.getInstance().fullUpdateLogicListInfo(homeId,data,callBack);
    }
    public void fullUpdateUidInfo(String homeId ,JsonArray data ,IDefaultCallBack callBack){
        HDLPMProjectController.getInstance().fullUpdateUidInfo(homeId,data,callBack);
    }
    public void fullUpdateSecuritysListInfo(String homeId,String gatewayId ,JsonArray data ,IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().fullUpdateSecuritysListInfo(homeId, gatewayId, data, callBack);
    }
    public void fullUpdateGroupControlListInfo(String homeId,String gatewayId ,JsonArray data ,IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().fullUpdateSecuritysListInfo(homeId, gatewayId, data, callBack);
    }
 
    public void fullAddGroupControlList(String homeId,String gatewayId ,JsonArray data ,IDefaultCallBack callBack) {
        HDLPMProjectController.getInstance().fullAddGroupControlList(homeId, gatewayId, data, callBack);
    }
 
}