فهرست منبع

优化 增加水肥机灌溉中,禁止修改配置等安全校验功能

zhaiyifei 9 ماه پیش
والد
کامیت
8e96f23785

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

@@ -156,7 +156,7 @@ public class IotDeviceSfController extends BaseController {
         IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
         iotDeviceBaseFunReqVo.setDevBid(iotSfElementfactor.getDevBid());
         iotDeviceBaseFunReqVo.setMethodName("elementDelete");
-        iotDeviceBaseFunReqVo.setParam(iotSfElementfactor);
+        iotDeviceBaseFunReqVo.setParam(sfBid);
         int status = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
         return toAjax(status);
     }

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

@@ -16,6 +16,7 @@ import com.yunfeiyun.agmp.iot.common.domain.*;
 import com.yunfeiyun.agmp.iot.common.enums.EnumSfElementType;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
+import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iot.common.util.dev.RunHaoSfElementUtil;
 import com.yunfeiyun.agmp.iotm.device.common.domin.DeviceRefreshDto;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
@@ -57,6 +58,9 @@ public class IIotSfCommService extends IotDeviceBaseServiceImpl implements IotDe
     @Autowired
     private IIotSfIrrigationOprecordService iIotSfIrrigationOprecordService;
 
+    @Autowired
+    private MongoService mongoService;
+
 
     public Class getTableClass(String devtypeBid) {
         Class tableClass = null;
@@ -341,6 +345,17 @@ public class IIotSfCommService extends IotDeviceBaseServiceImpl implements IotDe
             throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备不存在");
         }
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         List<String> sfBidLit = new ArrayList<>();
         List<IotSfElementfactorEditReqVo> reqList = new ArrayList<>();
         reqList.add(reqVo);

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

@@ -458,6 +458,17 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
             }
         }
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         IotSfElementfactorListReqVo reqVo1 = new IotSfElementfactorListReqVo();
         reqVo1.setDevBid(devBid);
         List<IotSfElementfactor> elementList = iotSfElementfactorService.selectIotSfElementfactorList(reqVo1);
@@ -543,6 +554,17 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
             throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "列表不能为空");
         }
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         IotSfElementfactorListReqVo reqVo1 = new IotSfElementfactorListReqVo();
         reqVo1.setDevBid(devBid);
         List<IotSfElementfactor> dataList = iotSfElementfactorService.selectIotSfElementfactorList(reqVo1);
@@ -675,6 +697,17 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
         String sfCode = reqVo.getSfCode();
         IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         Map<String, String> payload = new HashMap<>();
         if(Objects.equals(sfType, EnumSfElementType.GROUP.getCode())){
 
@@ -733,6 +766,17 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
 
         DevOperateUtil.sendConfigCmdCheck(iotDevice);
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         reqVo.setCmd(CmdDef.RunHaoSfCmdDef.CMD_CONFIG);
         reqVo.setIotDevice(iotDevice);
         return sendConfigCmd(reqVo);
@@ -754,6 +798,17 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
             throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"设备不存在");
         }
 
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         DevOperateUtil.sendConfigCmdCheck(iotDevice);
 
         String runMode = "Btn-zdsd";
@@ -969,6 +1024,18 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
             throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "参数不能为空");
         }
 
+
+        Map<String, String> params = new HashMap<>();
+        params.put("devBid", devBid);
+        IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
+        if(iotRunHaoSfdata == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备未采集数据");
+        }
+        JSONObject sfdataContent = iotRunHaoSfdata.getSfdataContent();
+        if(RunHaoSfElementUtil.isAutoRunning(sfdataContent)){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "灌溉中,请先停止灌溉");
+        }
+
         Map<String, String> groupParamMap = new LinkedHashMap<>();
         groupParamMap.put("Btn-dsdl", "施肥模式");
         groupParamMap.put("Num-ggsj", "灌溉时间");