liulingling.177216
2024-08-26 349f1cfc5fa77fbc636d542df0d8050fddec48c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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<DeviceFormula> deviceFormulas = new ArrayList<>();
        //取系统默认设置所有的设备状态
        List<StateType> 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));
    }
}