Explorar el Código

加入设备 重启 升级 禁用 功能

wuxw hace 6 años
padre
commit
b7af2cb706

+ 117 - 0
Api/src/main/java/com/java110/api/listener/machine/UpdateMachineStateListener.java

@@ -0,0 +1,117 @@
+package com.java110.api.listener.machine;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
+import com.java110.dto.hardwareAdapation.MachineDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ServiceCodeMachineConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+/**
+ * 保存设备侦听
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("updateMachineStateListener")
+public class UpdateMachineStateListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "machineId", "设备ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写设备状态");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        HttpHeaders header = new HttpHeaders();
+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        AppService service = event.getAppService();
+
+        //添加单元信息
+        businesses.add(updateMachine(reqJson, context));
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+
+        context.setResponseEntity(responseEntity);
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeMachineConstant.UPDATE_MACHINE_STATE;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    /**
+     * 添加设备信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject updateMachine(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        MachineDto machineDto = new MachineDto();
+        machineDto.setCommunityId(paramInJson.getString("communityId"));
+        machineDto.setMachineId(paramInJson.getString("machineId"));
+        List<MachineDto> machineDtos = machineInnerServiceSMOImpl.queryMachines(machineDto);
+
+        Assert.listOnlyOne(machineDtos, "根据设备编码查询到多条记录,请检查数据");
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_MACHINE);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessMachine = new JSONObject();
+        businessMachine.putAll(BeanConvertUtil.beanCovertMap(machineDtos.get(0)));
+        businessMachine.put("state", paramInJson.getString("state"));
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessMachine", businessMachine);
+        return business;
+    }
+
+
+    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
+        return machineInnerServiceSMOImpl;
+    }
+
+    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
+        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
+    }
+}

+ 36 - 0
WebService/src/main/java/com/java110/web/components/machine/machineStateComponent.java

@@ -0,0 +1,36 @@
+package com.java110.web.components.machine;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.machine.IEditMachineSMO;
+import com.java110.web.smo.machine.IMachineStateSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 编辑小区组件
+ */
+@Component("machineState")
+public class machineStateComponent {
+
+    @Autowired
+    private IMachineStateSMO machineStateSMOImpl;
+
+    /**
+     * 添加小区数据
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> update(IPageData pd) {
+        return machineStateSMOImpl.updateMachineState(pd);
+    }
+
+    public IMachineStateSMO getMachineStateSMOImpl() {
+        return machineStateSMOImpl;
+    }
+
+    public void setMachineStateSMOImpl(IMachineStateSMO machineStateSMOImpl) {
+        this.machineStateSMOImpl = machineStateSMOImpl;
+    }
+}

+ 19 - 0
WebService/src/main/java/com/java110/web/smo/machine/IMachineStateSMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo.machine;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 修改设备接口
+ *
+ * add by wuxw 2019-06-30
+ */
+public interface IMachineStateSMO {
+
+    /**
+     * 修改小区
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    ResponseEntity<String> updateMachineState(IPageData pd);
+}

+ 65 - 0
WebService/src/main/java/com/java110/web/smo/machine/impl/MachineStateSMOImpl.java

@@ -0,0 +1,65 @@
+package com.java110.web.smo.machine.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.AbstractComponentSMO;
+import com.java110.core.context.IPageData;
+import com.java110.utils.constant.PrivilegeCodeConstant;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.util.Assert;
+import com.java110.web.smo.machine.IEditMachineSMO;
+import com.java110.web.smo.machine.IMachineStateSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * 添加设备服务实现类
+ * add by wuxw 2019-06-30
+ */
+@Service("machineStateSMOImpl")
+public class MachineStateSMOImpl extends AbstractComponentSMO implements IMachineStateSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        //super.validatePageInfo(pd);
+
+        Assert.hasKeyAndValue(paramIn, "machineId", "设备ID不能为空");
+        Assert.hasKeyAndValue(paramIn, "communityId", "必填,请填写小区ID");
+        Assert.hasKeyAndValue(paramIn, "state", "必填,请填写设备状态");
+
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_MACHINE);
+
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ResponseEntity<String> responseEntity = null;
+        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/machine.updateMachineState",
+                HttpMethod.POST);
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> updateMachineState(IPageData pd) {
+        return super.businessProcess(pd);
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 13 - 3
WebService/src/main/resources/components/machinePackage/machine-manage/machineManage.html

@@ -71,7 +71,7 @@
                         <tr>
                             <!--<th class="text-center">设备ID</th>-->
                             <th class="text-center">设备编码</th>
-                            <th class="text-center">版本号</th>
+                            <!--<th class="text-center">版本号</th>-->
                             <th class="text-center">设备名称</th>
                             <th class="text-center">设备类型</th>
                             <th class="text-center">设备位置</th>
@@ -86,7 +86,7 @@
                         <tr v-for="machine in machineManageInfo.machines">
                             <!--<td class="text-center">{{machine.machineId}}</td>-->
                             <td class="text-center">{{machine.machineCode}}</td>
-                            <td class="text-center">{{machine.machineVersion}}</td>
+                            <!--<td class="text-center">{{machine.machineVersion}}</td>-->
                             <td class="text-center">{{machine.machineName}}</td>
                             <td class="text-center">{{machine.machineTypeCdName}}</td>
                             <td class="text-center">{{machine.locationObjName}}</td>
@@ -101,8 +101,17 @@
                                     <button class="btn-white btn btn-xs" v-on:click="_openDeleteMachineModel(machine)">删除</button>
                                 </div>
                                 <div class="btn-group">
-                                    <button class="btn-white btn btn-xs" v-on:click="_openMachineDetailModel(machine)">详情</button>
+                                    <button class="btn-white btn btn-xs" v-on:click="_openRestartMachineModel(machine)">重启</button>
+                                </div>
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openUpgradeMachineModel(machine)">升级</button>
                                 </div>
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openForbiddenMachineModel(machine)">禁用</button>
+                                </div>
+                                <!--<div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openMachineDetailModel(machine)">详情</button>
+                                </div>-->
                             </td>
 
                         </tr>
@@ -129,5 +138,6 @@
     ></vc:create>
     <vc:create name="editMachine"></vc:create>
     <vc:create name="deleteMachine"></vc:create>
+    <vc:create name="machineState"></vc:create>
 
 </div>

+ 24 - 3
WebService/src/main/resources/components/machinePackage/machine-manage/machineManage.js

@@ -18,7 +18,7 @@
                     machineName: '',
                     machineIp: '',
                     machineMac: '',
-                    communityId:vc.getCurrentCommunity().communityId
+                    communityId: vc.getCurrentCommunity().communityId
 
                 }
             }
