区域选择框添加树形结构,下发名单功能添加Excel导入人员查询功能,角色添加功能数据重复问题修改,以及各个细节优化
diff --git a/build.gradle b/build.gradle
index 2fe4ee1..5df2cf7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -73,6 +73,7 @@
implementation 'io.github.microutils:kotlin-logging:1.6.26'
implementation 'org.slf4j:slf4j-parent:1.7.26'
implementation 'redis.clients:jedis:2.9.3'
+ implementation 'net.sourceforge.jexcelapi:jxl:2.6.12'
implementation group: 'commons-lang', name:'commons-lang',version: '2.5'
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
diff --git a/src/main/java/com/supwisdom/dlpay/doorlist/bean/TCustomerNoExistInfo.java b/src/main/java/com/supwisdom/dlpay/doorlist/bean/TCustomerNoExistInfo.java
new file mode 100644
index 0000000..4bdb061
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/bean/TCustomerNoExistInfo.java
@@ -0,0 +1,31 @@
+package com.supwisdom.dlpay.doorlist.bean;
+
+public class TCustomerNoExistInfo {
+ private String cardno;
+ private String bankcardno;
+ private String custname;
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getBankcardno() {
+ return bankcardno;
+ }
+
+ public void setBankcardno(String bankcardno) {
+ this.bankcardno = bankcardno;
+ }
+
+ public String getCustname() {
+ return custname;
+ }
+
+ public void setCustname(String custname) {
+ this.custname = custname;
+ }
+}
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 a0ae378..28af857 100644
--- a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -28,6 +28,7 @@
import com.supwisdom.dlpay.system.page.Pagination;
import com.supwisdom.dlpay.system.service.SystemService;
import com.supwisdom.dlpay.util.RedisUtil;
+import com.supwisdom.dlpay.util.UploadExcelCardno;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -464,6 +465,165 @@
}
/**
+ * 下发名单导入查询模板下载
+ * @param request
+ * @param response
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/exportExcelTemplet")
+ public Map exportExcelTemplet(HttpServletRequest request, HttpServletResponse response) {
+ Map map = new HashMap();
+ try {
+ List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
+ /**
+ * 1. 设置列信息:name:列标题 key: 列属性
+ */
+ entity.add(new ExcelExportEntity("卡号(必须项)", "cardno"));
+ entity.add(new ExcelExportEntity("银行卡号(可选项)","bankcardno"));
+ entity.add(new ExcelExportEntity("姓名", "custname"));
+ List<Map> personList = new ArrayList<Map>();
+
+ /**
+ * 3.设置表格属性: title:标题 sheetName:工作簿名 type:表格类型
+ */
+ ExportParams params = new ExportParams(null, "sheet1", ExcelType.HSSF);
+// params.setFreezeCol(2);
+ map.put(MapExcelConstants.MAP_LIST, personList);
+ map.put(MapExcelConstants.ENTITY_LIST, entity);
+ map.put(MapExcelConstants.PARAMS, params);
+ map.put(MapExcelConstants.FILE_NAME, "查询模板");//文件名
+ map.put("result", "导出excel文件完成");
+ PoiBaseView.render(map, request, response, MapExcelConstants.EASYPOI_MAP_EXCEL_VIEW);
+ } catch (Exception e) {
+ e.printStackTrace();
+ map.put("result", "导出excel文件失败");
+ }
+ return map;
+ }
+
+ /**
+ * 导入查询人员名单
+ * @param file
+ * @param request
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/addexcel", method = {RequestMethod.POST})
+ public Map addExcel(@RequestParam(value = "file", required = false, defaultValue = "") MultipartFile file,
+ HttpServletRequest request) {
+ // 保存
+ Map map = new HashMap();
+ try {
+
+ String sheetName = request.getParameter("sheetname");
+ String path = request.getSession().getServletContext()
+ .getRealPath("upload");
+
+ String fileName = file.getOriginalFilename();
+ //impTest(path+"\\"+fileName);
+ File targetFile = new File(path, fileName);
+ if (!targetFile.exists()) {
+ targetFile.mkdirs();
+ }
+ file.transferTo(targetFile);
+ map = importExcel(map, sheetName, targetFile);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return map;
+ }
+
+
+ private Map importExcel(Map map, String sheetName, File targetFile) {
+ try {
+ @SuppressWarnings("unchecked")
+ List<List<String>> excelList = UploadExcelCardno.readExcel(targetFile, sheetName);//数据列
+ boolean sheetindex = true;
+ if (excelList == null) {
+ sheetindex = false;
+ map.put("sheetindex", sheetindex);
+ return map;
+ }
+ int sumNum = excelList.size();
+ int cardno = -1;
+ int bankcardno =-1;
+ int custnameNo = -1;
+ List columlst = excelList.get(0);
+ int i = 0;
+ boolean contentidex = true;
+ while (contentidex) {
+ columlst = excelList.get(i++);
+ int len = columlst.size();
+ for (int j = 0; j < len; j++) {
+ if (columlst.get(j).toString().equals("卡号(必须项)")) {
+ cardno = j;
+ contentidex = false;
+ }
+ if (columlst.get(j).toString().equals("银行卡号(可选项)")){
+ bankcardno = j;
+ contentidex = false;
+ }
+ if (columlst.get(j).toString().equals("姓名")) {
+ custnameNo = j;
+ contentidex = false;
+ }
+ }
+
+ }
+
+ boolean cardIndex = false;
+ int queryNum = 0;
+ int queryNoNum = 0;
+ List<TCustomerInfo> tCustomerInfos = new ArrayList<TCustomerInfo>();
+ List<TCustomerNoExistInfo> tCustomerNoExistInfos = new ArrayList<TCustomerNoExistInfo>();
+
+ for (; i < sumNum; i++) {
+ columlst = excelList.get(i);
+
+ String cardStr = columlst.get(cardno).toString();
+ String bankcardStr = columlst.get(bankcardno).toString();
+ cardIndex = false;
+ if (cardStr.length() > 0) {
+ TCustomerInfo tCustomerInfo = webInterfaceService.getTCustomerByExcel(cardStr);
+ if (tCustomerInfo == null) {
+ cardIndex = true;
+ } else {
+ tCustomerInfos.add(tCustomerInfo);
+ queryNum++;
+ }
+ } else {
+ cardIndex = true;
+ }
+ if (cardIndex) {
+ queryNoNum++;
+ TCustomerNoExistInfo tCustomerNoExistInfo = new TCustomerNoExistInfo();
+ tCustomerNoExistInfo.setCardno(cardStr);
+ if (bankcardno > 0){
+ tCustomerNoExistInfo.setBankcardno(columlst.get(bankcardno).toString());
+ }
+ if (custnameNo > 0) {
+ tCustomerNoExistInfo.setCustname(columlst.get(custnameNo).toString());
+ }
+
+ tCustomerNoExistInfos.add(tCustomerNoExistInfo);
+ }
+ }
+
+ map.put("queryNum", String.valueOf(queryNum));
+ map.put("queryNoNum", queryNoNum);
+ map.put("tCustomerInfos", tCustomerInfos);
+ map.put("tCustomerNoExistInfos", tCustomerNoExistInfos);
+ map.put("sheetindex", sheetindex);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return map;
+
+ }
+
+
+ /**
* 获取设备查询区域和楼栋填充列表
* @param operUser
* @return
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
index af782a8..e5059e9 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
@@ -3,9 +3,13 @@
import com.supwisdom.dlpay.framework.domain.TPermission;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface PermissionDao extends JpaRepository<TPermission, String> {
TPermission findByRoleIdAndResid(String roleId, Integer resid);
void deleteByRoleId(String roleId);
+
+ List<TPermission> findByRoleId(String roleId);
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/CustomerDao.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CustomerDao.java
index 45bcc9b..eab430d 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/CustomerDao.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CustomerDao.java
@@ -13,4 +13,6 @@
public List<TCustomerInfo> getAllTCustomerList(String perName, String cardno, String bankcardno);
+ public TCustomerInfo getTCustomerByExcel(String cardno);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
index c505a89..71230c1 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
@@ -75,4 +75,18 @@
List<TCustomerInfo> list = query.getResultList();
return list;
}
+
+ @Transactional
+ @Override
+ public TCustomerInfo getTCustomerByExcel(String cardno) {
+ String sql = "select a.custid,a.custname,b.cardno,b.bankcardno,b.cardphyid,b.expiredate from t_customer a,t_card b " +
+ " where a.custid = b.custid and b.status = '1' and cardno=?1 ";
+ Query query = entityManager.createNativeQuery(sql, TCustomerInfo.class);
+ query.setParameter(1, cardno);
+ List<TCustomerInfo> list = query.getResultList();
+ if (list!=null && list.size()>0){
+ return list.get(0);
+ }
+ return null;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/DoordtlDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/DoordtlDaoImpl.java
index 17111ec..5978855 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/DoordtlDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/DoordtlDaoImpl.java
@@ -56,7 +56,7 @@
+ "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ ") select regionid from tmp ) ";
}
- queryString += " order by a.transdate DESC";
+ queryString += " order by a.transdate DESC,doorseqno";
Query query = entityManager.createNativeQuery(queryString, TDoordtlInfo.class);
if (!startTranDate.equals("")) {
query.setParameter("startTranDate", startTranDate);
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java b/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
index 0e75b4c..003a167 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
@@ -116,4 +116,8 @@
//保存卡信息
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public boolean saveCard(TCard bean);
+
+ //根据excel卡号信息获取客户信息
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public TCustomerInfo getTCustomerByExcel(String cardno);
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
index cadb1d9..349a19f 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
@@ -123,4 +123,9 @@
public boolean saveCard(TCard bean) {
return cardDao.saveCard(bean);
}
+
+ @Override
+ public TCustomerInfo getTCustomerByExcel(String cardno) {
+ return customerDao.getTCustomerByExcel(cardno);
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java b/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
index 63f2aee..653bbd8 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
@@ -192,7 +192,7 @@
if (operUser.getOpertype().equals("L")){
regionBuildings = systemService.getBuildingOperBuildingByRegionId(regionid, operUser.getOperid());
}else if(operUser.getOpertype().equals("H") && !StringUtil.isEmpty(operUser.getRegionid())){
- regionBuildings = systemService.getBuildingByRegionId(operUser.getRegionid());
+ regionBuildings = systemService.getOperatorBuildingByRegionId(regionid,operUser.getRegionid());
} else {
regionBuildings = systemService.getBuildingByRegionId(regionid);
}
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 b7b8a4c..69195bc 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
@@ -48,7 +48,7 @@
if(!devtype.equals("")){
sql+=" and devtype = :devtype ";
}
- sql+=" order by devtype";
+ sql+=" order by devtype,deviceid";
Query query = entityManager.createNativeQuery(sql,TNcDevice.class);
if(!devname.equals("")){
@@ -148,7 +148,7 @@
if(!devtype.equals("")){
sql+=" and devtype = :devtype ";
}
- sql+=" order by devtype";
+ sql+=" order by devtype,deviceid";
Query query = entityManager.createNativeQuery(sql,TNcDevice.class);
if(!devname.equals("")){
@@ -242,7 +242,7 @@
if(!devtype.equals("")){
sql+=" and bean.devtype = :devtype ";
}
- sql+=" order by devtype";
+ sql+=" order by devtype,deviceid";
Query query = entityManager.createNativeQuery(sql,TNcDevice.class);
query.setParameter("operid", operid);
if(!devname.equals("")){
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TBuilding.java b/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TBuilding.java
index c9391ae..b17ccc3 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TBuilding.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TBuilding.java
@@ -6,8 +6,7 @@
* TBuilding entity. @author MyEclipse Persistence Tools
*/
@Entity
-@Table(name = "T_BUILDING",
- indexes = {@Index(name = "idx_building_id",columnList = "buildingid",unique = true)})
+@Table(name = "T_BUILDING")
public class TBuilding implements java.io.Serializable {
// Fields
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TNcDevice.java b/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TNcDevice.java
index 8ba75db..e0bd051 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TNcDevice.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/domain/TNcDevice.java
@@ -9,8 +9,7 @@
*/
@Entity
@Table(name = "T_NC_DEVICE",
- indexes = {@Index(name = "idx_nc_dev_phyid", columnList = "devphyid"),
- @Index(name = "idx_nc_dev_devid",columnList = "deviceid",unique = true)}
+ indexes = {@Index(name = "idx_nc_dev_phyid", columnList = "devphyid")}
)
public class TNcDevice implements java.io.Serializable {
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 605449e..8116b13 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/SystemController.java
@@ -284,7 +284,7 @@
@AuthenticationPrincipal TOperator operUser){
Map map = new HashMap();
try {
- TRegion region = systemService.getRegionById(regionid);
+ TRegion region = systemService.getRegionAllFlagById(regionid);
map.put("region",region);
List<TDictionaryId> dicts = systemService.findTDictionaryByType(6);//区域级别
map.put("dicts", dicts);
@@ -348,7 +348,7 @@
region.setRegionname(postData.getRegionname());
region.setRemarks(postData.getRemarks());
region.setParentname(tRegion.getRegionname());
- region.setFlag(1);
+ region.setFlag("1");
systemService.saveRegion(region);
map.put("errStr", "");
@@ -378,7 +378,7 @@
map.put("errStr", "区域名称已经存在,请修改!");
return map;
}
- TRegion region = systemService.getRegionById(postData.getRegionid());
+ TRegion region = systemService.getRegionAllFlagById(postData.getRegionid());
TRegion tRegion = systemService.getRegionById(postData.getParentid());
region.setAddress(postData.getAddress());
region.setLevel(tRegion.getLevel()+1);
@@ -386,9 +386,13 @@
region.setRegionname(postData.getRegionname());
region.setRemarks(postData.getRemarks());
region.setParentname(tRegion.getRegionname());
- region.setFlag(1);
+ region.setFlag("1");
systemService.updateRegion(region);
+
+ //需修改区域表总此区域子区域的父区域名
+ systemService.updateParentnameById(postData.getRegionid(), postData.getRegionname());
+
map.put("errStr", "");
}catch (Exception e){
e.printStackTrace();
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/BuildingDao.java b/src/main/java/com/supwisdom/dlpay/system/dao/BuildingDao.java
index 404b11e..7519bd6 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/BuildingDao.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/BuildingDao.java
@@ -44,5 +44,7 @@
public List<TBuilding> getBuildingOperBuildings(String operid);
+ public List<TBuilding> getOperatorBuildingByRegionId(String regionid,String operRegionid);
+
public List<TBuilding> getBuildingOperBuildingByRegionId(String regionid,String operid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java b/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java
index 780d39f..27a50a4 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java
@@ -35,4 +35,6 @@
public boolean updateRegion(TRegion bean);
+ public boolean updateParentnameById(String regionid,String parentname);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/BuildingDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/BuildingDaoImpl.java
index e8ab4eb..24ac1ec 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/impl/BuildingDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/BuildingDaoImpl.java
@@ -41,8 +41,8 @@
@Transactional
@Override
public Pagination getSystemBuildingList(String regionid, String buildingname, int pageNo, int pageSize) {
- String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,bean.flag,bean.buildingdesc,bean.regionid " +
- " from T_Building bean where 1>0 and bean.flag='A' ";
+ String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,case when bean.flag='A' then '有效' else '注销' end flag,bean.buildingdesc,bean.regionid " +
+ " from T_Building bean where 1>0 ";
if (!StringUtil.isEmpty(regionid)){
sql += "and bean.regionid in " +
"( with recursive tmp as ( select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr " +
@@ -79,7 +79,7 @@
private int getSystemBuildingListCount(String regionid,String buildingname){
- String sql = "select count(*) from T_Building bean where 1>0 and bean.flag='A' ";
+ String sql = "select count(*) from T_Building bean where 1>0 ";
if (!StringUtil.isEmpty(regionid)){
sql += "and bean.regionid in " +
"(with recursive tmp as (select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr " +
@@ -108,8 +108,8 @@
@Transactional
@Override
public Pagination getOperatorBuildingList(String operRegionid, String regionid, String buildingname, int pageNo, int pageSize) {
- String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,bean.flag,bean.buildingdesc,bean.regionid " +
- " from T_Building bean where 1>0 and bean.flag='A' ";
+ String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,case when bean.flag='A' then '有效' else '注销' end flag,bean.buildingdesc,bean.regionid " +
+ " from T_Building bean where 1>0 ";
sql += "and bean.regionid in " +
"( with recursive tmp as ( select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr " +
@@ -146,7 +146,7 @@
}
private int getOperatorBuildingListCount(String operRegionid, String regionid, String buildingname){
- String sql = "select count(*) from T_Building bean where 1>0 and bean.flag='A' ";
+ String sql = "select count(*) from T_Building bean where 1>0 ";
sql += "and bean.regionid in " +
"(with recursive tmp as (select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr " +
@@ -177,9 +177,9 @@
@Override
public Pagination getBuildingOperBuildingList(String regionid, String buildingname, String operid, int pageNo, int pageSize) {
// 楼栋管理员regionid为空
- String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,bean.flag,bean.buildingdesc,bean.regionid "+
+ String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,case when bean.flag='A' then '有效' else '注销' end flag,bean.buildingdesc,bean.regionid "+
" from T_Building bean left join T_operbuilding a on a.buildingid=bean.buildingid " +
- " where 1>0 and bean.flag='A' and a.operid= :operid";
+ " where 1>0 and a.operid= :operid";
if (!StringUtil.isEmpty(buildingname)){
sql += " and bean.buildingname like :buildingname";
}
@@ -203,7 +203,7 @@
private int getBuildingOperBuildingListCount(String operid,String buildingname){
String sql = "select count(*) from T_BUILDING bean left join T_operbuilding a on a.buildingid=bean.buildingid "+
- "where 1>0 and bean.flag='A' and a.operid= :operid";
+ "where 1>0 and a.operid= :operid";
if (!StringUtil.isEmpty(buildingname)){
sql += " and bean.buildingname like :buildingname";
}
@@ -405,6 +405,29 @@
@Transactional
@Override
+ public List<TBuilding> getOperatorBuildingByRegionId(String regionid, String operRegionid) {
+ String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,bean.flag,bean.buildingdesc,bean.regionid" +
+ " from T_Building bean where bean.flag='A' "+
+ "and bean.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, TBuilding.class);
+ if (!StringUtil.isEmpty(regionid)) {
+ query.setParameter("regionid", regionid);
+ }else {
+ query.setParameter( "regionid", operRegionid);
+ }
+ List<TBuilding> list = query.getResultList();
+ if (list!=null && list.size()>0){
+ return list;
+ }
+ return null;
+ }
+
+ @Transactional
+ @Override
public List<TBuilding> getBuildingOperBuildingByRegionId(String regionid,String operid) {
String sql = "select bean.buildingid,bean.buildingname,bean.synctime,bean.updtime,bean.flag,bean.buildingdesc,bean.regionid" +
" from T_Building bean where bean.flag='A' "+
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
index 991111f..5b394ba 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
@@ -25,7 +25,9 @@
@Transactional
@Override
public Pagination getOperatorList(String operid, String realname, int pageNo, int pageSize) {
- String sql = "select a.operid,a.opername,a.opercode,a.opertype,a.realname,case when a.status='normal' then '有效' else '注销' end status,a.regionid,a.mobile,a.foperid,c.roleid,c.rolename,d.regionname " +
+ String sql = "select a.operid,a.opername,a.opercode,case when a.opertype='P' then '超级管理员' when a.opertype='S' then '系统管理员' " +
+ " when a.opertype='H' then '区域管理员' when a.opertype='L' then '楼栋管理员' else a.opertype end opertype," +
+ "a.realname,case when a.status='normal' then '有效' else '注销' end status,a.regionid,a.mobile,a.foperid,c.roleid,c.rolename,d.regionname " +
" from Tb_Operator a " +
" left join tb_oper_role b on a.operid = b.operid " +
" left join tb_role c on b.roleid = c.roleid " +
@@ -97,7 +99,8 @@
@Transactional
@Override
public Pagination getOperOperatorList(String operatorOperid, String operid, String realname, int pageNo, int pageSize) {
- String sql = "select a.operid,a.opername,a.opercode,a.opertype,a.realname,case when a.status='normal' then '有效' else '注销' end status,a.regionid,a.mobile,a.foperid,c.roleid,c.rolename,d.regionname " +
+ String sql = "select a.operid,a.opername,a.opercode,case when a.opertype='P' then '超级管理员' when a.opertype='S' then '系统管理员' " +
+ " when a.opertype='H' then '区域管理员' when a.opertype='L' then '楼栋管理员' else a.opertype end opertype,a.realname,case when a.status='normal' then '有效' else '注销' end status,a.regionid,a.mobile,a.foperid,c.roleid,c.rolename,d.regionname " +
" from Tb_Operator a " +
" left join tb_oper_role b on a.operid = b.operid " +
" left join tb_role c on b.roleid = c.roleid " +
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/RegionDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/RegionDaoImpl.java
index 231b934..2ce8280 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/impl/RegionDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/RegionDaoImpl.java
@@ -22,14 +22,16 @@
@Transactional
@Override
public Pagination getSystemRegionList(String regionname, int pageNo, int pageSize) {
- String sql = "select bean from TRegion bean where 1>0 and bean.flag=1 ";
+ String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname," +
+ " case when bean.flag='1' then '有效' else '注销' end flag " +
+ " from TB_Region bean where 1>0 ";
if (!StringUtil.isEmpty(regionname)){
sql += " and bean.regionname like :regionname ";
}
- sql += " order by bean.level";
+ sql += " order by bean.level,bean.regionid";
- TypedQuery<TRegion> query = entityManager.createQuery(sql, TRegion.class);
+ Query query = entityManager.createNativeQuery(sql, TRegion.class);
if(!StringUtil.isEmpty(regionname)){
query.setParameter("regionname", "%"+regionname+"%" );
}
@@ -47,7 +49,7 @@
}
private int getSystemRegionListCount(String regionname){
- String sql = "select count(*) from TB_Region where 1>0 and flag=1 ";
+ String sql = "select count(*) from TB_Region where 1>0 ";
if (!StringUtil.isEmpty(regionname)){
sql += " and regionname like :regionname ";
}
@@ -66,8 +68,9 @@
@Transactional
@Override
public Pagination getOperatorRegionList(String regionname, String regionid, int pageNo, int pageSize) {
- String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname,bean.flag" +
- " from Tb_Region bean where 1>0 and bean.flag=1 ";
+ String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname," +
+ "case when bean.flag='1' then '有效' else '注销' end flag " +
+ " from Tb_Region bean where 1>0 ";
sql += "and bean.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 " +
@@ -76,7 +79,7 @@
if (!StringUtil.isEmpty(regionname)){
sql += " and tmp.regionname like :regionname ";
}
- sql += ") order by bean.level";
+ sql += ") order by bean.level,bean.regionid";
Query query = entityManager.createNativeQuery(sql, TRegion.class);
query.setParameter("regionid" , regionid);
@@ -99,7 +102,7 @@
private int getOperatorRegionListCount(String regionname,String regionid){
- String sql = "select count(*) from Tb_Region bean where 1>0 and bean.flag=1 ";
+ String sql = "select count(*) from Tb_Region bean where 1>0 ";
sql += "and bean.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 " +
@@ -127,7 +130,7 @@
public boolean updateRegionFlag(String regionid) {
boolean flag = false;
try {
- String sql = "update tb_region set flag = 0 where regionid = ?1 ";
+ String sql = "update tb_region set flag = '0' where regionid = ?1 ";
Query query = entityManager.createNativeQuery(sql);
query.setParameter(1, regionid);
query.executeUpdate();
@@ -141,7 +144,7 @@
@Transactional
@Override
public TRegion getRegionById(String regionid) {
- String sql = "select bean from TRegion bean where bean.regionid = :regionid and bean.flag=1 ";
+ String sql = "select bean from TRegion bean where bean.regionid = :regionid and bean.flag='1' ";
TypedQuery<TRegion> query = entityManager.createQuery(sql, TRegion.class);
query.setParameter("regionid", regionid );
List<TRegion> list = query.getResultList();
@@ -168,11 +171,11 @@
@Override
public List<TRegion> getRegionListById(String regionid) {
String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname,bean.flag " +
- "from TB_REGION bean where flag=1 "+
+ "from TB_REGION bean where flag='1' "+
"and bean.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 )";
+ " ) select regionid from tmp ) order by bean.level";
Query query = entityManager.createNativeQuery(sql, TRegion.class);
query.setParameter("regionid", regionid);
List list = query.getResultList();
@@ -184,7 +187,7 @@
@Override
public List<TRegion> getLowRegionListById(String regionid) {
String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname,bean.flag " +
- "from TB_REGION bean where flag=1 "+
+ "from TB_REGION bean where flag='1' "+
"and bean.regionid <>:regionid and bean.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 " +
@@ -199,7 +202,7 @@
@Transactional
@Override
public List<TRegion> getRegionListByLevel(int level) {
- String sql = "select bean from TRegion bean where bean.flag=1 and bean.level=:level";
+ String sql = "select bean from TRegion bean where bean.flag='1' and bean.level=:level";
TypedQuery<TRegion> query = entityManager.createQuery(sql, TRegion.class);
query.setParameter("level" , level-1);
List<TRegion> list = query.getResultList();
@@ -213,7 +216,7 @@
@Override
public List<TRegion> getOperRegionListByLevel(int level, String regionid) {
String sql = "select bean.regionid,bean.address,bean.level,bean.parentid,bean.regionname,bean.remarks,bean.parentname,bean.flag " +
- "from TB_REGION bean where flag=1 and bean.level = :level "+
+ "from TB_REGION bean where flag='1' and bean.level = :level "+
" and bean.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 " +
@@ -231,7 +234,7 @@
@Transactional
@Override
public List<TRegion> getAllRegions() {
- String sql = "select bean from TRegion bean where bean.flag = 1";
+ String sql = "select bean from TRegion bean where bean.flag = '1' order by bean.level";
TypedQuery<TRegion> query = entityManager.createQuery(sql, TRegion.class);
List<TRegion> list = query.getResultList();
if (list!=null && list.size()>0){
@@ -293,6 +296,22 @@
return flag;
}
+ @Transactional
+ @Override
+ public boolean updateParentnameById(String regionid, String parentname) {
+ boolean flag = false;
+ try{
+ String sql = "update tb_region a set parentname=:parentname where parentid=:regionid ";
+ Query query = entityManager.createNativeQuery(sql);
+ query.setParameter("regionid", regionid);
+ query.setParameter("parentname", parentname);
+ query.executeUpdate();
+ flag = true;
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return flag;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/domain/TRegion.java b/src/main/java/com/supwisdom/dlpay/system/domain/TRegion.java
index 449e79e..449fce3 100644
--- a/src/main/java/com/supwisdom/dlpay/system/domain/TRegion.java
+++ b/src/main/java/com/supwisdom/dlpay/system/domain/TRegion.java
@@ -3,8 +3,7 @@
import javax.persistence.*;
@Entity
-@Table(name = "TB_REGION",
- indexes = {@Index(name = "idx_region_id",columnList = "regionid",unique = true)})
+@Table(name = "TB_REGION")
public class TRegion {
private String regionid;
private String address;
@@ -13,7 +12,7 @@
private String regionname;
private String remarks;
private String parentname;
- private Integer flag;
+ private String flag;
@Id
@Column(name = "REGIONID", unique = true, nullable = false, scale = 0)
@@ -79,16 +78,16 @@
this.parentname = parentname;
}
- @Column(name = "FLAG")
- public Integer getFlag() {
+ @Column(name = "FLAG",length = 1)
+ public String getFlag() {
return flag;
}
- public void setFlag(Integer flag) {
+ public void setFlag(String flag) {
this.flag = flag;
}
- public TRegion(String regionid, String address, Integer level, String parentid, String regionname, String remarks, String parentname, Integer flag) {
+ public TRegion(String regionid, String address, Integer level, String parentid, String regionname, String remarks, String parentname, String flag) {
this.regionid = regionid;
this.address = address;
this.level = level;
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
index d486fbd..84949a5 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
@@ -54,6 +54,10 @@
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public List<TBuilding> getBuildingByRegionId(String regionid);
+ //根据区域id查询区域管理员权限下楼栋
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public List<TBuilding> getOperatorBuildingByRegionId(String regionid,String operRegionid);
+
//根据区域id查询楼栋管理员权限下楼栋
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public List<TBuilding> getBuildingOperBuildingByRegionId(String regionid,String operid);
@@ -106,6 +110,10 @@
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public boolean updateRegion(TRegion bean);
+ //根据区域id修改其子区域的父区域名
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public boolean updateParentnameById(String regionid,String parentname);
+
//获取区域树形数据
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public List<RegionZTreeNodes> getAllRegionTreeList();
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
index a02ee7c..ace0e19 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
@@ -133,30 +133,62 @@
return permissionDao.findByRoleIdAndResid(roleFuncId, resid);
}
+
+ private TPermission findOrNewPermission(List<TPermission> exists, String roleId, Integer resId) {
+ for (TPermission item : exists) {
+ if (resId.equals(item.getResid())) {
+ return item;
+ }
+ }
+
+ TPermission perm = new TPermission();
+ perm.setRoleId(roleId);
+ perm.setResid(resId);
+ return perm;
+ }
+
+ private TRoleFunction findOrNewRoleFunction(List<TRoleFunction> exists, String roleId, Integer funcId) {
+ for (TRoleFunction item : exists) {
+ if (funcId.equals(item.getFunctionId())) {
+ return item;
+ }
+ }
+ TRoleFunction func = new TRoleFunction();
+ func.setFunctionId(funcId);
+ func.setRoleId(roleId);
+ return func;
+ }
+
@Override
public JsonResult saveRoleFuncId(String roleId, String funcs) {
Optional<TRole> ret = roleDao.findById(roleId);
- if (ret == null || !ret.isPresent()) {
+ if (!ret.isPresent()) {
return JsonResult.error("角色不存在");
}
- roleFunctionDao.deleteByRoleId(roleId);
- permissionDao.deleteByRoleId(roleId);
+ List<TRoleFunction> functions = roleFunctionDao.findByRoleId(roleId);
+ List<TPermission> permissions = permissionDao.findByRoleId(roleId);
+ ArrayList<TRoleFunction> retainFuncs = new ArrayList<>();
+ ArrayList<TPermission> retainPerms = new ArrayList<>();
String[] datas = funcs.split(",");
for (String func : datas) {
if (func.contains("_res")) {
String id = func.replace("_res", "");
- TPermission permission = new TPermission();
- permission.setResid(Integer.valueOf(id));
- permission.setRoleId(roleId);
- permissionDao.save(permission);
+ retainPerms.add(findOrNewPermission(permissions, roleId, Integer.parseInt(id)));
} else {
if ("-1".equals(func)) continue; //全选排除
- TRoleFunction roleFunction = new TRoleFunction();
- roleFunction.setFunctionId(Integer.valueOf(func));
- roleFunction.setRoleId(roleId);
- roleFunctionDao.save(roleFunction);
+ retainFuncs.add(findOrNewRoleFunction(functions, roleId, Integer.parseInt(func)));
}
}
+ // functions
+ functions.removeAll(retainFuncs);
+ if (functions.size() > 0)
+ roleFunctionDao.deleteAll(functions);
+ roleFunctionDao.saveAll(retainFuncs);
+ // permissions
+ permissions.removeAll(retainPerms);
+ if (permissions.size() > 0)
+ permissionDao.deleteAll(permissions);
+ permissionDao.saveAll(retainPerms);
return JsonResult.ok("成功");
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
index e6f818e..f0a8aa1 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
@@ -93,6 +93,11 @@
}
@Override
+ public List<TBuilding> getOperatorBuildingByRegionId(String regionid, String operRegionid) {
+ return buildingDao.getOperatorBuildingByRegionId(regionid,operRegionid);
+ }
+
+ @Override
public List<TBuilding> getBuildingOperBuildingByRegionId(String regionid,String operid) {
return buildingDao.getBuildingOperBuildingByRegionId(regionid, operid);
}
@@ -158,6 +163,11 @@
}
@Override
+ public boolean updateParentnameById(String regionid, String parentname) {
+ return regionDao.updateParentnameById(regionid, parentname);
+ }
+
+ @Override
public List<RegionZTreeNodes> getAllRegionTreeList() {
List<RegionZTreeNodes> regionZTreeNodesList = new ArrayList<>();
List<TRegion> regions = regionDao.getAllRegions();
diff --git a/src/main/java/com/supwisdom/dlpay/util/UploadExcelCardno.java b/src/main/java/com/supwisdom/dlpay/util/UploadExcelCardno.java
new file mode 100644
index 0000000..f59ce0e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/util/UploadExcelCardno.java
@@ -0,0 +1,88 @@
+package com.supwisdom.dlpay.util;
+
+import jxl.Cell;
+import jxl.Sheet;
+import jxl.Workbook;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+public class UploadExcelCardno {
+
+ public static List readExcel(File file,String sheetName) throws Exception{
+ Workbook rwb = null;
+ InputStream is = null;
+ List<List<String>> biglist = new ArrayList<List<String>>();
+// String cardno = "";
+ List<String> cardno = new ArrayList<String>();
+ List<String> deviceid = new ArrayList<>();
+ try {
+ // 构建Workbook对象, 只读Workbook对象
+ // 直接从本地文件创建Workbook
+ // 从输入流创建
+ is = new FileInputStream(file);
+ rwb = Workbook.getWorkbook(is);
+ // Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中Sheet的下标是从0开始
+ // 获取第一张Sheet表
+// Sheet rs = rwb.getSheet(0);
+ Sheet rs = rwb.getSheet(sheetName);
+ System.out.println(rs);
+ if(rs==null){
+ return null;
+ }
+ // 获取Sheet表中所包含的总列数
+ int rsColumns = rs.getColumns();
+ // 获取Sheet表中所包含的总行数
+ int rsRows = rs.getRows();
+ // 获取指定单元格的对象引用
+ List<String> colnames = new ArrayList<String>();
+ int cardIndex = 0;
+ for (int j = 0; j < rsColumns; j++) {
+ Cell cell = rs.getCell(j, 0);
+ String colname = cell.getContents();
+ if(("卡号").equals(colname)){
+ cardIndex = j;
+ }
+ colnames.add(cell.getContents());
+ }
+
+ biglist.add(colnames);
+ // **从第二行开始读取数据 这里默认从第2行开始读取
+ for (int i = 1; i < rsRows; i++) {
+ List<String> smalllist = new ArrayList<String>();
+ boolean flag = false;
+ for (int j = 0; j < rsColumns; j++) {
+ Cell cell = rs.getCell(j, i);
+ smalllist.add(cell.getContents());
+ if (cell.getContents() != null
+ && !"".equals(cell.getContents())) {
+ flag = true;
+ }
+ if(j == cardIndex){
+ cardno.add(cell.getContents());
+ }
+ }
+ if (flag) {
+ biglist.add(smalllist);
+ }
+ }
+ return biglist;
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (rwb != null) {
+ rwb.close();
+ }
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return biglist;
+ }
+}
diff --git a/src/main/resources/templates/doorlist/addDoorlist.html b/src/main/resources/templates/doorlist/addDoorlist.html
index fec24fd..053d412 100644
--- a/src/main/resources/templates/doorlist/addDoorlist.html
+++ b/src/main/resources/templates/doorlist/addDoorlist.html
@@ -41,10 +41,17 @@
<el-col :span="3" :offset="3">
<el-button size="small" style="height:24px; line-height:9px;overflow:hidden;width:100%;" type="primary" @click="person_searchPerson"> 搜索 </el-button>
</el-col>
+ <el-col :span="3" :offset="2">
+ <el-button type="warning" size="small" style="height:24px; line-height:9px;overflow:hidden; " onclick="javascript:document.getElementById('addDoorlist_importquery').scrollIntoView()" @click="open3">导入选择人员</el-button>
+ </el-col>
</el-col>
</el-row>
</el-col>
+
+
</div>
+
+
<!--</div>-->
<div id="addDoorlist_personSel">
@@ -170,10 +177,15 @@
stripe
border>
<el-table-column
+ sortable
prop="cardno"
label="卡号">
</el-table-column>
<el-table-column
+ prop="bankcardno"
+ label="银行卡号">
+ </el-table-column>
+ <el-table-column
sortable
prop="custname"
label="姓名">
@@ -187,17 +199,18 @@
备注 :<el-input size="small" v-model="person_reason" style="width: 40%" placeholder="输入下发设备名单的原因等备注信息"></el-input>
</div>
</div>
- <!--<div style="float:left;border-top:solid 1px #e0e0e0; width:100%; height:30px; margin-top:10px;padding-top:10px; font-size: 14px!important;">
- <form action="${pageContext.request.contextPath}/doorlistMgr/addexcel" method="post" style="width: 60%;float:left;" id="addDoorlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
- 表单:<el-input size="small" v-model="per_sheetname" name="sheetname" style="width: 30%;"></el-input>
+
+ <div id="addDoorlist_importquery" style="float:left;border-top:solid 1px #e0e0e0; width:100%; height:30px; margin-top:10px;padding-top:10px; font-size: 14px!important;">
+ <form action="/door/doorlistMgr/addexcel" method="post" style="width: 60%;float:left;" id="addDoorlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
+ 导入查询并选择人员:<el-input size="small" v-model="per_sheetname" name="sheetname" style="width: 20%;"></el-input>
<el-button size="small" type="primary" @click="person_openExcel">打开Excel<i class="el-icon-upload el-icon--right"></i></el-button>
文件路径:<el-input size="small" v-model="textfield" name="textfield" style="width: 30%;"></el-input>
- <input type="file" name="file" style="display: none" id="filePath" onchange="addDoorlist_vue.textfield=this.value" />
+ <input type="file" name="file" style="display: none" id="addDoorlist_filePath" onchange="addDoorlist_vue.textfield=this.value" />
</form>
- <el-button size="small" type="primary" @click="person_inExcel">导入查询</el-button>
- <el-button size="small" type="primary" id="addDoorlist_perImportBack" style="display: none" @click="perImporReturn">返回</el-button>
- <el-button size="small" type="primary" @click="downloadExcel">导入模板下载</el-button>
- </div>-->
+ <el-button style="margin-top: 3px;" size="small" type="el-button el-button--success" @click="person_inExcel">导入查询</el-button>
+ <el-button size="small" type="danger" id="addDoorlist_perImportBack" style="display: none" @click="perImporReturn">返回</el-button>
+ <el-button size="small" type="success" plain @click="downloadExcel">导入模板下载</el-button>
+ </div>
<div class="layui-row layui-col-space15">
<div style="float:left;margin:0px 0 0 47%;"><el-button style="margin-top: 12px;" @click="per_nextStep">下一步</el-button></div>
@@ -278,18 +291,26 @@
</el-col>
<el-col :span="6" >
区域:
- <el-select v-model="device.regionid" size="mini" @Change="regionChange" clearable placeholder="请选择">
+ <!-- <el-select v-model="device.regionid" size="mini" @Change="regionChange" clearable placeholder="请选择">
<el-option
v-for="regionid in regions"
:key="regionid.value"
:label="regionid.label"
:value="regionid.value">
</el-option>
- </el-select>
+ </el-select>-->
+ <el-cascader
+ v-model="device.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</el-col>
<el-col :span="6" >
楼栋:
- <el-select v-model="device.buildingid" size="mini" clearable placeholder="请选择">
+ <el-select v-model="device.buildingid" clearable placeholder="请选择">
<el-option
v-for="buildingid in buildings"
:key="buildingid.value"
@@ -299,11 +320,11 @@
</el-select>
</el-col>
<el-col :span="6">
- <el-col :span="7"><lable>设备名称:</lable></el-col>
- <el-col :span="14"><el-input placeholder="请输入内容" size="mini" v-model="device.deviceName" ></el-input></el-col>
+ <el-col :span="6" style="margin-top: 6px">设备名称:</el-col>
+ <el-col :span="17"><el-input placeholder="请输入设备名称" v-model="device.deviceName" ></el-input></el-col>
</el-col>
<el-col :span="2">
- <el-button size="mini" type="primary" @click="seachDevice"> 搜索 </el-button>
+ <el-button type="primary" @click="seachDevice"> 搜索 </el-button>
</el-col>
</el-row>
</el-col>
@@ -574,7 +595,7 @@
<el-button size="small" style="line-height:10px;overflow:hidden;height: 23px;margin-top: 3px;" type="primary" @click="rePush">继续下发设备名单</el-button>
</div>
<div style="margin:10px 0 0 200px; ">
- 该设备名单的部分明细内容:人员 <span style="color:#f60" id="postSuc_perNum" v-if="addDoorlist_vue">{{addDoorlist_vue.person_righttable.length}}</span>个, <!--+ parseInt(addDoorlist_vue.personSel_excelNum)}}</span>个,-->
+ 该设备名单的部分明细内容:人员 <span style="color:#f60" id="postSuc_perNum" v-if="addDoorlist_vue">{{addDoorlist_vue.person_righttable.length+ parseInt(addDoorlist_vue.personSel_excelNum)}}</span>个,
设备<span style="color:#f60" id="postSuc_devNum" v-if="addDoorlist_vue">{{addDoorlist_vue.devSel_allocated.length}}</span>个,
时间周<span style="color:#f60" id="postSuc_timeNum" v-if="addDoorlist_vue">{{addDoorlist_vue.timeTags.length}}</span>个。
</div>
@@ -652,11 +673,14 @@
device:{
deviceName:'',
regionid:'',
+ regionvalue:[],
+ Rregionid:'',
buildingid:'',
},
dev_addBtn_dis:true,
dev_delBtn_dis:true,
regions:[],
+ regionoptions:[],
buildings:[],
devSel_allocated:[],
//时间周选择部分
@@ -817,7 +841,7 @@
},
seachDevice:function(){
var url = "[[@{/doorlistMgr/getAllTDevgroupdtlList?}]]"+
- "deviceName="+addDoorlist_vue.device.deviceName+"®ionid="+addDoorlist_vue.device.regionid
+ "deviceName="+addDoorlist_vue.device.deviceName+"®ionid="+addDoorlist_vue.device.Rregionid
+"&buildingid="+addDoorlist_vue.device.buildingid +"&usetype=MJ";
addDoorlist_fillDevice_lefttable(url);
addDoorlist_vue.usetype='MJ';
@@ -961,6 +985,29 @@
this.device.buildingid='';
addDoorlist_getRegionBuilding(this,value);
},
+ handleChange(value) {
+ if (value.length > 0) {
+ this.device.Rregionid = value[value.length - 1]
+ } else {
+ this.device.Rregionid = ''
+ }
+ console.log(this.device.Rregionid);
+
+ this.buildings = [];
+ this.device.buildingid = '';
+ if (this.device.Rregionid == '') {
+ addDoorlist_getRegionBuilding(this, '0');
+ } else {
+ addDoorlist_getRegionBuilding(this, this.device.Rregionid);
+ }
+ },
+ open3:function() {
+ this.$notify.info({
+ title: '导入说明',
+ message: '1.请先下载模板,根据要求填写信息。2.主要根据填写卡号进行名单查询,不存在的名单将会进行显示,查询到的名单则直接被选择,可进行下一步操作。3.一次导入名单推荐在1000条以内。',
+ duration: 20000
+ });
+ },
},
created:function(){
@@ -1088,10 +1135,11 @@
type: 'post',
headers: {
'Accept': 'application/json',
- 'Content-Type': 'application/json',
- 'X-CSRF-TOKEN':token,
+ 'X-CSRF-TOKEN': token,
},
dataType: 'json',
+ processData:false,
+ contentType: false,
success:function(data){
if(data.sheetindex == false){
@@ -1156,6 +1204,8 @@
value: regiondata[i].regionid
});
}
+ //级联选择器区域数据填充
+ addDoorlist_vue.regionoptions = addDoorlist_getTreeData(ret.regions) ;
}
var buildinglist=[];
@@ -1257,6 +1307,64 @@
}
})
}
+
+ function addDoorlist_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){
+ //获取第二级
+ addDoorlist_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ addDoorlist_pushRegion(regionlst,f);
+ }
+ addDoorlist_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function addDoorlist_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 addDoorlist_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ addDoorlist_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ addDoorlist_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
</script>
<style>
diff --git a/src/main/resources/templates/doorlist/deleteDoorlist.html b/src/main/resources/templates/doorlist/deleteDoorlist.html
index eb3aa73..742b47a 100644
--- a/src/main/resources/templates/doorlist/deleteDoorlist.html
+++ b/src/main/resources/templates/doorlist/deleteDoorlist.html
@@ -28,14 +28,22 @@
<el-col :span="8">
<el-form-item label="区域">
- <el-select v-model="deleteDoorForm.regionid" placeholder="请选择">
+ <!--<el-select v-model="deleteDoorForm.regionid" placeholder="请选择">
<el-option
v-for="regionid in regions"
:key="regionid.value"
:label="regionid.label"
:value="regionid.value">
</el-option>
- </el-select>
+ </el-select>-->
+ <el-cascader
+ v-model="deleteDoorForm.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</el-form-item>
</el-col>
@@ -189,6 +197,8 @@
allocatStartDate: '',
custname: '',
regionid: '',
+ regionvalue:[],
+ Rregionid:'',
devname: '',
allocatEndDate: '',
cardno: '',
@@ -196,6 +206,7 @@
operflag: '',
},
regions: [],
+ regionoptions:[],
syncflags: [],
operFlags: [],
dialogFormVisible: false,
@@ -259,6 +270,22 @@
},
handleSelect: function (val) {
this.selectList = val;
+ },
+ handleChange(value) {
+ if (value.length > 0) {
+ this.deleteDoorForm.Rregionid = value[value.length - 1]
+ } else {
+ this.deleteDoorForm.Rregionid = ''
+ }
+ console.log(this.deleteDoorForm.Rregionid);
+
+ /*this.buildings = [];
+ this.deleteDoorForm.buildingid = '';
+ if (this.deleteDoorForm.Rregionid == '') {
+ deleteDoorlist_getRegionBuilding(this, '0');
+ } else {
+ deleteDoorlist_getRegionBuilding(this, this.deleteDoorForm.Rregionid);
+ }*/
}
},
created: function () {
@@ -327,7 +354,7 @@
}
var url = "[[@{/doorlistMgr/getAllCardListFrDelete?}]]" + "allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
"&devname=" + deleteDoor.devname + "&custname=" + deleteDoor.custname
- + "&cardno=" + deleteDoor.cardno + "®ionid=" + deleteDoor.regionid
+ + "&cardno=" + deleteDoor.cardno + "®ionid=" + deleteDoor.Rregionid
+ "&syncflag=" + deleteDoor.syncflag + "&usetype=MJ" +
"&pageNo=" + pageno + "&pageSize=" + pagesize + "&operflag=" + deleteDoor.operflag;
var token=$("meta[name='_csrf_token']").attr("value");
@@ -417,6 +444,8 @@
label: regions[i].regionname
})
}
+ //级联选择器区域数据填充
+ deleteDoorlist_vue.regionoptions = deleteDoorlist_getTreeData(data.regions) ;
}
var operDicts = [];
@@ -441,4 +470,64 @@
}
})
}
+
+
+ function deleteDoorlist_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){
+ //获取第二级
+ deleteDoorlist_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ deleteDoorlist_pushRegion(regionlst,f);
+ }
+ deleteDoorlist_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function deleteDoorlist_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 deleteDoorlist_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ deleteDoorlist_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ deleteDoorlist_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/doorlist/searchDoorlist.html b/src/main/resources/templates/doorlist/searchDoorlist.html
index c1a0db4..0ac6719 100644
--- a/src/main/resources/templates/doorlist/searchDoorlist.html
+++ b/src/main/resources/templates/doorlist/searchDoorlist.html
@@ -1,6 +1,6 @@
<div class="layui-card">
<div class="layui-card-header">
- <h2 class="header-title">数据中心</h2>
+ <h2 class="header-title">设备名单查询</h2>
<span class="layui-breadcrumb pull-right">
<a href="#">数据中心</a>
<a><cite>设备名单查询</cite></a>
@@ -77,7 +77,7 @@
<el-col :span="8">
<el-form-item label="区域">
- <el-select v-model="searchDoorForm.regionid"
+ <!--<el-select v-model="searchDoorForm.regionid"
@Change="regionChange"
placeholder="请选择">
<el-option
@@ -86,7 +86,15 @@
:label="regionid.label"
:value="regionid.value">
</el-option>
- </el-select>
+ </el-select>-->
+ <el-cascader
+ v-model="searchDoorForm.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</el-form-item>
</el-col>
@@ -252,9 +260,12 @@
syncflag: '',
operflag: '',
buildingid: '',
- regionid:''
+ regionid:'',
+ regionvalue:[],
+ Rregionid:'',
},
regions:[],
+ regionoptions:[],
buildings:[],
syncFlag: [],
operFlag: [],
@@ -351,6 +362,22 @@
} else {
return row.operflag;
}
+ },
+ handleChange(value) {
+ if (value.length > 0) {
+ this.searchDoorForm.Rregionid = value[value.length - 1]
+ } else {
+ this.searchDoorForm.Rregionid = ''
+ }
+ console.log(this.searchDoorForm.Rregionid);
+
+ this.buildings = [];
+ this.searchDoorForm.buildingid = '';
+ if (this.searchDoorForm.Rregionid == '') {
+ searchDoorlist_getRegionBuilding(this, '0');
+ } else {
+ searchDoorlist_getRegionBuilding(this, this.searchDoorForm.Rregionid);
+ }
}
},
created: function () {
@@ -401,6 +428,8 @@
label: region[i]["regionname"]
})
}
+ //级联选择器区域数据填充
+ searchDoorlist_vue.regionoptions = searchDoorlist_getTreeData(data.regions) ;
}
var buildinglist = [];
@@ -449,6 +478,64 @@
return fmt;
}
+ function searchDoorlist_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){
+ //获取第二级
+ searchDoorlist_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ searchDoorlist_pushRegion(regionlst,f);
+ }
+ searchDoorlist_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function searchDoorlist_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 searchDoorlist_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ searchDoorlist_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ searchDoorlist_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
function searchDoorlist_commonQuery(_self, searchDoor, pageno, pagesize) {
var startStr = '';
@@ -467,7 +554,7 @@
+ "&cardno=" + searchDoor.cardno
+ "&syncflag=" + searchDoor.syncflag +
"&pageNo=" + pageno + "&pageSize=" + pagesize + "&operflag=" + searchDoor.operflag
- + "&buildingid=" + searchDoor.buildingid+"®ionid=" +searchDoor.regionid;
+ + "&buildingid=" + searchDoor.buildingid+"®ionid=" +searchDoor.Rregionid;
var token=$("meta[name='_csrf_token']").attr("value");
$.ajax({
type: "POST",
diff --git a/src/main/resources/templates/ncmgr/nc_dev.html b/src/main/resources/templates/ncmgr/nc_dev.html
index c1a1308..947dc98 100644
--- a/src/main/resources/templates/ncmgr/nc_dev.html
+++ b/src/main/resources/templates/ncmgr/nc_dev.html
@@ -45,7 +45,7 @@
<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"
+ <!--<el-select v-model="devform.regionid"
filterable
clearable
@Change="regionChange"
@@ -56,7 +56,15 @@
:label="regionid.label"
:value="regionid.value">
</el-option>
- </el-select>
+ </el-select>-->
+ <el-cascader style="width:163px"
+ v-model="devform.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</div>
</div>
</div>
@@ -129,6 +137,17 @@
:formatter="typeform">
</el-table-column>
<el-table-column
+ prop="operflag"
+ label="状态"
+ width="90"
+ :formatter="operform">
+ <!--<template scope="scope">
+ <el-tag :type="scope.row.operflag === '有效' ? 'success' : 'danger'" close-transition>
+ {{scope.row.operflag}}
+ </el-tag>
+ </template>-->
+ </el-table-column>
+ <el-table-column
prop="buildingname"
label="设备所在楼栋"
width="140">
@@ -149,17 +168,7 @@
width="120"
:formatter="flagform">
</el-table-column>
- <el-table-column
- prop="operflag"
- label="状态"
- width="90"
- :formatter="operform">
- <!--<template scope="scope">
- <el-tag :type="scope.row.operflag === '有效' ? 'success' : 'danger'" close-transition>
- {{scope.row.operflag}}
- </el-tag>
- </template>-->
- </el-table-column>
+
<el-table-column
prop="synctime"
label="同步时间"
@@ -181,13 +190,13 @@
@click="editDev(scope.row.deviceid)">编辑
</button>
<button type="button" class="btn btn-danger btn-xs" title="删除设备"
- @click="delDev(scope.row.deviceid)">删除
+ @click="delDev(scope.row.deviceid)" v-if="scope.row.operflag=='A'">删除
</button>
<button type="button" class="btn btn-warning btn-xs" title="名单清空"
- @click="listClean(scope.row.deviceid)" v-if="scope.row.devtype=='R'">清空
+ @click="listClean(scope.row.deviceid)" v-if="scope.row.devtype=='R' && scope.row.operflag=='A'">清空
</button>
<button type="button" class="btn btn-success btn-xs" title="名单重下"
- @click="listReload(scope.row.deviceid)" v-if="scope.row.devtype=='R'">重下
+ @click="listReload(scope.row.deviceid)" v-if="scope.row.devtype=='R' && scope.row.operflag=='A'">重下
</button>
</template>
</el-table-column>
@@ -368,9 +377,12 @@
devname: '',
buildingid: '',
devtype: '',
- regionid:''
+ regionid:'',
+ regionvalue:[],
+ Rregionid:'',
},
regions:[],
+ regionoptions:[],
regionsfill:[],
buildings:[],
buildingsfill:[],
@@ -509,7 +521,7 @@
this.buildings=[];
this.devform.buildingid='';
dev_getRegionBuilding(this,value);
- if (this.devform.regionid==''){
+ if (this.devform.Rregionid==''){
dev_getRegionBuilding(this,'0');
}
},
@@ -581,6 +593,22 @@
if (row.updtime != null) {
return dev_timeformatter(row.updtime);
}
+ },
+ handleChange(value) {
+ if (value.length > 0) {
+ this.devform.Rregionid = value[value.length - 1]
+ } else {
+ this.devform.Rregionid = ''
+ }
+ console.log(this.devform.Rregionid);
+
+ this.buildings = [];
+ this.devform.buildingid = '';
+ if (this.devform.Rregionid == '') {
+ dev_getRegionBuilding(this, '0');
+ } else {
+ dev_getRegionBuilding(this, this.devform.Rregionid);
+ }
}
},
@@ -611,6 +639,9 @@
label: rt[j].regionname
});
}
+
+ //级联选择器区域数据填充
+ dev_vue.regionoptions = dev_getTreeData(ret.regions) ;
}
@@ -646,12 +677,72 @@
dev_vue.regions = uows;
dev_vue.buildings = rows;
+
+
}
})
}
})
+ function dev_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){
+ //获取第二级
+ dev_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ dev_pushRegion(regionlst,f);
+ }
+ dev_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function dev_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 dev_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ dev_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ dev_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
function dev_timeformatter(time) {
return time.substr(0, 4) + '-' + time.substr(4, 2) + '-' + time.substr(6, 2) + ' '
@@ -663,7 +754,7 @@
$.ajax({
type: "get",
dataType: "json",
- url: encodeURI("[[@{/ncmgr/loadDevList?devname=}]]" + rolename.devname + "&pageNo=" + pageno + "&pageSize=" + pagesize + "&buildingid=" + rolename.buildingid + "&devtype=" + rolename.devtype+"®ionid="+rolename.regionid),
+ url: encodeURI("[[@{/ncmgr/loadDevList?devname=}]]" + rolename.devname + "&pageNo=" + pageno + "&pageSize=" + pagesize + "&buildingid=" + rolename.buildingid + "&devtype=" + rolename.devtype+"®ionid="+rolename.Rregionid),
success: function (ret) {
_self.totSize = ret.PageResult.totalCount;
_self.tableData = ret.PageResult.list;
@@ -883,6 +974,7 @@
}
function dev_getRegionBuilding(_self,value){
+ console.log(value)
$.ajax({
type: "get",
dataType: "json",
diff --git a/src/main/resources/templates/query/tdoorstream.html b/src/main/resources/templates/query/tdoorstream.html
index 4929723..0878a51 100644
--- a/src/main/resources/templates/query/tdoorstream.html
+++ b/src/main/resources/templates/query/tdoorstream.html
@@ -45,7 +45,7 @@
<label class="control-label" style="margin-right:10px;font-size: 14px;width:80px">区域:
</label>
<el-form-item >
- <el-select style="width:193px" v-model="tdoorstream.regionid"
+ <!--<el-select style="width:193px" v-model="tdoorstream.regionid"
@Change="regionChange"
placeholder="请选择">
<el-option
@@ -54,7 +54,16 @@
:label="regionid.label"
:value="regionid.value">
</el-option>
- </el-select>
+ </el-select>-->
+
+ <el-cascader style="width:193px"
+ v-model="tdoorstream.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</el-form-item>
</el-col>
@@ -182,6 +191,7 @@
tlist:[],
buildings:[],
regions:[],
+ regionoptions:[],
dtlstatus:[],
currentRow : null,
tdoorstream : {
@@ -191,7 +201,9 @@
devname:'',
buildingid:'',
dtlStatus:'all',
- regionid:''
+ regionid:'',
+ regionvalue:[],
+ Rregionid:'',
},
},
methods : {
@@ -247,6 +259,22 @@
this.tdoorstream.buildingid='';
tdoorstream_getRegionBuilding(this,value);
},
+ handleChange(value) {
+ if (value.length > 0) {
+ this.tdoorstream.Rregionid = value[value.length - 1]
+ } else {
+ this.tdoorstream.Rregionid = ''
+ }
+ console.log(this.tdoorstream.Rregionid);
+
+ this.buildings = [];
+ this.tdoorstream.buildingid = '';
+ if (this.tdoorstream.Rregionid == '') {
+ tdoorstream_getRegionBuilding(this, '0');
+ } else {
+ tdoorstream_getRegionBuilding(this, this.tdoorstream.Rregionid);
+ }
+ }
},
created : function() {
this.loading=true;
@@ -285,6 +313,8 @@
label: region[i]["regionname"]
})
}
+ //级联选择器区域数据填充
+ _self.regionoptions = tdoorstream_getTreeData(ret.regions) ;
}
var buildinglist = [];
@@ -309,6 +339,64 @@
})
+ function tdoorstream_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){
+ //获取第二级
+ tdoorstream_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ tdoorstream_pushRegion(regionlst,f);
+ }
+ tdoorstream_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function tdoorstream_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 tdoorstream_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ tdoorstream_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ tdoorstream_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
function tdoorstream_downloadExcel(_self, Ustarttransdate,Uendtransdate) {
var factoryid = _self.tdoorstream.factoryid;
@@ -344,7 +432,7 @@
var custname = _self.tdoorstream.custname;
var buildingid = _self.tdoorstream.buildingid;
var devname = _self.tdoorstream.devname;
- var regionid = _self.tdoorstream.regionid;
+ var regionid = _self.tdoorstream.Rregionid;
var dtlStatus = _self.tdoorstream.dtlStatus;
//console.log(factoryid);
$.ajax({
diff --git a/src/main/resources/templates/system/building.html b/src/main/resources/templates/system/building.html
index 792ac49..369b890 100644
--- a/src/main/resources/templates/system/building.html
+++ b/src/main/resources/templates/system/building.html
@@ -9,15 +9,25 @@
<div class="layui-card-body">
<div id="buildingApp">
<el-form :inline="true" ref="buildingform" :model="buildingform" data-parsley-validate class="form-horizontal form-label-left">
- <div class="col-md-3" >
+ <div class="col-md-4" >
<div class="form-group">
<label class="control-label col-md-5 col-sm-12 col-xs-12" style="font-size: 14px;">区域:</label>
<div class="col-md-7 col-sm-12 col-xs-12">
- <el-select style="width:193px"
- v-model="buildingform.regionid" clearable placeholder="请选择"
- > <el-option v-for="item in regionlist"
+ <!--<el-select style="width:193px"
+ v-model="buildingform.regionid" clearable placeholder="请选择">
+ <el-option v-for="item in regionlist"
:key="item.value" :label="item.label" :value="item.value">
- </el-option> </el-select>
+ </el-option>
+ </el-select>-->
+
+ <el-cascader style="width:163px"
+ v-model="buildingform.regionvalue"
+ :options="regionoptions"
+ :show-all-levels="false"
+ clearable
+ filterable change-on-select
+ @change="handleChange">
+ </el-cascader>
</div>
</div>
</div>
@@ -68,6 +78,17 @@
width="150">
</el-table-column>
<el-table-column
+ prop="flag"
+ sortable
+ label="状态"
+ width="90">
+ <template scope="scope">
+ <el-tag :type="scope.row.flag === '有效' ? 'success' : 'danger'" close-transition>
+ {{scope.row.flag}}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
prop="updtime"
label="更新时间"
min-width="180"
@@ -87,7 +108,7 @@
@click="editBuilding(scope.row.buildingid)">编辑
</button>
<button type="button" class="btn btn-danger btn-xs" title="删除"
- @click="delBuilding(scope.row.buildingid)">删除
+ @click="delBuilding(scope.row.buildingid)" v-if="scope.row.flag == '有效'">删除
</button>
</template>
</el-table-column>
@@ -160,6 +181,7 @@
currentRow: null,
buildingidDis:false,
regionlist:[],
+ regionoptions:[],
regions:[],
dialogFormVisible: false,
buildingtitle:'',
@@ -172,6 +194,8 @@
buildingform:{
regionid:'',
buildingname:'',
+ regionvalue:[],
+ Rregionid:'',
},
rules: {
@@ -192,11 +216,11 @@
methods: {
handleSizeChange:function(val) {
this.pageSize=val;
- building_commonQuery(this,this.buildingform.regionid,this.buildingform.buildingname,this.currPage,val);
+ building_commonQuery(this,this.buildingform.Rregionid,this.buildingform.buildingname,this.currPage,val);
},
currPageChange:function(val) {
this.currPage=val;
- building_commonQuery(this,this.buildingform.regionid,this.buildingform.buildingname,this.currPage,this.pageSize);
+ building_commonQuery(this,this.buildingform.Rregionid,this.buildingform.buildingname,this.currPage,this.pageSize);
},
currRowChange:function(val) {
this.currentRow = val;
@@ -204,7 +228,7 @@
query:function () {
this.pagesize=10;
this.currPage=1;
- building_commonQuery(this,this.buildingform.regionid,this.buildingform.buildingname,this.currPage,this.pageSize);
+ building_commonQuery(this,this.buildingform.Rregionid,this.buildingform.buildingname,this.currPage,this.pageSize);
},
addBuilding:function () {
building_getFillData(this,"-1");
@@ -250,6 +274,14 @@
if (row.updtime != null) {
return building_timeformatter(row.updtime);
}
+ },
+ handleChange(value) {
+ if (value.length>0){
+ this.buildingform.Rregionid = value[value.length-1]
+ }else {
+ this.buildingform.Rregionid=''
+ }
+ console.log(this.buildingform.Rregionid);
}
},
created:function(){
@@ -276,18 +308,80 @@
});
}
building_vue.regionlist = rows;
+
+ //级联选择器区域数据填充
+ building_vue.regionoptions =building_getTreeData(ret.regionList) ;
}
}
})
}
})
- function building_commonQuery(_self,regionid,buildingname,pageno,pagesize) {
+
+ function building_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){
+ //获取第二级
+ building_pushRegion(regionlst,f);
+ }else {
+ f.push({
+ value:regionlst[0].regionid,
+ label:regionlst[0].regionname,
+ })
+ //获取第二级
+ building_pushRegion(regionlst,f);
+ }
+ building_cyclePushRegion(f,regionlst)
+ return f;
+ }
+
+ function building_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 building_cyclePushRegion(fList,regionlst){
+ for (var i in fList){
+ var s = fList[i].children;
+ if (s!=undefined && s.length>0){
+ building_pushRegion(regionlst,s);
+ }
+ for (j in s) {
+ var l = s[j].children;
+ if (l!=undefined && l.length>0){
+ building_cyclePushRegion(s,regionlst)
+ }
+ }
+ }
+ }
+
+ function building_commonQuery(_self,Rregionid,buildingname,pageno,pagesize) {
$.ajax({
type:"get",
dataType:"json",
url:encodeURI("[[@{/system/loadBuildingList?regionid=}]]"
- +regionid+"&buildingname="+buildingname
+ +Rregionid+"&buildingname="+buildingname
+"&pageNo="+pageno+"&pageSize="+pagesize),
success:function(ret){
_self.totSize=ret.pageResult.totalCount;
@@ -382,7 +476,7 @@
function building_refreshThisTable(){
- building_commonQuery(building_vue,building_vue.buildingform.regionid,building_vue.buildingform.buildingname,building_vue.currPage,building_vue.pageSize);
+ building_commonQuery(building_vue,building_vue.buildingform.Rregionid,building_vue.buildingform.buildingname,building_vue.currPage,building_vue.pageSize);
};
function building_timeformatter(time) {
diff --git a/src/main/resources/templates/system/operator.html b/src/main/resources/templates/system/operator.html
index 96bac81..bec77f8 100644
--- a/src/main/resources/templates/system/operator.html
+++ b/src/main/resources/templates/system/operator.html
@@ -70,8 +70,14 @@
<el-table-column
prop="opertype"
label="操作员类别"
- width="140"
- :formatter="typeform">
+ sortable
+ width="130">
+ <template scope="scope">
+ <el-tag type="success" v-if="scope.row.opertype=='楼栋管理员'">{{scope.row.opertype}}</el-tag>
+ <el-tag type="info" v-if="scope.row.opertype=='区域管理员'">{{scope.row.opertype}}</el-tag>
+ <el-tag type="warning" v-if="scope.row.opertype=='系统管理员'">{{scope.row.opertype}}</el-tag>
+ <el-tag type="danger" v-if="scope.row.opertype=='超级管理员'">{{scope.row.opertype}}</el-tag>
+ </template>
</el-table-column>
<el-table-column
prop="rolename"
@@ -106,9 +112,9 @@
<template scope="scope">
<button type="button" class="btn btn-info btn-xs" title="编辑操作员" @click="editOperator(scope.row.operid)">编辑</button>
<button type="button" class="btn btn-success btn-xs" title="重置密码" @click="resetPwd(scope.row.operid)">重置</button>
- <button type="button" class="btn btn-danger btn-xs" title="删除操作员" @click="delOperator(scope.row.operid)" v-if="scope.row.opertype!='S' ">删除</button>
+ <button type="button" class="btn btn-danger btn-xs" title="删除操作员" @click="delOperator(scope.row.operid)" v-if="scope.row.opertype!='系统管理员' && scope.row.opertype!='超级管理员' && scope.row.status=='有效'">删除</button>
<button type="button" class="btn btn-info btn-xs" title="分配楼栋"
- @click="allotBuilding(scope.row.operid,scope.row.opername)" v-if="scope.row.opertype=='L'">分配楼栋
+ @click="allotBuilding(scope.row.operid,scope.row.opername)" v-if="scope.row.opertype=='楼栋管理员'">分配楼栋
</button>
</template>
</el-table-column>
@@ -408,23 +414,6 @@
this.regionDis = true;
}
},
- typeform: function (row) {
- if (row.opertype == 'P') {
- return '超级管理员';
- }
- else if (row.opertype == 'S') {
- return '系统管理员';
- }
- else if (row.opertype == 'H') {
- return '区域管理员';
- }
- else if (row.opertype == 'L') {
- return '物业管理员';
- }
- else {
- return row.opertype;
- }
- },
resetPwd:function (operid) {
oper_resetpwd(operid);
},
diff --git a/src/main/resources/templates/system/region.html b/src/main/resources/templates/system/region.html
index 2e60a61..4e7fc7e 100644
--- a/src/main/resources/templates/system/region.html
+++ b/src/main/resources/templates/system/region.html
@@ -39,9 +39,10 @@
border
style="width: 100%">
<el-table-column
+ sortable
prop="regionid"
label="区域编号"
- width="140">
+ width="120">
</el-table-column>
<el-table-column
prop="regionname"
@@ -66,6 +67,17 @@
width="200">
</el-table-column>
<el-table-column
+ prop="flag"
+ sortable
+ label="状态"
+ width="90">
+ <template scope="scope">
+ <el-tag :type="scope.row.flag === '有效' ? 'success' : 'danger'" close-transition>
+ {{scope.row.flag}}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
prop="remarks"
label="备注"
width="180">
@@ -75,7 +87,7 @@
width="130">
<template scope="scope">
<button type="button" class="btn btn-info btn-xs" title="编辑" @click="editRegion(scope.row.regionid)" v-if="scope.row.regionid!='0'">编辑</button>
- <button type="button" class="btn btn-danger btn-xs" title="删除" @click="delRegion(scope.row.regionid)" v-if="scope.row.regionid!='0'">删除</button>
+ <button type="button" class="btn btn-danger btn-xs" title="删除" @click="delRegion(scope.row.regionid)" v-if="scope.row.regionid!='0' && scope.row.flag=='有效'">删除</button>
</template>
</el-table-column>
</el-table>
diff --git a/src/main/resources/templates/system/role/func.html b/src/main/resources/templates/system/role/func.html
index 48d6dff..8599d55 100755
--- a/src/main/resources/templates/system/role/func.html
+++ b/src/main/resources/templates/system/role/func.html
@@ -39,7 +39,7 @@
initTree(data.node);
} else if (data.code == 401) {
layer.msg(data.msg, {icon: 2, time: 1500}, function () {
- location.replace('/login');
+ location.replace('/door/login');
}, 1000);
return;
} else {