|
|
@@ -739,7 +739,6 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
|
|
|
Map<String, EnumSfElementType> sfTypeMap = new HashMap<>();
|
|
|
sfTypeMap.put(runMode, null);
|
|
|
- sfTypeMap.put(runStatus, null);
|
|
|
|
|
|
Map<EnumSfElementType, Integer> sfTypeValueMap = new HashMap<>();
|
|
|
for(IotSfElementfactorInfoVo element : resultList){
|
|
|
@@ -779,51 +778,37 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
continue;
|
|
|
}
|
|
|
String v = devConfig.getString(key);
|
|
|
- // 停止灌溉操作
|
|
|
- if(Objects.equals(key, runStatus)){
|
|
|
- if(!"1".equals(zdsd)){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先切换到自动模式");
|
|
|
- }
|
|
|
- if(!"0".equals(v)){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"仅支持停止灌溉");
|
|
|
- }
|
|
|
- }else{
|
|
|
- if("1".equals(zdsd)){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先切换到手动模式");
|
|
|
+ if("1".equals(zdsd)){
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先切换到手动模式");
|
|
|
+ }
|
|
|
+ EnumSfElementType elementType = sfTypeMap.get(key);
|
|
|
+ if(elementType == EnumSfElementType.WATER_SOURCE && Objects.equals(v, "1")){
|
|
|
+ // 请先打开阀
|
|
|
+ Integer va = sfTypeValueMap.get(EnumSfElementType.SOLENOID_VALVE);
|
|
|
+ if(va == 0){
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先打开阀门");
|
|
|
}
|
|
|
- EnumSfElementType elementType = sfTypeMap.get(key);
|
|
|
- if(elementType == EnumSfElementType.WATER_SOURCE && Objects.equals(v, "1")){
|
|
|
- // 请先打开阀
|
|
|
- Integer va = sfTypeValueMap.get(EnumSfElementType.SOLENOID_VALVE);
|
|
|
+ }else if(elementType == EnumSfElementType.FERTILIZER){
|
|
|
+ Integer va = sfTypeValueMap.get(EnumSfElementType.SUCTION);
|
|
|
+ if(Objects.equals(v, "1")){
|
|
|
if(va == 0){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先打开阀门");
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先打开肥阀");
|
|
|
}
|
|
|
- }else if(elementType == EnumSfElementType.FERTILIZER){
|
|
|
- Integer va = sfTypeValueMap.get(EnumSfElementType.SUCTION);
|
|
|
- if(Objects.equals(v, "1")){
|
|
|
- if(va == 0){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先打开肥阀");
|
|
|
- }
|
|
|
- }else {
|
|
|
- if(va != 0){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先关闭肥阀");
|
|
|
- }
|
|
|
+ }else {
|
|
|
+ if(va != 0){
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先关闭肥阀");
|
|
|
}
|
|
|
- }else if(elementType == EnumSfElementType.SOLENOID_VALVE && Objects.equals(v, "0")){
|
|
|
- Integer sova = sfTypeValueMap.get(EnumSfElementType.SOLENOID_VALVE);
|
|
|
- if(sova - 1 <= 0){
|
|
|
- Integer va = sfTypeValueMap.get(EnumSfElementType.WATER_SOURCE);
|
|
|
- if(va != 0){
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先关闭水源泵");
|
|
|
- }
|
|
|
+ }
|
|
|
+ }else if(elementType == EnumSfElementType.SOLENOID_VALVE && Objects.equals(v, "0")){
|
|
|
+ Integer sova = sfTypeValueMap.get(EnumSfElementType.SOLENOID_VALVE);
|
|
|
+ if(sova - 1 <= 0){
|
|
|
+ Integer va = sfTypeValueMap.get(EnumSfElementType.WATER_SOURCE);
|
|
|
+ if(va != 0){
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"请先关闭水源泵");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- if(devConfig.containsKey(runStatus)){
|
|
|
- devConfig.put("Num-dqqf", "0");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
IotSfConfigCmdReqVo cmdReqVo = new IotSfConfigCmdReqVo();
|
|
|
@@ -1091,4 +1076,56 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
cmdReqVo.setData(sendJson);
|
|
|
return sendConfigCmd(cmdReqVo);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 停止自动灌溉
|
|
|
+ *
|
|
|
+ * @param reqVo 包含设备添加请求的参数,包括设备标识(devBid)等
|
|
|
+ * @param reqVo
|
|
|
+ */
|
|
|
+ public String autoStop(IotSfConfigCmdReqVo 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 runStatusData = getRunStatus(devBid);
|
|
|
+ if("0".equals(runStatusData.getString("Btn-zdsd"))){
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "请先切换到自动模式");
|
|
|
+ }
|
|
|
+
|
|
|
+ IotSfElementfactorListReqVo selectReqVo = new IotSfElementfactorListReqVo();
|
|
|
+
|
|
|
+ List<String> sfTypeList = new ArrayList<>();
|
|
|
+ sfTypeList.add(EnumSfElementType.WATER_SOURCE.getCode());
|
|
|
+ sfTypeList.add(EnumSfElementType.FERTILIZER.getCode());
|
|
|
+ sfTypeList.add(EnumSfElementType.SUCTION.getCode());
|
|
|
+ sfTypeList.add(EnumSfElementType.MIXING.getCode());
|
|
|
+ sfTypeList.add(EnumSfElementType.SOLENOID_VALVE.getCode());
|
|
|
+ sfTypeList.add(EnumSfElementType.GROUP.getCode());
|
|
|
+ selectReqVo.setSfTypeList(sfTypeList);
|
|
|
+ selectReqVo.setDevBid(devBid);
|
|
|
+ selectReqVo.setTid(SecurityUtils.getTid());
|
|
|
+
|
|
|
+ List<IotSfElementfactor> elementfactorList = iotSfElementfactorService.selectIotSfElementfactorList(selectReqVo);
|
|
|
+
|
|
|
+ JSONObject sendJson = new JSONObject();
|
|
|
+ for(IotSfElementfactor elementfactor : elementfactorList){
|
|
|
+ String sfCode = elementfactor.getSfCode();
|
|
|
+ sendJson.put(sfCode, "0");
|
|
|
+ }
|
|
|
+
|
|
|
+ sendJson.put("Num-dqqf", "0");
|
|
|
+ sendJson.put("Btn-yjqd", "0");
|
|
|
+
|
|
|
+ IotSfConfigCmdReqVo cmdReqVo = new IotSfConfigCmdReqVo();
|
|
|
+ cmdReqVo.setDevBid(devBid);
|
|
|
+ cmdReqVo.setCmd(CmdDef.RunHaoSfCmdDef.CMD_CONFIG);
|
|
|
+ cmdReqVo.setIotDevice(iotDevice);
|
|
|
+ cmdReqVo.setData(sendJson);
|
|
|
+ return sendConfigCmd(cmdReqVo);
|
|
|
+ }
|
|
|
}
|