@@ -82,8 +82,29 @@
                     vc.component.machineManageInfo.moreCondition = true;
                 }
             },
-            _openMachineDetailModel:function (_machine) {
-                
+            _openMachineDetailModel: function (_machine) {
+
+            },
+            _openRestartMachineModel: function (_machine) { //设备重启处理
+                vc.emit('machineState', 'openMachineStateModal', {
+                    machineId: _machine.machineId,
+                    stateName: '重启',
+                    state: '1400'
+                });
+            },
+            _openUpgradeMachineModel: function (_machine) { //设备升级处理
+                vc.emit('machineState', 'openMachineStateModal', {
+                    machineId: _machine.machineId,
+                    stateName: '升级',
+                    state: '1500'
+                });
+            },
+            _openForbiddenMachineModel: function (_machine) { //设备禁用处理
+                vc.emit('machineState', 'openMachineStateModal', {
+                    machineId: _machine.machineId,
+                    stateName: '禁用',
+                    state: '1600'
+                });
             }
 
 

+ 19 - 0
WebService/src/main/resources/components/machinePackage/machine-state/machineState.html

@@ -0,0 +1,19 @@
+<div class="modal fade" id="machineStateModel" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="exampleModalLabel">请确认您的操作!</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <tr align="center"><th>确定{{machineStateInfo.stateName}}设备</th></tr>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal" v-on:click="closeMachineStateModel()">点错了</button>
+                <button type="button" class="btn btn-primary" v-on:click="changeMachineState()">确认</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 54 - 0
WebService/src/main/resources/components/machinePackage/machine-state/machineState.js

@@ -0,0 +1,54 @@
+(function (vc, vm) {
+
+    vc.extends({
+        data: {
+            machineStateInfo: {
+                machineId: '',
+                stateName: '',
+                state: ''
+
+            }
+        },
+        _initMethod: function () {
+
+        },
+        _initEvent: function () {
+            vc.on('machineState', 'openMachineStateModal', function (_params) {
+                vc.copyObject(_params, vc.component.machineStateInfo);
+                $('#machineStateModel').modal('show');
+
+            });
+        },
+        methods: {
+            machineState: function () {
+                vc.component.machineStateInfo.communityId = vc.getCurrentCommunity().communityId;
+                vc.http.post(
+                    'machineState',
+                    'delete',
+                    JSON.stringify(vc.component.machineStateInfo),
+                    {
+                        emulateJSON: true
+                    },
+                    function (json, res) {
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if (res.status == 200) {
+                            //关闭model
+                            $('#machineStateModel').modal('hide');
+                            vc.emit('machineManage', 'listMachine', {});
+                            return;
+                        }
+                        vc.message(json);
+                    },
+                    function (errInfo, error) {
+                        console.log('请求失败处理');
+                        vc.message(json);
+
+                    });
+            },
+            closeDeleteMachineModel: function () {
+                $('#machineStateModel').modal('hide');
+            }
+        }
+    });
+
+})(window.vc, window.vc.component);

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeMachineConstant.java

@@ -16,6 +16,11 @@ public class ServiceCodeMachineConstant {
      * 修改 设备
      */
     public static final String UPDATE_MACHINE = "machine.updateMachine";
+
+    /**
+     * 修改 设备
+     */
+    public static final String UPDATE_MACHINE_STATE = "machine.updateMachineState";
     /**
      * 删除 设备
      */