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);
|
}
|
|
}
|