Преглед на файлове

新增 润浩水肥机灌区全局参数编辑接口

zhaiyifei преди 8 месеца
родител
ревизия
55b3e5e936

+ 18 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/sf/controller/IotDeviceSfController.java

@@ -349,6 +349,24 @@ public class IotDeviceSfController extends BaseController {
         JSONObject jsonObject = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
         return AjaxResult.success(jsonObject);
     }
+
+    /**
+     * 获取润浩全局灌区参数
+     * @param
+     * @return
+     */
+    @PostMapping("/rh/group/param/global/edit")
+    public AjaxResult getGroupParamByGlobal(@RequestBody IotSfGroupParamEditReqVo reqVo){
+        String devBid = reqVo.getDevBid();
+        ValidateUtil.validateDevBid(devBid);
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(devBid);
+        iotDeviceBaseFunReqVo.setMethodName("editGroupParamByGlobal");
+        iotDeviceBaseFunReqVo.setParam(reqVo);
+        String taskId = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+
+        return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", taskId);
+    }
 //
 //    /**
 //     * 下发水肥机指令

+ 10 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/sf/domain/IotSfGroupParamEditReqVo.java

@@ -0,0 +1,10 @@
+package com.yunfeiyun.agmp.iotm.device.sf.domain;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.Data;
+
+@Data
+public class IotSfGroupParamEditReqVo {
+    private String devBid;
+    private JSONObject paramJson;
+}

+ 11 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/sf/service/IIotSfCommService.java

@@ -390,4 +390,15 @@ public class IIotSfCommService extends IotDeviceBaseServiceImpl implements IotDe
         return null;
     }
 
+    /**
+     * 编辑灌区参数
+     *
+     * @param reqVo 包含设备添加请求的参数,包括设备标识(devBid)等
+     * @param reqVo
+     */
+    public String editGroupParamByGlobal (IotSfGroupParamEditReqVo reqVo) {
+        // 由具体子类实现
+        return null;
+    }
+
 }

+ 49 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/sf/service/impl/IotRunHaoSfServiceImpl.java

@@ -755,4 +755,53 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
         }
         return groupParamJson;
     }
+
+
+    /**
+     * 编辑灌区参数
+     *
+     * @param reqVo 包含设备添加请求的参数,包括设备标识(devBid)等
+     * @param reqVo
+     */
+    @Override
+    public String editGroupParamByGlobal (IotSfGroupParamEditReqVo reqVo) {
+        String devBid = reqVo.getDevBid();
+        IotDevice iotDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
+        if(iotDevice == null){
+           throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备不存在");
+        }
+        DevOperateUtil.sendConfigCmdCheck(iotDevice);
+
+        JSONObject groupParamJson = reqVo.getParamJson();
+        if(groupParamJson == null){
+            throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "参数不能为空");
+        }
+
+        Map<String, String> groupParamMap = new HashMap<>();
+        groupParamMap.put("Num-ggsj", "Btn-ggxr");
+        groupParamMap.put("Num-fqsj", "Btn-fqxr");
+        groupParamMap.put("Btn-fxz", "Btn-fxr");
+        groupParamMap.put("Num-fsj", "Btn-fsxr");
+
+        JSONObject sendJson = new JSONObject();
+        for(String key : groupParamJson.keySet()) {
+            for(String groupKey : groupParamMap.keySet()){
+                if(key.startsWith(groupKey)){
+                    String sendKey = groupParamMap.get(groupKey) + key.replace(groupKey, "");
+                    sendJson.put(key, groupParamJson.getString(key));
+                    sendJson.put(sendKey, "1");
+                }
+            }
+        }
+        if(!sendJson.isEmpty()){
+            sendJson.put("Btn-csbc", "1");
+        }
+
+        IotSfConfigCmdReqVo cmdReqVo = new IotSfConfigCmdReqVo();
+        cmdReqVo.setDevBid(devBid);
+        cmdReqVo.setCmd(CmdDef.RunHaoSfCmdDef.CMD_CONFIG);
+        cmdReqVo.setIotDevice(iotDevice);
+        cmdReqVo.setData(sendJson);
+        return sendConfigCmd(cmdReqVo);
+    }
 }