设备名单查询添加区域权限判断
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 1ea7143..3fa666b 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -21,5 +21,3 @@
auth.password.bcrypt.seed=
spring.jackson.serialization.fail-on-empty-beans=false
server.port=8099
-
-server.context-path=/
\ No newline at end of file
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 193273c..a766f1e 100644
--- a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -5,12 +5,14 @@
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.view.PoiBaseView;
import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.util.StringUtil;
import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;
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.service.NcService;
import com.supwisdom.dlpay.system.domain.TDictionaryId;
+import com.supwisdom.dlpay.system.domain.TRegion;
import com.supwisdom.dlpay.system.page.Pagination;
import com.supwisdom.dlpay.system.service.SystemService;
import com.supwisdom.dlpay.util.RedisUtil;
@@ -66,24 +68,40 @@
*/
@ResponseBody
@RequestMapping(value = "/getFillFormList")
- public Map getFillFormList() throws Exception {
+ public Map getFillFormList(@AuthenticationPrincipal TOperator operUser) throws Exception {
Map map = new HashMap();
- //名单状态
- List<TDictionaryId> syncDicts = systemService.findTDictionaryByType(3);
- map.put("syncDicts", syncDicts);
- //厂商id
- List<TKey> allFactoryId = webInterfaceService.getAllKeys();
- map.put("allFactoryId", allFactoryId);
- //操作标记
- List<TDictionaryId> operDicts = new ArrayList<TDictionaryId>();
- operDicts.addAll(systemService.findByType(2, "A"));
- operDicts.addAll(systemService.findByType(2, "D"));
- operDicts.addAll(systemService.findByType(2, "C"));
- map.put("operDicts", operDicts);
+ try {
+ String opertype = operUser.getOpertype();
+ //名单状态
+ List<TDictionaryId> syncDicts = systemService.findTDictionaryByType(3);
+ map.put("syncDicts", syncDicts);
+ //厂商id
+ List<TKey> allFactoryId = webInterfaceService.getAllKeys();
+ map.put("allFactoryId", allFactoryId);
+ //操作标记
+ List<TDictionaryId> operDicts = new ArrayList<TDictionaryId>();
+ operDicts.addAll(systemService.findByType(2, "A"));
+ operDicts.addAll(systemService.findByType(2, "D"));
+ operDicts.addAll(systemService.findByType(2, "C"));
+ map.put("operDicts", operDicts);
- //所有楼栋
- List<TBuilding> buildings = ncService.getAllBuilding();
- map.put("buildings", buildings);
+ List<TRegion> regions = null;
+ List<TBuilding> buildings = null;
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))) {
+ regions = systemService.getAllRegions();
+ buildings = ncService.getAllBuilding();
+ map.put("regions", regions);
+ map.put("buildings", buildings);
+ }else if (!StringUtil.isEmpty(operUser.getRegionid())){
+ regions = systemService.getRegionListById(operUser.getRegionid());
+ map.put("regions", regions);
+ buildings = systemService.getBuildingByRegionId(operUser.getRegionid());
+ map.put("buildings", buildings);
+ }
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
return map;
}
@@ -96,8 +114,8 @@
* @param stuempNo
* @param syncStatus
* @param operFlag
- * @param buildingname
- * @param regionname
+ * @param buildingid
+ * @param regionid
* @param allocatStartDate
* @param allocatEndDate
* @param pageNo
@@ -114,8 +132,8 @@
@RequestParam(value = "stuempNo", required = false, defaultValue = "") String stuempNo,
@RequestParam(value = "syncStatus", required = false, defaultValue = "all") String syncStatus,
@RequestParam(value = "operFlag", required = false, defaultValue = "all") String operFlag,
- @RequestParam(value = "buildingname", required = false, defaultValue = "") String buildingname,
- @RequestParam(value = "regionname",required = false,defaultValue = "") String regionname,
+ @RequestParam(value = "buildingid", required = false, defaultValue = "") String buildingid,
+ @RequestParam(value = "regionid",required = false,defaultValue = "") String regionid,
@RequestParam(value = "allocatStartDate", required = false, defaultValue = "") String allocatStartDate,
@RequestParam(value = "allocatEndDate", required = false, defaultValue = "") String allocatEndDate,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
@@ -124,12 +142,14 @@
Map map = new HashMap();
try {
- List<String> allopername = systemService.findOperatorsByFopercode(operUser.getOperid());
+ String opertype = operUser.getOpertype();
boolean flag = true;
-
- Pagination pResult;
- pResult = webInterfaceService.getAllCardListFrSearch(factoryId, allocatStartDate, allocatEndDate,
- doorName, custName, stuempNo, syncStatus, allopername, operFlag, buildingname,regionname, pageNo, pageSize);
+ Pagination pResult = new Pagination();
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))){
+ pResult = webInterfaceService.getSystemCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid, pageNo, pageSize);
+ }else if (!StringUtil.isEmpty(operUser.getRegionid())){
+ pResult = webInterfaceService.getOperatorCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid, pageNo, pageSize,operUser.getRegionid());
+ }
map.put("PageResult", pResult);
map.put("index", flag);
map.put("result", "查询设备名单成功!");
@@ -152,8 +172,8 @@
* @param stuempNo
* @param syncStatus
* @param operFlag
- * @param buildingname
- * @param regionname
+ * @param buildingid
+ * @param regionid
* @param allocatStartDate
* @param allocatEndDate
* @param operUser
@@ -166,17 +186,23 @@
@RequestParam(value = "stuempNo", required = false, defaultValue = "") String stuempNo,
@RequestParam(value = "syncStatus", required = false, defaultValue = "all") String syncStatus,
@RequestParam(value = "operFlag", required = false, defaultValue = "all") String operFlag,
- @RequestParam(value = "buildingname", required = false, defaultValue = "") String buildingname,
- @RequestParam(value = "regionname",required = false,defaultValue = "") String regionname,
+ @RequestParam(value = "buildingid", required = false, defaultValue = "") String buildingid,
+ @RequestParam(value = "regionid",required = false,defaultValue = "") String regionid,
@RequestParam(value = "allocatStartDate", required = false, defaultValue = "") String allocatStartDate,
@RequestParam(value = "allocatEndDate", required = false, defaultValue = "") String allocatEndDate,
@AuthenticationPrincipal TOperator operUser) {
+ String opertype = operUser.getOpertype();
/**
* 1.查询值
*/
- List<String> allopername = systemService.findOperatorsByFopercode(operUser.getOperid());
- List<TDoorcardlstInfo> cardList = webInterfaceService.getAllCardListMap(factoryId, allocatStartDate, allocatEndDate,
- doorName, custName, stuempNo, syncStatus, allopername, operFlag, buildingname,regionname);
+ List<TDoorcardlstInfo> cardList = null;
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))) {
+ cardList=webInterfaceService.getSystemCardListMap(factoryId, allocatStartDate, allocatEndDate,
+ doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid);
+ }else if (!StringUtil.isEmpty(operUser.getRegionid())){
+ cardList = webInterfaceService.getOperatorCardListMap(factoryId, allocatStartDate, allocatEndDate,
+ doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid,operUser.getRegionid());
+ }
/**
* 2.设置表格属性: title:标题 sheetName:工作簿名 type:表格类型
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java
index e2e1b60..b7540d9 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java
@@ -7,11 +7,17 @@
public interface CardListDao {
- public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
- String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String buildingname,String regionname, int pageNo, int pageSize);
+ public Pagination getSystemCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid, int pageNo, int pageSize);
- public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
- String doorName, String custName, String stuempNo, String syncStatus, List<String> operids, String operFlag, String buildingname,String regionname);
+ public Pagination getOperatorCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid, int pageNo, int pageSize,String operRegionid);
+
+ public List<TDoorcardlstInfo> getSystemCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid);
+
+ public List<TDoorcardlstInfo> getOperatorCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid,String operRegionid);
public void updateDoorcardlstToNoWithIds(List<Long> listIds);
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
index c081d4d..ff69c48 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
@@ -23,19 +23,18 @@
@Transactional
@Override
- public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus,List<String> operids, String operFlag, String buildingname,String regionname, int pageNo, int pageSize) {
+ public Pagination getSystemCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid, int pageNo, int pageSize) {
try {
String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +
"a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +
"b.updatetime feedbackTime,b.retmsg,a.reason ,a.buildingName,f.regionName" +
- " from t_doorcardlst a left join t_rtnresult b on a.listid=b.listid " +
+ " from t_doorcardlst a " +
+ " left join t_rtnresult b on a.listid=b.listid " +
" left join tb_region f on a.regionid=f.regionid " +
" left join t_doordev d on a.deviceid=d.doorid" +
" left join tb_operator g on a.operid=g.operid" +
- " where 1>0 " +
- " and (a.operid in (:operids ) " +
- " or a.deviceid in (select deviceid from T_OPERDEVICE o where o.operid in(:operids)))";
+ " where 1>0 " ;
if (!"".equals(allocatStartDate)) {
queryString += " and a.updatetime>=:allocatStartDate ";
}
@@ -54,15 +53,15 @@
if (!("all").equals(operFlag)) {
queryString += " and a.operFlag =:operFlag";
}
- if (!("").equals(buildingname)) {
- queryString += " and a.buildingname like :buildingname ";
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid ";
}
- if (!regionname.equals("")){
+ if (!regionid.equals("")){
queryString += "and a.regionid in "
+"("
+ "with recursive tmp as "
+ "("
- + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionname like :regionname "
+ + "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 )";
@@ -85,7 +84,6 @@
}
- query.setParameter("operids", operids);
if (!("all").equals(syncStatus)) {
query.setParameter("syncStatus", syncStatus);
}
@@ -98,11 +96,11 @@
if (!("all").equals(operFlag)) {
query.setParameter("operFlag", operFlag);
}
- if (!("").equals(buildingname)) {
- query.setParameter("buildingname", "%"+buildingname+"%");
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
}
- if (!("").equals(regionname)){
- query.setParameter("regionname", "%"+regionname+"%");
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
}
if (!("").equals(custName)) {
query.setParameter("custName", "%" + custName + "%");
@@ -118,7 +116,7 @@
page.setPageNo(pageNo);
page.setPageSize(pageSize);
- int totalCount = getAllCardListCount(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operids, operFlag, buildingname, regionname);
+ int totalCount = getSystemCardListCount(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid);
page.setTotalCount(totalCount);
List<TDoorcardlstInfo> tDoorcardlstInfos = query.getResultList();
@@ -238,15 +236,13 @@
return null;
}
- private int getAllCardListCount(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus,List<String> operids, String operFlag, String buildingname,String regionname){
+ private int getSystemCardListCount(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid){
try {
- String queryString = "select count(a.listid) from TDoorcardlst a," +
- "TDoordev d " +
+ String queryString = "select count(*) from T_Doordev d,T_Doorcardlst a" +
" left join tb_region f on a.regionid=f.regionid " +
- "where a.id.factoryid=d.id.factoryid " +
- " and a.id.deviceid=d.id.doorid " +
- " and (a.operid in (:operids) " +
- " or a.id.deviceid in (select oe.id.deviceid from TOperdevice oe where oe.id.operid in(:operids)))";
+ "where a.factoryid=d.factoryid " +
+ " and a.deviceid=d.doorid ";
+
if (!"".equals(allocatStartDate)) {
queryString += " and a.updatetime>=:allocatStartDate ";
}
@@ -260,17 +256,17 @@
queryString += " and a.id.factoryid =:factoryId";
}
if (!("all").equals(operFlag)) {
- queryString += " and a.operfalg =:operFlag";
+ queryString += " and a.operflag =:operFlag";
}
- if (!("").equals(buildingname)) {
- queryString += " and a.buildingname like :buildingname ";
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid ";
}
- if (!regionname.equals("")){
+ if (!regionid.equals("")){
queryString += "and a.regionid in "
+"("
+ "with recursive tmp as "
+ "("
- + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionname like :regionname "
+ + "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 )";
@@ -285,7 +281,6 @@
queryString += " and a.stuempno like :stuempNo";
}
Query query = entityManager.createNativeQuery(queryString);
- query.setParameter("operids", operids);
if (!"".equals(allocatStartDate)) {
query.setParameter("allocatStartDate", allocatStartDate + "000000");
}
@@ -302,11 +297,335 @@
if (!("all").equals(operFlag)) {
query.setParameter("operFlag", operFlag);
}
- if (!("").equals(buildingname)) {
- query.setParameter("buildingname", "%"+buildingname+"%");
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
}
- if (!("").equals(regionname)){
- query.setParameter("regionname", "%"+regionname+"%");
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }
+ if (!("").equals(doorName)) {
+ query.setParameter("doorName", "%" + doorName + "%");
+ }
+ if (!("").equals(custName)) {
+ query.setParameter("custName", "%" + custName + "%");
+ }
+ if (!("").equals(stuempNo)) {
+ query.setParameter("stuempNo", stuempNo);
+ }
+ int cnt = 0;
+ List list = query.getResultList();
+ if (list!=null && list.size()>0){
+ Object o = list.get(0);
+ cnt = Integer.parseInt(o.toString());
+ }
+ return cnt;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+
+ @Transactional
+ @Override
+ public Pagination getOperatorCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid, String regionid, int pageNo, int pageSize, String operRegionid) {
+ try {
+
+ String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +
+ "a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +
+ "b.updatetime feedbackTime,b.retmsg,a.reason ,a.buildingName,f.regionName" +
+ " from t_doorcardlst a left join t_rtnresult b on a.listid=b.listid " +
+ " left join tb_region f on a.regionid=f.regionid " +
+ " left join t_doordev d on a.deviceid=d.doorid" +
+ " left join tb_operator g on a.operid=g.operid" +
+ " where 1>0 " ;
+ if (!"".equals(allocatStartDate)) {
+ queryString += " and a.updatetime>=:allocatStartDate ";
+ }
+ if (!"".equals(allocatEndDate)) {
+ queryString += " and a.updatetime<=:allocatEndDate ";
+ }
+ if (!("all").equals(syncStatus)) {
+ queryString += " and a.syncstatus =:syncStatus";
+ }
+ if (!("all").equals(factoryId)) {
+ queryString += " and a.factoryid =:factoryId";
+ }
+ if (!("").equals(doorName)) {
+ queryString += " and d.doorname like :doorName";
+ }
+ if (!("all").equals(operFlag)) {
+ queryString += " and a.operFlag =:operFlag";
+ }
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid ";
+ }
+
+ if (!regionid.equals("")){
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 where tmp.regionid=:regionid)";
+ }else {
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 )";
+ }
+ if (!("").equals(custName)) {
+ queryString += " and a.custname like :custName";
+ }
+ if (!("").equals(stuempNo)) {
+ queryString += " and a.stuempno like :stuempNo";
+ }
+ queryString += " ORDER by a.listid DESC";
+
+ Query query = entityManager.createNativeQuery(queryString, TDoorcardlstInfo.class);
+
+ if (!"".equals(allocatStartDate)) {
+ query.setParameter("allocatStartDate", allocatStartDate + "000000");
+ }
+ if (!"".equals(allocatEndDate)) {
+ query.setParameter("allocatEndDate", allocatEndDate + "235959");
+ }
+
+
+ if (!("all").equals(syncStatus)) {
+ query.setParameter("syncStatus", syncStatus);
+ }
+ if (!("all").equals(factoryId)) {
+ query.setParameter("factoryId", factoryId);
+ }
+ if (!("").equals(doorName)) {
+ query.setParameter("doorName", "%" + doorName + "%");
+ }
+ if (!("all").equals(operFlag)) {
+ query.setParameter("operFlag", operFlag);
+ }
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
+ }
+ query.setParameter("operRegionid", operRegionid);
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
+ }
+ if (!("").equals(custName)) {
+ query.setParameter("custName", "%" + custName + "%");
+ }
+ if (!("").equals(stuempNo)) {
+ query.setParameter("stuempNo", stuempNo);
+ }
+
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+
+ int totalCount = getOperatorCardListCount(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid,operRegionid);
+ page.setTotalCount(totalCount);
+
+ List<TDoorcardlstInfo> tDoorcardlstInfos = query.getResultList();
+ SimpleDateFormat _ymdhms = new SimpleDateFormat("yyyyMMddHHmmss");
+ SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ for (TDoorcardlstInfo grp : tDoorcardlstInfos) {
+ List<String> factory = RedisUtil.lrange("dict_4", 0, -1);
+ List<String> operflag = RedisUtil.lrange("dict_2", 0, -1);
+ List<String> sync = RedisUtil.lrange("dict_3", 0, -1);
+ if(operflag!= null && operflag.size()>0){
+ String operFlagIndex = grp.getOperFlagIndex();
+ for (String s : operflag) {
+ String[] split = s.split("_");
+ if (operFlagIndex.equals(split[0])){
+ grp.setOperFlag(split[1]);
+ break;
+ }
+ }
+ }
+ if(sync!= null && sync.size()>0){
+ String syncStatus1 = grp.getSyncStatus();
+ for (String s : sync) {
+ String[] split = s.split("_");
+ if (syncStatus1.equals(split[0])){
+ grp.setSyncStatus(split[1]);
+ break;
+ }else {
+ grp.setSyncStatus("");
+ }
+ }
+ }
+ if(factory != null && factory.size()>0){
+ String factoryId1 = grp.getFactoryId();
+ for (String s : factory) {
+ String[] split = s.split("_");
+ if (factoryId1.equals(split[0])){
+ grp.setFactoryName(split[1]);
+ break;
+ }else {
+ grp.setFactoryName("");
+ }
+ }
+ }else {
+ queryString = "select a.id.dictcaption from TDictionary a where a.id.dicttype=:dicttype and a.id.dictval=:dictval";
+ query = entityManager.createQuery(queryString);
+ query.setParameter("dicttype", 4);
+ query.setParameter("dictval", grp.getFactoryId());
+ if(null != query.getSingleResult()){
+ grp.setFactoryName(query.getSingleResult().toString());
+ }else {
+ grp.setFactoryName("");
+ }
+
+ query.setParameter("dicttype", 3);
+ query.setParameter("dictval", grp.getSyncStatus());
+ if(null != query.getSingleResult()) {
+ grp.setSyncStatus(query.getSingleResult().toString());
+ }else {
+ grp.setSyncStatus("");
+ }
+ query.setParameter("dicttype", 2);
+ if (grp.getOperFlagIndex() != null) {
+ query.setParameter("dictval", grp.getOperFlagIndex());
+ grp.setOperFlag(query.getSingleResult().toString());
+ }
+ }
+
+
+ String time = grp.getAllocatTime();
+ Date date;
+ String hms = "000000";
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setAllocatTime(ymdhms.format(date));
+ } else {
+
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time + "");
+ grp.setAllocatTime(ymdhms.format(date));
+ }
+
+ }
+
+ time = grp.getSyncTime();
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setSyncTime(ymdhms.format(date));
+ } else {
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time);
+ grp.setSyncTime(ymdhms.format(date));
+ }
+
+ }
+
+ time = grp.getFeedbackTime();
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setFeedbackTime(ymdhms.format(date));
+ } else {
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time);
+ grp.setFeedbackTime(ymdhms.format(date));
+ }
+ }
+
+ }
+
+ page.setList(tDoorcardlstInfos);
+ return page;
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private int getOperatorCardListCount(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid,String operRegionid){
+ try {
+ String queryString = "select count(*) from T_Doordev d,T_Doorcardlst a" +
+ " left join tb_region f on a.regionid=f.regionid " +
+ "where a.factoryid=d.factoryid " +
+ " and a.deviceid=d.doorid ";
+
+ if (!"".equals(allocatStartDate)) {
+ queryString += " and a.updatetime>=:allocatStartDate ";
+ }
+ if (!"".equals(allocatEndDate)) {
+ queryString += " and a.updatetime<=:allocatEndDate ";
+ }
+ if (!("all").equals(syncStatus)) {
+ queryString += " and a.syncstatus =:syncStatus";
+ }
+ if (!("all").equals(factoryId)) {
+ queryString += " and a.id.factoryid =:factoryId";
+ }
+ if (!("all").equals(operFlag)) {
+ queryString += " and a.operflag =:operFlag";
+ }
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid ";
+ }
+ if (!regionid.equals("")){
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 where tmp.regionid=:regionid)";
+ }else {
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 )";
+ }
+ if (!("").equals(doorName)) {
+ queryString += " and d.doorname like :doorName";
+ }
+ if (!("").equals(custName)) {
+ queryString += " and a.custname like :custName";
+ }
+ if (!("").equals(stuempNo)) {
+ queryString += " and a.stuempno like :stuempNo";
+ }
+ Query query = entityManager.createNativeQuery(queryString);
+ if (!"".equals(allocatStartDate)) {
+ query.setParameter("allocatStartDate", allocatStartDate + "000000");
+ }
+ if (!"".equals(allocatEndDate)) {
+ query.setParameter("allocatEndDate", allocatEndDate + "235959");
+ }
+
+ if (!("all").equals(syncStatus)) {
+ query.setParameter("syncStatus", syncStatus);
+ }
+ if (!("all").equals(factoryId)) {
+ query.setParameter("factoryId", factoryId);
+ }
+ if (!("all").equals(operFlag)) {
+ query.setParameter("operFlag", operFlag);
+ }
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
+ }
+ query.setParameter("operRegionid", operRegionid);
+ if (!("").equals(regionid)){
+ query.setParameter("regionid", regionid);
}
if (!("").equals(doorName)) {
query.setParameter("doorName", "%" + doorName + "%");
@@ -331,10 +650,9 @@
}
-
@Transactional
@Override
- public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> operids, String operFlag, String buildingname,String regionname) {
+ public List<TDoorcardlstInfo> getSystemCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid) {
try {
String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +
"a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +
@@ -343,9 +661,7 @@
" left join tb_region f on a.regionid=f.regionid " +
" left join t_doordev d on a.deviceid=d.doorid" +
" left join tb_operator g on a.operid=g.operid" +
- " where 1>0 " +
- " and (a.operid in (:operids ) " +
- " or a.deviceid in (select deviceid from T_OPERDEVICE o where o.operid in(:operids)))";
+ " where 1>0 ";
if (!"".equals(allocatStartDate)) {
queryString += " and a.updatetime>=:allocatStartDate ";
}
@@ -364,15 +680,15 @@
if (!("all").equals(operFlag)) {
queryString += " and a.operFlag =:operFlag";
}
- if (!("").equals(buildingname)) {
- queryString += " and a.buildingname like :buildingname";
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid";
}
- if (!regionname.equals("")){
+ if (!regionid.equals("")){
queryString += "and a.regionid in "
+"("
+ "with recursive tmp as "
+ "("
- + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionname like :regionname "
+ + "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 )";
@@ -394,7 +710,6 @@
}
- query.setParameter("operids", operids);
if (!("all").equals(syncStatus)) {
query.setParameter("syncStatus", syncStatus);
}
@@ -407,11 +722,219 @@
if (!("all").equals(operFlag)) {
query.setParameter("operFlag", operFlag);
}
- if (!("").equals(buildingname)) {
- query.setParameter("buildingname", "%"+buildingname+"%");
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
}
- if (!("").equals(regionname)){
- query.setParameter("regionname","%"+regionname+"%");
+ if (!("").equals(regionid)){
+ query.setParameter("regionid",regionid);
+ }
+ if (!("").equals(custName)) {
+ query.setParameter("custName", "%" + custName + "%");
+ }
+ if (!("").equals(stuempNo)) {
+ query.setParameter("stuempNo", "%" + stuempNo + "%");
+ }
+
+ List<TDoorcardlstInfo> tDoorcardlstInfos = query.getResultList();
+ SimpleDateFormat _ymdhms = new SimpleDateFormat("yyyyMMddHHmmss");
+ SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ for (TDoorcardlstInfo grp : tDoorcardlstInfos) {
+ List<String> factory = RedisUtil.lrange("dict_4", 0, -1);
+ List<String> operflag = RedisUtil.lrange("dict_2", 0, -1);
+ List<String> sync = RedisUtil.lrange("dict_3", 0, -1);
+ if(operflag!= null && operflag.size()>0){
+ String operFlagIndex = grp.getOperFlagIndex();
+ for (String s : operflag) {
+ String[] split = s.split("_");
+ if (operFlagIndex.equals(split[0])){
+ grp.setOperFlag(split[1]);
+ break;
+ }
+ }
+ }
+ if(sync!= null && sync.size()>0){
+ String syncStatus1 = grp.getSyncStatus();
+ for (String s : sync) {
+ String[] split = s.split("_");
+ if (syncStatus1.equals(split[0])){
+ grp.setSyncStatus(split[1]);
+ break;
+ }else {
+ grp.setSyncStatus("");
+ }
+ }
+ }
+ if(factory != null && factory.size()>0){
+ String factoryId1 = grp.getFactoryId();
+ for (String s : factory) {
+ String[] split = s.split("_");
+ if (factoryId1.equals(split[0])){
+ grp.setFactoryName(split[1]);
+ break;
+ }else {
+ grp.setFactoryName("");
+ }
+ }
+ }else {
+ queryString = "select a.id.dictcaption from TDictionary a where a.id.dicttype=:dicttype and a.id.dictval=:dictval";
+ query = entityManager.createQuery(queryString);
+ query.setParameter("dicttype", 4);
+ query.setParameter("dictval", grp.getFactoryId());
+ if(null != query.getSingleResult()){
+ grp.setFactoryName(query.getSingleResult().toString());
+ }else {
+ grp.setFactoryName("");
+ }
+
+ query.setParameter("dicttype", 3);
+ query.setParameter("dictval", grp.getSyncStatus());
+ if(null != query.getSingleResult()) {
+ grp.setSyncStatus(query.getSingleResult().toString());
+ }else {
+ grp.setSyncStatus("");
+ }
+ query.setParameter("dicttype", 2);
+ if (grp.getOperFlagIndex() != null) {
+ query.setParameter("dictval", grp.getOperFlagIndex());
+ grp.setOperFlag(query.getSingleResult().toString());
+ }
+ }
+
+ String time = grp.getAllocatTime();
+ Date date;
+ String hms = "000000";
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setAllocatTime(ymdhms.format(date));
+ } else {
+
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time + "");
+ grp.setAllocatTime(ymdhms.format(date));
+ }
+
+ }
+
+ time = grp.getSyncTime();
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setSyncTime(ymdhms.format(date));
+ } else {
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time);
+ grp.setSyncTime(ymdhms.format(date));
+ }
+
+ }
+
+ time = grp.getFeedbackTime();
+ if (time != null) {
+ if (time.length() == 14) {
+ date = _ymdhms.parse(time);
+ grp.setFeedbackTime(ymdhms.format(date));
+ } else {
+ time += hms.substring(0, 14 - time.length());
+ date = _ymdhms.parse(time);
+ grp.setFeedbackTime(ymdhms.format(date));
+ }
+ }
+ }
+ return tDoorcardlstInfos;
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Transactional
+ @Override
+ public List<TDoorcardlstInfo> getOperatorCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid, String regionid, String operRegionid) {
+ try {
+ String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +
+ "a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +
+ "b.updatetime feedbackTime,b.retmsg,a.reason ,a.buildingName,f.regionName" +
+ " from t_doorcardlst a left join t_rtnresult b on a.listid=b.listid " +
+ " left join tb_region f on a.regionid=f.regionid " +
+ " left join t_doordev d on a.deviceid=d.doorid" +
+ " left join tb_operator g on a.operid=g.operid" +
+ " where 1>0 " ;
+ if (!"".equals(allocatStartDate)) {
+ queryString += " and a.updatetime>=:allocatStartDate ";
+ }
+ if (!"".equals(allocatEndDate)) {
+ queryString += " and a.updatetime<=:allocatEndDate ";
+ }
+ if (!("all").equals(syncStatus)) {
+ queryString += " and a.syncstatus =:syncStatus";
+ }
+ if (!("all").equals(factoryId)) {
+ queryString += " and a.factoryid =:factoryId";
+ }
+ if (!("").equals(doorName)) {
+ queryString += " and d.doorname like :doorName";
+ }
+ if (!("all").equals(operFlag)) {
+ queryString += " and a.operFlag =:operFlag";
+ }
+ if (!("").equals(buildingid)) {
+ queryString += " and a.buildingid = :buildingid";
+ }
+ if (!regionid.equals("")){
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 where tmp.regionid=:regionid)";
+ }else {
+ queryString += "and a.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :operRegionid "
+ + "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 )";
+
+ }
+ if (!("").equals(custName)) {
+ queryString += " and a.custname like :custName";
+ }
+ if (!("").equals(stuempNo)) {
+ queryString += " and a.stuempno like :stuempNo";
+ }
+ queryString += " order by a.listid DESC";
+
+ Query query = entityManager.createNativeQuery(queryString, TDoorcardlstInfo.class);
+ if (!"".equals(allocatStartDate)) {
+ query.setParameter("allocatStartDate", allocatStartDate + "000000");
+ }
+ if (!"".equals(allocatEndDate)) {
+ query.setParameter("allocatEndDate", allocatEndDate + "235959");
+ }
+
+
+ if (!("all").equals(syncStatus)) {
+ query.setParameter("syncStatus", syncStatus);
+ }
+ if (!("all").equals(factoryId)) {
+ query.setParameter("factoryId", factoryId);
+ }
+ if (!("").equals(doorName)) {
+ query.setParameter("doorName", "%" + doorName + "%");
+ }
+ if (!("all").equals(operFlag)) {
+ query.setParameter("operFlag", operFlag);
+ }
+ if (!("").equals(buildingid)) {
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!("").equals(regionid)){
+ query.setParameter("regionid",regionid);
}
if (!("").equals(custName)) {
query.setParameter("custName", "%" + custName + "%");
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 feba2d1..ad4deba 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
@@ -12,13 +12,20 @@
//获取所有厂商
public List<TKey> getAllKeys() throws Exception;
- //根据查询条件分页获取流水
- public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
- String doorName, String custName, String stuempNo, String syncStatus, List<String> opername,String operFlag, String buildingname,String regionname, int pageNo, int pageSize);
+ //根据查询条件分页获取所有流水
+ public Pagination getSystemCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus,String operFlag, String buildingid,String regionid, int pageNo, int pageSize);
- //根据查询条件获取导出表单信息
- public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
- String doorName, String custName, String stuempNo, String syncStatus, List<String> operids, String operFlag, String buildingname,String regionname);
+ //根据查询条件分页获取管理员权限的流水
+ public Pagination getOperatorCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus,String operFlag, String buildingid,String regionid, int pageNo, int pageSize,String operRegionid);
+
+ //根据查询条件获取所有导出表单信息
+ public List<TDoorcardlstInfo> getSystemCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid);
+
+ public List<TDoorcardlstInfo> getOperatorCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,
+ String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid,String operRegionid);
//根据名单编号将已同步的名单修改为未同步使其重新同步
public void updateDoorcardlstToNoWithIds (List<Long> listIds);
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 e286cd3..1636a09 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
@@ -28,13 +28,23 @@
}
@Override
- public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String buildingname,String regionname, int pageNo, int pageSize) {
- return cardListDao.getAllCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, opername, operFlag, buildingname,regionname, pageNo, pageSize);
+ public Pagination getSystemCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid, int pageNo, int pageSize) {
+ return cardListDao.getSystemCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid,regionid, pageNo, pageSize);
}
@Override
- public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> operids, String operFlag, String buildingname,String regionname) {
- return cardListDao.getAllCardListMap(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operids, operFlag, buildingname,regionname);
+ public Pagination getOperatorCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid, String regionid, int pageNo, int pageSize, String operRegionid) {
+ return cardListDao.getOperatorCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid, pageNo, pageSize, operRegionid);
+ }
+
+ @Override
+ public List<TDoorcardlstInfo> getSystemCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid,String regionid) {
+ return cardListDao.getSystemCardListMap(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid,regionid);
+ }
+
+ @Override
+ public List<TDoorcardlstInfo> getOperatorCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, String operFlag, String buildingid, String regionid, String operRegionid) {
+ return cardListDao.getOperatorCardListMap(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, operFlag, buildingid, regionid, operRegionid);
}
@Override
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java b/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java
index 31bf34d..4079c55 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java
@@ -4,5 +4,5 @@
public interface OperatorDao {
- public List<String> findOperatorsByFopercode(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 5c39b62..9e5c8e7 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/RegionDao.java
@@ -15,6 +15,8 @@
public TRegion getRegionById(String regionid);
+ public List<TRegion> getRegionListById(String regionid);
+
public List<TRegion> getRegionListByLevel(int level);
public List<TRegion> getAllRegions();
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java
index 9949432..243801f 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java
@@ -18,52 +18,5 @@
@PersistenceContext
EntityManager entityManager;
- @Transactional
- @Override
- public List<String> findOperatorsByFopercode(String operid) {
- try{
- String sql = "select bean from TOperator bean where bean.status='0' and bean.father.opercode =?1 ";
- TypedQuery<TOperator> query = entityManager.createQuery(sql, TOperator.class);
- query.setParameter(1, operid);
- List<TOperator> tOperators = new ArrayList<TOperator>();
- tOperators.addAll(query.getResultList());
- List<String> allopercode = new ArrayList<String>();
- if(tOperators != null && tOperators.size() > 0){
- for(TOperator grp:tOperators){
- allopercode.add(grp.getOpercode());
- }
- boolean index = false;
- List<TOperator> lstsons = new ArrayList<TOperator>();
- List<TOperator> lstson = new ArrayList<TOperator>();
- lstson.addAll(tOperators);
- while(lstson != null && lstson.size() > 0){
- if(index){
- for(TOperator grp:lstson){
- allopercode.add(grp.getOpercode());
- }
- }
- index = true;
- if(!lstsons.isEmpty()){
- lstsons.clear();
- }
- for(TOperator grp:lstson){
- String queryString = "select bean from TOperator bean where bean.father.opercode =?1";
- query = entityManager.createQuery(queryString, TOperator.class);
- query.setParameter(1, grp.getOpercode());
- lstsons.addAll(query.getResultList());
- }
- if(!lstson.isEmpty()){
- lstson.clear();
- }
- lstson.addAll(lstsons);
- }
- }
- allopercode.add(operid);
- return allopercode;
- }catch(Exception e){
- e.printStackTrace();
- }
- return null;
- }
}
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 fe077a8..05ba7a9 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
@@ -153,6 +153,22 @@
@Transactional
@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 "+
+ "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, TRegion.class);
+ query.setParameter("regionid", regionid);
+ List list = query.getResultList();
+
+ return list;
+ }
+
+ @Transactional
+ @Override
public List<TRegion> getRegionListByLevel(int level) {
String sql = "select bean from TRegion bean where bean.flag=1 and bean.level=:level";
TypedQuery<TRegion> query = entityManager.createQuery(sql, TRegion.class);
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 8adf9ed..1bd453e 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
@@ -30,8 +30,6 @@
//修改字典值
public TDictionary updateDictionary(String dicttype, String dicttypename, String dictval, String dictcaption, String oriengaltype, String oriengalval);
- //根据操作员id获取有权限的操作员
- public List<String> findOperatorsByFopercode(String operid);
//根据查询条件分页获取所有区域
public Pagination getSystemRegionList(String regionname,int pageNo,int pageSize);
@@ -48,6 +46,9 @@
//根据id获取区域
public TRegion getRegionById(String regionid);
+ //根据区域id获取其权限下所有区域
+ public List<TRegion> getRegionListById(String regionid);
+
//根据区域级别获取其上一级级别的所有区域
public List<TRegion> getRegionListByLevel(int level);
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 1f48e88..f729371 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
@@ -65,10 +65,6 @@
return dictionaryDao.updateDictionary(dicttype, dicttypename, dictval, dictcaption, oriengaltype, oriengalval);
}
- @Override
- public List<String> findOperatorsByFopercode(String operid) {
- return operatorDao.findOperatorsByFopercode(operid);
- }
@Override
public Pagination getSystemRegionList(String regionname, int pageNo, int pageSize) {
@@ -96,6 +92,11 @@
}
@Override
+ public List<TRegion> getRegionListById(String regionid) {
+ return regionDao.getRegionListById(regionid);
+ }
+
+ @Override
public List<TRegion> getRegionListByLevel(int level) {
return regionDao.getRegionListByLevel(level);
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index b3d349d..d37e1ac 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -27,4 +27,6 @@
# user password
auth.password.bcrypt.length=10
+server.servlet.context-path=/
+
diff --git a/src/main/resources/templates/doorlist/searchDoorlist.html b/src/main/resources/templates/doorlist/searchDoorlist.html
index b874920..0ded60e 100644
--- a/src/main/resources/templates/doorlist/searchDoorlist.html
+++ b/src/main/resources/templates/doorlist/searchDoorlist.html
@@ -76,20 +76,33 @@
</el-col>
<el-col :span="8">
- <el-form-item label="楼栋">
- <el-input v-model="searchDoorForm.buildingname" placeholder="楼栋名称">
- <i class="el-icon-edit el-input__icon" slot="icon" ></i>
- </el-input>
+ <el-form-item label="区域">
+ <el-select v-model="searchDoorForm.regionid"
+ @Change="regionChange"
+ placeholder="请选择">
+ <el-option
+ v-for="regionid in regions"
+ :key="regionid.value"
+ :label="regionid.label"
+ :value="regionid.value">
+ </el-option>
+ </el-select>
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="区域">
- <el-input v-model="searchDoorForm.regionname" placeholder="区域名称">
- <i class="el-icon-edit el-input__icon" slot="icon" ></i>
- </el-input>
+ <el-form-item label="楼栋">
+ <el-select v-model="searchDoorForm.buildingid" placeholder="请选择">
+ <el-option
+ v-for="buildingid in buildings"
+ :key="buildingid.value"
+ :label="buildingid.label"
+ :value="buildingid.value">
+ </el-option>
+ </el-select>
</el-form-item>
</el-col>
+
</el-row>
<el-row>
<el-col :span="8" :offset="16">
@@ -125,11 +138,6 @@
width="100">
</el-table-column>
<el-table-column
- prop="buildingname"
- label="楼栋"
- min-width="140">
- </el-table-column>
- <el-table-column
prop="doorName"
label="设备名称"
width="180">
@@ -144,16 +152,17 @@
label="姓名"
width="150">
</el-table-column>
- <el-table-column
- prop="buildingName"
- label="楼栋"
- width="180">
- </el-table-column>
+
<el-table-column
prop="regionName"
label="区域"
width="130">
</el-table-column>
+ <el-table-column
+ prop="buildingName"
+ label="楼栋"
+ width="180">
+ </el-table-column>
<el-table-column
prop="closedate"
label="有效期"
@@ -252,9 +261,11 @@
stuempNo: '',
syncStatus: '',
operFlag: '',
- buildingname: '',
- regionname:''
+ buildingid: '',
+ regionid:''
},
+ regions:[],
+ buildings:[],
factoryIds: [],
syncStatus: [],
operFlag: [],
@@ -315,7 +326,12 @@
handleSelect:function(val){
this.selectList=val;
- }
+ },
+ regionChange:function(value){
+ this.buildings=[];
+ this.searchDoorForm.buildingid='',
+ getRegionBuilding(this,value);
+ },
},
created: function () {
var url = "/doorlistMgr/getFillFormList";
@@ -362,26 +378,31 @@
label: operDict[i]["dictcaption"]
})
}
- /*var buildings = [];
+ var regionlist = [];
+ var region = data.regions;
+ for (var i = 0; i < region.length; i++) {
+ regionlist.push({
+ value: region[i]["regionid"],
+ label: region[i]["regionname"]
+ })
+ }
+
+ var buildinglist = [];
var building = data.buildings;
- buildings.push({
- value: "",
- label: "全部"
- })
for (var i = 0; i < building.length; i++) {
- buildings.push({
+ buildinglist.push({
value: building[i]["buildingid"],
label: building[i]["buildingname"]
})
- }*/
+ }
vue.factoryIds = factoryList;
vue.syncStatus = syncDicts;
vue.operFlag = operDicts;
- //vue.buildings = buildings;
+ vue.regions = regionlist;
+ vue.buildings = buildinglist;
vue.searchDoorForm.factoryId = 'all';
vue.searchDoorForm.syncStatus = 'all';
vue.searchDoorForm.operFlag = 'all';
- //vue.searchDoorForm.building = '';
}
})
this.searchDoorForm.allocatStartDate ='';
@@ -428,7 +449,7 @@
+ "&stuempNo=" + searchDoor.stuempNo + "&factoryId=" + searchDoor.factoryId
+ "&syncStatus=" + searchDoor.syncStatus +
"&pageNo=" + pageno + "&pageSize=" + pagesize + "&operFlag=" + searchDoor.operFlag
- + "&buildingname=" + searchDoor.buildingname+"®ionname=" +searchDoor.regionname;
+ + "&buildingid=" + searchDoor.buildingid+"®ionid=" +searchDoor.regionid;
var token=$("meta[name='_csrf_token']").attr("value");
$.ajax({
type: "POST",
@@ -472,7 +493,7 @@
"&doorName=" + searchDoor.doorName + "&custName=" + searchDoor.custName
+ "&stuempNo=" + searchDoor.stuempNo + "&factoryId=" + searchDoor.factoryId
+ "&syncStatus=" + searchDoor.syncStatus + "&operFlag=" + searchDoor.operFlag
- + "&buildingname=" + searchDoor.buildingname+"®ionname="+searchDoor.regionname;
+ + "&buildingid=" + searchDoor.buildingid+"®ionid="+searchDoor.regionid;
// window.location.href
var uri = encodeURI(url);
window.open(uri);
@@ -506,6 +527,28 @@
}
}
+ function getRegionBuilding(_self,value){
+ $.ajax({
+ type: "get",
+ dataType: "json",
+ url: encodeURI("/ncmgr/getRegionBuilding?regionid=" + value),
+ success: function (ret) {
+ var bList = [];
+ 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 refreshThisTable(){
$("#qrybtn").click();
}
diff --git a/src/main/resources/templates/query/tdoorstream.html b/src/main/resources/templates/query/tdoorstream.html
index 81d4f23..a3427e1 100644
--- a/src/main/resources/templates/query/tdoorstream.html
+++ b/src/main/resources/templates/query/tdoorstream.html
@@ -42,18 +42,29 @@
<el-input v-model="tdoorstream.custname" style="width:193px"></el-input>
</el-col>
<el-col :span="8">
- <label class="control-label "
- style="margin-right:10px;font-size: 14px;width:80px">楼栋:
- </label>
- <el-input v-model="tdoorstream.buildingname" style="width:193px"></el-input>
+ <el-form-item label="区域">
+ <el-select v-model="searchDoorForm.regionid" placeholder="请选择">
+ <el-option
+ v-for="regionid in regions"
+ :key="regionid.value"
+ :label="regionid.label"
+ :value="regionid.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
-
<el-col :span="8">
- <label class="control-label "
- style="margin-right:10px;font-size: 14px;width:80px">区域:
- </label>
- <el-input v-model="tdoorstream.regionname" style="width:193px"></el-input>
+ <el-form-item label="楼栋">
+ <el-select v-model="searchDoorForm.buildingid" placeholder="请选择">
+ <el-option
+ v-for="buildingid in buildings"
+ :key="buildingid.value"
+ :label="buildingid.label"
+ :value="buildingid.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
</el-row>
<el-row style="margin-top:10px">
@@ -160,7 +171,6 @@
return time.getTime() <vue.starttransdate.getTime();
}
},
-
tlist:[],
buildings:[],
regions:[],
@@ -171,9 +181,9 @@
custname:'',
factoryid:'',
doorname:'',
- buildingname:'',
+ buildingid:'',
dtlStatus:'all',
- regionname:''
+ regionid:''
},
},
methods : {
@@ -267,8 +277,8 @@
var endtransdate = Formatdate(Uendtransdate);
var stuempno = _self.tdoorstream.stuempno;
var custname = _self.tdoorstream.custname;
- var buildingname = _self.tdoorstream.buildingname;
- var regionname = _self.tdoorstream.regionname;
+ var buildingid = _self.tdoorstream.buildingid;
+ var regionid = _self.tdoorstream.regionid;
var doorname = _self.tdoorstream.doorname;
var dtlStatus = _self.tdoorstream.dtlStatus;
if(_self.totSize>2000){
@@ -277,7 +287,7 @@
}
//console.log(factoryid+stuempno);
var url =encodeURI( "/query/exportexcel?&startTranDate="+starttransdate+"&endTranDate="
- +endtransdate+"&stuempno="+stuempno+"&custname="+custname+"&buildingname="+buildingname+"®ionname="+regionname+"&doorName="+doorname
+ +endtransdate+"&stuempno="+stuempno+"&custname="+custname+"&buildingid="+buildingid+"®ionid="+regionid+"&doorName="+doorname
+"&streamstatus="+dtlStatus+"&factoryId="+factoryid)
window.open(url);
@@ -289,17 +299,17 @@
var endtransdate = Formatdate(Uendtransdate);
var stuempno = _self.tdoorstream.stuempno;
var custname = _self.tdoorstream.custname;
- var buildingname = _self.tdoorstream.buildingname;
+ var buildingid = _self.tdoorstream.buildingid;
var doorname = _self.tdoorstream.doorname;
- var regionname = _self.tdoorstream.region;
+ var regionid = _self.tdoorstream.regionid;
var dtlStatus = _self.tdoorstream.dtlStatus;
//console.log(factoryid);
$.ajax({
type : "get",
dataType : "json",
url : encodeURI("/query/getSearchDoorStreamList?&startTranDate="+starttransdate+"&endTranDate="+endtransdate+
- "&stuempno="+stuempno+"&custname="+custname+"&buildingname="+buildingname+"&doorName="+doorname+"&streamstatus="+dtlStatus+
- "&factoryId="+factoryid +"&pageNo="+pageno+"&pageSize="+pagesize+"®ionname="+regionname),
+ "&stuempno="+stuempno+"&custname="+custname+"&buildingid="+buildingid+"&doorName="+doorname+"&streamstatus="+dtlStatus+
+ "&factoryId="+factoryid +"&pageNo="+pageno+"&pageSize="+pagesize+"®ionid="+regionid),
success : function(ret) {
// console.log(ret);
_self.totSize = ret.tDoordtlInfo.totalCount;