fix (farm): 设备中心
- 水肥机设备-修改属性接口
This commit is contained in:
@@ -102,6 +102,13 @@ public class DeviceInfoController {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@PutMapping("/wf/property")
|
||||
@Operation(summary = "水肥机-属性修改")
|
||||
public CommonResult<Boolean> updateDevicePropertiesForWf(UpdateDevicePropertiesForWfReqVO reqVO) {
|
||||
Boolean res = deviceInfoService.updateDevicePropertiesForWf(reqVO);
|
||||
return success(res);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除设备信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description: 水肥机-修改
|
||||
* @author: binda
|
||||
* @date: 2025/10/10 20:08
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateDevicePropertiesForWfReqVO {
|
||||
private String id;
|
||||
private String deviceId;
|
||||
private Map<String,String> paramStr;
|
||||
}
|
||||
@@ -4,6 +4,8 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: binda
|
||||
@@ -14,15 +16,5 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
public class UpdateDeviceStatusReqVO {
|
||||
private String deviceId;
|
||||
private ParamStr paramStr;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public static class ParamStr{
|
||||
// 设备开关名称
|
||||
private String Value1;
|
||||
// 要修改的值
|
||||
private String Value11;
|
||||
}
|
||||
private Map<String,String> paramStr;
|
||||
}
|
||||
|
||||
@@ -110,9 +110,11 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
||||
try {
|
||||
// 转换请求参数
|
||||
UpdateDeviceStatusReqVO wfRequest = (UpdateDeviceStatusReqVO) updateRequest;
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
String json = objectMapper.writeValueAsString(wfRequest);
|
||||
|
||||
// 调用水肥机设备厂商API更新设备属性 POST 请求方式
|
||||
UpdateDeviceStatusRespVO vendorResponse = callWFUpdateDeviceApi(token, wfRequest);
|
||||
UpdateDeviceStatusRespVO vendorResponse = callWFUpdateDeviceApi(token, json);
|
||||
|
||||
// 转换为统一响应格式
|
||||
return convertToUnifiedUpdateResponse(vendorResponse);
|
||||
@@ -201,7 +203,7 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
||||
return httpClientUtils.doGet(url, headers, null, RealTimeDeviceDataRespVO.class);
|
||||
}
|
||||
|
||||
private UpdateDeviceStatusRespVO callWFUpdateDeviceApi(String token, UpdateDeviceStatusReqVO request) {
|
||||
private UpdateDeviceStatusRespVO callWFUpdateDeviceApi(String token, String request) {
|
||||
String url = deviceConf.getWaterAndFertilizer().getHosts() + deviceConf.getWaterAndFertilizer().getUrl4();
|
||||
String clientId = deviceConf.getWaterAndFertilizer().getClientId();
|
||||
|
||||
@@ -209,12 +211,12 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
||||
headers.put("Authorization", "Bearer " + token);
|
||||
headers.put("clientId", clientId);
|
||||
|
||||
// 构建请求体,包含设备ID和参数
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("deviceId", request.getDeviceId());
|
||||
requestBody.put("paramStr", request.getParamStr());
|
||||
// // 构建请求体,包含设备ID和参数
|
||||
// Map<String, Object> requestBody = new HashMap<>();
|
||||
// requestBody.put("deviceId", request.getDeviceId());
|
||||
// requestBody.put("paramStr", request.getParamStr());
|
||||
|
||||
return httpClientUtils.doPost(url, headers, requestBody, UpdateDeviceStatusRespVO.class);
|
||||
return httpClientUtils.doPost(url, headers, request, UpdateDeviceStatusRespVO.class);
|
||||
}
|
||||
|
||||
private UpdateDeviceResponse convertToUnifiedUpdateResponse(UpdateDeviceStatusRespVO vendorResponse) {
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoPag
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceStatisticsRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.UpdateDevicePropertiesForWfReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.DeviceInfoRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceinfo.DeviceInfoDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
@@ -66,6 +67,13 @@ public interface DeviceInfoService {
|
||||
*/
|
||||
DeviceInfoDetailV2RespVO getDeviceRealTimeInfo(String id,Integer dateType);
|
||||
|
||||
/**
|
||||
* 更新水肥机开关
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
Boolean updateDevicePropertiesForWf(UpdateDevicePropertiesForWfReqVO req);
|
||||
|
||||
/**
|
||||
* 获得设备信息分页
|
||||
*
|
||||
|
||||
@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoPag
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceStatisticsRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.UpdateDevicePropertiesForWfReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.DeviceInfoRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceclassify.DeviceClassifyDO;
|
||||
@@ -18,7 +19,6 @@ import cn.iocoder.yudao.module.farm.dal.mysql.plotinfo.PlotInfoMapper;
|
||||
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.EquipmentProducerManager;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.conf.DeviceConf;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.DeviceListResponse;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.HistoryDataResponse;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.RealTimeDataResponse;
|
||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.UnifiedLoginResponse;
|
||||
@@ -219,6 +219,23 @@ public class DeviceInfoServiceImpl implements DeviceInfoService {
|
||||
return new DeviceInfoDetailV2RespVO.WfInfo(deviceUniqueId,realTimeData);
|
||||
}
|
||||
|
||||
public Boolean updateDevicePropertiesForWf(UpdateDevicePropertiesForWfReqVO req) {
|
||||
try {
|
||||
DeviceInfoDO deviceInfo = this.getDeviceInfo(req.getId());
|
||||
String plotId = deviceInfo.getPlotId();
|
||||
|
||||
Long tenantId = getLoginUser().getTenantId();
|
||||
UnifiedLoginResponse login = equipmentProducerManager.login(DEVICE_TYPE_SOIL, tenantId, plotId);
|
||||
String token = login.getData().getToken();
|
||||
|
||||
equipmentProducerManager.updateDeviceProperties(DEVICE_TYPE_WF, tenantId, token, req);
|
||||
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<DeviceInfoDO> getDeviceInfoPage(DeviceInfoPageReqVO pageReqVO) {
|
||||
PageResult<DeviceInfoDO> pageResult = deviceInfoMapper.selectPage(pageReqVO);
|
||||
|
||||
Reference in New Issue
Block a user