Ver Fonte

Merge branch 'V0.0.8' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.8

zhulu há 1 ano atrás
pai
commit
9f36057fe1
26 ficheiros alterados com 351 adições e 167 exclusões
  1. 5 2
      project_data/sql/0.0.8/soc/soc.sql
  2. 2 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysOrgExtend.java
  3. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/CategoryDataEnum.java
  4. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/mapper/MonitorAccessReportMapper.java
  5. 3 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java
  6. 4 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java
  7. 2 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/mapper/ResumptionReportMapper.java
  8. 3 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/ResumptionReportService.java
  9. 95 70
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java
  10. 41 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReport.java
  11. 52 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReportNameVo.java
  12. 46 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReportNumVo.java
  13. 2 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/service/impl/SafetyInspectServiceImpl.java
  14. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml
  15. 2 2
      soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/MonitorAccessReportMapper.xml
  16. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/ResumptionReportMapper.xml
  17. 1 1
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/VideoDiagnosisServiceImpl.java
  18. 3 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/VideoDiagnosisWebPageVo.java
  19. 1 1
      soc-modules/soc-modules-iot/src/main/resources/mapper/DvrDiskMapper.xml
  20. 3 0
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvrChannelMapper.xml
  21. 6 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysOrgExtendDto.java
  22. 6 7
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java
  23. 17 22
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java
  24. 5 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/ConstructionDetailExport.java
  25. 38 34
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityWorkExport.java
  26. 10 4
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

+ 5 - 2
project_data/sql/0.0.8/soc/soc.sql

