删除 payapiconfig配置改为查表获取, 添加远程控制功能
diff --git a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
index 99c59f9..7c17c48 100644
--- a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -18,7 +18,6 @@
import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;
import com.supwisdom.dlpay.mainservice.domain.TCard;
import com.supwisdom.dlpay.mainservice.domain.TCustomer;
-import com.supwisdom.dlpay.mainservice.domain.TKey;
import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
import com.supwisdom.dlpay.ncmgr.domain.TBuilding;
import com.supwisdom.dlpay.ncmgr.domain.TNcAllottime;
@@ -28,7 +27,6 @@
import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
-import com.supwisdom.dlpay.system.bean.PayApiConfig;
import com.supwisdom.dlpay.system.domain.TDictionaryId;
import com.supwisdom.dlpay.system.domain.TRegion;
import com.supwisdom.dlpay.system.domain.TSystemParam;
@@ -49,7 +47,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -64,6 +61,10 @@
private static final String impcustomeFirstTime = "IMPCUSTOME_FIRST_TIME";
+ private static final String payapiAppid = "PAYAPI_APPID";
+
+ private static final String payapiSecret = "PAYAPI_SECRET";
+
protected static Logger logger = LoggerFactory.getLogger(DoorlistMgrController.class);
@Autowired
@@ -349,8 +350,6 @@
return map;
}
- @Autowired
- private PayApiConfig payApiConfig;
@Autowired
private ApiLoginProxy apiLoginProxy;
@@ -373,8 +372,10 @@
return map;
}
try {
- String appid = payApiConfig.getAppid();
- String secret = payApiConfig.getSecret();
+ TSystemParam appidSystemParam = systemService.getSystemParamByKey(payapiAppid);
+ String appid = appidSystemParam.getParamValue();
+ TSystemParam secretSystemParam = systemService.getSystemParamByKey(payapiSecret);
+ String secret = secretSystemParam.getParamValue();
ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
helper.login(appid, secret);
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcDeviceDao.java b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcDeviceDao.java
index c280e6e..3bb36f2 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcDeviceDao.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcDeviceDao.java
@@ -61,4 +61,11 @@
public List<TDoordevInfo> getBuildingOperDevList(String devname,String regionid,String buildingid,String operid);
public void updateBuildingnameByBuildingid(String buildingid,String buildingname);
+
+ public Pagination getAllRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid);
+
+ public Pagination getOperateRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid,String operRegionid);
+
+ public Pagination getBuildingOperRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid,String operid);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcDeviceDaoImpl.java b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcDeviceDaoImpl.java
index bdbc13c..1a16206 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcDeviceDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcDeviceDaoImpl.java
@@ -5,6 +5,7 @@
import com.supwisdom.dlpay.ncmgr.dao.NcDeviceDao;
import com.supwisdom.dlpay.ncmgr.domain.TBuilding;
import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
+import com.supwisdom.dlpay.system.bean.DevRemoteBean;
import com.supwisdom.dlpay.system.domain.TRegion;
import com.supwisdom.dlpay.system.page.Pagination;
import org.springframework.stereotype.Repository;
@@ -694,4 +695,231 @@
query.setParameter("buildingname" ,buildingname );
query.executeUpdate();
}
+
+ @Transactional
+ @Override
+ public Pagination getAllRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid) {
+ String sql = "select a.deviceid,a.devname,b.regionname,a.buildingname from t_nc_device a, tb_region b " +
+ " where a.regionid = b.regionid and a.devtype='R' ";
+ if(!devname.equals("")){
+ sql+=" and a.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and a.buildingid = :buildingid ";
+ }
+ if (!regionid.equals("")){
+ sql += " and b.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp )";
+ }
+ sql +=" order by deviceid";
+ Query query = entityManager.createNativeQuery(sql, DevRemoteBean.class);
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }
+
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ List<TNcDevice> list = query.getResultList();
+ page.setList(list);
+ int totalCount = getAllRemoteDevCount(devname, buildingid, regionid);
+ page.setTotalCount(totalCount);
+ return page;
+ }
+
+ private int getAllRemoteDevCount(String devname,String buildingid,String regionid){
+ String sql = "select count(*) from t_nc_device a, tb_region b " +
+ " where a.regionid = b.regionid and a.devtype='R' ";
+ if(!devname.equals("")){
+ sql+=" and a.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and a.buildingid = :buildingid ";
+ }
+ if (!regionid.equals("")){
+ sql += " and b.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp )";
+ }
+ Query query = entityManager.createNativeQuery(sql);
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }
+ List list = query.getResultList();
+ int cnt = 0;
+ if (list!=null && list.size()>0){
+ cnt = Integer.parseInt(list.get(0).toString());
+ }
+ return cnt;
+ }
+
+ @Transactional
+ @Override
+ public Pagination getOperateRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid, String operRegionid) {
+ String sql = "select a.deviceid,a.devname,b.regionname,a.buildingname from t_nc_device a, tb_region b " +
+ " where a.regionid = b.regionid and a.devtype='R' ";
+ if(!devname.equals("")){
+ sql+=" and a.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and a.buildingid = :buildingid ";
+ }
+ sql += " and b.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp )";
+
+ sql+=" order by deviceid";
+ Query query = entityManager.createNativeQuery(sql,DevRemoteBean.class);
+
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }else {
+ query.setParameter("regionid", operRegionid);
+ }
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ List<TNcDevice> list = query.getResultList();
+ page.setList(list);
+ int totalCount = getOperateRemoteDevCount(devname, buildingid, regionid, operRegionid);
+ page.setTotalCount(totalCount);
+ return page;
+ }
+
+ private int getOperateRemoteDevCount(String devname,String buildingid,String regionid,String operRegionid){
+ String sql = "select count(*) from t_nc_device a, tb_region b " +
+ " where a.regionid = b.regionid and a.devtype='R' ";
+ if(!devname.equals("")){
+ sql+=" and a.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and a.buildingid = :buildingid ";
+ }
+ sql += " and b.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp )";
+
+ Query query = entityManager.createNativeQuery(sql);
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }else {
+ query.setParameter("regionid", operRegionid);
+ }
+ List list = query.getResultList();
+ int cnt = 0;
+ if (list!=null && list.size()>0){
+ cnt = Integer.parseInt(list.get(0).toString());
+ }
+ return cnt;
+ }
+
+ @Transactional
+ @Override
+ public Pagination getBuildingOperRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid, String operid) {
+ String sql = "select a.deviceid,a.devname,b.regionname,a.buildingname from t_nc_device a, tb_region b, t_operbuilding c " +
+ " where a.regionid = b.regionid and a.devtype='R' and a.buildingid=c.buildingid and c.operid=:operid ";
+ if(!devname.equals("")){
+ sql+=" and bean.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and bean.buildingid = :buildingid ";
+ }
+ sql+=" order by deviceid";
+ Query query = entityManager.createNativeQuery(sql,DevRemoteBean.class);
+ query.setParameter("operid", operid);
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ List<TNcDevice> list = query.getResultList();
+ page.setList(list);
+ int totalCount = getBuildingOperRemoteDevCount(devname, buildingid,operid);
+ page.setTotalCount(totalCount);
+ return page;
+ }
+
+ private int getBuildingOperRemoteDevCount(String devname,String buildingid,String operid){
+ String sql = "select count(*) from t_nc_device a, tb_region b, t_operbuilding c " +
+ " where a.regionid = b.regionid and a.devtype='R' and a.buildingid=c.buildingid and c.operid=:operid ";
+ if(!devname.equals("")){
+ sql+=" and bean.devname like :devname ";
+ }
+ if(!buildingid.equals("")){
+ sql+=" and bean.buildingid = :buildingid ";
+ }
+ Query query = entityManager.createNativeQuery(sql);
+ query.setParameter("operid", operid);
+ if(!devname.equals("")){
+ query.setParameter("devname", "%"+devname+"%");
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid", buildingid);
+ }
+ List list = query.getResultList();
+ int cnt = 0;
+ if (list!=null && list.size()>0){
+ cnt = Integer.parseInt(list.get(0).toString());
+ }
+ return cnt;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java b/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
index ecfce32..d4b8de8 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
@@ -282,4 +282,13 @@
//获取管理员权限下的设备
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public List<TNcDevice> findOperatorDevices(String operRegionid);
+
+ //根据查询条件分页获取所有可以远程的设备
+ public Pagination getAllRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid);
+
+ //根据查询条件分页获取所有管理员权限下可以远程的设备
+ public Pagination getOperateRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid,String operRegionid);
+
+ //根据查询条件分页获取所有楼栋管理员权限下可以远程的设备
+ public Pagination getBuildingOperRemoteDev(String devname, int pageNo, int pageSize, String buildingid,String regionid,String operid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java b/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
index b038b9b..73592e9 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
@@ -377,4 +377,19 @@
public List<TNcDevice> findOperatorDevices(String operRegionid) {
return ncDeviceDao.findOperatorDevices(operRegionid);
}
+
+ @Override
+ public Pagination getAllRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid) {
+ return ncDeviceDao.getAllRemoteDev(devname, pageNo, pageSize, buildingid, regionid);
+ }
+
+ @Override
+ public Pagination getOperateRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid, String operRegionid) {
+ return ncDeviceDao.getOperateRemoteDev(devname, pageNo, pageSize, buildingid, regionid, operRegionid);
+ }
+
+ @Override
+ public Pagination getBuildingOperRemoteDev(String devname, int pageNo, int pageSize, String buildingid, String regionid, String operid) {
+ return ncDeviceDao.getBuildingOperRemoteDev(devname, pageNo, pageSize, buildingid, regionid, operid);
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/DevRemoteBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/DevRemoteBean.java
new file mode 100644
index 0000000..a81a6c5
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/system/bean/DevRemoteBean.java
@@ -0,0 +1,45 @@
+package com.supwisdom.dlpay.system.bean;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Entity
+public class DevRemoteBean {
+ private String deviceid;
+ private String devname;
+ private String regionname;
+ private String buildingname;
+
+ @Id
+ public String getDeviceid() {
+ return deviceid;
+ }
+
+ public void setDeviceid(String deviceid) {
+ this.deviceid = deviceid;
+ }
+
+ public String getDevname() {
+ return devname;
+ }
+
+ public void setDevname(String devname) {
+ this.devname = devname;
+ }
+
+ public String getRegionname() {
+ return regionname;
+ }
+
+ public void setRegionname(String regionname) {
+ this.regionname = regionname;
+ }
+
+ public String getBuildingname() {
+ return buildingname;
+ }
+
+ public void setBuildingname(String buildingname) {
+ this.buildingname = buildingname;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/PayApiConfig.java b/src/main/java/com/supwisdom/dlpay/system/bean/PayApiConfig.java
deleted file mode 100644
index 1820435..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/bean/PayApiConfig.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.supwisdom.dlpay.system.bean;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Component
-public class PayApiConfig {
- @Value("${payapi.appid}")
- private String appid;
- @Value("${payapi.secret}")
- private String secret;
-
- public String getAppid() {
- return appid;
- }
-
- public String getSecret() {
- return secret;
- }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java b/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java
index 375ec39..b3aef5a 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java
@@ -59,6 +59,11 @@
return "system/building";
}
+ @RequestMapping("/remoteCtrlindex")
+ public String remoteCtrlindex(){
+ return "/system/remote/remoteCtrl";
+ }
+
/**
* 获取字典列表
* @param dicttype
@@ -709,4 +714,87 @@
map.put("okFlag", okFlag);
return map;
}
+
+ /**
+ * 分页获取所有可以远程控制的设备(读头)
+ * @param devname
+ * @param regionid
+ * @param buildingid
+ * @param pageNo
+ * @param pageSize
+ * @param operUser
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/getAllNcDevForRemote",method = RequestMethod.POST)
+ public Map getAllNcDevForRemote(
+ @RequestParam(value = "devname", required = false,defaultValue = "") String devname,
+ @RequestParam(value = "regionid", required = false,defaultValue = "") String regionid,
+ @RequestParam(value = "buildingid", required = false,defaultValue = "") String buildingid,
+ @RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
+ @RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize,
+ @AuthenticationPrincipal TOperator operUser){
+ Map map = new HashMap();
+ try {
+ String opertype = operUser.getOpertype();
+ Pagination page = null;
+ List<TRegion> regions = null;
+ List<TBuilding> buildings = null;
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))) {
+ page = ncService.getAllRemoteDev(devname, pageNo, pageSize, buildingid, regionid);
+ map.put("PageResult", page);
+ regions = systemService.getAllRegions();
+ map.put("regions", regions);
+ buildings = ncService.getAllBuilding();
+ map.put("buildings", buildings);
+ }else if (opertype.equals("H") && !StringUtil.isEmpty(operUser.getRegionid())){
+ page = ncService.getOperateRemoteDev(devname, pageNo, pageSize, buildingid, regionid, operUser.getRegionid());
+ map.put("PageResult", page);
+ regions = systemService.getRegionListById(operUser.getRegionid());
+ map.put("regions", regions);
+ buildings = systemService.getBuildingByRegionId(operUser.getRegionid());
+ map.put("buildings", buildings);
+ }else if (opertype.equals("L")){
+ page = ncService.getBuildingOperRemoteDev(devname, pageNo, pageSize, buildingid, regionid, operUser.getOperid());
+ map.put("PageResult", page);
+ map.put("regions", regions);
+ buildings = systemService.getBuildingOperBuildings(operUser.getOperid());
+ map.put("buildings", buildings);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return map;
+ }
+
+
+ @ResponseBody
+ @RequestMapping(value = "/remoteCtrlDoorOnlyOne",method = RequestMethod.POST)
+ public Map remoteCtrlDoorOnlyOne(
+ @RequestParam(value = "deviceid", required = false) String deviceid,
+ @RequestParam(value = "crtlcode", required = false) String crtlcode){
+ Map map = new HashMap();
+ try {
+ int okFlag = 0;
+ TNcDevice ncDevice = ncService.getDevInfoByDevid(Integer.parseInt(deviceid));
+ if (ncDevice!=null && "C".equals(ncDevice.getDevtype())){
+ map.put("msg", "请选择要控制的门锁!");
+ map.put("okFlag", okFlag);
+ return map;
+ }
+ int devNo = ncDevice.getDevno();
+ String rmtDev = RedisUtil.get("remote_"+ncDevice.getDevphyid());
+
+ if (StringUtil.isEmpty(rmtDev)){
+ rmtDev = "----------------";
+ }
+ String tmpVal = rmtDev.substring(0,devNo-1)+crtlcode+rmtDev.substring(devNo);
+ RedisUtil.set("remote_"+ncDevice.getDevphyid(),tmpVal);
+ map.put("msg", "远程操作成功!");
+ map.put("okFlag", 1);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return map;
+ }
}
diff --git a/src/main/resources/templates/system/remote/remoteCtrl.html b/src/main/resources/templates/system/remote/remoteCtrl.html
new file mode 100644
index 0000000..e85fc5e
--- /dev/null
+++ b/src/main/resources/templates/system/remote/remoteCtrl.html
@@ -0,0 +1,406 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">远程控制</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">集控中心</a>
+ <a><cite>远程控制</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div id="remoteCtrl">
+ <el-form :inline="true" ref="remoteform" :model="remoteform" data-parsley-validate
+ class="form-horizontal form-label-left">
+
+ <div class="col-md-3" >
+ <div class="form-group">
+ <label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">设备名称:</span>
+ </label>
+ <div class="col-md-8 col-sm-12 col-xs-12">
+ <el-input v-model="remoteform.devname" ></el-input>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3" >
+ <div class="form-group">
+ <label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">所在区域:</span>
+ </label>
+ <div class="col-md-8 col-sm-12 col-xs-12">
+ <!--<el-select v-model="devform.regionid"
+ filterable
+ clearable
+ @Change="regionChange"
+ placeholder="请选择">
+ <el-option
+ v-for="regionid in regions"
+ :key="regionid.value"
+ :label="regionid.label"
+ :value="regionid.value">
+ </el-option>
+ </el-select>-->
+ <el-cascader style="width:163px"
+ v-model="remoteform.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-md-3" >
+ <div class="form-group">
+ <label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">所在楼栋:</span>
+ </label>
+ <div class="col-md-8 col-sm-12 col-xs-12">
+ <el-select v-model="remoteform.buildingid"
+ filterable
+ clearable
+ placeholder="请选择">
+ <el-option
+ v-for="buildingid in buildings"
+ :key="buildingid.value"
+ :label="buildingid.label"
+ :value="buildingid.value">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="col-md-3">
+ <div class="form-group">
+ <button type="button" class="btn btn-info" @click="query" id="remoteCtrl_qrybtn">查 询</button>
+ </div>
+ </div>
+ </el-form>
+
+ <template>
+ <el-table
+ ref="singleTable"
+ :data="tableData"
+ highlight-current-row
+ @current-change="currRowChange"
+ stripe
+ border
+ @selection-change="handleSelect"
+ style="width: 100%;">
+
+ <el-table-column
+ type="selection"
+ width="55">
+ </el-table-column>
+ <el-table-column
+ prop="deviceid"
+ label="设备编号"
+ width="140">
+ </el-table-column>
+ <el-table-column
+ prop="devname"
+ label="设备名称"
+ width="220">
+ </el-table-column>
+ <el-table-column
+ prop="regionname"
+ label="区域"
+ width="200">
+ </el-table-column>
+ <el-table-column
+ prop="buildingname"
+ label="楼栋"
+ width="200">
+ </el-table-column>
+ <el-table-column
+ fixed="right"
+ label="操作"
+ width="240">
+ <template scope="scope">
+ <button type="button" class="btn btn-info btn-xs" title="开一次" @click="remoteCtrl_remoteCtrlSelect(scope.row.deviceid,1)">开一次</button>
+ <button type="button" class="btn btn-info btn-xs" title="常开" @click="remoteCtrl_remoteCtrlSelect(scope.row.deviceid,9)">常开</button>
+ <button type="button" class="btn btn-info btn-xs" title="关闭" @click="remoteCtrl_remoteCtrlSelect(scope.row.deviceid,0)">关闭</button>
+ </template>
+ </el-table-column>
+
+ </el-table>
+ <div class="clearfix"></div>
+ <el-pagination
+ @size-change="handleSizeChange"
+ @current-change="currPageChange"
+ :current-page="currPage"
+ :page-sizes="[10, 20, 50, 100]"
+ :page-size="pageSize"
+ layout="prev, pager, next,sizes, jumper,total"
+ :total="totSize">
+ </el-pagination>
+ </template>
+
+ </div>
+ </div>
+</div>
+
+<script>
+ var remoteCtrl_vue = new Vue({
+ el: '#remoteCtrl',
+ data: {
+ tableData: [],
+ currPage: 1,
+ pageSize: 10,
+ totSize: 0,
+ currentRow: null,
+ remoteform: {
+ devname: '',
+ buildingid: '',
+ regionid:'',
+ regionvalue:[],
+ Rregionid:''
+ },
+ regions:[],
+ regionoptions:[],
+ buildings:[],
+ selectList:[],
+
+ },
+ methods: {
+ handleSizeChange: function (val) {
+ this.pageSize = val;
+ remoteCtrl_commonQuery(this, this.remoteform, this.currPage, val);
+ },
+ currPageChange: function (val) {
+ this.currPage = val;
+ remoteCtrl_commonQuery(this, this.remoteform, this.currPage, this.pageSize);
+ },
+ currRowChange: function (val) {
+ this.currentRow = val;
+ },
+ query: function () {
+ this.pageSize = 10;
+ this.currPage = 1;
+ remoteCtrl_commonQuery(this, this.remoteform, this.currPage, this.pageSize);
+ },
+
+ handleSelect:function(val){
+ this.selectList=val;
+ },
+ regionChange:function(value){
+ this.buildings=[];
+ this.remoteform.buildingid='';
+ remoteCtrl_getRegionBuilding(this,value);
+ },
+ handleChange(value) {
+ if (value.length > 0) {
+ this.remoteform.Rregionid = value[value.length - 1]
+ } else {
+ this.remoteform.Rregionid = ''
+ }
+ //console.log(this.remoteform.Rregionid);
+
+ this.buildings = [];
+ this.remoteform.buildingid = '';
+ if (this.remoteform.Rregionid == '') {
+ remoteCtrl_getRegionBuilding(this, '0');
+ } else {
+ remoteCtrl_getRegionBuilding(this, this.remoteform.Rregionid);
+ }
+ }
+ },
+ created: function () {
+ var url = "[[@{/system/getAllNcDevForRemote}]]";
+ var _self = this;
+ var token=$("meta[name='_csrf_token']").attr("value");
+ $.ajax({
+ type: "post",
+ dataType: "json",
+ url: encodeURI(url),
+ contentType: "application/json",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ success: function (data) {
+ _self.totSize = data.PageResult.totalCount;
+ _self.tableData = data.PageResult.list;
+ var regionlist = [];
+ regionlist.push({
+ value:'',
+ label:'全部'
+ });
+ var region = data.regions;
+ if(region!=null) {
+ for (var i = 0; i < region.length; i++) {
+ regionlist.push({
+ value: region[i]["regionid"],
+ label: region[i]["regionname"]
+ })
+ }
+ //级联选择器区域数据填充
+ remoteCtrl_vue.regionoptions = remoteCtrl_getTreeData(data.regions) ;
+ }
+
+ var buildinglist = [];
+ buildinglist.push({
+ value:'',
+ label:'全部'
+ });
+ var building = data.buildings;
+ for (var i = 0; i < building.length; i++) {
+ buildinglist.push({
+ value: building[i]["buildingid"],
+ label: building[i]["buildingname"]
+ })
+ }
+ remoteCtrl_vue.regions = regionlist;
+ remoteCtrl_vue.buildings = buildinglist
+ }
+ })
+ }
+ });
+
+ function remoteCtrl_getTreeData(regionlst){
+ var f = [];
+
+ //获取第一级
+ for(var i=0;i<regionlst.length;i++){
+ if(regionlst[i].parentid == '0'){
+ f.push({
+ value:regionlst[i].regionid,
+ label:regionlst[i].regionname,
+ })
+ }
+ }
+ if(f.length>0){
+ //获取第二级
+ remoteCtrl_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ remoteCtrl_pushRegion(regionlst,f);
+ }
+ remoteCtrl_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function remoteCtrl_pushRegion(regionlst,pRe){
+ for(var i in regionlst){
+ for(var j in pRe){
+ if(regionlst[i].parentid == pRe[j].value){
+ if (pRe[j].children==undefined){
+ pRe[j].children=[]
+ }
+ pRe[j].children.push({
+ value:regionlst[i].regionid,
+ label:regionlst[i].regionname,
+ })
+ }
+ }
+ }
+ }
+
+ function remoteCtrl_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ remoteCtrl_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ remoteCtrl_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
+
+ function remoteCtrl_commonQuery(_self, remoteCtrl, pageno, pagesize) {
+
+ var url = "[[@{/system/getAllNcDevForRemote?}]]"+"&devname=" + remoteCtrl.devname
+ +"®ionid=" +remoteCtrl.Rregionid + "&buildingid=" + remoteCtrl.buildingid;
+ var token=$("meta[name='_csrf_token']").attr("value");
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: encodeURI(url),
+ contentType: "application/json",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ success: function (ret) {
+ if (ret.PageResult != null) {
+ _self.totSize = ret.PageResult.totalCount;
+ _self.tableData = ret.PageResult.list;
+ if(_self.totSize == 0 ){
+ layer.msg("暂无数据", {icon: 2, time: 1000});
+ }
+ }
+ }
+ })
+ }
+
+
+ function remoteCtrl_getRegionBuilding(_self,value){
+ $.ajax({
+ type: "get",
+ dataType: "json",
+ url: encodeURI("[[@{/ncmgr/getRegionBuilding?regionid=}]]" + value),
+ success: function (ret) {
+ var bList = [];
+ bList.push({
+ value:'',
+ label:'全部'
+ });
+ var rB = ret.reBuilding;
+ if (rB!=null) {
+ for (var j = 0; j < rB.length; j++) {
+ bList.push({
+ value: rB[j]["buildingid"],
+ label: rB[j]["buildingname"]
+ });
+ }
+ }
+
+ _self.buildings = bList;
+ }
+ })
+ }
+
+
+ function remoteCtrl_remoteCtrlSelect(deviceid,crtlcode){
+
+ layer.confirm('确定执行此动作吗?', {icon: 3, title:'请确认'}, function(index) {
+ var token=$("meta[name='_csrf_token']").attr("value");
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: encodeURI("[[@{/system/remoteCtrlDoorOnlyOne?deviceid=}]]" +deviceid+
+ "&crtlcode=" + crtlcode),
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ success: function (ret) {
+ if (ret.okFlag == undefined) {
+ layer.msg('用户认证已过期,请重新登录', {icon: 2, time: 1000});
+ window.location = "[[@{/login}]]";
+ return;
+ }
+ if (ret.okFlag != 1) {
+ layer.msg(ret.msg, {icon: 2, time: 1000});
+ } else {
+ layer.msg(ret.msg, {icon: 1, time: 1000});
+ }
+ }
+ })
+ })
+ }
+
+
+</script>
\ No newline at end of file