fix (farm): 设备中心
- 水肥机设备-修改属性接口
This commit is contained in:
@@ -102,6 +102,13 @@ public class DeviceInfoController {
|
|||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PutMapping("/wf/property")
|
||||||
|
@Operation(summary = "水肥机-属性修改")
|
||||||
|
public CommonResult<Boolean> updateDevicePropertiesForWf(UpdateDevicePropertiesForWfReqVO reqVO) {
|
||||||
|
Boolean res = deviceInfoService.updateDevicePropertiesForWf(reqVO);
|
||||||
|
return success(res);
|
||||||
|
}
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除设备信息")
|
@Operation(summary = "删除设备信息")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@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.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description:
|
* @description:
|
||||||
* @author: binda
|
* @author: binda
|
||||||
@@ -14,15 +16,5 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class UpdateDeviceStatusReqVO {
|
public class UpdateDeviceStatusReqVO {
|
||||||
private String deviceId;
|
private String deviceId;
|
||||||
private ParamStr paramStr;
|
private Map<String,String> paramStr;
|
||||||
|
|
||||||
@Data
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public static class ParamStr{
|
|
||||||
// 设备开关名称
|
|
||||||
private String Value1;
|
|
||||||
// 要修改的值
|
|
||||||
private String Value11;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,9 +110,11 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
|||||||
try {
|
try {
|
||||||
// 转换请求参数
|
// 转换请求参数
|
||||||
UpdateDeviceStatusReqVO wfRequest = (UpdateDeviceStatusReqVO) updateRequest;
|
UpdateDeviceStatusReqVO wfRequest = (UpdateDeviceStatusReqVO) updateRequest;
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String json = objectMapper.writeValueAsString(wfRequest);
|
||||||
|
|
||||||
// 调用水肥机设备厂商API更新设备属性 POST 请求方式
|
// 调用水肥机设备厂商API更新设备属性 POST 请求方式
|
||||||
UpdateDeviceStatusRespVO vendorResponse = callWFUpdateDeviceApi(token, wfRequest);
|
UpdateDeviceStatusRespVO vendorResponse = callWFUpdateDeviceApi(token, json);
|
||||||
|
|
||||||
// 转换为统一响应格式
|
// 转换为统一响应格式
|
||||||
return convertToUnifiedUpdateResponse(vendorResponse);
|
return convertToUnifiedUpdateResponse(vendorResponse);
|
||||||
@@ -201,7 +203,7 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
|||||||
return httpClientUtils.doGet(url, headers, null, RealTimeDeviceDataRespVO.class);
|
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 url = deviceConf.getWaterAndFertilizer().getHosts() + deviceConf.getWaterAndFertilizer().getUrl4();
|
||||||
String clientId = deviceConf.getWaterAndFertilizer().getClientId();
|
String clientId = deviceConf.getWaterAndFertilizer().getClientId();
|
||||||
|
|
||||||
@@ -209,12 +211,12 @@ public class WaterFertilizerService extends AbstractDeviceService {
|
|||||||
headers.put("Authorization", "Bearer " + token);
|
headers.put("Authorization", "Bearer " + token);
|
||||||
headers.put("clientId", clientId);
|
headers.put("clientId", clientId);
|
||||||
|
|
||||||
// 构建请求体,包含设备ID和参数
|
// // 构建请求体,包含设备ID和参数
|
||||||
Map<String, Object> requestBody = new HashMap<>();
|
// Map<String, Object> requestBody = new HashMap<>();
|
||||||
requestBody.put("deviceId", request.getDeviceId());
|
// requestBody.put("deviceId", request.getDeviceId());
|
||||||
requestBody.put("paramStr", request.getParamStr());
|
// 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) {
|
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.DeviceInfoSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO;
|
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.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.controller.admin.digitalcockpit.vo.DeviceInfoRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceinfo.DeviceInfoDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceinfo.DeviceInfoDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
@@ -66,6 +67,13 @@ public interface DeviceInfoService {
|
|||||||
*/
|
*/
|
||||||
DeviceInfoDetailV2RespVO getDeviceRealTimeInfo(String id,Integer dateType);
|
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.DeviceInfoSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO;
|
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.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.controller.admin.digitalcockpit.vo.DeviceInfoRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceclassify.DeviceClassifyDO;
|
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.enums.CommonConstants;
|
||||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.EquipmentProducerManager;
|
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.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.HistoryDataResponse;
|
||||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.RealTimeDataResponse;
|
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.RealTimeDataResponse;
|
||||||
import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.UnifiedLoginResponse;
|
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);
|
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
|
@Override
|
||||||
public PageResult<DeviceInfoDO> getDeviceInfoPage(DeviceInfoPageReqVO pageReqVO) {
|
public PageResult<DeviceInfoDO> getDeviceInfoPage(DeviceInfoPageReqVO pageReqVO) {
|
||||||
PageResult<DeviceInfoDO> pageResult = deviceInfoMapper.selectPage(pageReqVO);
|
PageResult<DeviceInfoDO> pageResult = deviceInfoMapper.selectPage(pageReqVO);
|
||||||
|
|||||||
Reference in New Issue
Block a user