Browse Source

新增 水肥机开始自动灌溉接口

zhaiyifei 8 tháng trước cách đây
mục cha
commit
08143ae2dd

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

@@ -346,8 +346,8 @@ public class IotDeviceSfController extends BaseController {
         iotDeviceBaseFunReqVo.setDevBid(devBid);
         iotDeviceBaseFunReqVo.setMethodName("getGroupParamByGlobal");
         iotDeviceBaseFunReqVo.setParam(devBid);
-        JSONObject jsonObject = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
-        return AjaxResult.success(jsonObject);
+        List<IotSfGroupParamResVo> groupParamResVoList = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+        return AjaxResult.success(groupParamResVoList);
     }
 
     /**

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

@@ -0,0 +1,10 @@
+package com.yunfeiyun.agmp.iotm.device.sf.domain;
+
+import lombok.Data;
+
+@Data
+public class IotSfGroupParamResVo {
+    private String sfCode;
+    private String sfDisplayName;
+    private String value;
+}

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

@@ -385,7 +385,7 @@ public class IIotSfCommService extends IotDeviceBaseServiceImpl implements IotDe
      * @param reqVo 包含设备添加请求的参数,包括设备标识(devBid)等
      * @param reqVo
      */
-    public JSONObject getGroupParamByGlobal (String devBid) {
+    public List<IotSfGroupParamResVo> getGroupParamByGlobal (String devBid) {
         // 由具体子类实现
         return null;
     }

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

@@ -719,41 +719,46 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
      * @param reqVo 包含设备添加请求的参数,包括设备标识(devBid)等
      * @param reqVo
      */
-    public JSONObject getGroupParamByGlobal (String devBid) {
-        JSONObject groupParamJson = new JSONObject();
+    public List<IotSfGroupParamResVo> getGroupParamByGlobal (String devBid) {
+        List<IotSfGroupParamResVo> groupParamResVoList = new ArrayList<>();
         Map<String, String> params = new HashMap<>();
         params.put("devBid", devBid);
         IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
         if(iotRunHaoSfdata == null || iotRunHaoSfdata.getSfdataContent() == null){
-            return null;
+            return groupParamResVoList;
         }
+        Map<String, String> groupParamMap = new LinkedHashMap<>();
+        groupParamMap.put("Btn-dsdl", "施肥模式");
+        groupParamMap.put("Num-ggsj", "灌溉时间");
+        groupParamMap.put("Num-fqsj", "肥前水时间");
 
         IotSfElementfactorListReqVo reqVo = new IotSfElementfactorListReqVo();
         reqVo.setDevBid(devBid);
         reqVo.setSfType(EnumSfElementType.SUCTION.getCode());
         List<IotSfElementfactor> sfElementfactorList = iotSfElementfactorService.selectIotSfElementfactorList(reqVo);
-        Set<String> suctionSet = new HashSet<>();
+
         if(sfElementfactorList != null && !sfElementfactorList.isEmpty()){
             for(IotSfElementfactor vo : sfElementfactorList){
-                suctionSet.add(vo.getSfCode());
+                String sfCode = vo.getSfCode();
+                String sfDisplayname = vo.getSfDisplayname();
+                String key = sfCode.replace("Btn-fs", "");
+                groupParamMap.put("Btn-fxz" + key, sfDisplayname + "开关");
+                groupParamMap.put("Num-fsj" + key, sfDisplayname);
             }
         }
-
-        Map<String, String> groupParamMap = new HashMap<>();
-        groupParamMap.put("Num-ggsj", "0");
-        groupParamMap.put("Num-fqsj", "0");
-        for(String sfCode : suctionSet){
-            String key = sfCode.replace("Btn-fs", "");
-            groupParamMap.put("Btn-fxz" + key, "0");
-            groupParamMap.put("Num-fsj" + key, "0");
-        }
-
         JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
-        for(String key: groupParamMap.keySet()){
+        for(Map.Entry<String, String> entry : groupParamMap.entrySet()){
+            String key = entry.getKey();
             String value = RunHaoSfElementUtil.getDataValue(key, sfdataContent);
-            groupParamJson.put(key, value);
+
+            IotSfGroupParamResVo resVo = new IotSfGroupParamResVo();
+            resVo.setSfCode(key);
+            resVo.setSfDisplayName(entry.getValue());
+            resVo.setValue(value);
+
+            groupParamResVoList.add(resVo);
         }
-        return groupParamJson;
+        return groupParamResVoList;
     }
 
 
@@ -836,9 +841,9 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
             throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "请先切换到自动模式");
         }
 
-        String dsdl = runStatusData.getString("Btn-dsdl");
-        String lgcs = runStatusData.getString("Num-lgcs");
-        String lgjg = runStatusData.getString("Num-lgjg");
+        String dsdl = data.getString("Btn-dsdl");
+        String lgcs = data.getString("Num-lgcs");
+        String lgjg = data.getString("Num-lgjg");
 
         if(StringUtils.isEmpty(dsdl)){
             throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "请先设置施肥模式");
@@ -858,13 +863,14 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
 
         JSONObject sendJson = new JSONObject();
         for(IotSfElementfactorAlreadyListResVo elementfactor : elementfactorList){
+            String sfCode = elementfactor.getSfCode();
+            if(!data.containsKey(sfCode)){
+                continue;
+            }
             if(elementfactor.getChildrenList() == null || elementfactor.getChildrenList().isEmpty()){
                 throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "灌区未配置阀,无法开始灌溉");
             }
-            String sfCode = elementfactor.getSfCode();
-            if(data.containsKey(sfCode)){
-                sendJson.put(sfCode, data.getString(sfCode));
-            }
+            sendJson.put(sfCode, "1");
         }
         if(sendJson.isEmpty()){
             throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "请先选择灌区");