package com.dingzhuo.energy.data.monitoring.device.controller; import com.alibaba.fastjson.JSONObject; import com.dingzhuo.energy.common.utils.ServletUtils; import com.dingzhuo.energy.data.model.domain.StateType; import com.dingzhuo.energy.data.model.service.IStateTypeService; import com.dingzhuo.energy.data.monitoring.device.domain.DeviceFormula; import com.dingzhuo.energy.data.monitoring.device.service.IDeviceFormulaParamService; import com.dingzhuo.energy.data.monitoring.device.service.IDeviceFormulaService; import com.dingzhuo.energy.framework.aspectj.lang.annotation.Log; import com.dingzhuo.energy.framework.aspectj.lang.enums.BusinessType; import com.dingzhuo.energy.framework.security.LoginUser; import com.dingzhuo.energy.framework.web.controller.BaseController; import com.dingzhuo.energy.framework.web.domain.AjaxResult; import com.dingzhuo.energy.framework.web.page.TableDataInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 设备状态配置Controller * * @author zhaow * @date 2020-03-02 */ @RestController @RequestMapping("/basicsetting/deviceStorage") public class DeviceStorageController extends BaseController { @Autowired private IDeviceFormulaService deviceFormulaService; @Autowired private IDeviceFormulaParamService deviceFormulaParamService; @Autowired private IStateTypeService stateTypeService; /** * 设备状态管理点击状态进行配置时的 初始化页面数据 * @param deviceFormula * @return */ @GetMapping("/getDeviceStateByNodeIds") public TableDataInfo getDeviceStateByNodeIds(DeviceFormula deviceFormula) { startPage(); //节点设备已设置的 状态信息集合 List deviceFormulas = new ArrayList<>(); //取系统默认设置所有的设备状态 List list = stateTypeService.selectStateTypeList(new StateType()); //迭代系统参数数量填充 已设置的状态 list.forEach(param ->{ DeviceFormula tempDev = deviceFormulaService.getDeviceFormula(deviceFormula.getDeviceId(),param.getStateId()); if(tempDev.getIsEnable()==null || tempDev.getIsEnable().isEmpty()) { tempDev.setIsEnable("N"); } tempDev.setStateType(param); deviceFormulas.add(tempDev); }); return getDataTable(deviceFormulas); } /** * 设备状态管理点击状态进行配置时的 初始化页面数据 * @param nodeId * @return */ @GetMapping("/{nodeId}/{stateId}") public AjaxResult getDeviceStorage(@PathVariable String nodeId,@PathVariable String stateId) { JSONObject result = new JSONObject(); //1、取根据 设备模型 节点ID 和 设备状态主键 ID 取 设备公式信息 DeviceFormula deviceFormula = deviceFormulaService.getDeviceFormula(nodeId,stateId); result.put("deviceFormula", deviceFormula); return AjaxResult.success(result); } /** * 设备状态 配置 公式保存 * @param param * @param nodeId * @param stateId * @return */ @PostMapping("/{nodeId}/{stateId}") public AjaxResult saveDeviceStorage(@RequestBody JSONObject param, @PathVariable String nodeId, @PathVariable String stateId) { try { DeviceFormula deviceFormula = param.getObject("deviceFormula", DeviceFormula.class); deviceFormula.setDeviceId(nodeId); deviceFormula.setStateId(stateId); deviceFormulaService.saveDeviceFormula(deviceFormula); } catch (Exception ex) { logger.error("", ex); return AjaxResult.error(); } return AjaxResult.success(); } /** * 设备状态 公式 启用设置 */ @Log(title = "备状态公式启用设置", businessType = BusinessType.UPDATE) @PostMapping(value="/setIsEnable/{nodeId}/{isEnable}") public AjaxResult editDeviceFormulaIsEnable(@PathVariable String nodeId,@PathVariable String isEnable,@RequestBody String[] ids) { return toAjax(deviceFormulaService.editDeviceFormulaIsEnable(nodeId,isEnable,ids)); } }