@@ -187,7 +187,7 @@ CREATE TABLE `core_drill_dictionary_branch` (
                                                 `id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
                                                 `org_id` bigint DEFAULT NULL COMMENT '机构id',
                                                 `org_name` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-                                                `org_path` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构路径',
+                                                `org_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构路径',
                                                 `drill_type` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '演练项目,字典表关联取值',
                                                 `drill_type_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '演练项目名称',
                                                 `drill_category` int DEFAULT NULL COMMENT '演练类型,字典表取值',
@@ -227,4 +227,7 @@ INSERT INTO `soc`.`sys_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict
 
 -- 网点作息配置
 DELETE from `sys_menu` where id in(01780503915975847938);
-INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (01780503915975847938, '网点作息配置', 1, 11, 'work-time-banking-office', 'system/workTimeBankingOffice', NULL, 1, 0, 'C', '0', '0', 'system:time:list', '1', 'time', NULL, '超级管理员', '2024-04-17 15:50:55', '超级管理员', '2024-04-17 15:52:47', '');
+INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (01780503915975847938, '网点作息配置', 1, 11, 'work-time-banking-office', 'system/workTimeBankingOffice', NULL, 1, 0, 'C', '0', '0', 'system:time:list', '1', 'time', NULL, '超级管理员', '2024-04-17 15:50:55', '超级管理员', '2024-04-17 15:52:47', '');
+-- 修改系统参数表 参数值字段长度
+alter table sys_config modify config_value longtext default null null comment '参数键值';
+

+ 2 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysOrgExtend.java

@@ -114,6 +114,8 @@ public class SysOrgExtend extends BaseEntity {
     private Integer safeBox;
     private Integer innerCount;
     private Integer outsideCount;
+    private Integer remoteControlCount;
+    private Integer cashAddingRoomControlCount;
 
     /**
      * 离行式大堂设备

+ 1 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/CategoryDataEnum.java

@@ -29,7 +29,7 @@ public enum CategoryDataEnum {
     AMMETER_SENSOR(3712198166114160L, "智能电表"),
     GAS_ALARM(3712197694111744L, "燃气报警器"),
     DOOR_WINDOW_SENSOR(3712197092999168L, "门磁、窗磁传感器"),
-    IOT_DETECTION_DEVICE(3712197092999168L, "视频物联网检测主机"),
+    IOT_DETECTION_DEVICE(3712199107215360L, "视频物联网检测主机"),
     ;
 
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/mapper/MonitorAccessReportMapper.java

@@ -16,7 +16,7 @@ import org.apache.ibatis.annotations.Param;
 public interface MonitorAccessReportMapper {
     Page<MonitoringAccessVO> report(@Param("page") Page<MonitoringAccessVO> page, @Param("monitoringAccessDTO") MonitoringAccessDTO monitoringAccessDTO);
 
-    Integer selectNetworkNumberByPath(String orgPath);
+    Integer selectOrgNumByPathAndType(@Param("orgPath") String orgPath, @Param("orgType") Integer orgType);
 
     MonitoringAccessVO selectAll(MonitoringAccessDTO monitoringAccessDTO);
 

+ 3 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java

@@ -1,11 +1,10 @@
 package com.xunmei.core.reportForms.monitor.service.impl;
 
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
@@ -14,8 +13,6 @@ import com.xunmei.core.reportForms.monitor.dto.MonitoringAccessDTO;
 import com.xunmei.core.reportForms.monitor.mapper.MonitorAccessReportMapper;
 import com.xunmei.core.reportForms.monitor.service.MonitorAccessReportService;
 import com.xunmei.core.reportForms.monitor.vo.MonitoringAccessVO;
-import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
-import com.xunmei.core.reportForms.resumption.service.ResumptionReportService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,7 +66,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
 //        monitoringAccessDTO.setEndTime(new Date());
         Page<MonitoringAccessVO> report = monitorAccessReportMapper.report(page, monitoringAccessDTO);
         report.getRecords().forEach(r -> {
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(r.getPath());
+            Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(r.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             r.setNetworkNumber(integer);
         });
         return TableDataInfo.build(report);
@@ -129,7 +126,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
                 }
             }
             monitoringAccessVO.setCity(sysOrg1.getShortName().indexOf("地区行社") == -1 ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(s.getPath());
+            Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             monitoringAccessDTO.setOrgPath(s.getPath());
             Long condOrgId=monitoringAccessDTO.getOrgId();
             monitoringAccessDTO.setOrgId(null);

+ 4 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java

@@ -10,6 +10,7 @@ import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
 import com.xunmei.core.reportForms.resumption.service.ResumptionReportService;
 import com.xunmei.core.reportForms.resumption.vo.IntrusionTestReportVO;
+import com.xunmei.core.reportForms.resumption.vo.LhSelfBankInspectionReport;
 import com.xunmei.core.reportForms.resumption.vo.ResumptionDayVO;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
@@ -25,7 +26,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.time.LocalDate;
-import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -172,7 +172,7 @@ public class ResumptionReportController {
     @ApiOperation(value = "离行式自助银行巡检报表导出")
     @RequiresPermissions("core:resumptionReport:export")
     @PostMapping("/serviceBankExport")
-    public void serviceBankExport(ResumptionDTO request, HttpServletResponse response) throws IOException {
+    public void serviceBankExport(ResumptionDTO request, HttpServletResponse response) throws Exception {
         if (null == request.getSearchTime()) {
             LocalDate currentDate = LocalDate.now();
             request.setSearchTime(currentDate.getYear() + "-" + currentDate.getMonthValue());
@@ -183,7 +183,7 @@ public class ResumptionReportController {
     @ApiOperation(value = "离行式自助银行巡检报表")
     @RequiresPermissions("core:resumptionReport:list")
     @GetMapping("/serviceBank")
-    public AjaxResult serviceBank(ResumptionDTO resumptionDTO) {
+    public AjaxResult serviceBank(ResumptionDTO resumptionDTO) throws Exception {
         if (null == resumptionDTO.getSearchTime()) {
             LocalDate currentDate = LocalDate.now();
             String m = String.valueOf(currentDate.getMonthValue());
@@ -193,7 +193,7 @@ public class ResumptionReportController {
             resumptionDTO.setSearchTime(currentDate.getYear() + "-" + m);
         }
         AjaxResult ajaxResult = AjaxResult.success();
-        List<IntrusionTestReportVO> intrusionTestReportVOList = resumptionReportService.serviceBank(resumptionDTO);
+        List<LhSelfBankInspectionReport> intrusionTestReportVOList = resumptionReportService.serviceBank(resumptionDTO);
         ajaxResult.put(AjaxResult.DATA_TAG, intrusionTestReportVOList);
         ajaxResult.put(TITLE, "离行式自助银行巡检情况表(" + resumptionDTO.getSearchTime() + ")");
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);

+ 2 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/mapper/ResumptionReportMapper.java

@@ -1,13 +1,12 @@
 package com.xunmei.core.reportForms.resumption.mapper;
 
-import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
 import com.xunmei.core.reportForms.resumption.vo.IntrusionTestReportVO;
+import com.xunmei.core.reportForms.resumption.vo.LhSelfBankInspectionReport;
 import com.xunmei.core.reportForms.resumption.vo.ResumptionDayVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,7 +30,7 @@ public interface ResumptionReportMapper {
 
     Map selectIntrusionTestAbnormalNumber(@Param("orgId") Long orgId, @Param("date") String date, @Param("orgPath") String orgPath);
 
-    IntrusionTestReportVO selectServiceBankReport(@Param("orgId") Long orgId, @Param("date") String date, @Param("orgPath") String orgPath);
+    LhSelfBankInspectionReport selectServiceBankReport(@Param("orgId") Long orgId, @Param("date") String date, @Param("orgPath") String orgPath);
 
     IntrusionTestReportVO selectStandbyPower(@Param("orgId") Long orgId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("orgPath") String orgPath);
 

+ 3 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/ResumptionReportService.java

@@ -1,8 +1,8 @@
 package com.xunmei.core.reportForms.resumption.service;
 
-import com.xunmei.core.reportForms.monitor.dto.MonitoringAccessDTO;
 import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
 import com.xunmei.core.reportForms.resumption.vo.IntrusionTestReportVO;
+import com.xunmei.core.reportForms.resumption.vo.LhSelfBankInspectionReport;
 import com.xunmei.core.reportForms.resumption.vo.ResumptionDayVO;
 
 import javax.servlet.http.HttpServletResponse;
@@ -28,7 +28,7 @@ public interface ResumptionReportService {
 
     List<IntrusionTestReportVO> standbyPower(ResumptionDTO resumptionDTO);
 
-    void serviceBankExport(ResumptionDTO resumptionDTO, HttpServletResponse response)throws IOException;
+    void serviceBankExport(ResumptionDTO resumptionDTO, HttpServletResponse response) throws Exception;
 
-    List<IntrusionTestReportVO> serviceBank(ResumptionDTO resumptionDTO);
+    List<LhSelfBankInspectionReport> serviceBank(ResumptionDTO resumptionDTO) throws Exception;
 }

+ 95 - 70
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java

@@ -3,20 +3,17 @@ package com.xunmei.core.reportForms.resumption.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
-import com.xunmei.common.core.domain.panel.vo.PanelListVo;
-import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.edu.service.impl.ValueCellWriteHandler;
 import com.xunmei.core.reportForms.monitor.mapper.MonitorAccessReportMapper;
-import com.xunmei.core.reportForms.monitor.vo.MonitoringAccessVO;
 import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
 import com.xunmei.core.reportForms.resumption.mapper.ResumptionReportMapper;
 import com.xunmei.core.reportForms.resumption.service.ResumptionReportService;
-import com.xunmei.core.reportForms.resumption.vo.IntrusionTestReportVO;
-import com.xunmei.core.reportForms.resumption.vo.ResumptionDayVO;
+import com.xunmei.core.reportForms.resumption.vo.*;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.BeanUtils;
@@ -34,10 +31,6 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import static org.bouncycastle.asn1.x500.style.RFC4519Style.o;
 
 /**
  * @author :LuoWei
@@ -64,7 +57,7 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
         //判断机构类型,如果机构类型大于行社,都展示行社数据
         SysOrg sysOrg = orgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
         List<SysOrg> sysOrgs;
-        if (null==sysOrg.getType()){
+        if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
@@ -149,10 +142,10 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
 //            resumptionDayVOS.add(resumptionDayVO);
 //        });
 
-        List<CompletableFuture<ResumptionDayVO>> completableFutureList=new ArrayList<>();
+        List<CompletableFuture<ResumptionDayVO>> completableFutureList = new ArrayList<>();
         sysOrgs.forEach(o -> {
             CompletableFuture<ResumptionDayVO> getOneOrgResumptionDayVO = CompletableFuture.supplyAsync(() ->
-                    getOneOrgResumptionDayVO(o,resumptionDTO),threadPoolTaskExecutor
+                    getOneOrgResumptionDayVO(o, resumptionDTO), threadPoolTaskExecutor
             );
             completableFutureList.add(getOneOrgResumptionDayVO);
         });
@@ -161,23 +154,22 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
 
         allQueries.get(10L, TimeUnit.SECONDS);
 
-        completableFutureList.forEach(x->{
+        completableFutureList.forEach(x -> {
             resumptionDayVOS.add(x.join());
         });
         return resumptionDayVOS;
     }
 
-    private ResumptionDayVO getOneOrgResumptionDayVO(SysOrg org,ResumptionDTO resumptionDTO)
-    {
+    private ResumptionDayVO getOneOrgResumptionDayVO(SysOrg org, ResumptionDTO resumptionDTO) {
         ResumptionDayVO resumptionDayVO = new ResumptionDayVO();
         resumptionDayVO.setCity(org.getAffiliatedArea());
         resumptionDayVO.setOrgName(org.getShortName());
-        Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(org.getPath());
-        ResumptionDayVO resumptionDayVO1 =null;
-        ResumptionDayVO resumptionDayVO2 =null;
-        ResumptionDayVO resumptionDayVO3 =null;
+        Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(org.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
+        ResumptionDayVO resumptionDayVO1 = null;
+        ResumptionDayVO resumptionDayVO2 = null;
+        ResumptionDayVO resumptionDayVO3 = null;
 
-        if(org.getType()!=4) {
+        if (org.getType() != 4) {
             //营业前
             resumptionDayVO1 = resumptionReportMapper.selectReport(resumptionDTO.getCycle(), 1, null, resumptionDTO.getSearchTime(), org.getPath());
             //营业中
@@ -251,8 +243,8 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             ResumptionDayVO resumptionDayVO = report.get(i);
             resumptionDayVO.setOrderNum(i + 1);
         }
-        String baseHeaderName="营业网点安全保卫履职情况表";
-        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
+        String baseHeaderName = "营业网点安全保卫履职情况表";
+        String header = baseHeaderName + "(" + resumptionDTO.getSearchTime() + ")";
 
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
@@ -282,11 +274,11 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
-        String baseHeaderName="报警测试情况表";
-        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
+        String baseHeaderName = "报警测试情况表";
+        String header = baseHeaderName + "(" + resumptionDTO.getSearchTime() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-"+baseHeaderName + DateHelper.getDateString(new Date()), "UTF-8");
+        String fileName = URLEncoder.encode("【" + orgName + "】-" + baseHeaderName + DateHelper.getDateString(new Date()), "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
         // 调用EasyExcel的导出方法
         EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
@@ -302,7 +294,7 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
         //判断机构类型,如果机构类型大于行社,都展示行社数据
         SysOrg sysOrg = orgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
         List<SysOrg> sysOrgs;
-        if (null==sysOrg.getType()){
+        if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
@@ -325,7 +317,7 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
                 }
             }
             IntrusionTestReportVO intrusionTestReportVO1 = resumptionReportMapper.selectIntrusionTestReport(null, resumptionDTO.getSearchTime(), o.getPath());
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(o.getPath());
+            Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(o.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             //隐患
             Map map = resumptionReportMapper.selectIntrusionTestAbnormalNumber(null, resumptionDTO.getSearchTime(), o.getPath());
             if (o.getType() == 4) {
@@ -366,11 +358,11 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
-        String baseHeaderName="备用电源维护情况表";
-        String header=baseHeaderName+"(" + resumptionDTO.getExportDateTitle() + ")";
+        String baseHeaderName = "备用电源维护情况表";
+        String header = baseHeaderName + "(" + resumptionDTO.getExportDateTitle() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-"+baseHeaderName + DateHelper.getDateString(new Date()), "UTF-8");
+        String fileName = URLEncoder.encode("【" + orgName + "】-" + baseHeaderName + DateHelper.getDateString(new Date()), "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
         // 调用EasyExcel的导出方法
         EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
@@ -380,44 +372,51 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
 
 
     @Override
-    public List<IntrusionTestReportVO> serviceBank(ResumptionDTO resumptionDTO) {
+    public List<LhSelfBankInspectionReport> serviceBank(ResumptionDTO resumptionDTO) throws Exception {
         if (null == resumptionDTO.getOrgId()) {
             resumptionDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }
         //判断机构类型,如果机构类型大于行社,都展示行社数据
         SysOrg sysOrg = orgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
-        List<SysOrg> sysOrgs;
-        if (null==sysOrg.getType()){
-            return Collections.emptyList();
-        }
-        if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
-            sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
-        } else if (sysOrg.getType() == 3) {
-            sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
-        } else {
+        List<SysOrg> sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
+        if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
-        List<IntrusionTestReportVO> intrusionTestReportVOList = new ArrayList<>(16);
-        sysOrgs.forEach(o -> {
-            IntrusionTestReportVO intrusionTestReportVO = new IntrusionTestReportVO();
-            SysOrg sysOrg1;
-            if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
-                sysOrg1 = orgService.selectOrgById(o.getParentId(), SecurityConstants.INNER);
-            } else {
-                sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(o.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
+        //如果查看省联社/地区 数据,那么就展示离行机构数量
+        //如果查看行社数据,那么列表上展示离行机构名称
+        boolean showOrgName = sysOrg.getType() == 3;
+        List<LhSelfBankInspectionReport> intrusionTestReportVOList = new ArrayList<>();
+        if (!showOrgName) {
+            for (SysOrg hsOrg : sysOrgs) {
+                CompletableFuture<LhSelfBankInspectionReport> future = CompletableFuture.supplyAsync(() -> {
+                    LhSelfBankInspectionReport intrusionTestReportVO = resumptionReportMapper.selectServiceBankReport(null, resumptionDTO.getSearchTime(), hsOrg.getPath());
+                    Integer orgNums = monitorAccessReportMapper.selectOrgNumByPathAndType(hsOrg.getPath(), OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode());
+                    intrusionTestReportVO.setCity(hsOrg.getAffiliatedArea());
+                    intrusionTestReportVO.setOrgName(hsOrg.getShortName());
+                    intrusionTestReportVO.setNetworkNumber(orgNums);
+                    return intrusionTestReportVO;
+                }, threadPoolTaskExecutor);
+                intrusionTestReportVOList.add(future.get(5, TimeUnit.SECONDS));
             }
-            IntrusionTestReportVO intrusionTestReportVO1 = resumptionReportMapper.selectServiceBankReport(null, resumptionDTO.getSearchTime(), o.getPath());
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(o.getPath());
-            if (o.getType() == 4) {
-                integer = 1;
-                intrusionTestReportVO1 = resumptionReportMapper.selectServiceBankReport(o.getId(), resumptionDTO.getSearchTime(), null);
+        } else {
+            for (SysOrg hsOrg : sysOrgs) {
+                List<SysOrg> lhOrgList = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(), SecurityConstants.INNER);
+                for (SysOrg lhOrg : lhOrgList) {
+                    CompletableFuture<LhSelfBankInspectionReport> future = CompletableFuture.supplyAsync(() -> {
+                        LhSelfBankInspectionReport intrusionTestReportVO = resumptionReportMapper.selectServiceBankReport(null, resumptionDTO.getSearchTime(), lhOrg.getPath());
+                        intrusionTestReportVO.setCity(lhOrg.getAffiliatedArea());
+                        intrusionTestReportVO.setOrgName(hsOrg.getShortName());
+                        intrusionTestReportVO.setLhOrgName(lhOrg.getShortName());
+                        return intrusionTestReportVO;
+                    }, threadPoolTaskExecutor);
+                    intrusionTestReportVOList.add(future.get(5, TimeUnit.SECONDS));
+                }
             }
-            BeanUtils.copyProperties(intrusionTestReportVO1, intrusionTestReportVO);
-            intrusionTestReportVO.setCity(sysOrg1.getShortName().indexOf("地区行社") == -1 ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
-            intrusionTestReportVO.setOrgName(o.getShortName());
-            intrusionTestReportVO.setNetworkNumber(integer);
-            intrusionTestReportVOList.add(intrusionTestReportVO);
-        });
+        }
+        //如果不展示离行机构名称,说明要展示离行机构数量,不展示离行机构数量为0的数据
+        if (!showOrgName) {
+            intrusionTestReportVOList.removeIf(r -> ObjectUtil.equal(0, r.getNetworkNumber()));
+        }
         return intrusionTestReportVOList;
     }
 
@@ -467,7 +466,7 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO1 = resumptionReportMapper.selectStandbyPower(null, resumptionDTO.getStartTime(), resumptionDTO.getEndTime(), o.getPath());
             //隐患
             Map map = resumptionReportMapper.selectStandbyPowerAbnormalNumber(null, resumptionDTO.getStartTime(), resumptionDTO.getEndTime(), o.getPath());
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(o.getPath());
+            Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(o.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             if (o.getType() == 4) {
                 integer = 1;
                 map = resumptionReportMapper.selectStandbyPowerAbnormalNumber(o.getId(), resumptionDTO.getStartTime(), resumptionDTO.getEndTime(), null);
@@ -491,13 +490,18 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
     }
 
     @Override
-    public void serviceBankExport(ResumptionDTO resumptionDTO, HttpServletResponse response) throws IOException {
+    public void serviceBankExport(ResumptionDTO resumptionDTO, HttpServletResponse response) throws Exception {
         String orgName = null;
+        boolean showOrgName = false;
         if (null != resumptionDTO.getOrgId()) {
             SysOrg sysOrg = orgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
             orgName = sysOrg.getName();
+            if (sysOrg.getType() == 3) {
+                showOrgName = true;
+            }
         }
-        List<IntrusionTestReportVO> report = this.serviceBank(resumptionDTO);
+
+        List<LhSelfBankInspectionReport> report = this.serviceBank(resumptionDTO);
         if (ObjectUtil.isEmpty(report)) {
             throw new RuntimeException("导出数据为空!");
         }
@@ -505,19 +509,40 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
         for (int i = 0; i < report.size(); i++) {
-            IntrusionTestReportVO intrusionTestReportVO = report.get(i);
+            LhSelfBankInspectionReport intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
-        String baseHeaderName="离行式自助银行巡检情况表";
-        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
+
+        String baseHeaderName = "离行式自助银行巡检情况表";
+        String header = baseHeaderName + "(" + resumptionDTO.getSearchTime() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
         String fileName = URLEncoder.encode("【" + orgName + "】-" + baseHeaderName + DateHelper.getDateString(new Date()), "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
-        // 调用EasyExcel的导出方法
-        EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
-                .registerWriteHandler(new ValueCellWriteHandler(header))
-                .sheet(baseHeaderName).doWrite(report);
+        Class clazz;
+        if (showOrgName){
+            List<LhSelfBankInspectionReportNameVo> list = BeanHelper.copyProperties(report, LhSelfBankInspectionReportNameVo.class);
+            clazz = LhSelfBankInspectionReportNameVo.class;
+            // 调用EasyExcel的导出方法
+            EasyExcel.write(response.getOutputStream(), clazz)
+                    .registerWriteHandler(new ValueCellWriteHandler(header))
+                    .sheet(baseHeaderName).doWrite(list);
+        }else {
+            List<LhSelfBankInspectionReportNumVo> list = BeanHelper.copyProperties(report, LhSelfBankInspectionReportNumVo.class);
+            clazz = LhSelfBankInspectionReportNumVo.class;
+            // 调用EasyExcel的导出方法
+            EasyExcel.write(response.getOutputStream(), clazz)
+                    .registerWriteHandler(new ValueCellWriteHandler(header))
+                    .sheet(baseHeaderName).doWrite(list);
+        }
+
+
+
+
+
+
+
+
     }
 
 

+ 41 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReport.java

@@ -0,0 +1,41 @@
+package com.xunmei.core.reportForms.resumption.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class LhSelfBankInspectionReport {
+    @ApiModelProperty(value = "序号")
+    private Integer orderNum;
+
+    @ApiModelProperty(value = "地区机构名称")
+    private String city;
+
+    @ApiModelProperty(value = "行社机构名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "离行机构名称")
+    private String lhOrgName;
+
+    @ApiModelProperty(value = "离行机构数量")
+    private Integer networkNumber;
+
+    @ApiModelProperty(value = "应履职次数")
+    private Integer planNumber;
+
+    @ApiModelProperty(value = "已履职次数")
+    private Integer realityNumber;
+
+    @ApiModelProperty(value = "履职完成率")
+    private String realityRate;
+
+    @ApiModelProperty(value = "隐患数量")
+    private Integer abnormalNumber;
+
+    @ApiModelProperty(value = "已整改数量")
+    private Integer realityRectificationNumber;
+
+    @ApiModelProperty(value = "整改完成率")
+    private String realityRectificationRate;
+}

+ 52 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReportNameVo.java

@@ -0,0 +1,52 @@
+package com.xunmei.core.reportForms.resumption.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+@ColumnWidth(25) //列宽,最大值为255
+@HeadRowHeight(16) //表头行高
+@ContentRowHeight(16) //数据行高
+public class LhSelfBankInspectionReportNameVo {
+    @ExcelProperty(value = "序号")
+    private Integer orderNum;
+
+    @ExcelProperty(value = "地区")
+    private String city;
+
+    @ExcelProperty(value = "单位名称")
+    private String orgName;
+
+    @ExcelProperty(value = "离行式机构名称")
+    @ApiModelProperty(value = "离行式机构名称")
+    private String lhOrgName;
+
+    @ExcelProperty(value = "应履职次数")
+    @ApiModelProperty(value = "应履职次数")
+    private Integer planNumber;
+
+    @ExcelProperty(value = "已履职次数")
+    @ApiModelProperty(value = "已履职次数")
+    private Integer realityNumber;
+
+    @ExcelProperty(value = "履职完成率")
+    @ApiModelProperty(value = "履职完成率")
+    private String realityRate;
+
+    @ExcelProperty(value = "隐患数量")
+    @ApiModelProperty(value = "隐患数量")
+    private Integer abnormalNumber;
+
+    @ExcelProperty(value = "已整改数量")
+    @ApiModelProperty(value = "已整改数量")
+    private Integer realityRectificationNumber;
+
+    @ExcelProperty(value = "整改完成率")
+    @ApiModelProperty(value = "整改完成率")
+    private String realityRectificationRate;
+}

+ 46 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/LhSelfBankInspectionReportNumVo.java

@@ -0,0 +1,46 @@
+package com.xunmei.core.reportForms.resumption.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class LhSelfBankInspectionReportNumVo {
+    @ExcelProperty(value = "序号")
+    private Integer orderNum;
+
+    @ExcelProperty(value = "地区")
+    private String city;
+
+    @ExcelProperty(value = "单位名称")
+    private String orgName;
+
+    @ExcelProperty(value = "离行式机构数量")
+    @ApiModelProperty(value = "离行式机构数量")
+    private Integer networkNumber;
+
+    @ExcelProperty(value = "应履职次数")
+    @ApiModelProperty(value = "应履职次数")
+    private Integer planNumber;
+
+    @ExcelProperty(value = "已履职次数")
+    @ApiModelProperty(value = "已履职次数")
+    private Integer realityNumber;
+
+    @ExcelProperty(value = "履职完成率")
+    @ApiModelProperty(value = "履职完成率")
+    private String realityRate;
+
+    @ExcelProperty(value = "隐患数量")
+    @ApiModelProperty(value = "隐患数量")
+    private Integer abnormalNumber;
+
+    @ExcelProperty(value = "已整改数量")
+    @ApiModelProperty(value = "已整改数量")
+    private Integer realityRectificationNumber;
+
+    @ExcelProperty(value = "整改完成率")
+    @ApiModelProperty(value = "整改完成率")
+    private String realityRectificationRate;
+}

+ 2 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/service/impl/SafetyInspectServiceImpl.java

@@ -2,11 +2,9 @@ package com.xunmei.core.reportForms.safetyInspect.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.exception.ServiceException;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.utils.DateHelper;
-import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.edu.service.impl.ValueCellWriteHandler;
 import com.xunmei.core.reportForms.monitor.mapper.MonitorAccessReportMapper;
@@ -133,7 +131,7 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
                     sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
                 }
             }
-            Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(s.getPath());
+            Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             //次数
             SafetyInspectVO safetyInspectVOS = safetyInspectMapper.selectSelfByPath(null,safetyInspectDTO.getCycle(),s.getPath(),safetyInspectDTO.getYear(),safetyInspectDTO.getOrgType());
             Map map1 = safetyInspectMapper.pitfallDimension(null,s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(),3);

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml

@@ -170,7 +170,7 @@
         select sum(if(o.type = 3, 1, 0))                                     as hangsheCount,
                sum(if(o.type = 4, 1, 0))                                     as bankingCount,
                sum(if(o.type = 5, 1, 0))                                     as offlineCount,
-               sum(if(o.type = 4 and oe.business_library is not null, 1, 0)) as bankingStoreCount
+               sum(if(o.type = 4 and oe.business_library =1, 1, 0)) as bankingStoreCount
         from sys_org o
                  LEFT JOIN sys_org_extend oe on o.id = oe.org_id
         WHERE o.deleted = 0

+ 2 - 2
soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/MonitorAccessReportMapper.xml

@@ -30,8 +30,8 @@
         GROUP BY
         b.id
     </select>
-    <select id="selectNetworkNumberByPath" resultType="java.lang.Integer">
-        SELECT COUNT(1) FROM sys_org WHERE path LIKE  concat( #{orgPath}, '%') AND type=4 AND deleted=0 AND is_lock=0 AND deleted=0
+    <select id="selectOrgNumByPathAndType" resultType="java.lang.Integer">
+        SELECT COUNT(1) FROM sys_org WHERE path LIKE  concat( #{orgPath}, '%') AND type=#{orgType} AND deleted=0 AND is_lock=0
     </select>
     <select id="selectAll" resultType="com.xunmei.core.reportForms.monitor.vo.MonitoringAccessVO">
         SELECT

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/ResumptionReportMapper.xml

@@ -165,7 +165,7 @@
         </if>
     </select>
     <select id="selectServiceBankReport"
-            resultType="com.xunmei.core.reportForms.resumption.vo.IntrusionTestReportVO">
+            resultType="com.xunmei.core.reportForms.resumption.vo.LhSelfBankInspectionReport">
         SELECT
         IFNULL( a.exception_count, 0 ) AS abnormalNumber,
         COUNT( a.id ) AS planNumber,

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/VideoDiagnosisServiceImpl.java

@@ -107,7 +107,7 @@ public class VideoDiagnosisServiceImpl extends ServiceImpl<IotDvrChannelMapper,
                     .ge(MediatorVideoIntegrityCheckLog::getRecordDate, earliestDate)
                     .select(MediatorVideoIntegrityCheckLog::getRecordDate, MediatorVideoIntegrityCheckLog::getStatus);
             Map<Integer, List<MediatorVideoIntegrityCheckLog>> days = videoIntegrityCheckLogMapper.selectList(wrapper)
-                    .stream().collect(Collectors.groupingBy(d -> d.getStatus()));
+                    .stream().collect(Collectors.groupingBy(MediatorVideoIntegrityCheckLog::getStatus));
 
             DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
             if (days.containsKey(VideoIntegrityStatus.Full.getId())) {

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/VideoDiagnosisWebPageVo.java

@@ -7,6 +7,9 @@ import lombok.Data;
 
 @Data
 public class VideoDiagnosisWebPageVo {
+    @ApiModelProperty("主机名称")
+    private String hostName;
+
     @ApiModelProperty("主机code")
     private String hostCode;
 

+ 1 - 1
soc-modules/soc-modules-iot/src/main/resources/mapper/DvrDiskMapper.xml

@@ -155,7 +155,7 @@
         SUM(dd.exceptionCount) as diskExceptionCount
         FROM iot_device d
         LEFT JOIN (SELECT host_code,count(0) as count,SUM(if(state=1,1,0)) as exceptionCount from iot_dvr_disk WHERE
-        deleted=0 ) dd on dd.host_code =d.equipment_code
+        deleted=0 group by host_code) dd on dd.host_code =d.equipment_code
         where d.deleted=0 and d.category_id=#{pageDto.categoryId}
         <if test="pageDto.checkSub==true">
             and d.org_path like concat(#{orgPath},"%")

+ 3 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvrChannelMapper.xml

@@ -23,6 +23,7 @@
             <result column="integrity_lose_span" property="loseSpan"></result>
             <result column="integrity_check_span" property="checkSpan"></result>
             <result column="integrity_update_time" property="updateTime"></result>
+            <result column="integrity_status" property="state"></result>
         </association>
         <association property="storage" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisStorageVo">
             <result column="storage_plan_days" property="planDays"></result>
@@ -52,6 +53,7 @@
         c.org_name,
         o.affiliated_area,
         o.affiliated_bank,
+        d.equipment_name as hostName,
         c.channel_name,
         c.channel_addr as channelIP,
         vic.lose_duration,
@@ -117,6 +119,7 @@
                vic.lose_span           as integrity_lose_span,
                vic.check_span          as integrity_check_span,
                vic.update_time         as integrity_update_time,
+               vic.status              as integrity_status,
                vdc.plan_days           as storage_plan_days,
                vdc.real_days           as storage_real_days,
                vdc.earliest_video_time as storage_earliest_video_time

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysOrgExtendDto.java

@@ -124,4 +124,10 @@ public class SysOrgExtendDto  {
      */
     @ApiModelProperty(value = "加钞间远程控制")
     private Integer cashAddingRoomRemoteControl;
+
+    @ApiModelProperty(value = "可远程控制和实时授权出入口数量(业务库)")
+    private Integer remoteControlCount;
+
+    @ApiModelProperty(value = "可远程控制和实时授权出入口数量(离行式)")
+    private Integer cashAddingRoomControlCount;
 }

+ 6 - 7
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -13,12 +13,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
-import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.OrgTreeReq;
 import com.xunmei.common.core.domain.OrgTreeResp;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.ServiceException;
-import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
@@ -37,7 +35,6 @@ import com.xunmei.system.util.OrgPhysicalDefenseConstructionExport;
 import com.xunmei.system.util.SecurityWorkExport;
 import io.netty.util.internal.StringUtil;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -348,6 +345,8 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             Map remote = baseMapper.getRemote(s.getPath());
             securityWorkExport.setCashAddingRoom(Integer.valueOf(remote.get("cashAddingRoom").toString()));
             securityWorkExport.setRemoteCount(Integer.valueOf(remote.get("remoteCount").toString()));
+            securityWorkExport.setCashAddingRoomControlCount(Integer.valueOf(remote.get("cashAddingRoomControlCount").toString()));
+            securityWorkExport.setRemoteControlCount(Integer.valueOf(remote.get("remoteControlCount").toString()));
 
 
             //夜间值守
@@ -459,12 +458,12 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public List<ConstructionDetailExport> selectConstructionDetail(SysOrg dept) {
         String path = dept.getPath();
         if (StringUtils.isEmpty(path)) {
-            dept.setPath(baseMapper.selectSysOrgById(SecurityUtils.getLoginUser().getOrgId()).getPath());
+            SysOrg org = getById(SecurityUtils.getLoginUser().getOrgId());
+            dept.setPath(org.getPath());
         }
 
         List<ConstructionDetailExport> constructionDetailExports = baseMapper.selectConstructionDetail(dept.getPath());
-
-        //hang
+       /* //hang
         constructionDetailExports.forEach(c -> {
             SysOrg sysOrg = baseMapper.selectSysOrgById(c.getOrgId());
             c.setAddress(sysOrg.getAddress());
@@ -474,7 +473,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             SysOrg sysOrg2;
             sysOrg2 = baseMapper.selectSysOrgById(sysOrg1.getParentId());
             c.setCity(sysOrg2.getShortName().indexOf("地区行社") == -1 ? sysOrg2.getShortName().substring(0, 2) : sysOrg2.getShortName().split("地区行社")[0]);
-        });
+        });*/
         return constructionDetailExports;
     }
 

+ 17 - 22
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

@@ -1,47 +1,43 @@
 package com.xunmei.system.service.impl;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
+import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.Ymd;
 import com.xunmei.common.core.utils.snowId.DateHelper;
 import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.system.api.domain.SysOrg;
-import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
+import com.xunmei.system.domain.SysWorkTimeSet;
 import com.xunmei.system.domain.SysWorkTimeSetDayofweek;
 import com.xunmei.system.mapper.SysWorkTimeMapper;
 import com.xunmei.system.mapper.SysWorkTimeSetDayofweekMapper;
-import com.xunmei.common.core.util.BeanHelper;
+import com.xunmei.system.mapper.SysWorkTimeSetMapper;
+import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.service.ISysWorkTimeService;
+import com.xunmei.system.service.ISysWorkTimeSetService;
 import com.xunmei.system.util.StreamHelper;
-
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-import com.xunmei.system.service.ISysOrgService;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.system.mapper.SysWorkTimeSetMapper;
-import com.xunmei.system.domain.SysWorkTimeSet;
-import com.xunmei.system.service.ISysWorkTimeSetService;
-import org.springframework.transaction.annotation.Transactional;
-
 import static com.xunmei.common.core.web.domain.AjaxResult.error;
 import static com.xunmei.common.core.web.domain.AjaxResult.success;
 
@@ -310,7 +306,6 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
     }
 
 
