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 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 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 projectTypes, String communityName, List 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 projectTypes, String communityName, List 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 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> callBack) { HDLPMProjectController.getInstance().getIrDeviceTypeList(deviceType, callBack); } /** * 查询红外设备类型的品牌列表 * * @param deviceTypeId 设备类型主键Id * @param callBack * @return */ public void getIrDeviceBrandList(String deviceTypeId, IResponseCallBack> callBack) { HDLPMProjectController.getInstance().getIrDeviceBrandList(deviceTypeId, callBack); } /** * 查询红外设备类型的品牌红外码库列表 * * @param brandId 品牌主键Id * @param callBack * @return */ public void getIrDeviceCodeList(String brandId, IResponseCallBack> 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 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); } }