qzyReal 2 years ago
parent
commit
09a23ec225
60 changed files with 1374 additions and 373 deletions
  1. 2 2
      business-system/alarm-system/src/main/java/com/pj/TbPersonAlarmController.java
  2. 6 0
      business-system/car-identify/src/main/java/com/pj/biz/TbCarVisitRecordController.java
  3. 2 2
      business-system/epidemic-prevention/src/main/java/com/pj/HealthStatusController.java
  4. 2 2
      business-system/epidemic-prevention/src/main/java/com/pj/TbManagerController.java
  5. 4 4
      business-system/face-identify/src/main/java/com/pj/biz/TbPersonVisitRecordController.java
  6. 21 18
      business-system/filing-system/src/main/java/com/pj/api/WxController.java
  7. 2 2
      business-system/filing-system/src/main/java/com/pj/biz/TbCarBlackController.java
  8. 2 2
      business-system/filing-system/src/main/java/com/pj/biz/TbCarFilingController.java
  9. 2 2
      business-system/filing-system/src/main/java/com/pj/biz/TbPersonBlackController.java
  10. 2 2
      business-system/filing-system/src/main/java/com/pj/biz/TbPersonFilingController.java
  11. 10 3
      business-system/monitor-system/src/main/java/com/pj/MonitorController.java
  12. 3 0
      business-system/venues-system/src/main/java/com/pj/biz/TbTerminalController.java
  13. 29 2
      business-system/venues-system/src/main/java/com/pj/biz/TbVenuesController.java
  14. 5 5
      sp-admin/src/main/java/com/pj/project4sp/admin/SpAdminController.java
  15. 1 2
      sp-admin/src/main/java/com/pj/project4sp/admin4acc/SpAccAdminService.java
  16. 58 52
      sp-admin/src/main/java/com/pj/project4sp/role/SpRoleController.java
  17. 19 16
      sp-core/src/main/java/com/pj/current/netty/command/handler/impl/HealthlogHandler.java
  18. 2 1
      sp-core/src/main/java/com/pj/current/satoken/AuthConst.java
  19. 27 20
      sp-core/src/main/java/com/pj/current/satoken/StpUserUtil.java
  20. 4 1
      sp-core/src/main/java/com/pj/project/sp_admin/SpAdmin.java
  21. 3 2
      sp-core/src/main/java/com/pj/project/sp_admin/SpAdminMapper.java
  22. 10 9
      sp-core/src/main/java/com/pj/project/sp_admin/SpAdminMapper.xml
  23. 11 28
      sp-core/src/main/java/com/pj/project/sp_admin/SpAdminService.java
  24. 12 2
      sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFiling.java
  25. 8 4
      sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFilingMapper.xml
  26. 25 12
      sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFilingService.java
  27. 4 1
      sp-core/src/main/java/com/pj/project/tb_car_visit_record/TbCarVisitRecord.java
  28. 2 6
      sp-core/src/main/java/com/pj/project/tb_car_visit_record/TbCarVisitRecordService.java
  29. 109 0
      sp-core/src/main/java/com/pj/project/tb_department/TbDepartment.java
  30. 99 0
      sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentController.java
  31. 28 0
      sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentMapper.java
  32. 74 0
      sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentMapper.xml
  33. 60 0
      sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentService.java
  34. 0 3
      sp-core/src/main/java/com/pj/project/tb_dept/TbDeptController.java
  35. 13 4
      sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminal.java
  36. 2 2
      sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminalMapper.xml
  37. 51 21
      sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminalService.java
  38. 55 0
      sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermission.java
  39. 87 0
      sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionController.java
  40. 28 0
      sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionMapper.java
  41. 47 0
      sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionMapper.xml
  42. 49 0
      sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionService.java
  43. 1 0
      sp-core/src/main/java/com/pj/project/tb_mini_user/TbMiniUser.java
  44. 2 2
      sp-core/src/main/java/com/pj/project/tb_mini_user/TbMiniUserService.java
  45. 5 3
      sp-core/src/main/java/com/pj/project/tb_person_filing/ImportPersonBO.java
  46. 57 39
      sp-core/src/main/java/com/pj/project/tb_person_filing/ImportPersonListener.java
  47. 13 1
      sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFiling.java
  48. 6 3
      sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFilingMapper.xml
  49. 104 22
      sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFilingService.java
  50. 8 0
      sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecord.java
  51. 39 40
      sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecordMapper.xml
  52. 2 1
      sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecordService.java
  53. 7 0
      sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminal.java
  54. 4 1
      sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminalMapper.xml
  55. 57 11
      sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminalService.java
  56. 1 0
      sp-core/src/main/java/com/pj/project/tb_terminal/bo/MonitorDTO.java
  57. 13 5
      sp-core/src/main/java/com/pj/project/tb_venues/TbVenues.java
  58. 3 1
      sp-core/src/main/java/com/pj/project/tb_venues/TbVenuesMapper.xml
  59. 69 9
      sp-core/src/main/java/com/pj/project/tb_venues/TbVenuesService.java
  60. 3 3
      sp-start/src/main/resources/application-dev.yml

+ 2 - 2
business-system/alarm-system/src/main/java/com/pj/TbPersonAlarmController.java

@@ -83,8 +83,8 @@ public class TbPersonAlarmController {
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
         so.put("alarm",1);
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbManager> list = tbManagerService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 6 - 0
business-system/car-identify/src/main/java/com/pj/biz/TbCarVisitRecordController.java

@@ -79,6 +79,9 @@ public class TbCarVisitRecordController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
+        }
         List<TbCarVisitRecord> list = tbCarVisitRecordService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
@@ -87,6 +90,9 @@ public class TbCarVisitRecordController {
     @SaCheckPermission(TbCarVisitRecord.PERMISSION_CODE_EXPORT)
     public AjaxJson export() {
         SoMap soMap = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()) {
+            soMap.put("departmentId",StpUserUtil.getDeptId());
+        }
         return AjaxJson.getSuccessData(tbCarVisitRecordService.export(soMap));
     }
 }

+ 2 - 2
business-system/epidemic-prevention/src/main/java/com/pj/HealthStatusController.java

@@ -30,8 +30,8 @@ public class HealthStatusController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbPersonVisitRecord> list = tbPersonVisitRecordService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 2 - 2
business-system/epidemic-prevention/src/main/java/com/pj/TbManagerController.java

@@ -90,8 +90,8 @@ public class TbManagerController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId", StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId", StpUserUtil.getDeptId());
         }
         so.put("alarm", 0);
         List<TbManager> list = tbManagerService.getList(so.startPage());

+ 4 - 4
business-system/face-identify/src/main/java/com/pj/biz/TbPersonVisitRecordController.java

@@ -108,8 +108,8 @@ public class TbPersonVisitRecordController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbPersonVisitRecord> list = tbPersonVisitRecordService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
@@ -118,8 +118,8 @@ public class TbPersonVisitRecordController {
     @SaCheckPermission(TbPersonVisitRecord.PERMISSION_CODE_EXPORT)
     public AjaxJson export() {
         SoMap soMap = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            soMap.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            soMap.put("departmentId",StpUserUtil.getDeptId());
         }
         return AjaxJson.getSuccessData(tbPersonVisitRecordService.export(soMap));
     }

+ 21 - 18
business-system/filing-system/src/main/java/com/pj/api/WxController.java

@@ -14,6 +14,7 @@ import com.pj.project.re_mini_user_person_filing.ReMiniUserPersonFilingService;
 import com.pj.project.sp_admin.SpAdminService;
 import com.pj.project.tb_car_filing.TbCarFiling;
 import com.pj.project.tb_car_filing.TbCarFilingService;
+import com.pj.project.tb_dept.TbDeptService;
 import com.pj.project.tb_mini_user.TbMiniUser;
 import com.pj.project.tb_mini_user.TbMiniUserService;
 import com.pj.project.tb_person_filing.TbPersonFiling;