-
     /**
      * 1)配置模版后立即自动生成生效日期到今年和次年的作息,
      * 2)定时任务在每年11月15日自动生成下一年的作息。
@@ -357,12 +352,12 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 
             QueryWrapper<SysWorkTimeSet> qw = new QueryWrapper<>();
             qw.lambda().eq(SysWorkTimeSet::getOrgId, orgId);
-            SysWorkTimeSet sysWorkTimeSet = sysWorkTimeSetMapper.selectList(qw).get(0);
-            if(sysWorkTimeSet != null){
-                set = sysWorkTimeSet;
-            }else{
+            List<SysWorkTimeSet> list = sysWorkTimeSetMapper.selectList(qw);
+            if (list.isEmpty()) {
                 set = new SysWorkTimeSet();
                 org = orgService.selectSysOrgById(orgId);
+            } else {
+                set = list.get(0);
             }
 
 

+ 5 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/ConstructionDetailExport.java

@@ -20,16 +20,21 @@ import lombok.Data;
 public class ConstructionDetailExport {
     @ExcelIgnore
     private Long orgId;
+
     @ExcelProperty(value = "序号", index = 0)
     @TableField(exist = false)
     private String xh;
+
     @ExcelProperty(value = "地区", index = 1)
     private String city;
+
     @ExcelProperty(value = "行社", index = 2)
     private String orgName;
+
     @ExcelProperty(value = "网点名称", index = 3)
     @ApiModelProperty(value = "网点名称")
     private String networkName;
+
     @ExcelProperty(value = "地址", index = 4)
     @ApiModelProperty(value = "地址")
     private String address;

+ 38 - 34
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityWorkExport.java

@@ -73,73 +73,77 @@ public class SecurityWorkExport {
     private Integer cameraTotal;
     @ExcelProperty(value = {"监控中心建设", "视频监控摄像头高清摄像机路数"}, index = 26)
     private Integer definitionNumber;
-    @ExcelProperty(value = {"监控中心建设", "是否实现远程控制和实时授权的功能", "离行式自助银行加钞间出入口设置数量"}, index = 27)
+    @ExcelProperty(value = {"监控中心建设", "未实现远程控制和实时授权功能", "离行式自助银行加钞间出入口设置数量"}, index = 27)
     private Integer cashAddingRoom;
-    @ExcelProperty(value = {"监控中心建设", "是否实现远程控制和实时授权的功能", "业务库(不含保管箱库)防控隔离门出入口设置数量"}, index = 28)
+    @ExcelProperty(value = {"监控中心建设", "未实现远程控制和实时授权功能", "业务库(不含保管箱库)防控隔离门出入口设置数量"}, index = 28)
     private Integer remoteCount;
-    @ExcelProperty(value = {"营业网点夜间值守", "本地值守网点数量(由员工进行同楼异地值守)"}, index = 29)
+    @ExcelProperty(value = {"监控中心建设", "实现远程控制和实时授权功能", "离行式自助银行加钞间出入口设置数量"}, index = 29)
+    private Integer cashAddingRoomControlCount;
+    @ExcelProperty(value = {"监控中心建设", "实现远程控制和实时授权功能", "业务库(不含保管箱库)防控隔离门出入口设置数量"}, index = 30)
+    private Integer remoteControlCount;
+    @ExcelProperty(value = {"营业网点夜间值守", "本地值守网点数量(由员工进行同楼异地值守)"}, index = 31)
     private Integer localDutyNetworkNumber;
-    @ExcelProperty(value = {"营业网点夜间值守", "异地值守网点数量(由监控中心进行远程值守)"}, index = 30)
+    @ExcelProperty(value = {"营业网点夜间值守", "异地值守网点数量(由监控中心进行远程值守)"}, index = 32)
     private Integer remoteDutyNetworkNumber;
-    @ExcelProperty(value = {"机构及人员配备", "是否设立独立机构数"}, index = 31)
+    @ExcelProperty(value = {"机构及人员配备", "是否设立独立机构数"}, index = 33)
     private String isAlone;
-    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人为专职人数"}, index = 32)
+    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人为专职人数"}, index = 34)
     private Integer managerFullTime;
-    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人为兼职人数"}, index = 33)
+    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人为兼职人数"}, index = 35)
     private Integer managerPartTime;
-    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人安保持证人数"}, index = 34)
+    @ExcelProperty(value = {"机构及人员配备", "部门负责人、一般管理人员和监控中心负责人安保持证人数"}, index = 36)
     private Integer managerCertificate;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "是否设专(兼)职主任"}, index = 35)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "是否设专(兼)职主任"}, index = 37)
     private String isLeader;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "是否设专(兼)职技术维护岗"}, index = 36)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "是否设专(兼)职技术维护岗"}, index = 38)
     private String isTechnology;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "人员合计"}, index = 37)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "人员合计"}, index = 39)
     private Integer monitorTotal;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "其中,内部员工人数(含派遣)"}, index = 38)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "其中,内部员工人数(含派遣)"}, index = 40)
     private Integer innerPeople;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "其中,外聘员工人数"}, index = 39)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心人员情况", "其中,外聘员工人数"}, index = 41)
     private Integer outPeople;
-    @ExcelProperty(value = {"机构及人员配备", "监控中心安保卫持证人数"}, index = 40)
+    @ExcelProperty(value = {"机构及人员配备", "监控中心安保卫持证人数"}, index = 42)
     private Integer certificatePeopleNumber;
-    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "人员合计"}, index = 41)
+    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "人员合计"}, index = 43)
     private Integer certificateTotal;
-    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "其中,内部保安人数(含派遣)"}, index = 42)
+    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "其中,内部保安人数(含派遣)"}, index = 44)
     private Integer internalCertificateNumber;
-    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "其中,外聘保安人数"}, index = 43)
+    @ExcelProperty(value = {"机构及人员配备", "营业网点保安人员数", "其中,外聘保安人数"}, index = 45)
     private Integer outsourceCertificateNumber;
-    @ExcelProperty(value = {"机构及人员配备", "配有保安网点数"}, index = 44)
+    @ExcelProperty(value = {"机构及人员配备", "配有保安网点数"}, index = 46)
     private Integer haveSecurityNetworkNumber;
-    @ExcelProperty(value = {"责任制落实", "各级治安保卫责任书签订情况(份)", "总行(联社)与各职能部门、营业网点签订数"}, index = 45)
+    @ExcelProperty(value = {"责任制落实", "各级治安保卫责任书签订情况(份)", "总行(联社)与各职能部门、营业网点签订数"}, index = 47)
     private Integer safeHeadToNetwork;
-    @ExcelProperty(value = {"责任制落实", "各级治安保卫责任书签订情况(份)", "各职能部门、营业网点与各员工签订数"}, index = 46)
+    @ExcelProperty(value = {"责任制落实", "各级治安保卫责任书签订情况(份)", "各职能部门、营业网点与各员工签订数"}, index = 48)
     private Integer safeNetworkToPeople;
-    @ExcelProperty(value = {"责任制落实", "各级联防协议书签订情况(份)", "总行(联社)与当地机关、单位或居民签订协议书数量"}, index = 47)
+    @ExcelProperty(value = {"责任制落实", "各级联防协议书签订情况(份)", "总行(联社)与当地机关、单位或居民签订协议书数量"}, index = 49)
     private Integer jointHeadToNetwork;
-    @ExcelProperty(value = {"责任制落实", "各级联防协议书签订情况(份)", " 各营业网点(离行式自助银行)与当地机关、单位或居民签订协议书数量"}, index = 48)
+    @ExcelProperty(value = {"责任制落实", "各级联防协议书签订情况(份)", " 各营业网点(离行式自助银行)与当地机关、单位或居民签订协议书数量"}, index = 50)
     private Integer jointNetworkToPeople;
-    @ExcelProperty(value = {"总行(联社)安全检查 ", "组织开展检查次数"}, index = 49)
+    @ExcelProperty(value = {"总行(联社)安全检查 ", "组织开展检查次数"}, index = 51)
     private Integer headSafeCheckNumber;
-    @ExcelProperty(value = {"总行(联社)安全检查 ", "检查网点数量"}, index = 50)
+    @ExcelProperty(value = {"总行(联社)安全检查 ", "检查网点数量"}, index = 52)
     private Integer headSafeCheckNetworkNumber;
-    @ExcelProperty(value = {"总行(联社)安全检查 ", "发现隐患数"}, index = 51)
+    @ExcelProperty(value = {"总行(联社)安全检查 ", "发现隐患数"}, index = 53)
     private Integer foundDangerNumber;
-    @ExcelProperty(value = {"总行(联社)安全检查 ", "已整改隐患数"}, index = 52)
+    @ExcelProperty(value = {"总行(联社)安全检查 ", "已整改隐患数"}, index = 54)
     private Integer rectificationDangerNumber;
-    @ExcelProperty(value = {"总行(联社)安全检查 ", "未整改隐患数"}, index = 53)
+    @ExcelProperty(value = {"总行(联社)安全检查 ", "未整改隐患数"}, index = 55)
     private Integer noRectificationDangerNumber;
-    @ExcelProperty(value = {"营业网点安全检查", "本季度辖内所有营业网点组织开展自查次数(每个网点检查数量的累计数)"}, index = 54)
+    @ExcelProperty(value = {"营业网点安全检查", "本季度辖内所有营业网点组织开展自查次数(每个网点检查数量的累计数)"}, index = 56)
     private Integer quarterSelfInspectNumber;
-    @ExcelProperty(value = {"安全教育", "本季度度总行(联社)组织开展安全教育次数"}, index = 55)
+    @ExcelProperty(value = {"安全教育", "本季度度总行(联社)组织开展安全教育次数"}, index = 57)
     private Integer quarterSafetyEducationNumber;
-    @ExcelProperty(value = {"安全教育", "共计参与安全教育员工人次"}, index = 56)
+    @ExcelProperty(value = {"安全教育", "共计参与安全教育员工人次"}, index = 58)
     private Integer safetyEducationPeopleNumber;
-    @ExcelProperty(value = {"总行(联社)预案演练", "本季度开展预案演练次数"}, index = 57)
+    @ExcelProperty(value = {"总行(联社)预案演练", "本季度开展预案演练次数"}, index = 59)
     private Integer quarterDrillNumber;
-    @ExcelProperty(value = {"总行(联社)预案演练", "参与预案演练员工人次"}, index = 58)
+    @ExcelProperty(value = {"总行(联社)预案演练", "参与预案演练员工人次"}, index = 60)
     private Integer quarterDrillPeopleNumber;
-    @ExcelProperty(value = {"营业网点预案演练", "本季度辖内所有营业网点开展预案演练次数(每个网点演练次数的累计数)"}, index = 59)
+    @ExcelProperty(value = {"营业网点预案演练", "本季度辖内所有营业网点开展预案演练次数(每个网点演练次数的累计数)"}, index = 61)
     private Integer quarterAllNetworkDrillNumber;
-    @ExcelProperty(value = {"营业网点预案演练", "辖内所有营业网点参与预案演练员工人次"}, index = 60)
+    @ExcelProperty(value = {"营业网点预案演练", "辖内所有营业网点参与预案演练员工人次"}, index = 62)
     private Integer quarterAllNetworkDrillPeopleNumber;
 
 

+ 10 - 4
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -831,7 +831,11 @@ and
                             NULL,
                             a.reason
                 ) AS reason,
-            a.date_of_complete AS completeDate
+            a.date_of_complete AS completeDate,
+            c.address as address,
+            c.affiliated_area as city,
+            c.affiliated_bank as orgName,
+            c.short_name as networkName
         FROM
             sys_org_physical_defense_construction a
                 INNER JOIN sys_org c ON c.id=a.org_id
@@ -995,14 +999,16 @@ and
     <select id="getRemote" resultType="java.util.Map">
         SELECT
             IFNULL( SUM( a.cash_adding_room ), 0 ) AS cashAddingRoom,
-            IFNULL( SUM( a.remote_count ), 0 ) AS remoteCount
+            IFNULL( SUM( a.remote_count ), 0 ) AS remoteCount,
+            IFNULL( SUM( a.cash_adding_room_control_count ), 0 ) AS cashAddingRoomControlCount,
+            IFNULL( SUM( a.remote_control_count ), 0 ) AS remoteControlCount
         FROM
             sys_org_extend a
                 LEFT JOIN sys_org b ON a.org_id = b.id
         where
             1=1
-          and b.type != 10
-          and a.remote_control = 1
+          and b.type = 10
+/*          and a.remote_control = 1*/
           and b.deleted = 0
           and b.is_lock = 0
           and b.path LIKE concat(#{orgPath}, '%')