@@ -56,6 +57,8 @@ public class WxController {
 
     @Resource
     private OcrService ocrService;
+    @Resource
+    private TbDeptService tbDeptService;
 
 
     @GetMapping(value = "getRedirectUrl")
@@ -69,7 +72,6 @@ public class WxController {
     }
 
 
-
     @GetMapping(value = "getWxConfig")
     public AjaxJson getWxConfig(String url) {
         return AjaxJson.getSuccessData(wxService.getWxConfig(url));
@@ -78,17 +80,16 @@ public class WxController {
     @GetMapping(value = "person-filing")
     public AjaxJson getPersonFiling() {
         SoMap so = SoMap.getRequestSoMap();
+        so.put("miniUserId", StpUserUtil.getMiniUserId());
         if (StpUserUtil.isInnerMiniUser()) {
             //内部人员 自己备案的+部门的备案
-            so.put("loginId", StpUserUtil.getLoginIdAsLong());
-            if (!StpUserUtil.isSuperAdmin()) {
-                so.put("deptId", StpUserUtil.getDeptId());
-            }
+           if (!StpUserUtil.isAdmin()){
+               so.put("departmentId", StpUserUtil.getDepartmentId());
+           }
             List<TbPersonFiling> list = tbPersonFilingService.getForWx(so.startPage());
             return AjaxJson.getPageData(so.getDataCount(), list);
         } else {
             //备案自己的+帮别人备案的
-            so.put("miniUserId", StpUserUtil.getMiniUserId());
             List<TbPersonFiling> list = tbPersonFilingService.getOuterList(so.startPage());
             return AjaxJson.getPageData(so.getDataCount(), list);
         }
@@ -100,9 +101,9 @@ public class WxController {
             tbPersonFiling.setDeptId(StpUserUtil.getDeptId());
         }
         TbPersonFiling db = tbPersonFilingService.findByIdCard(tbPersonFiling.getIdCard());
-        if (db!=null){
-            tbPersonFiling=db;
-        }else {
+        if (db != null) {
+            tbPersonFiling = db;
+        } else {
             tbPersonFilingService.add(tbPersonFiling);
         }
         ReMiniUserPersonFiling reMiniUserPersonFiling = new ReMiniUserPersonFiling();
@@ -140,17 +141,16 @@ public class WxController {
     @GetMapping("car-filing")
     public AjaxJson getCarFiling() {
         SoMap so = SoMap.getRequestSoMap();
-        if (StpUserUtil.isInnerMiniUser()) {
+        so.put("miniUserId", StpUserUtil.getMiniUserId());
+        if (StpUserUtil.isAdmin()) {
             //内部人员 自己备案的+部门的备案
-            so.put("loginId", StpUserUtil.getLoginIdAsLong());
-            if (!StpUserUtil.isSuperAdmin()) {
-                so.put("deptId", StpUserUtil.getDeptId());
+            if (!StpUserUtil.isAdmin()) {
+                so.put("departmentId", StpUserUtil.getDepartmentId());
             }
             List<TbCarFiling> list = tbCarFilingService.getForWx(so.startPage());
             return AjaxJson.getPageData(so.getDataCount(), list);
         } else {
             //备案自己的+帮别人备案的
-            so.put("miniUserId", StpUserUtil.getMiniUserId());
             List<TbCarFiling> list = tbCarFilingService.getOuterList(so.startPage());
             return AjaxJson.getPageData(so.getDataCount(), list);
         }
@@ -172,7 +172,7 @@ public class WxController {
         if (StrUtil.isEmpty(openid)) {
             return AjaxJson.getError("参数异常");
         }
-        return tbMiniUserService.loginByOpenid(openid,type);
+        return tbMiniUserService.loginByOpenid(openid, type);
     }
 
     @RequestMapping("solve")
@@ -184,6 +184,7 @@ public class WxController {
 
     /**
      * 绑定
+     *
      * @param openid
      * @param key
      * @param password
@@ -198,14 +199,15 @@ public class WxController {
 
     /**
      * 登录
+     *
      * @param openid
      * @param key
      * @param password
      * @return
      */
     @PostMapping("login")
-    public AjaxJson login(String openid,String key, String password) {
-        return tbMiniUserService.login(openid,key, password);
+    public AjaxJson login(String openid, String key, String password) {
+        return tbMiniUserService.login(openid, key, password);
     }
 
     /**
@@ -221,7 +223,8 @@ public class WxController {
      * 识别身份证,弃用
      */
     @RequestMapping("ocrIdCard")
-    public AjaxJson ocrIdCard(String idCardUrl){
+    @Deprecated
+    public AjaxJson ocrIdCard(String idCardUrl) {
         OcrResult ocrResult = ocrService.ocrIdCard(idCardUrl);
         return AjaxJson.getSuccessData(ocrResult);
     }

+ 2 - 2
business-system/filing-system/src/main/java/com/pj/biz/TbCarBlackController.java

@@ -89,8 +89,8 @@ public class TbCarBlackController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbCarBlack> list = tbCarBlackService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 2 - 2
business-system/filing-system/src/main/java/com/pj/biz/TbCarFilingController.java

@@ -88,8 +88,8 @@ public class TbCarFilingController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbCarFiling> list = tbCarFilingService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 2 - 2
business-system/filing-system/src/main/java/com/pj/biz/TbPersonBlackController.java

@@ -89,8 +89,8 @@ public class TbPersonBlackController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbPersonBlack> list = tbPersonBlackService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 2 - 2
business-system/filing-system/src/main/java/com/pj/biz/TbPersonFilingController.java

@@ -90,8 +90,8 @@ public class TbPersonFilingController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbPersonFiling> list = tbPersonFilingService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 10 - 3
business-system/monitor-system/src/main/java/com/pj/MonitorController.java

@@ -1,5 +1,7 @@
 package com.pj;
 
+import cn.hutool.core.util.StrUtil;
+import com.pj.current.satoken.StpUserUtil;
 import com.pj.project.tb_person_visit_record.TbPersonVisitRecordService;
 import com.pj.project.tb_terminal.bo.MonitorDTO;
 import com.pj.project.tb_terminal.TbTerminalService;
@@ -9,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("monitor")
@@ -21,12 +24,16 @@ public class MonitorController {
     private TbTerminalService tbTerminalService;
 
     @RequestMapping("watch")
-    public AjaxJson monitor(){
+    public AjaxJson monitor() {
         return AjaxJson.getSuccessData(tbPersonVisitRecordService.getMonitor());
     }
+
     @RequestMapping("terminal")
-    public AjaxJson monitorTerminal(){
-      List<MonitorDTO>list= tbTerminalService.getMonitor();
+    public AjaxJson monitorTerminal() {
+        List<MonitorDTO> list = tbTerminalService.getMonitor();
+        if (!StpUserUtil.isAdmin()) {
+            list = list.stream().filter(monitorDTO -> StrUtil.equals(monitorDTO.getDepartmentId(), StpUserUtil.getDeptId() + "")).collect(Collectors.toList());
+        }
         return AjaxJson.getSuccessData(list);
     }
 }

+ 3 - 0
business-system/venues-system/src/main/java/com/pj/biz/TbTerminalController.java

@@ -89,6 +89,9 @@ public class TbTerminalController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()){
+            so.put("departmentId",StpUserUtil.getDeptId());
+        }
         List<TbTerminal> list = tbTerminalService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
     }

+ 29 - 2
business-system/venues-system/src/main/java/com/pj/biz/TbVenuesController.java

@@ -81,12 +81,31 @@ public class TbVenuesController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
         }
         List<TbVenues> list = tbVenuesService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
+    //获取场所
+    @RequestMapping("getParentList")
+    public AjaxJson getParentList(){
+        SoMap so = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
+        }
+        so.put("pId",-1);
+        List<TbVenues> list = tbVenuesService.getList(so);
+        return AjaxJson.getSuccessData(list);
+    }
+
+    @RequestMapping("getFilingVenuesList")
+    public AjaxJson getFilingVenuesList(){
+        SoMap so = SoMap.getRequestSoMap();
+        so.put("pId",-1);
+        List<TbVenues> list = tbVenuesService.getList(so);
+        return AjaxJson.getSuccessData(list);
+    }
 
     /**
      * 查集合 (整个表数据转化为tree结构返回)
@@ -95,6 +114,9 @@ public class TbVenuesController {
     public AjaxJson getTree() {
         // 获取记录
         SoMap so = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()) {
+            so.put("departmentId",StpUserUtil.getDeptId());
+        }
         List<TbVenues> list = tbVenuesService.getList(so);
         // 转为tree结构,并返回
         List<SoMap> listMap = SoMap.getSoMapByList(list);
@@ -109,6 +131,11 @@ public class TbVenuesController {
         return AjaxJson.getSuccessData(list);
     }
 
+    /**
+     * 开通道门
+     * @param id
+     * @return
+     */
     @PostMapping(value = "release")
     public AjaxJson pass(Long id) {
        return tbVenuesService.release(id);

+ 5 - 5
sp-admin/src/main/java/com/pj/project4sp/admin/SpAdminController.java

@@ -161,8 +161,8 @@ public class SpAdminController {
 	@SaCheckPermission(AuthConst.ADMIN_LIST)
 	AjaxJson getList(){
 		SoMap so = SoMap.getRequestSoMap();
-		if (!StpUserUtil.isSuperAdmin()) {
-			so.put("deptId",StpUserUtil.getDeptId());
+		if (!StpUserUtil.isAdmin()) {
+			so.put("departmentId",StpUserUtil.getDeptId());
 		}
 		List<SpAdmin> list = spAdminMapper.getList(so.startPage());
 		return AjaxJson.getPageData(so.getDataCount(), list);
@@ -189,12 +189,12 @@ public class SpAdminController {
 	}
 
 
-	@RequestMapping("updateDept")
+	@RequestMapping("updateDepartment")
 	public AjaxJson updateDept(){
 		SoMap so = SoMap.getRequestSoMap();
 		Long id=so.getLong("id");
-		Long  deptId=so.getLong("deptId");
-		spAdminService.updateDept(id,deptId);
+		String  departmentId=so.getString("departmentId");
+		spAdminService.updateDepartment(id,departmentId);
 		return AjaxJson.getSuccess();
 	}
 

+ 1 - 2
sp-admin/src/main/java/com/pj/project4sp/admin4acc/SpAccAdminService.java

@@ -105,8 +105,7 @@ public class SpAccAdminService {
         StpUtil.login(admin.getId());
         String tokenValue = StpUtil.getTokenValue();
         successLogin(admin, tokenValue);
-        StpUserUtil.setAdminType(admin.getSuperAdmin()+"");
-        StpUserUtil.setDeptId(admin.getDeptId()+"");
+        StpUserUtil.setDeptId(admin.getDepartmentId());
         StpUserUtil.setAdmin(admin.getNickname(), admin.getPhone());
         // 组织返回参数
         SoMap map = new SoMap();

+ 58 - 52
sp-admin/src/main/java/com/pj/project4sp/role/SpRoleController.java

@@ -2,6 +2,7 @@ package com.pj.project4sp.role;
 
 import java.util.List;
 
+import com.pj.current.satoken.StpUserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,68 +18,73 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 
 /**
  * Controller: 系统角色表
+ *
  * @author kong
  */
 @RestController
 @RequestMapping("/role/")
 public class SpRoleController {
 
-	/** 底层Mapper依赖 */
-	@Autowired
-	SpRoleMapper spRoleMapper;
+    /**
+     * 底层Mapper依赖
+     */
+    @Autowired
+    SpRoleMapper spRoleMapper;
 
-	/** 增 */
-	@RequestMapping("add")
-	@SaCheckPermission(AuthConst.ROLE_LIST)
-	@Transactional(rollbackFor = Exception.class)
-	public AjaxJson add(SpRole s){
-		// 检验
-		if(spRoleMapper.getById(s.getId()) != null) {
-			return AjaxJson.getError("此id已存在,请更换");
-		}
-		SpRoleUtil.checkRoleThrow(s);
-		int line = spRoleMapper.add(s);
-		AjaxError.throwByLine(line, "添加失败");
-		// 返回这个对象 
-		long id = s.getId();
-		if(id == 0) {
-			id = SP.publicMapper.getPrimarykey();
-		}
-		return AjaxJson.getSuccessData(spRoleMapper.getById(id));
-	}
+    /**
+     * 增
+     */
+    @RequestMapping("add")
+    @SaCheckPermission(AuthConst.ROLE_LIST)
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxJson add(SpRole s) {
+        SpRoleUtil.checkRoleThrow(s);
+        int line = spRoleMapper.add(s);
+        AjaxError.throwByLine(line, "添加失败");
+        return AjaxJson.getSuccess();
+    }
 
-	/** 删 */
-	@RequestMapping("delete")
-	@SaCheckPermission({AuthConst.ROLE_LIST, AuthConst.DEV})
-	AjaxJson delete(long id){
-		int line = spRoleMapper.delete(id);
-		return AjaxJson.getByLine(line);
-	}
+    /**
+     * 删
+     */
+    @RequestMapping("delete")
+    @SaCheckPermission({AuthConst.ROLE_LIST, AuthConst.DEV})
+    AjaxJson delete(long id) {
+        int line = spRoleMapper.delete(id);
+        return AjaxJson.getByLine(line);
+    }
 
-	/** 改 */ 
-	@RequestMapping("update")
-	@SaCheckPermission({AuthConst.ROLE_LIST, AuthConst.DEV})
-	AjaxJson update(SpRole s){
-		SpRoleUtil.checkRoleThrow(s);
-		int line = spRoleMapper.update(s);
-		return AjaxJson.getByLine(line);
-	}
+    /**
+     * 改
+     */
+    @RequestMapping("update")
+    @SaCheckPermission({AuthConst.ROLE_LIST, AuthConst.DEV})
+    AjaxJson update(SpRole s) {
+        SpRoleUtil.checkRoleThrow(s);
+        int line = spRoleMapper.update(s);
+        return AjaxJson.getByLine(line);
+    }
 
-	/** 查 */ 
-	@RequestMapping("getById")
-	@SaCheckPermission(AuthConst.IN_SYSTEM)
-	AjaxJson getById(long id){
-		SpRole s = spRoleMapper.getById(id);
-		return AjaxJson.getSuccessData(s);
-	}
+    /**
+     * 查
+     */
+    @RequestMapping("getById")
+    @SaCheckPermission(AuthConst.IN_SYSTEM)
+    AjaxJson getById(long id) {
+        SpRole s = spRoleMapper.getById(id);
+        return AjaxJson.getSuccessData(s);
+    }
+
+    /**
+     * 查 - 集合
+     */
+    @RequestMapping("getList")
+    @SaCheckPermission(AuthConst.IN_SYSTEM)
+    AjaxJson getList() {
+        SoMap so = SoMap.getRequestSoMap();
+        List<SpRole> list = spRoleMapper.getList(so);
+        return AjaxJson.getSuccessData(list);
+    }
 
-	/** 查 - 集合  */
-	@RequestMapping("getList")
-	@SaCheckPermission(AuthConst.IN_SYSTEM)
-	AjaxJson getList(){
-		SoMap so = SoMap.getRequestSoMap();
-		List<SpRole> list = spRoleMapper.getList(so);
-		return AjaxJson.getSuccessData(list);
-	}
 
 }

+ 19 - 16
sp-core/src/main/java/com/pj/current/netty/command/handler/impl/HealthlogHandler.java

@@ -103,7 +103,7 @@ public class HealthlogHandler implements IHandler {
         if (tbPersonFiling == null) {
             if (!SpCfgUtil.termianlFilling()) {
                 log.error("系统不允许设备端进行备案============>删除设备端自动备份的信息,:{}", idCard);
-                tbPersonFilingService.deleteTerminalWhilte(idCard,true);
+                tbPersonFilingService.deleteTerminalWhilte(idCard, true);
                 ctx.write(OKMsg.ok());
                 ctx.flush();
                 return;
@@ -128,18 +128,19 @@ public class HealthlogHandler implements IHandler {
         Long deptId = tbPersonFiling.getDeptId();
         TbDept tbDept = tbDeptService.getById(deptId);
         TbTerminal tbTerminal = tbTerminalService.findBySN(sn);
-        Long venuesId = tbTerminal.getChannelId();
-        TbVenues tbVenues = tbVenuesService.getById(venuesId);
+        Long channelId = tbTerminal.getChannelId();
+        TbVenues channel = tbVenuesService.getById(channelId);
+
         //车辆道闸判断
-        if (tbVenues != null && TbVenues.TypeEnum.CAR_CHANNEL.getType().equals(tbVenues.getType())) {
-            String key = "result:" + venuesId;
+        if (channel != null && TbVenues.TypeEnum.CAR_CHANNEL.getType().equals(channel.getType())) {
+            String key = "result:" + channelId;
             String resultStr = RedisUtil.get(key);
             ResultDTO resultDTO = JSONUtil.toBean(resultStr, ResultDTO.class);
             if (TbDept.PassTypeEnum.ONE.getType().equals(tbDept.getPassType())) {
-                List<TbGateTerminal> gateTerminals = tbGateTerminalService.findByVenuesId(venuesId);
+                List<TbGateTerminal> gateTerminals = tbGateTerminalService.findByChannelId(channelId);
                 // 找到入口的设备,开闸
                 gateTerminals.stream().filter(tbGateTerminal -> tbGateTerminal.getDirection() == 1)
-                        .forEach(tbGateTerminal -> openGate(tbGateTerminal.getId(), venuesId));
+                        .forEach(tbGateTerminal -> openGate(tbGateTerminal.getId(), channelId));
                 if (resultDTO.getResult() != null && resultDTO.getResult() == 0) {
                     Long recordId = resultDTO.getRecordId();
                     TbCarVisitRecord tbCarVisitRecord = tbCarVisitRecordService.getById(recordId);
@@ -148,11 +149,13 @@ public class HealthlogHandler implements IHandler {
                     tbCarVisitRecordService.updateById(tbCarVisitRecord);
                 }
             } else if (resultDTO.getResult() != null && resultDTO.getResult() == 1) {
-                openGate(resultDTO.getGateTerminalId(), venuesId);
+                openGate(resultDTO.getGateTerminalId(), channelId);
             }
         }
-
         TbPersonVisitRecord record = new TbPersonVisitRecord();
+        if (channel != null) {
+            record.setDepartmentId(channel.getDepartmentId()).setVenuesId(channel.getPId());
+        }
         record.setDeptId(deptId).setType(TbPersonVisitRecord.TypeEnum.UPLOAD.getType())
                 .setVenues(tbTerminal.getVenuesName()).setChannel(tbTerminal.getChannelName())
                 .setTerminalName(tbTerminal.getName()).setVisitDate(dto.getDate()).setCreateTime(new Date())
@@ -174,11 +177,11 @@ public class HealthlogHandler implements IHandler {
             return;
         }
         //预警人员
-        if (tbVenues == null) {
+        if (channel == null) {
             log.error("设备未绑定场所,不进行预警==========");
             return;
         }
-        List<TbManager> managers = tbManagerService.findAlarmPersonByVenuesId(tbVenues.getPId());
+        List<TbManager> managers = tbManagerService.findAlarmPersonByVenuesId(channel.getPId());
         managers = managers.stream().filter(tbManager -> StrUtil.isNotEmpty(tbManager.getOpenid())).collect(Collectors.toList());
         double minTemperature = SpCfgUtil.getMinTemperature();
         String healthStatus = dto.getHealth_status();
@@ -197,9 +200,9 @@ public class HealthlogHandler implements IHandler {
         if (StrUtil.isNotEmpty(healthStatus) && !healthStatus.equals(TbPersonVisitRecord.HealthEnum.GREEN.getStatus())) {
             log.info("发送健康码异常提醒============");
             // todo 黄码,红码预警
-            MsgDataBO msgDataBO = new MsgDataBO("您收到一条人员健康码异常提醒", dto.getName(), now, tbTerminal.getName(), healthStatus, tbVenues.getName(), "请及时处理");
+            MsgDataBO msgDataBO = new MsgDataBO("您收到一条人员健康码异常提醒", dto.getName(), now, tbTerminal.getName(), healthStatus, channel.getName(), "请及时处理");
             //todo 触发体温预警
-            String smsContent = "[" + SpCfgUtil.getSmsSign() + "]" + tbDept.getName() + tbPersonFiling.getName() + "人员在" + tbVenues.getName() + "核验结果为" + healthStatus + ",请马上介入处置(核验时间:" + DateUtil.now() + ")";
+            String smsContent = "[" + SpCfgUtil.getSmsSign() + "]" + tbDept.getName() + tbPersonFiling.getName() + "人员在" + channel.getName() + "核验结果为" + healthStatus + ",请马上介入处置(核验时间:" + DateUtil.now() + ")";
             managers.forEach(tbManager -> {
                 if (myConfig.isSmsEnable()) {
                     duanXinBaoSMSService.sendSMS(tbManager.getPhone(), smsContent);
@@ -212,11 +215,11 @@ public class HealthlogHandler implements IHandler {
         }
     }
 
-    private void openGate(Long gateTerminalId, Long venuesId) {
+    private void openGate(Long gateTerminalId, Long channelId) {
         try {
             tbGateTerminalService.open(gateTerminalId);
-            String recordId = RedisUtil.get("record:" + venuesId);
-            RedisUtil.del("record:" + venuesId);
+            String recordId = RedisUtil.get("record:" + channelId);
+            RedisUtil.del("record:" + channelId);
             tbCarVisitRecordService.updatePass(Long.valueOf(recordId));
         } catch (Exception e) {
             log.error("开闸失败:{}", e.getMessage());

+ 2 - 1
sp-core/src/main/java/com/pj/current/satoken/AuthConst.java

@@ -43,5 +43,6 @@ public final class AuthConst {
 	
 	/** 在 SaSession 上存储 角色id 使用的key */
 	public static final String ROLE_ID_KEY = "ROLE_ID";		   
-	
+	public static final String SUPER_DEPARTMENT_ID = "1";
+
 }

+ 27 - 20
sp-core/src/main/java/com/pj/current/satoken/StpUserUtil.java

@@ -43,8 +43,34 @@ public class StpUserUtil {
         }
     }
 
+    public static void setDepartmentId(String departmentId) {
+        String key = "department:" + StpUtil.getLoginIdAsString();
+        if (StrUtil.isNotEmpty(departmentId)) {
+            RedisUtil.set(key, departmentId);
+        }
+    }
+
+    public static String getDepartmentId() {
+        String key = "department:" + StpUtil.getLoginIdAsString();
+        return RedisUtil.get(key);
+    }
+
+    public static Long getDeptId() {
+        String key = "dept:" + StpUtil.getLoginIdAsString();
+        String deptId = RedisUtil.get(key);
+        return Long.valueOf(deptId);
+    }
+
+
+    public static boolean isAdmin() {
+        String key = "dept:" + StpUtil.getLoginIdAsString();
+        String deptId = RedisUtil.get(key);
+        return StrUtil.equals(deptId, AuthConst.SUPER_DEPARTMENT_ID);
+    }
+
     /**
      * 内部 临时
+     *
      * @param type
      */
     public static void setMiniUserType(Integer type) {
@@ -54,6 +80,7 @@ public class StpUserUtil {
 
     /**
      * 是否是内部人员
+     *
      * @return
      */
     public static boolean isInnerMiniUser() {
@@ -62,26 +89,6 @@ public class StpUserUtil {
         return TbMiniUser.TypeEnum.INTERIOR_TYPE.getType().toString().equals(type);
     }
 
-    /**
-     * 是否是管理组织
-     * @param type
-     */
-    public static void setAdminType(String type) {
-        String key = "adminType:" + StpUtil.getLoginIdAsString();
-        RedisUtil.set(key, type);
-    }
-
-    public static boolean isSuperAdmin() {
-        String key = "adminType:" + StpUtil.getLoginIdAsString();
-        return Integer.parseInt(RedisUtil.get(key)) == 1;
-    }
-
-
-    public static Long getDeptId() {
-        String key = "dept:" + StpUtil.getLoginIdAsString();
-        String deptId = RedisUtil.get(key);
-        return Long.valueOf(deptId);
-    }
 
     public static void setAdmin(String name, String phone) {
         String key = "login_user:" + StpUtil.getLoginIdAsString();

+ 4 - 1
sp-core/src/main/java/com/pj/project/sp_admin/SpAdmin.java

@@ -25,9 +25,11 @@ public class SpAdmin implements Serializable  {
 	/** admin名称 */
 	public String name;	
 	public String nickname;
+	@Deprecated
 	private Long deptId;
 	private Integer superAdmin;
 
+	private String departmentId;
 	/** 头像地址 */
 	public String avatar;	
 	
@@ -70,7 +72,8 @@ public class SpAdmin implements Serializable  {
 	/** 所属角色名称   */
 	private String roleName;
 
-	private String deptName;
+
+	private String departmentName;
 
 
 	/** 防止密码被传递到前台  */

+ 3 - 2
sp-core/src/main/java/com/pj/project/sp_admin/SpAdminMapper.java

@@ -77,9 +77,10 @@ public interface SpAdminMapper {
 
     void bindUser(SpAdmin spAdmin);
 
-    void updateDept(@Param("id")Long id, @Param("deptId")String deptId);
 
     void removeByPhone(@Param("phone")String phone);
 
-	void updateDept(SpAdmin spAdmin);
+
+
+    void updateDepartment(@Param("id")Long id,@Param("departmentId") String departmentId);
 }

+ 10 - 9
sp-core/src/main/java/com/pj/project/sp_admin/SpAdminMapper.xml

@@ -6,8 +6,8 @@
 	<!-- 增 -->
 	<insert id="add">
 		insert into
-		sp_admin(name, avatar,nickname,dept_id, dept_name,super_admin, phone, role_id, create_by_aid, create_time)
-		values (#{name}, #{avatar},#{nickname},#{deptId}, #{deptName},#{superAdmin}, #{phone}, #{roleId}, #{createByAid}, now())
+		sp_admin(name,department_id, avatar,nickname,dept_id, dept_name,super_admin, phone, role_id, create_by_aid, create_time)
+		values (#{name},#{departmentId}, #{avatar},#{nickname},#{deptId}, #{deptName},#{superAdmin}, #{phone}, #{roleId}, #{createByAid}, now())
 	</insert>
 
 
@@ -45,9 +45,9 @@
 	<resultMap id="model" type="com.pj.project.sp_admin.SpAdmin">
 		<result property="id" column="id" />
 		<result property="name" column="name" />
+		<result property="departmentId" column="department_id" />
 		<result property="deptId" column="dept_id" />
 		<result property="superAdmin" column="super_admin" />
-        <result property="deptName" column="dept_name" />
 		<result property="avatar" column="avatar" />
 		<result property="password" column="password" />
 		<!-- <result property="pw" column="pw" /> -->
@@ -65,8 +65,9 @@
 	<!-- 查询sql -->
 	<sql id="select_sql">
 		select *,
-		(select name from sp_role where id = sp_admin.role_id) as role_name
-		from sp_admin 
+		(select name from sp_role where id = sp_admin.role_id) as role_name,
+		(select name from tb_department where id = sp_admin.department_id) as departmentName
+		from sp_admin
 	</sql>
 
 
@@ -94,8 +95,7 @@
 		<include refid="select_sql"></include>
 		where 1=1
 		<if test=' this.has("id")  '>and id = #{id} </if>
-		<if test=' this.has("deptId")  '>and dept_id = #{deptId} </if>
-
+		<if test=' this.has("departmentId")  '>and department_id = #{departmentId} </if>
 		<if test=' this.has("name")  '>and name like concat('%', #{name}, '%')  </if>
 		<if test=' this.has("roleId")  '>and role_id = #{roleId} </if>
 		order by 
@@ -119,8 +119,9 @@
     <update id="bindUser">
 		update sp_admin set openid=#{openid},bind=1,bind_time=now() where id=#{id}
 	</update>
-    <update id="updateDept">
-		update sp_admin set dept_id=#{deptId},dept_name=#{deptName},super_admin=#{superAdmin} where id=#{id}
+
+	<update id="updateDepartment">
+		update sp_admin set department_id=#{departmentId} where id=#{id}
 	</update>
 
 

+ 11 - 28
sp-core/src/main/java/com/pj/project/sp_admin/SpAdminService.java

@@ -67,7 +67,6 @@ public class SpAdminService {
         // 创建人,为当前账号
         admin.setCreateByAid(StpUtil.getLoginIdAsLong());
         // 开始添加
-        handlerDept(admin, admin.getDeptId());
         spAdminMapper.add(admin);
         // 获取主键
         long id = SP.publicMapper.getPrimarykey();
@@ -79,21 +78,6 @@ public class SpAdminService {
     }
 
 
-    public void updateDept(Long id, Long deptId) {
-        SpAdmin spAdmin = spAdminMapper.getById(id);
-        handlerDept(spAdmin, deptId);
-        spAdminMapper.updateDept(spAdmin);
-    }
-
-    private void handlerDept(SpAdmin spAdmin, Long deptId) {
-        int superAdmin = 0;
-        TbDept tbDept = tbDeptService.getById(deptId);
-        if (TbDept.AdminTypeEnum.ADMIN_TYPE.getType().equals(tbDept.getAdminType())) {
-            superAdmin = 1;
-        }
-        spAdmin.setDeptName(tbDept.getName()).setSuperAdmin(superAdmin);
-    }
-
     /**
      * 绑定用户
      *
@@ -119,8 +103,8 @@ public class SpAdminService {
         if (TbMiniUser.TypeEnum.INTERIOR_TYPE.getType().equals(type)) {
             SpAdmin spAdmin;
             if (PhoneUtil.isPhone(key)) {
-                spAdmin=spAdminMapper.getByPhone(key);
-            }else {
+                spAdmin = spAdminMapper.getByPhone(key);
+            } else {
                 spAdmin = spAdminMapper.getByName(key);
             }
             if (spAdmin == null) {
@@ -144,13 +128,9 @@ public class SpAdminService {
             }
             return AjaxJson.getSuccessData(tbMiniUserService.buildToken(tbMiniUser));
         } else {
-            if (tbMiniUser == null) {
-                tbMiniUser = createMiniUser(key, openid, name);
-                String md5Password = SystemObject.getPasswordMd5(tbMiniUser.getSpAdminId(), password);
-                tbMiniUser.setPassword(md5Password);
-            } else {
-                tbMiniUser.setOpenid(openid);
-            }
+            tbMiniUser = createMiniUser(key, openid, name);
+            String md5Password = SystemObject.getPasswordMd5(tbMiniUser.getSpAdminId(), password);
+            tbMiniUser.setPassword(md5Password);
             tbMiniUser.setLastLoginTime(new Date());
             tbMiniUserService.updateById(tbMiniUser);
             return AjaxJson.getSuccessData(tbMiniUserService.buildToken(tbMiniUser));
@@ -162,7 +142,7 @@ public class SpAdminService {
         TbDept dept = tbDeptService.findTheDept(TbDept.AdminTypeEnum.TEMP_TYPE.getType());
         TbMiniUser tbMiniUser = new TbMiniUser();
         tbMiniUser.setCreateTime(new Date()).setSpAdminId(RandomUtil.randomLong(100000, 999999))
-                .setOpenid(openid).setDeptId(dept.getId() + "").setSuperAdmin(0)
+                .setOpenid(openid).setDeptId(dept.getId() + "").setSuperAdmin(0).setDepartmentId("-1")
                 .setPhone(key).setType(TbMiniUser.TypeEnum.TEMPORARY_TYPE.getType())
                 .setName(name).setUsername(key);
         tbMiniUserService.save(tbMiniUser);
@@ -172,11 +152,14 @@ public class SpAdminService {
     private TbMiniUser buildMiniUser(SpAdmin spAdmin, String openid) {
         TbMiniUser tbMiniUser = new TbMiniUser();
         tbMiniUser.setCreateTime(new Date()).setSuperAdmin(spAdmin.getSuperAdmin())
-                .setDeptId(spAdmin.getDeptId() + "")
                 .setOpenid(openid).setSpAdminId(spAdmin.getId())
-                .setPhone(spAdmin.getPhone())
+                .setPhone(spAdmin.getPhone()).setDepartmentId(spAdmin.getDepartmentId())
                 .setType(2)
                 .setName(spAdmin.getNickname());
         return tbMiniUser;
     }
+
+    public void updateDepartment(Long id, String departmentId) {
+        spAdminMapper.updateDepartment(id, departmentId);
+    }
 }

+ 12 - 2
sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFiling.java

@@ -46,10 +46,16 @@ public class TbCarFiling extends Model<TbCarFiling> implements Serializable {
 	 *  
 	 */
 	@TableId(type = IdType.AUTO)
-	private Long id;	
+	private Long id;
 
+	private String departmentId;
 	/**
-	 * 部门ID 
+	 * 场所ID
+	 */
+	private Long venuesId;
+
+	/**
+	 * 组织ID
 	 */
 	private Long deptId;	
 	private String deptName;
@@ -135,7 +141,11 @@ public class TbCarFiling extends Model<TbCarFiling> implements Serializable {
 	private Date judgeTime;
 	private String judgeBy;
 
+	@TableField(exist = false)
+	private String departmentName;
 
+	@TableField(exist = false)
+	private String venuesName;
 
 	@TableField(exist = false)
 	private String driverIdCardStr;

+ 8 - 4
sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFilingMapper.xml

@@ -10,6 +10,7 @@
 		<resultMap id="model" type="com.pj.project.tb_car_filing.TbCarFiling">
 				<result property="id" column="id" />
 				<result property="deptId" column="dept_id" />
+				<result property="venuesId" column="venues_id" />
 				<result property="carNo" column="car_no" />
 				<result property="type" column="type" />
 				<result property="driverName" column="driver_name" />
@@ -27,14 +28,15 @@
 
 	<!-- 公共查询sql片段 -->
 	<sql id="select_sql">
-		select *
+		select *,(select name from tb_department where  id=tb_car_filing.department_id) as departmentName,
+			(select name from tb_venues where id=tb_car_filing.venues_id) as venuesName
 		from tb_car_filing
 	</sql>
 
 
 
 	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
-	<select id="getList" resultMap="model">
+	<select id="getList" resultType="com.pj.project.tb_car_filing.TbCarFiling">
 		<include refid="select_sql"></include>
 		<where>
 			<if test=' this.has("id") '> and id = #{id} </if>
@@ -81,11 +83,13 @@
     <select id="getForWx" resultType="com.pj.project.tb_car_filing.TbCarFiling">
 		select * from (( SELECT a.* FROM tb_car_filing a, re_mini_user_car_filing b
 		WHERE a.id = b.filing_car_id
-		AND b.mini_user_id = #{loginId}
+		AND b.mini_user_id = #{miniUserId}
 		)
 		UNION ALL
 		( SELECT * FROM tb_car_filing where 1=1
-		<if test=' this.has("deptId") '> and dept_id = #{deptId} </if>
+		<if test="departmentId !=null and departmentId !=''">
+			and department_id=#{departmentId}
+		</if>
 		)) c
 		order by c.create_time
 	</select>

+ 25 - 12
sp-core/src/main/java/com/pj/project/tb_car_filing/TbCarFilingService.java

@@ -28,6 +28,8 @@ import com.pj.project.tb_person_filing.TbPersonFiling;
 import com.pj.project.tb_person_filing.TbPersonFilingService;
 import com.pj.project.tb_terminal.TbTerminal;
 import com.pj.project.tb_terminal.TbTerminalService;
+import com.pj.project.tb_venues.TbVenues;
+import com.pj.project.tb_venues.TbVenuesService;
 import com.pj.project4sp.spcfg.SpCfgUtil;
 import com.pj.project4sp.uploadfile.UploadConfig;
 import lombok.extern.slf4j.Slf4j;
@@ -58,6 +60,8 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
     private TbDeptService tbDeptService;
     @Resource
     private TbPersonFilingService tbPersonFilingService;
+    @Resource
+    private TbVenuesService tbVenuesService;
 
 
 
@@ -71,15 +75,19 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
             throw new BusinessException("身份证不正确");
         }
         //原来是否录入过
-        TbCarFiling checkFiling = this.findByDriverIdCar(idCarNo);
-        if (checkFiling != null) {
-            throw new BusinessException("司机已备案其他车辆");
-        }
+        List<TbCarFiling> carFilingList = this.findByDriverIdCar(idCarNo);
+        carFilingList.forEach(tbCarFiling -> {
+            if (tbCarFiling != null&&StrUtil.equals(tbCarFiling.getCarNo(),carNo)) {
+                throw new BusinessException("司机已备案该车辆");
+            }
+        });
         TbCarFiling carNoCheckFiling = this.findByCarNo(carNo);
         if (carNoCheckFiling != null) {
             throw new BusinessException("车辆已备案");
         }
         t.setCarNo(carNo);
+        TbVenues tbVenues = tbVenuesService.getById(t.getVenuesId());
+        t.setDepartmentId(tbVenues.getDepartmentId());
         handlerDriver(t);
         this.save(t);
     }
@@ -108,7 +116,8 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
                     .setPhoto(tbCarFiling.getDriverPhoto())
                     .setDeptName(tbDept.getName())
                     .setType(tbCarFiling.getType())
-                    .setPin(idCarNo)
+                    .setPin(idCarNo).setDepartmentId(tbCarFiling.getDepartmentId())
+                    .setVenuesId(tbCarFiling.getVenuesId())
                     .setIdCard(tbCarFiling.getDriverIdCard())
                     .setName(tbCarFiling.getDriverName())
                     .setPhone(tbCarFiling.getDriverContact());
@@ -127,10 +136,10 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
      * @param idCarNo
      * @return
      */
-    public TbCarFiling findByDriverIdCar(String idCarNo) {
+    public List<TbCarFiling> findByDriverIdCar(String idCarNo) {
         QueryWrapper<TbCarFiling> ew = new QueryWrapper<>();
         ew.eq("driver_id_card", idCarNo);
-        return getOne(ew);
+        return list(ew);
     }
 
 
@@ -163,6 +172,8 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
             TbDept tbDept = tbDeptService.getById(t.getDeptId());
             t.setDeptName(tbDept.getName());
         }
+        TbVenues tbVenues = tbVenuesService.getById(t.getVenuesId());
+        t.setDepartmentId(tbVenues.getDepartmentId());
         String idCarNo = t.getDriverIdCard();
         String oldIdCardNo = db.getDriverIdCard();
         //改了身份证或者人脸或者姓名
@@ -171,15 +182,16 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
                 || !StrUtil.equals(t.getDriverName(), db.getDriverName())
         ) {
             //原来是否录入过
-            TbCarFiling checkFiling = this.findByDriverIdCar(idCarNo);
-            if (checkFiling != null) {
-                throw new BusinessException("司机已备案其他车辆");
-            }
+//            TbCarFiling checkFiling = this.findByDriverIdCar(idCarNo);
+//            if (checkFiling != null) {
+//                throw new BusinessException("司机已备案其他车辆");
+//            }
             //更改备案人信息
             TbPersonFiling tbPersonFiling = tbPersonFilingService.findByIdCard(oldIdCardNo);
             if (tbPersonFiling != null) {
                 tbPersonFiling.setIdCard(idCarNo)
-                        .setName(t.getDriverName())
+                        .setName(t.getDriverName()).setDepartmentId(t.getDepartmentId())
+                        .setVenuesId(t.getVenuesId())
                         .setPhone(t.getDriverContact());
                 tbPersonFilingService.updateById(tbPersonFiling);
             }
@@ -188,6 +200,7 @@ public class TbCarFilingService extends ServiceImpl<TbCarFilingMapper, TbCarFili
             tbPersonFilingService.issued(idCarNo);
         }
         t.setCarNo(t.getCarNo().toUpperCase());
+
         this.updateById(t);
     }
 

+ 4 - 1
sp-core/src/main/java/com/pj/project/tb_car_visit_record/TbCarVisitRecord.java

@@ -46,6 +46,8 @@ public class TbCarVisitRecord extends Model<TbCarVisitRecord> implements Seriali
 	@TableId(type = IdType.AUTO)
 	private Long id;	
 
+	private String departmentId;
+	private Long venuesId;
 	/**
 	 * 通道 
 	 */
@@ -98,8 +100,9 @@ public class TbCarVisitRecord extends Model<TbCarVisitRecord> implements Seriali
 	 * 方式(1=手动,2=自动) 
 	 */
 	private Integer recordType=1;
-
+	@TableField(fill = FieldFill.INSERT)
 	private Date createTime;
+	@TableField(fill = FieldFill.UPDATE)
 	private Date updateTime;
 	/**
 	 * 是否允许通行

+ 2 - 6
sp-core/src/main/java/com/pj/project/tb_car_visit_record/TbCarVisitRecordService.java

@@ -46,10 +46,9 @@ public class TbCarVisitRecordService extends ServiceImpl<TbCarVisitRecordMapper,
      * 增
      */
     public void add(TbCarVisitRecord t) {
-        Date now = new Date();
         TbVenues tbVenues = tbVenuesService.getById(t.getChannelId());
-        t.setRecordType(1).setCreateTime(now).setCarNo(t.getCarNo().toUpperCase())
-                .setUpdateTime(now)
+        t.setRecordType(1).setCarNo(t.getCarNo().toUpperCase())
+                .setDepartmentId(tbVenues.getDepartmentId())
                 .setChannel(tbVenues.getName());
         this.save(t);
     }
@@ -65,11 +64,8 @@ public class TbCarVisitRecordService extends ServiceImpl<TbCarVisitRecordMapper,
      * 改
      */
     public void update(TbCarVisitRecord t) {
-        Date now=new Date();
-        t.setUpdateTime(new Date());
         TbVenues tbVenues = tbVenuesService.getById(t.getChannelId());
         t.setCarNo(t.getCarNo().toUpperCase())
-                .setUpdateTime(now)
                 .setChannel(tbVenues.getName());
         this.updateById(t);
     }

+ 109 - 0
sp-core/src/main/java/com/pj/project/tb_department/TbDepartment.java

@@ -0,0 +1,109 @@
+package com.pj.project.tb_department;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_customer -- 部门管理
+ * @author qzyReal 
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbDepartment.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbDepartment extends Model<TbDepartment> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_department";
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-tb-department";
+	public static final String PERMISSION_CODE_ADD = "tb-department-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-department-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-department-del";
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 主键 
+	 */
+	@TableId(type = IdType.AUTO)
+	private String id;	
+
+	/**
+	 * 名称 
+	 */
+	private String name;	
+
+	/**
+	 * 联系号码 
+	 */
+	private String phone;	
+
+	/**
+	 * 负责人 
+	 */
+	private String dutyPeople;	
+
+	/**
+	 * 地址id 
+	 */
+	private String addressIds;	
+
+	/**
+	 * 地址 
+	 */
+	private String addressStr;	
+
+	/**
+	 * 状态(0=否,1=是) 
+	 */
+	private Integer status;
+
+	/**
+	 * 创建时间 
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
+
+	/**
+	 * 更新时间 
+	 */
+	@TableField(fill = FieldFill.UPDATE)
+	private Date updateTime;
+
+	/**
+	 *  
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;	
+
+	/**
+	 *  
+	 */
+	@TableField(fill = FieldFill.UPDATE)
+	private String updateBy;	
+
+
+
+
+
+	
+
+
+}

+ 99 - 0
sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentController.java

@@ -0,0 +1,99 @@
+package com.pj.project.tb_department;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.utils.so.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_customer -- 客户管理
+ *
+ * @author qzyReal
+ */
+@RestController
+@RequestMapping("/TbDepartment/")
+public class TbDepartmentController {
+
+    /**
+     * 底层 Service 对象
+     */
+    @Autowired
+    TbDepartmentService tbDepartmentService;
+
+
+
+    /**
+     * 增
+     */
+    @RequestMapping("add")
+    @SaCheckPermission(TbDepartment.PERMISSION_CODE_ADD)
+    public AjaxJson add(TbDepartment t) {
+        t.setStatus(0);
+        tbDepartmentService.add(t);
+        return AjaxJson.getSuccessData(t);
+    }
+
+    /**
+     * 删
+     */
+    @RequestMapping("delete")
+    @SaCheckPermission(TbDepartment.PERMISSION_CODE_DEL)
+    public AjaxJson delete(String id) {
+        tbDepartmentService.delete(id);
+        return AjaxJson.getSuccess();
+    }
+
+
+    /**
+     * 改
+     */
+    @RequestMapping("update")
+    @SaCheckPermission(TbDepartment.PERMISSION_CODE_EDIT)
+    public AjaxJson update(TbDepartment t) {
+        tbDepartmentService.updateById(t);
+        return AjaxJson.getSuccess();
+    }
+
+    /**
+     * 查 - 根据id
+     */
+    @RequestMapping("getById")
+    public AjaxJson getById(String id) {
+        TbDepartment t = tbDepartmentService.getById(id);
+        return AjaxJson.getSuccessData(t);
+    }
+
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    @RequestMapping("getList")
+    public AjaxJson getList() {
+        SoMap so = SoMap.getRequestSoMap();
+        if (!StpUserUtil.isAdmin()){
+            so.put("id",StpUserUtil.getDeptId());
+        }
+        List<TbDepartment> list = tbDepartmentService.getList(so.startPage());
+        return AjaxJson.getPageData(so.getDataCount(), list);
+    }
+
+
+    /**
+     * 改 - 状态(0=否,1=是)
+     */
+    @RequestMapping("updateStatus")
+    @SaCheckPermission(TbDepartment.PERMISSION_CODE)
+    public AjaxJson updateStatus(String id, String value) {
+        int line = SP.publicMapper.updateColumnById(TbDepartment.TABLE_NAME, "status", value, id);
+        return AjaxJson.getByLine(line);
+    }
+
+
+}

+ 28 - 0
sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentMapper.java

@@ -0,0 +1,28 @@
+package com.pj.project.tb_department;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+	import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* Mapper: tb_customer -- 客户管理
+* @author qzyReal
+*/
+
+@Mapper
+@Repository
+public interface TbDepartmentMapper extends BaseMapper <TbDepartment> {
+
+/**
+* 查集合 - 根据条件(参数为空时代表忽略指定条件)
+* @param so 参数集合
+* @return 数据列表
+*/
+List<TbDepartment> getList(SoMap so);
+
+
+}

+ 74 - 0
sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pj.project.tb_department.TbDepartmentMapper">
+
+
+	<!-- ================================== 查询相关 ================================== -->
+			<!-- select id, name, phone, duty_people, address_ids, address_str, status, create_time, update_time, create_by, update_by from tb_customer  -->
+
+		<!-- 通用映射:手动模式 -->
+		<resultMap id="model" type="com.pj.project.tb_department.TbDepartment">
+				<result property="id" column="id" />
+				<result property="name" column="name" />
+				<result property="phone" column="phone" />
+				<result property="dutyPeople" column="duty_people" />
+				<result property="addressIds" column="address_ids" />
+				<result property="addressStr" column="address_str" />
+				<result property="status" column="status" />
+				<result property="createTime" column="create_time" />
+				<result property="updateTime" column="update_time" />
+				<result property="createBy" column="create_by" />
+				<result property="updateBy" column="update_by" />
+		</resultMap>
+
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select *
+		from tb_department
+	</sql>
+
+
+
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("name") '> and name like concat('%',#{name} ,'%')</if>
+			<if test=' this.has("phone") '> and phone like concat('%',#{phone} ,'%') </if>
+			<if test=' this.has("dutyPeople") '> and duty_people =like concat('%',#{dutyPeople} ,'%') </if>
+			<if test=' this.has("addressIds") '>and address_ids = #{addressIds}</if>
+			<if test=' this.has("addressStr") '>and address_str = #{addressStr}</if>
+			<if test=' this.has("status") '> and status = #{status} </if>
+			<if test=' this.has("createTime") '> and create_time = #{createTime} </if>
+			<if test=' this.has("updateTime") '> and update_time = #{updateTime} </if>
+			<if test=' this.has("createBy") '> and create_by = #{createBy} </if>
+			<if test=' this.has("updateBy") '> and update_by = #{updateBy} </if>
+		</where>
+		order by
+		<choose>
+						<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> name desc </when>
+			<when test='sortType == 3'> phone desc </when>
+			<when test='sortType == 4'> duty_people desc </when>
+			<when test='sortType == 5'> address_ids desc </when>
+			<when test='sortType == 6'> address_str desc </when>
+			<when test='sortType == 7'> status desc </when>
+			<when test='sortType == 8'> create_time desc </when>
+			<when test='sortType == 9'> update_time desc </when>
+			<when test='sortType == 10'> create_by desc </when>
+			<when test='sortType == 11'> update_by desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+
+
+
+
+
+
+
+
+
+
+</mapper>

+ 60 - 0
sp-core/src/main/java/com/pj/project/tb_department/TbDepartmentService.java

@@ -0,0 +1,60 @@
+package com.pj.project.tb_department;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pj.project.sp_admin.SpAdminMapper;
+import com.pj.project.tb_init_permission.TbInitPermission;
+import com.pj.project.tb_init_permission.TbInitPermissionService;
+import com.pj.project4sp.SP;
+import com.pj.utils.sg.AjaxError;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.so.*;
+
+import javax.annotation.Resource;
+
+/**
+ * Service: tb_customer -- 客户管理
+ *
+ * @author qzyReal
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbDepartmentService extends ServiceImpl<TbDepartmentMapper, TbDepartment> implements IService<TbDepartment> {
+
+    /**
+     * 底层 Mapper 对象
+     */
+    @Autowired
+    TbDepartmentMapper tbCustomerMapper;
+
+
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    List<TbDepartment> getList(SoMap so) {
+        return tbCustomerMapper.getList(so);
+    }
+
+
+    public void delete(String id) {
+        TbDepartment tbDepartment = this.getById(id);
+        if (tbDepartment.getStatus() == 1) {
+            throw new AjaxError("已被锁定,不可删除");
+        }
+        this.removeById(id);
+    }
+
+    /**
+     * 新增企业
+     *
+     * @param t
+     */
+    public void add(TbDepartment t) {
+        this.save(t);
+
+    }
+}

+ 0 - 3
sp-core/src/main/java/com/pj/project/tb_dept/TbDeptController.java

@@ -89,9 +89,6 @@ public class TbDeptController {
     @RequestMapping("getList")
     public AjaxJson getList() {
         SoMap so = SoMap.getRequestSoMap();
-        if (!StpUserUtil.isSuperAdmin()) {
-            so.put("deptId",StpUserUtil.getDeptId());
-        }
         List<TbDept> list = tbDeptService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
     }

+ 13 - 4
sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminal.java

@@ -49,14 +49,18 @@ public class TbGateTerminal extends Model<TbGateTerminal> implements Serializabl
 	/**
 	 * 名称 
 	 */
-	private String name;	
-
+	private String name;
+	private String departmentId;
 
 	/**
 	 * 场地id
 	 */
 	private Long venuesId;
 	/**
+	 * 通道
+	 */
+	private Long channelId;
+	/**
 	 * 进出 1 进,2出
 	 */
 	private Integer direction;
@@ -79,24 +83,29 @@ public class TbGateTerminal extends Model<TbGateTerminal> implements Serializabl
 	/**
 	 * 创建时间 
 	 */
+	@TableField(fill = FieldFill.INSERT)
 	private Date createTime;
 	/**
 	 * 创建人
 	 */
+	@TableField(fill = FieldFill.INSERT)
 	private String createBy;
+	@TableField(fill = FieldFill.UPDATE)
 	private String updateBy;
 
 	/**
 	 * 更新时间 
 	 */
+	@TableField(fill = FieldFill.UPDATE)
 	private Date updateTime;
 
 	private Date lastOnlineTime;
 
 	@TableField(exist = false)
-	private String venuesName;
-
+	private String channelName;
 
+	@TableField(exist = false)
+	private String departmentName;
 
 
 

+ 2 - 2
sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminalMapper.xml

@@ -18,8 +18,8 @@
 
 	<!-- 公共查询sql片段 -->
 	<sql id="select_sql">
-		select *,
-		(select name from tb_venues where id=tb_gate_terminal.venues_id) as venuesName
+		select *,(select name from tb_department where  id=tb_gate_terminal.department_id) as departmentName,
+		(select name from tb_venues where id=tb_gate_terminal.channel_id) as channelName
 		from tb_gate_terminal
 	</sql>
 

+ 51 - 21
sp-core/src/main/java/com/pj/project/tb_gate_terminal/TbGateTerminalService.java

@@ -101,10 +101,14 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
         if (tbGateTerminal != null) {
             throw new BusinessException("IP地址已被占用");
         }
+        Long channelId = t.getChannelId();
         String sn = getSn(ip);
-        Date now = new Date();
-        String loginId = StpUtil.getLoginIdAsString();
-        t.setSn(sn).setCreateTime(now).setUpdateTime(now).setCreateBy(loginId).setUpdateBy(loginId);
+        //通道
+        TbVenues channel = tbVenuesService.getById(channelId);
+        t.setSn(sn)
+                .setDepartmentId(channel.getDepartmentId());
+        //场地
+        t.setVenuesId(channel.getPId());
         this.save(t);
     }
 
@@ -141,7 +145,7 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
      */
     public void update(TbGateTerminal t) throws Exception {
         TbGateTerminal ipTerminal = findByIp(t.getIp());
-        if (ipTerminal!=null&&!t.getId().equals(ipTerminal.getId())) {
+        if (ipTerminal != null && !t.getId().equals(ipTerminal.getId())) {
             throw new BusinessException("IP地址已被占用");
         }
         TbGateTerminal db = this.getById(t.getId());
@@ -149,7 +153,8 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
             String sn = getSn(t.getIp());
             t.setSn(sn);
         }
-        t.setUpdateBy(StpUtil.getLoginIdAsString()).setUpdateTime(new Date());
+        TbVenues channel = tbVenuesService.getById(t.getChannelId());
+        t.setDepartmentId(channel.getDepartmentId()).setVenuesId(channel.getPId());
         this.updateById(t);
     }
 
@@ -249,11 +254,11 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
         String carNo = plateResultBean.getLicense();
         String now = DateUtil.now();
         TbCarVisitRecord carVisitRecord = saveRecord(carNo, base64Image, tbGateTerminal, 1, 0);
-        cacheResult(carNo, now, tbGateTerminal.getVenuesId(), tbGateTerminal.getId(), carVisitRecord.getId());
+        cacheResult(carNo, now, tbGateTerminal, carVisitRecord.getId());
     }
 
 
-    private void playVoice(String ip, String msg){
+    private void playVoice(String ip, String msg) {
         log.info("播放语音========:{}", msg);
         Socket socket = new Socket();
         try {
@@ -262,7 +267,7 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
             log.info("播放语音=回复=======:{}", result);
         } catch (IOException e) {
             e.printStackTrace();
-        }finally {
+        } finally {
             try {
                 socket.close();
             } catch (IOException e) {
@@ -288,7 +293,7 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
         }
         saveRecord(carNo, base64Image, tbGateTerminal, 2, 1);
         try {
-            this.playVoice(tbGateTerminal.getIp(),"一路平安");
+            this.playVoice(tbGateTerminal.getIp(), "一路平安");
             this.open(tbGateTerminal.getId());
         } catch (Exception e) {
             log.error("抬杆失败:{}", e.getMessage());
@@ -304,13 +309,14 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
      * @param direction
      */
     private TbCarVisitRecord saveRecord(String carNo, String base64Image, TbGateTerminal tbGateTerminal, Integer direction, int allowPass) {
-        Long channelId = tbGateTerminal.getVenuesId();
+        Long channelId = tbGateTerminal.getChannelId();
         Date now = new Date();
-        TbVenues tbVenues = tbVenuesService.getById(channelId);
+        TbVenues channel = tbVenuesService.getById(channelId);
+        TbVenues pVenues = tbVenuesService.getById(channel.getPId());
         TbCarVisitRecord tbCarVisitRecord = new TbCarVisitRecord();
         tbCarVisitRecord.setCarNo(carNo).setAllowPass(allowPass)
-                .setChannelId(tbGateTerminal.getVenuesId())
-                .setChannel(tbVenues.getName()).setDirection(direction)
+                .setChannelId(tbGateTerminal.getVenuesId()).setDepartmentId(pVenues.getDepartmentId())
+                .setChannel(channel.getName()).setDirection(direction).setVenuesId(pVenues.getId())
                 .setVisitTime(now).setUpdateTime(now).setCreateTime(now).setRecordType(2);
         TbCarFiling carFiling = tbCarFilingService.findByCarNo(carNo);
         if (carFiling != null) {
@@ -324,24 +330,34 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
         return tbCarVisitRecord;
     }
 
-
-    private void cacheResult(String carNo, String now, Long venuesId, Long terminalId, Long recordId) {
-
+    /**
+     * 判断是否能入场
+     *
+     * @param carNo
+     * @param now
+     * @param tbGateTerminal
+     * @param recordId
+     */
+    private void cacheResult(String carNo, String now, TbGateTerminal tbGateTerminal, Long recordId) {
+        Long channelId = tbGateTerminal.getChannelId();
         TbCarBlack tbCarBlack = tbCarBlackService.findByCarNo(carNo, now);
-        String key = "result:" + venuesId;
+        String key = "result:" + channelId;
         //是否在黑名单上
+        Long terminalId = tbGateTerminal.getId();
         ResultDTO dto = new ResultDTO(recordId, terminalId, 0);
         if (tbCarBlack != null) {
             RedisUtil.set(key, JSONUtil.toJsonStr(dto));
             log.error("黑名单车辆:{}", carNo);
             return;
         }
-        TbVenues tbVenues=  tbVenuesService.getById(venuesId);
-        if (tbVenues.getStatus()==0){
+        TbVenues channel = tbVenuesService.getById(channelId);
+        if (channel.getStatus() == 0) {
             RedisUtil.set(key, JSONUtil.toJsonStr(dto));
             log.error("防疫策略不开放:{}", carNo);
             return;
         }
+        //入口场所
+        TbVenues tbVenues = tbVenuesService.getById(channel.getPId());
         TbCarFiling tbCarFiling = tbCarFilingService.findByCarNo(carNo);
         //是否备案
         if (tbCarFiling == null) {
@@ -349,6 +365,15 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
             log.error("车辆未备案:{}", carNo);
             return;
         }
+        //备案的场所
+        TbVenues filingTbVenues=tbVenuesService.getById(tbCarFiling.getVenuesId());
+        //备案场所的等级低于入场的场所===>不给通行
+        if (filingTbVenues.getLevel()>tbVenues.getLevel()){
+            RedisUtil.set(key, JSONUtil.toJsonStr(dto));
+            log.error("备案场所等级不足,无法进入:{}", carNo);
+            return;
+        }
+
         //备案车,如果属于的组织只需要满足一个条件的直接放行
         Long deptId = tbCarFiling.getDeptId();
         TbDept tbDept = tbDeptService.getById(deptId);
@@ -365,9 +390,14 @@ public class TbGateTerminalService extends ServiceImpl<TbGateTerminalMapper, TbG
         RedisUtil.set(key, JSONUtil.toJsonStr(dto));
     }
 
-    public List<TbGateTerminal> findByVenuesId(Long venuesId) {
+    /**
+     * 通道的道闸
+     * @param channelId
+     * @return
+     */
+    public List<TbGateTerminal> findByChannelId(Long channelId) {
         QueryWrapper<TbGateTerminal> ew = new QueryWrapper<>();
-        ew.eq("venues_id", venuesId);
+        ew.lambda().eq(TbGateTerminal::getChannelId,channelId);
         return list(ew);
     }
 }

+ 55 - 0
sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermission.java

@@ -0,0 +1,55 @@
+package com.pj.project.tb_init_permission;
+
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_init_permission -- 初始化权限
+ * @author qzyReal 
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbInitPermission.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbInitPermission extends Model<TbInitPermission> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_init_permission";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-init-permission";	
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 主键 
+	 */
+	@TableId(type = IdType.AUTO)
+	private Long id;	
+
+	/**
+	 * 权限码 
+	 */
+	private String code;	
+
+
+
+
+
+	
+
+
+}

+ 87 - 0
sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionController.java

@@ -0,0 +1,87 @@
+package com.pj.project.tb_init_permission;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.utils.so.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+* Controller: tb_init_permission -- 初始化权限
+* @author qzyReal
+*/
+@RestController
+@RequestMapping("/TbInitPermission/")
+public class TbInitPermissionController {
+
+/** 底层 Service 对象 */
+@Autowired
+TbInitPermissionService tbInitPermissionService;
+
+/** 增 */
+@RequestMapping("add")
+	@SaCheckPermission(TbInitPermission.PERMISSION_CODE)
+@Transactional(rollbackFor = Exception.class)
+public AjaxJson add(TbInitPermission t){
+tbInitPermissionService.add(t);
+return AjaxJson.getSuccessData(t);
+}
+
+/** 删 */
+@RequestMapping("delete")
+	@SaCheckPermission(TbInitPermission.PERMISSION_CODE)
+public AjaxJson delete(Long id){
+tbInitPermissionService.delete(id);
+return AjaxJson.getSuccess();
+}
+
+/** 删 - 根据id列表 */
+@RequestMapping("deleteByIds")
+	@SaCheckPermission(TbInitPermission.PERMISSION_CODE)
+public AjaxJson deleteByIds(){
+List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
+	int line = SP.publicMapper.deleteByIds(TbInitPermission.TABLE_NAME, ids);
+	return AjaxJson.getByLine(line);
+	}
+
+	/** 改 */
+	@RequestMapping("update")
+		@SaCheckPermission(TbInitPermission.PERMISSION_CODE)
+	public AjaxJson update(TbInitPermission t){
+		tbInitPermissionService.update(t);
+	return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */
+	@RequestMapping("getById")
+	public AjaxJson getById(Long id){
+	TbInitPermission t = tbInitPermissionService.getById(id);
+	return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	@RequestMapping("getList")
+	public AjaxJson getList() {
+	SoMap so = SoMap.getRequestSoMap();
+		List<TbInitPermission> list = tbInitPermissionService.getList(so.startPage());
+	return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+
+
+
+
+
+
+
+
+
+
+			}

+ 28 - 0
sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionMapper.java

@@ -0,0 +1,28 @@
+package com.pj.project.tb_init_permission;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+	import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* Mapper: tb_init_permission -- 初始化权限
+* @author qzyReal
+*/
+
+@Mapper
+@Repository
+public interface TbInitPermissionMapper extends BaseMapper <TbInitPermission> {
+
+/**
+* 查集合 - 根据条件(参数为空时代表忽略指定条件)
+* @param so 参数集合
+* @return 数据列表
+*/
+List<TbInitPermission> getList(SoMap so);
+
+
+}

+ 47 - 0
sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pj.project.tb_init_permission.TbInitPermissionMapper">
+
+
+	<!-- ================================== 查询相关 ================================== -->
+			<!-- select id, code from tb_init_permission  -->
+
+		<!-- 通用映射:手动模式 -->
+		<resultMap id="model" type="com.pj.project.tb_init_permission.TbInitPermission">
+				<result property="id" column="id" />
+				<result property="code" column="code" />
+		</resultMap>
+
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select *
+		from tb_init_permission
+	</sql>
+
+
+
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+						<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("code") '> and code = #{code} </if>
+		</where>
+		order by
+		<choose>
+						<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> code desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+
+
+
+
+
+
+
+
+
+
+</mapper>

+ 49 - 0
sp-core/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionService.java

@@ -0,0 +1,49 @@
+package com.pj.project.tb_init_permission;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.so.*;
+
+/**
+ * Service: tb_init_permission -- 初始化权限
+ * @author qzyReal 
+ */
+@Service
+public class TbInitPermissionService extends ServiceImpl<TbInitPermissionMapper, TbInitPermission> implements IService<TbInitPermission>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbInitPermissionMapper tbInitPermissionMapper;
+
+
+	/** 增 */
+	void add(TbInitPermission t){
+	this.save( t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+	this.removeById(id);
+	}
+
+	/** 改 */
+	void update(TbInitPermission t){
+	this.updateById(t);
+	}
+
+	/** 查 */
+	TbInitPermission getById(Long id){
+	return super.getById(id);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	List<TbInitPermission> getList(SoMap so) { 
+		return tbInitPermissionMapper.getList(so);	
+	}
+	
+
+}

+ 1 - 0
sp-core/src/main/java/com/pj/project/tb_mini_user/TbMiniUser.java

@@ -47,6 +47,7 @@ public class TbMiniUser extends Model<TbMiniUser> implements Serializable {
 
 
     private Long spAdminId;
+    private String departmentId;
     /**
      * openid
      */

+ 2 - 2
sp-core/src/main/java/com/pj/project/tb_mini_user/TbMiniUserService.java

@@ -100,11 +100,11 @@ public class TbMiniUserService extends ServiceImpl<TbMiniUserMapper, TbMiniUser>
         this.updateById(tbMiniUser);
         StpUtil.login(tbMiniUser.getSpAdminId());
         tbMiniUser.setToken(StpUtil.getTokenValue());
-        StpUserUtil.setDeptId(tbMiniUser.getDeptId() + "");
         StpUserUtil.setAdmin(tbMiniUser.getName(), tbMiniUser.getPhone());
         StpUserUtil.setMiniUserId(tbMiniUser.getId());
         StpUserUtil.setMiniUserType(tbMiniUser.getType());
-        StpUserUtil.setAdminType(tbMiniUser.getSuperAdmin() + "");
+        StpUserUtil.setDeptId(tbMiniUser.getDeptId());
+        StpUserUtil.setDepartmentId(tbMiniUser.getDepartmentId());
         return AjaxJson.getSuccessData(tbMiniUser);
     }
 

+ 5 - 3
sp-core/src/main/java/com/pj/project/tb_person_filing/ImportPersonBO.java

@@ -10,12 +10,14 @@ public class ImportPersonBO implements Serializable {
     @ExcelProperty(index = 0)
     private String deptName;
     @ExcelProperty(index = 1)
-    private String name;
+    private String venuesName;
     @ExcelProperty(index = 2)
-    private String phone;
+    private String name;
     @ExcelProperty(index = 3)
-    private String idCard;
+    private String phone;
     @ExcelProperty(index = 4)
+    private String idCard;
+    @ExcelProperty(index = 5)
     private String type;
 
 

+ 57 - 39
sp-core/src/main/java/com/pj/project/tb_person_filing/ImportPersonListener.java

@@ -1,16 +1,15 @@
 package com.pj.project.tb_person_filing;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.PhoneUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
 
-import com.pj.current.global.BusinessException;
-import com.pj.current.satoken.StpUserUtil;
 import com.pj.project.tb_dept.TbDept;
 import com.pj.project.tb_dept.TbDeptService;
+import com.pj.project.tb_venues.TbVenues;
+import com.pj.project.tb_venues.TbVenuesService;
 import com.pj.utils.sg.AjaxError;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
@@ -19,6 +18,8 @@ import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
 
 @Component
 public class ImportPersonListener extends AnalysisEventListener<ImportPersonBO> {
@@ -28,6 +29,8 @@ public class ImportPersonListener extends AnalysisEventListener<ImportPersonBO>
 
     @Resource
     private TbDeptService tbDeptService;
+    @Resource
+    private TbVenuesService tbVenuesService;
 
 
     public List<ImportPersonBO> list = new ArrayList<>();
@@ -42,41 +45,56 @@ public class ImportPersonListener extends AnalysisEventListener<ImportPersonBO>
     @Override
     public void doAfterAllAnalysed(AnalysisContext analysisContext) {
         int index = 1;
-        List<TbPersonFiling>personFilings=new ArrayList<>();
-        for (ImportPersonBO importPersonBO : list) {
-            String deptName = importPersonBO.getDeptName();
-            String name = importPersonBO.getName();
-            if (StrUtil.isEmpty(name)) {
-                throw new AjaxError("第" + index + "行姓名不能为空");
-            }
-            String phone = importPersonBO.getPhone();
-            if (!PhoneUtil.isPhone(phone)) {
-                throw new AjaxError("第" + index + "行手机号码不正确");
-            }
-            String idCard = importPersonBO.getIdCard();
-            if (!IdcardUtil.isValidCard(idCard)) {
-                throw new AjaxError("第" + index + "行身份证号不正确");
-            }
-            TbDept tbDept = tbDeptService.findByName(deptName);
-            if (tbDept == null) {
-                throw new AjaxError("组织不存在");
-            }
-            TbPersonFiling tbPersonFiling = tbPersonFilingService.findByIdCard(idCard);
-            if (tbPersonFiling == null) {
-                tbPersonFiling = new TbPersonFiling();
-                tbPersonFiling.setCreateTime(new Date()).setCreateBy(StpUserUtil.getAdminName()).setUpdateTime(new Date());
-            }
-            if (TbDept.NeedJudgeEnum.AUTO_JUDGE.getType().equals(tbDept.getNeedJudge())) {
-                tbPersonFiling.setJudgeState(1)
-                        .setJudgeTime(new Date())
-                        .setJudgeBy("平台自动审核");
-            }
-            tbPersonFiling.setType(importPersonBO.getType().equals("内部") ? 2 : 1).setName(name)
-            .setPhone(phone).setPin(idCard).setIdCard(idCard).setDeptId(tbDept.getId())
-            .setDeptName(tbDept.getName());
-            personFilings.add(tbPersonFiling);
-            index++;
-        }
-        tbPersonFilingService.saveOrUpdateBatch(personFilings);
+
+        list.stream()
+                .collect(Collectors.groupingBy(ImportPersonBO::getDeptName))
+                .forEach((deptName, deptList) -> {
+                    TbDept tbDept = tbDeptService.findByName(deptName);
+                    if (tbDept == null) {
+                        throw new AjaxError("组织不存在");
+                    }
+                    //某场所所有的备案
+                    boolean autoJudge = TbDept.NeedJudgeEnum.AUTO_JUDGE.getType().equals(tbDept.getNeedJudge());
+                    deptList.stream().collect(Collectors.groupingBy(ImportPersonBO::getVenuesName))
+                            .forEach((venuesName, venuesList) -> {
+                                TbVenues tbVenues = tbVenuesService.findByName(venuesName);
+                                if (tbVenues == null) {
+                                    throw new AjaxError("备案场所不存在");
+                                }
+                                List<TbPersonFiling> personFilings = new ArrayList<>();
+                                venuesList.forEach(importPersonBO -> {
+                                    String name = importPersonBO.getName();
+                                    if (StrUtil.isEmpty(name)) {
+                                        throw new AjaxError("表格中存在姓名为空的行");
+                                    }
+                                    String phone = importPersonBO.getPhone();
+                                    if (!PhoneUtil.isPhone(phone)) {
+                                        throw new AjaxError(phone + "手机号码不正确");
+                                    }
+                                    String idCard = importPersonBO.getIdCard();
+                                    if (!IdcardUtil.isValidCard(idCard)) {
+                                        throw new AjaxError(idCard + "身份证号不正确");
+                                    }
+                                    TbPersonFiling tbPersonFiling = tbPersonFilingService.findByIdCard(idCard);
+                                    if (tbPersonFiling == null) {
+                                        tbPersonFiling = new TbPersonFiling();
+                                    }
+                                    tbPersonFiling.setType(importPersonBO.getType().equals("内部") ? 2 : 1).setName(name)
+                                            .setPhone(phone).setPin(idCard).setIdCard(idCard).setDeptId(tbDept.getId())
+                                            .setDeptName(tbDept.getName()).setDepartmentId(tbVenues.getDepartmentId()).setVenuesId(tbVenues.getId());
+                                    if (autoJudge) {
+                                        tbPersonFiling.setJudgeState(1)
+                                                .setJudgeTime(new Date())
+                                                .setJudgeBy("平台自动审核");
+                                    }
+                                    personFilings.add(tbPersonFiling);
+                                });
+                                tbPersonFilingService.saveOrUpdateBatch(personFilings);
+                                //自动下发到该场所以及等级低于等于的场所
+                                if (autoJudge) {
+                                        tbPersonFilingService.issued(tbVenues,personFilings);
+                                }
+                            });
+                });
     }
 }

+ 13 - 1
sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFiling.java

@@ -51,10 +51,17 @@ public class TbPersonFiling extends Model<TbPersonFiling> implements Serializabl
      */
     @TableId(type = IdType.AUTO)
     private Integer id;
-
+    /**
+     * 场所ID
+     */
+    private Long venuesId;
     /**
      * 部门ID
      */
+    private String departmentId;
+    /**
+     * 组织ID
+     */
     private Long deptId;
 
     /**
@@ -168,6 +175,11 @@ public class TbPersonFiling extends Model<TbPersonFiling> implements Serializabl
 
     @TableField(exist = false)
     private String idCadStr;
+    @TableField(exist = false)
+    private String venuesName;
+
+    @TableField(exist = false)
+    private String departmentName;
 
     public String getIdCadStr() {
         String str = IdcardUtil.getBirthByIdCard(idCard);

+ 6 - 3
sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFilingMapper.xml

@@ -26,7 +26,9 @@
 
     <!-- 公共查询sql片段 -->
     <sql id="select_sql">
-		select *,(select name  from tb_dept where tb_person_filing.dept_id=id) as deptName
+		select *,(select name from tb_department where  id=tb_person_filing.department_id) as departmentName,
+		(select name from tb_venues where  id=tb_person_filing.venues_id) as venuesName
+		,(select name  from tb_dept where tb_person_filing.dept_id=id) as deptName
 		from tb_person_filing
 	</sql>
 
@@ -37,6 +39,7 @@
         <where>
             <if test=' this.has("id") '>and id = #{id}</if>
             <if test=' this.has("deptId") '>and dept_id = #{deptId}</if>
+            <if test=' this.has("departmentId")  '>and department_id = #{departmentId} </if>
             <if test=' this.has("judgeState") '>and judge_state = #{judgeState}</if>
 
             <if test=' this.has("name") '>and name like concat('%',#{name},'%')</if>
@@ -78,11 +81,11 @@
     <select id="getForWx" resultType="com.pj.project.tb_person_filing.TbPersonFiling">
        select  distinct  * from (( SELECT a.* FROM tb_person_filing a, re_mini_user_person_filing b
         WHERE a.id = b.filing_person_id
-        AND b.mini_user_id = #{loginId}
+        AND b.mini_user_id = #{miniUserId}
         )
         UNION ALL
         ( SELECT * FROM tb_person_filing where 1=1
-        <if test=' this.has("deptId") '>and dept_id = #{deptId}</if>
+        <if test=' this.has("departmentId") '>and department_id = #{departmentId}</if>
         )) c
         order by c.create_time desc
 	</select>

+ 104 - 22
sp-core/src/main/java/com/pj/project/tb_person_filing/TbPersonFilingService.java

@@ -36,12 +36,16 @@ import com.pj.current.satoken.StpUserUtil;
 import com.pj.current.task.TaskService;
 import com.pj.project.tb_car_filing.TbCarFiling;
 import com.pj.project.tb_car_filing.TbCarFilingService;
+import com.pj.project.tb_department.TbDepartment;
+import com.pj.project.tb_department.TbDepartmentService;
 import com.pj.project.tb_dept.TbDept;
 import com.pj.project.tb_dept.TbDeptService;
 import com.pj.project.tb_person_black.TbPersonBlack;
 import com.pj.project.tb_person_filing.task.DelayIsuuedList;
 import com.pj.project.tb_terminal.TbTerminal;
 import com.pj.project.tb_terminal.TbTerminalService;
+import com.pj.project.tb_venues.TbVenues;
+import com.pj.project.tb_venues.TbVenuesService;
 import com.pj.project4sp.spcfg.SpCfgUtil;
 import com.pj.project4sp.uploadfile.UploadConfig;
 import com.pj.project4sp.uploadfile.UploadUtil;
@@ -90,6 +94,9 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
     @Lazy
     private TbCarFilingService tbCarFilingService;
 
+    @Resource
+    private TbVenuesService tbVenuesService;
+
 
     /**
      * 增
@@ -105,25 +112,27 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
         }
         t.setPin(idCard);
         TbDept tbDept = tbDeptService.getById(t.getDeptId());
-        if (TbDept.NeedJudgeEnum.AUTO_JUDGE.getType().equals(tbDept.getNeedJudge())) {
+        if (tbDept!=null&&TbDept.NeedJudgeEnum.AUTO_JUDGE.getType().equals(tbDept.getNeedJudge())) {
             t.setJudgeState(1).setJudgeTime(new Date()).setJudgeBy("系统自动审核");
         }
-        t.setCreateTime(new Date()).setCreateBy(StpUserUtil.getAdminName());
+        TbVenues tbVenues = tbVenuesService.getById(t.getVenuesId());
+        t.setDepartmentId(tbVenues.getDepartmentId());
         this.save(t);
         issued(t);
     }
 
 
-
     /**
      * 删
      */
     public void delete(Integer id) {
         TbPersonFiling db = this.getById(id);
-        TbCarFiling tbCarFiling = tbCarFilingService.findByDriverIdCar(db.getIdCard());
-        if (tbCarFiling == null || tbCarFiling.getJudgeState() == 0) {//车辆司机不存在或者未审核,删除备案
-            deleteTerminalWhilte(db.getPin(), true);
-        }
+        List<TbCarFiling> tbCarFilingList = tbCarFilingService.findByDriverIdCar(db.getIdCard());
+        tbCarFilingList.forEach(tbCarFiling -> {
+            if (tbCarFiling.getJudgeState() == 0) {//车辆司机不存在或者未审核,删除备案
+                deleteTerminalWhilte(db.getPin(), true);
+            }
+        });
         this.removeById(id);
     }
 
@@ -153,7 +162,8 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
             //下发新的
             issued(t);
         }
-
+        TbVenues tbVenues = tbVenuesService.getById(t.getVenuesId());
+        t.setDepartmentId(tbVenues.getDepartmentId());
         this.updateById(t);
     }
 
@@ -184,7 +194,7 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
     }
 
     /**
-     * 下发单个白名单到所有设备
+     * 下发单个白名单到设备
      *
      * @param filing
      */
@@ -193,7 +203,12 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
             log.error("人员白名单未审核通过,不下发:{}", JSONUtil.toJsonStr(filing));
             return;
         }
-        List<TbTerminal> tbTerminalList = tbTerminalService.list();
+        //备案场所
+        Long venuesId = filing.getVenuesId();
+        TbVenues tbVenues = tbVenuesService.getById(venuesId);
+        //下发到等级比自己低或者同等级的场所设备
+        Integer level = tbVenues.getLevel();
+        List<TbTerminal> tbTerminalList = tbTerminalService.findByVenuesLevel(level);
         JSONObject params = builderParams(filing);
         tbTerminalList.forEach(tbTerminal -> {
             tbTerminalService.setCommand(CommandType.ISSUED_USER_COMMAND.getFuncId(), params, tbTerminal);
@@ -213,7 +228,7 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
             log.error("人员白名单未审核通过,不下发:{}", JSONUtil.toJsonStr(filing));
             return;
         }
-        List<TbTerminal> tbTerminalList = tbTerminalService.list();
+        List<TbTerminal> tbTerminalList = tbTerminalService.findByVenuesId(filing.getVenuesId());
         log.info("排除设备下发人脸信息:{},{}", sn, JSONUtil.toJsonStr(filing));
         JSONObject params = builderParams(filing);
         tbTerminalList.stream().filter(t -> !StrUtil.equals(t.getSn(), sn)).forEach(tbTerminal -> {
@@ -224,12 +239,20 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
 
 
     /**
-     * 下发所有人员白名单到单个设备
+     * 下发人员白名单到单个设备
      *
      * @param t
      */
     public void issued(TbTerminal t) {
-        List<TbPersonFiling> list = this.list();
+        Long channelId = t.getChannelId();
+        //通道
+        TbVenues channel = tbVenuesService.getById(channelId);
+        //场所
+        TbVenues venues = tbVenuesService.getById(channel.getPId());
+        List<TbVenues> hightVenuesList = tbVenuesService.getHightLevel(venues.getLevel());
+        List<TbVenues> venuesList = new ArrayList<>(hightVenuesList);
+        venuesList.add(venues);
+        List<TbPersonFiling> list = this.findByVenuesId(venuesList.stream().map(TbVenues::getId).collect(Collectors.toList()));
         //过滤审核通过的
         list = list.stream().filter(tbPersonFiling -> tbPersonFiling.getJudgeState() == 1).collect(Collectors.toList());
         list.forEach(tbPersonFiling -> {
@@ -239,10 +262,46 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
     }
 
     /**
+     * 根据场所查找备案人员
+     *
+     * @param venuesId
+     * @return
+     */
+    public List<TbPersonFiling> findByVenuesId(Long venuesId) {
+        QueryWrapper<TbPersonFiling> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbPersonFiling::getVenuesId, venuesId);
+        return list(ew);
+    }
+
+    /**
+     * 根据场所id上查找
+     *
+     * @param venuesIdList
+     * @return
+     */
+    public List<TbPersonFiling> findByVenuesId(List<Long> venuesIdList) {
+        if (venuesIdList.isEmpty()) {
+            return Collections.emptyList();
+        }
+        QueryWrapper<TbPersonFiling> ew = new QueryWrapper<>();
+        ew.lambda().in(TbPersonFiling::getVenuesId, venuesIdList);
+        return list(ew);
+    }
+
+    /**
      * 删除设备某个人的白名单
      */
     public void deleteTerminalWhilte(String pin, boolean setHeart) {
-        List<TbTerminal> tbTerminalList = tbTerminalService.list();
+        TbPersonFiling filing = this.findByPin(pin);
+        if (filing==null){
+            return;
+        }
+        //备案场所
+        Long venuesId = filing.getVenuesId();
+        TbVenues tbVenues = tbVenuesService.getById(venuesId);
+        //删除级比自己低或者同等级的场所设备
+        Integer level = tbVenues.getLevel();
+        List<TbTerminal> tbTerminalList = tbTerminalService.findByVenuesLevel(level);
         JSONObject params = new JSONObject();
         params.putIfAbsent("pin", Collections.singleton(pin));
         tbTerminalList.forEach(tbTerminal -> {
@@ -301,6 +360,9 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
      */
     public void judge(TbPersonFiling filing) {
         TbPersonFiling db = this.getById(filing.getId());
+        if (db.getVenuesId()==null){
+            throw new AjaxError("请先选择备案场所");
+        }
         db.setJudgeBy(StpUserUtil.getAdminName()).setJudgeTime(new Date()).setJudgeState(filing.getJudgeState());
         this.updateById(db);
         if (StrUtil.isNotEmpty(db.getPhoto())) {
@@ -414,14 +476,17 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
      * @param list
      */
     public void isuuedList(List<TbPersonFiling> list) {
-        List<TbTerminal> tbTerminalList = tbTerminalService.list();
-        tbTerminalList.stream().parallel().forEach(tbTerminal -> {
-            list.forEach(tbPersonFiling -> {
-                JSONObject params = builderParams(tbPersonFiling);
-                tbTerminalService.setCommand(CommandType.ISSUED_USER_COMMAND.getFuncId(), params, tbTerminal);
-            });
-            tbTerminalService.startHeartCommand(tbTerminal.getSn());
-        });
+        list.stream().collect(Collectors.groupingBy(TbPersonFiling::getVenuesId))
+                .forEach((venuesId, venuesList) -> {
+                    List<TbTerminal> tbTerminalList = tbTerminalService.findByVenuesId(venuesId);
+                    tbTerminalList.stream().parallel().forEach(tbTerminal -> {
+                        list.forEach(tbPersonFiling -> {
+                            JSONObject params = builderParams(tbPersonFiling);
+                            tbTerminalService.setCommand(CommandType.ISSUED_USER_COMMAND.getFuncId(), params, tbTerminal);
+                        });
+                        tbTerminalService.startHeartCommand(tbTerminal.getSn());
+                    });
+                });
     }
 
     /**
@@ -436,4 +501,21 @@ public class TbPersonFilingService extends ServiceImpl<TbPersonFilingMapper, TbP
         }
         issued(tbPersonFiling);
     }
+
+    /**
+     * 下发到某场所及其等级低于等于场所的  设备
+     *
+     * @param tbVenues
+     * @param personFilings
+     */
+    public void issued(TbVenues tbVenues, List<TbPersonFiling> personFilings) {
+        List<TbTerminal> list = tbTerminalService.findByVenuesLevel(tbVenues.getLevel());
+        list.stream().parallel().forEach(tbTerminal -> {
+            personFilings.forEach(tbPersonFiling -> {
+                JSONObject params = builderParams(tbPersonFiling);
+                tbTerminalService.setCommand(CommandType.ISSUED_USER_COMMAND.getFuncId(), params, tbTerminal);
+            });
+            tbTerminalService.startHeartCommand(tbTerminal.getSn());
+        });
+    }
 }

+ 8 - 0
sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecord.java

@@ -54,6 +54,10 @@ public class TbPersonVisitRecord extends Model<TbPersonVisitRecord> implements S
     @TableId(type = IdType.AUTO)
     private Long id;
 
+
+    private String departmentId;
+
+    private Long venuesId;
     /**
      * 出入(1=入场,2=离场)
      */
@@ -146,7 +150,11 @@ public class TbPersonVisitRecord extends Model<TbPersonVisitRecord> implements S
     private String typeStr;
     @TableField(exist = false)
     private String directionStr;
+    @TableField(exist = false)
+    private String departmentName;
 
+    @TableField(exist = false)
+    private String venuesName;
     @Getter
     @AllArgsConstructor
     public static enum TypeEnum {

+ 39 - 40
sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecordMapper.xml

@@ -3,51 +3,50 @@
 <mapper namespace="com.pj.project.tb_person_visit_record.TbPersonVisitRecordMapper">
 
 
-
-	<!-- 公共查询sql片段 -->
-	<sql id="select_sql">
-		select *
+    <!-- 公共查询sql片段 -->
+    <sql id="select_sql">
+		select *,(select name from tb_department where  id=tb_person_visit_record.department_id) as departmentName,
+		(select name from tb_venues where id=tb_person_visit_record.venues_id) as venuesName
 		from tb_person_visit_record
 	</sql>
 
 
-
-	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
-	<select id="getList" resultType="com.pj.project.tb_person_visit_record.TbPersonVisitRecord">
-		<include refid="select_sql"></include>
-		<where>
-			<if test=' this.has("id") '> and id = #{id} </if>
-			<if test=' this.has("deptId") '> and dept_id = #{deptId} </if>
-			<if test=' this.has("direction") '> and direction = #{direction} </if>
-			<if test=' this.has("deptName") '> and dept_name = #{deptName} </if>
-			<if test=' this.has("name") '> and name like concat('%',#{name},'%') </if>
-			<if test=' this.has("idCard") '> and id_card = #{idCard} </if>
-			<if test=' this.has("allowPass") '> and allow_pass = #{allowPass} </if>
-			<if test=' this.has("channel") '> and channel = #{channel} </if>
-			<if test=' this.has("venues") '> and venues = #{venues} </if>
-			<if test=' this.has("temperature") '> and temperature = #{temperature} </if>
-			<if test=' this.has("healthStatus") '> and health_status = #{healthStatus} </if>
-			<if test=' this.has("type") '> and type = #{type} </if>
-			<if test=' this.has("visitDate") '> and visit_date = #{visitDate} </if>
-			<if test=' this.has("createTime") '> and create_time = #{createTime} </if>
-			<if test=' this.has("startTime") '> and date_format(visit_date,'%Y-%m-%d %H:%i:%s') &gt;= #{startTime} </if>
-			<if test=' this.has("endTime") '> and date_format(visit_date,'%Y-%m-%d %H:%i:%s') &lt;= #{endTime} </if>
-            <if test=' this.has("unhealthy") '> and health_status != '绿码' </if>
-            <if test='dataType == 0'> and health_status = '绿码' </if>
-            <if test='dataType == 1'> and health_status != '绿码' </if>
+    <!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+    <select id="getList" resultType="com.pj.project.tb_person_visit_record.TbPersonVisitRecord">
+        <include refid="select_sql"></include>
+        <where>
+            <if test=' this.has("id") '>and id = #{id}</if>
+            <if test=' this.has("deptId") '>and dept_id = #{deptId}</if>
+            <if test=' this.has("direction") '>and direction = #{direction}</if>
+            <if test=' this.has("deptName") '>and dept_name = #{deptName}</if>
+            <if test=' this.has("name") '>and name like concat('%',#{name},'%')</if>
+            <if test=' this.has("idCard") '>and id_card = #{idCard}</if>
+            <if test=' this.has("allowPass") '>and allow_pass = #{allowPass}</if>
+            <if test=' this.has("channel") '>and channel = #{channel}</if>
+            <if test=' this.has("venues") '>and venues = #{venues}</if>
+            <if test=' this.has("temperature") '>and temperature = #{temperature}</if>
+            <if test=' this.has("healthStatus") '>and health_status = #{healthStatus}</if>
+            <if test=' this.has("type") '>and type = #{type}</if>
+            <if test=' this.has("visitDate") '>and visit_date = #{visitDate}</if>
+            <if test=' this.has("createTime") '>and create_time = #{createTime}</if>
+            <if test=' this.has("startTime") '>and date_format(visit_date,'%Y-%m-%d %H:%i:%s') &gt;= #{startTime}</if>
+            <if test=' this.has("endTime") '>and date_format(visit_date,'%Y-%m-%d %H:%i:%s') &lt;= #{endTime}</if>
+            <if test=' this.has("unhealthy") '>and health_status != '绿码'</if>
+            <if test='dataType == 0'>and health_status = '绿码'</if>
+            <if test='dataType == 1'>and health_status != '绿码'</if>
         </where>
-		order by id desc
-	</select>
-	<select id="getMonitor" resultType="java.lang.Long">
-		SELECT count(id)
-		FROM tb_person_visit_record
-		WHERE
-		DATE_FORMAT(visit_date,'%Y-%m-%d') &gt;=#{bDate}
-		and DATE_FORMAT(visit_date,'%Y-%m-%d') &lt;=#{eDate}
-		<if test="healthStatus==0">
-			and health_status !='绿码' and health_status is not null
-		</if>
-	</select>
+        order by id desc
+    </select>
+    <select id="getMonitor" resultType="java.lang.Long">
+        SELECT count(id)
+        FROM tb_person_visit_record
+        WHERE
+        DATE_FORMAT(visit_date,'%Y-%m-%d') &gt;=#{bDate}
+        and DATE_FORMAT(visit_date,'%Y-%m-%d') &lt;=#{eDate}
+        <if test="healthStatus==0">
+            and health_status !='绿码' and health_status is not null
+        </if>
+    </select>
 
 
 </mapper>

+ 2 - 1
sp-core/src/main/java/com/pj/project/tb_person_visit_record/TbPersonVisitRecordService.java

@@ -81,7 +81,8 @@ public class TbPersonVisitRecordService extends ServiceImpl<TbPersonVisitRecordM
                 .setCreateTime(now).setUpdateTime(now).setDirection(direction);
         BeanUtil.copyProperties(t, record);
         TbVenues tbVenues = tbVenuesService.getById(channelId);
-        record.setChannel(channelId).setVenues(tbVenues.getName());
+        record.setChannel(channelId).setVenues(tbVenues.getName())
+                .setVenuesId(tbVenues.getId()).setDepartmentId(tbVenues.getDepartmentId());
         if (direction.equals(TbPersonVisitRecord.DirectionEnum.IN.getDirection())) {
             record.setVisitDate(t.getInTime())
                     .setTemperature(t.getInTemperature());

+ 7 - 0
sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminal.java

@@ -53,6 +53,7 @@ public class TbTerminal extends Model<TbTerminal> implements Serializable {
 	private Long id;	
 
 
+	private String departmentId;
 
 	/**
 	 * 名称 
@@ -109,27 +110,33 @@ public class TbTerminal extends Model<TbTerminal> implements Serializable {
 	/**
 	 * 创建时间 
 	 */
+	@TableField(fill = FieldFill.INSERT)
 	private Date createTime;
 
 	/**
 	 * 创建人 
 	 */
+	@TableField(fill = FieldFill.INSERT)
 	private String createBy;	
 
 	/**
 	 * 更新时间 
 	 */
+	@TableField(fill = FieldFill.UPDATE)
 	private Date updateTime;
 
 	/**
 	 * 更新人 
 	 */
+	@TableField(fill = FieldFill.UPDATE)
 	private String updateBy;
 	/**
 	 * 人数
 	 */
 	private Long personNum;
 
+	@TableField(exist = false)
+	private String departmentName;
 
 	@Getter
 	@AllArgsConstructor

+ 4 - 1
sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminalMapper.xml

@@ -26,7 +26,7 @@
 
 	<!-- 公共查询sql片段 -->
 	<sql id="select_sql">
-		select *
+		select *,(select name from tb_department where  id=tb_terminal.department_id) as departmentName
 		from tb_terminal
 	</sql>
     <update id="unbind">
@@ -39,6 +39,7 @@
 		<include refid="select_sql"></include>
 		<where>
 			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("departmentId") '> and department_id =#{departmentId} </if>
 			<if test=' this.has("name") '> and name like concat('%',#{name},'%') </if>
 			<if test=' this.has("ipAddress") '> and ip_address = #{ipAddress} </if>
 			<if test=' this.has("state") '> and state = #{state} </if>
@@ -78,6 +79,7 @@
 		SELECT
 			NAME,
 			ip_address AS ip,
+			department_id,
 			direction,
 			state,
 			channel_name,
@@ -89,6 +91,7 @@
 			NAME,
 			ip,
 			direction,
+			department_id,
 			state,
 			( SELECT `name` FROM tb_venues WHERE id = tb_gate_terminal.venues_id ) AS channel_name,
 			last_online_time,

+ 57 - 11
sp-core/src/main/java/com/pj/project/tb_terminal/TbTerminalService.java

@@ -1,7 +1,10 @@
 package com.pj.project.tb_terminal;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.date.DateUtil;
@@ -98,9 +101,9 @@ public class TbTerminalService extends ServiceImpl<TbTerminalMapper, TbTerminal>
     public void update(TbTerminal t) {
         Long channelId = t.getChannelId();
         TbVenues tbVenues = tbVenuesService.getById(channelId);
-        t.setChannelName(tbVenues.getName())
-                .setUpdateBy(StpUtil.getLoginIdAsString()).setUpdateTime(new Date());
-        TbTerminal db = this.getById(t.getId());
+        TbVenues parentVenues = tbVenuesService.getById(tbVenues.getPId());
+        t.setChannelName(tbVenues.getName()).setDepartmentId(tbVenues.getDepartmentId())
+                .setVenuesId(tbVenues.getPId()).setVenuesName(parentVenues.getName());
         this.updateById(t);
     }
 
@@ -182,23 +185,24 @@ public class TbTerminalService extends ServiceImpl<TbTerminalMapper, TbTerminal>
         String sn = tbTerminal.getSn();
         String msgId = RandomUtil.randomNumbers(8);
         String key = myConfig.getCommandPrefix() + sn;
-        //   String commandStr = RedisUtil.get(key);
-        // List<RequestPackageDTO> commandList = JSONUtil.toList(commandStr, RequestPackageDTO.class);
+
         RequestPackageDTO commandDTO = new RequestPackageDTO();
         RequestPackageDTO.PayloadBean payloadBean = new RequestPackageDTO.PayloadBean();
-
         payloadBean.setParams(params);
         commandDTO.setFuncId(funcId).setPayload(payloadBean)
                 .setMsgId(msgId);
-        // commandList.add(commandDTO);
+        //设置命令
+        RedisUtil.lPush(key, JSONUtil.toJsonStr(commandDTO));
+        //日志记录
         TbCommandLog tbCommandLog = new TbCommandLog();
         tbCommandLog.setChannelName(tbTerminal.getChannelName()).setCommand(JSONUtil.toJsonStr(commandDTO))
                 .setMsgId(msgId).setSn(sn)
                 .setTerminalName(tbTerminal.getName()).setCreateTime(new Date()).setCreateBy(StpUserUtil.getAdminName());
-        //日志记录
+        if (CommandType.ISSUED_USER_COMMAND.getFuncId().equals(funcId)) {
+            //下发人员信息
+            JSONUtil.parseObj(params).getJSONObject("users").set("photo", "base64");
+        }
         tbCommandLogService.save(tbCommandLog);
-        RedisUtil.lPush(key, JSONUtil.toJsonStr(commandDTO));
-        //  RedisUtil.set(key, JSONUtil.toJsonStr(commandList));
     }
 
     /**
@@ -348,7 +352,7 @@ public class TbTerminalService extends ServiceImpl<TbTerminalMapper, TbTerminal>
             if (SpCfgUtil.termianlFilling()) {
                 TbDept dept = tbDeptService.findTheDept(TbDept.AdminTypeEnum.TEMP_TYPE.getType());
                 boolean needJudge = TbDept.NeedJudgeEnum.MAN_JUDGE.getType().equals(dept.getNeedJudge());
-                if (needJudge){
+                if (needJudge) {
                     log.info("返回信息:{},{}", "备案未审核", JSONUtil.toJsonStr(checkDataDTO));
                     return AjaxJson.getSuccess(checkBO.getName() + "备案未审核", checkDataDTO);
                 }
@@ -402,6 +406,11 @@ public class TbTerminalService extends ServiceImpl<TbTerminalMapper, TbTerminal>
         return AjaxJson.getSuccess(msg, checkDataDTO);
     }
 
+    /**
+     * 下发人脸
+     *
+     * @param id
+     */
     public void down(Long id) {
         TbTerminal tbTerminal = this.getById(id);
         if (TbTerminal.StateType.OFFLINE.getState().equals(tbTerminal.getState())) {
@@ -411,4 +420,41 @@ public class TbTerminalService extends ServiceImpl<TbTerminalMapper, TbTerminal>
         tbPersonBlackService.issued(tbTerminal);
         this.startHeartCommand(tbTerminal.getSn());
     }
+
+    /**
+     * 根据场所等级查找所有低于等于该等级下的设备====>下发人脸用
+     *
+     * @param level
+     * @return
+     */
+    public List<TbTerminal> findByVenuesLevel(Integer level) {
+        List<TbVenues> venuesList = tbVenuesService.getLowByLevel(level);
+        if (venuesList.isEmpty()) {
+            return Collections.emptyList();
+        }
+        return this.findByVenuesId(venuesList.stream().map(TbVenues::getId).collect(Collectors.toList()));
+    }
+
+    /**
+     * 根据场所等级查找所有低于等于该等级下的设备====>下发人脸用
+     *
+     * @param venuesId
+     * @return
+     */
+    public List<TbTerminal> findByVenuesId(Long venuesId) {
+        TbVenues tbVenues = tbVenuesService.getById(venuesId);
+        return findByVenuesLevel(tbVenues.getLevel());
+    }
+
+    /**
+     * 场所ID查找
+     *
+     * @param venuesIds
+     * @return
+     */
+    public List<TbTerminal> findByVenuesId(List<Long> venuesIds) {
+        QueryWrapper<TbTerminal> ew = new QueryWrapper<>();
+        ew.lambda().in(TbTerminal::getVenuesId, venuesIds);
+        return list(ew);
+    }
 }

+ 1 - 0
sp-core/src/main/java/com/pj/project/tb_terminal/bo/MonitorDTO.java

@@ -8,6 +8,7 @@ import java.io.Serializable;
 @Accessors(chain = true)
 public class MonitorDTO implements Serializable {
     private String name;
+    private String departmentId;
     private String ip;
     private int direction;
     private String state;

+ 13 - 5
sp-core/src/main/java/com/pj/project/tb_venues/TbVenues.java

@@ -50,7 +50,8 @@ public class TbVenues extends Model<TbVenues> implements Serializable {
     private Long id;
 
 
-
+    private String departmentId;
+    private Integer level;
 
 
     /**
@@ -69,37 +70,44 @@ public class TbVenues extends Model<TbVenues> implements Serializable {
     /**
      * 状态 0 关闭 1开启
      */
-    private Integer status=1;
+    private Integer status = 1;
 
     /**
      * 创建时间
      */
+    @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
     /**
      * 创建人
      */
+    @TableField(fill = FieldFill.INSERT)
     private String createBy;
 
     /**
      * 更新时间
      */
+    @TableField(fill = FieldFill.UPDATE)
     private Date updateTime;
 
     /**
      * 更新人
      */
+    @TableField(fill = FieldFill.UPDATE)
     private String updateBy;
 
 
     @TableField(exist = false)
     private String parentName;
 
+    @TableField(exist = false)
+    private String departmentName;
+
     @Getter
     @AllArgsConstructor
-    public static enum TypeEnum{
-        CAR_CHANNEL(2,"车行通道"),
-        PERSON_CHANNEL(1,"人行通道");
+    public static enum TypeEnum {
+        CAR_CHANNEL(2, "车行通道"),
+        PERSON_CHANNEL(1, "人行通道");
         private Integer type;
         private String desc;
     }

+ 3 - 1
sp-core/src/main/java/com/pj/project/tb_venues/TbVenuesMapper.xml

@@ -18,7 +18,7 @@
 
     <!-- 公共查询sql片段 -->
     <sql id="select_sql">
-		select *
+		select *,(select name from tb_department where  id=tb_venues.department_id) as departmentName
 		from tb_venues
 	</sql>
 
@@ -29,6 +29,7 @@
         <where>
             <if test=' this.has("name") '>and name like concat('%', #{name},'%') and p_id=-1</if>
             <if test=' this.has("pId") '>and p_id =#{pId}</if>
+            <if test=' this.has("departmentId") '>and department_id =#{departmentId}</if>
         </where>
         order by
         <choose>
@@ -39,6 +40,7 @@
             <when test='sortType == 7'>create_by desc</when>
             <when test='sortType == 8'>update_time desc</when>
             <when test='sortType == 9'>update_by desc</when>
+            <when test='sortType == 10'>level asc</when>
             <otherwise>id asc</otherwise>
         </choose>
     </select>

+ 69 - 9
sp-core/src/main/java/com/pj/project/tb_venues/TbVenuesService.java

@@ -14,6 +14,7 @@ import com.pj.project.tb_gate_terminal.TbGateTerminal;
 import com.pj.project.tb_gate_terminal.TbGateTerminalService;
 import com.pj.project.tb_terminal.TbTerminal;
 import com.pj.project.tb_terminal.TbTerminalService;
+import com.pj.utils.sg.AjaxError;
 import com.pj.utils.sg.AjaxJson;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,14 +52,16 @@ public class TbVenuesService extends ServiceImpl<TbVenuesMapper, TbVenues> imple
      * 增
      */
     public void add(TbVenues t) {
-        t.setCreateBy(StpUtil.getLoginIdAsString()).setCreateTime(new Date());
-        handler(t);
+        if (t.getPId() == -1) {
+            String name = t.getName();
+            TbVenues db = findByName(name);
+            if (db != null) {
+                throw new AjaxError("场所已存在");
+            }
+        }
         this.save(t);
     }
 
-    private void handler(TbVenues t) {
-        t.setUpdateBy(StpUtil.getLoginIdAsString()).setUpdateTime(new Date());
-    }
 
     /**
      * 删
@@ -81,7 +84,13 @@ public class TbVenuesService extends ServiceImpl<TbVenuesMapper, TbVenues> imple
      * 改
      */
     public void update(TbVenues t) {
-        t.setUpdateBy(StpUtil.getLoginIdAsString()).setUpdateTime(new Date());
+        if (t.getPId() == -1) {
+            String name = t.getName();
+            TbVenues db = findByName(name);
+            if (db != null&&t.getId().longValue()!=db.getId().longValue()) {
+                throw new AjaxError("场所名已被占用");
+            }
+        }
         this.updateById(t);
     }
 
@@ -104,13 +113,18 @@ public class TbVenuesService extends ServiceImpl<TbVenuesMapper, TbVenues> imple
         return tbVenuesMapper.getInnerList(so);
     }
 
+    /**
+     * 开门
+     * @param id
+     * @return
+     */
     public AjaxJson release(Long id) {
         //人脸设备
         List<TbTerminal> tbTerminalList = tbTerminalService.findByChannelId(id);
         tbTerminalList.forEach(tbTerminal -> tbTerminalService.open(tbTerminal.getId()));
-        List<TbGateTerminal> tbGateTerminals = tbGateTerminalService.findByVenuesId(id);
-        boolean flag = !tbTerminalList.isEmpty() && !tbGateTerminals.isEmpty();
-        if (!flag) {
+        List<TbGateTerminal> tbGateTerminals = tbGateTerminalService.findByChannelId(id);
+        boolean flag = tbTerminalList.isEmpty() && tbGateTerminals.isEmpty();
+        if (flag) {
             return AjaxJson.getError("该通道无设备");
         }
         tbGateTerminals.stream().filter(tbGateTerminal -> tbGateTerminal.getDirection() == 1)
@@ -138,4 +152,50 @@ public class TbVenuesService extends ServiceImpl<TbVenuesMapper, TbVenues> imple
         list.add(tbVenues);
         this.updateBatchById(list);
     }
+
+    /**
+     * 根据名称查询
+     *
+     * @param venuesName
+     * @return
+     */
+    public TbVenues findByName(String venuesName) {
+        QueryWrapper<TbVenues> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbVenues::getName, venuesName)
+                .eq(TbVenues::getPId, -1);
+        return getOne(ew);
+    }
+
+    /**
+     * 查找小于等于level等级的场所
+     * @param level
+     * @return
+     */
+    public List<TbVenues> getLowByLevel(Integer level) {
+        QueryWrapper<TbVenues> ew = new QueryWrapper<>();
+        ew.lambda().ge(TbVenues::getLevel,level).eq(TbVenues::getPId,-1);
+        return list(ew);
+    }
+
+    /**
+     * 通道
+     * @param pId
+     * @return
+     */
+    public List<TbVenues> getByPid(Long pId) {
+        QueryWrapper<TbVenues> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbVenues::getPId,pId);
+        return list(ew);
+    }
+
+    /**
+     * 查找比之等级高的场所
+     * @param level
+     * @return
+     */
+    public List<TbVenues> getHightLevel(Integer level) {
+        QueryWrapper<TbVenues> ew = new QueryWrapper<>();
+        ew.lambda().le(TbVenues::getLevel,level);
+        return list(ew);
+    }
 }

+ 3 - 3
sp-start/src/main/resources/application-dev.yml

@@ -47,8 +47,8 @@ spring:
     myconfig:
         # 本项目部署到的服务器域名(文件上传等等模块  要用到)
         domain: http://127.0.0.1:8099/pro
-        ip: 192.168.88.119
-        net-ip: 192.168.88.119
+        ip: 192.168.3.27
+        net-ip: 192.168.3.27
         heart-port: 9999
         command-port: 8888
         command-prefix: "command:"
@@ -72,7 +72,7 @@ wx:
     js-api-token-url: https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
     openid-url: https://api.weixin.qq.com/sns/oauth2/access_token?appid=${wx.app-id}&secret=${wx.app-secret}&code=CODE&grant_type=authorization_code
     send-msg-url: https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
-    domain: http://127.0.0.1:8080/h5
+    domain: https://127.0.0.1:8080/h5
     report-detail: ${wx.domain}/pages/detail/report-detail
     temperature-error-template: WtTlUMCtJp6dSPXLJg_RdsmX4811aDkEkHuX0Txfgfg
     health-status-template: IEzVk2HCvctwXZzaGaElWQpRskolYlZSahTZXbJhuVM