Преглед на файлове

Merge branch 'V0.0.6-iot' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.6-iot

jiawuxian преди 1 година
родител
ревизия
59390a3c3a
променени са 36 файла, в които са добавени 453 реда и са изтрити 201 реда
  1. 16 0
      project_data/sql/0.0.6-iot/soc/soc.sql
  2. 11 5
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskReportVo.java
  3. 7 5
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/CoreEduTrainingTaskReportVo.java
  4. 3 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java
  5. 26 12
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  6. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java
  7. 17 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  8. 58 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/ValueCellWriteHandler.java
  9. 39 25
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/controller/CoreEvaluateTaskController.java
  10. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/dto/EvaluateTaskStatisticsDTO.java
  11. 19 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java
  12. 11 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/vo/EvaluateTaskExportVO.java
  13. 13 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java
  14. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreOutInRecordServiceImpl.java
  15. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/controller/MonitorAccessReportController.java
  16. 11 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java
  17. 15 8
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/vo/MonitoringAccessVO.java
  18. 24 18
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java
  19. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/dto/ResumptionDTO.java
  20. 26 8
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java
  21. 10 10
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/IntrusionTestReportVO.java
  22. 13 13
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/ResumptionDayVO.java
  23. 25 11
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/controller/SafetyInspectReportController.java
  24. 17 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/service/impl/SafetyInspectServiceImpl.java
  25. 12 12
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/vo/SafetyInspectVO.java
  26. 11 11
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/vo/SelfInspectVO.java
  27. 3 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java
  28. 1 4
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotSensorController.java
  29. 13 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java
  30. 9 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/sensor/SensorPageVo.java
  31. 1 1
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml
  32. 12 24
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java
  33. 13 5
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java
  34. 2 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/util/RedisCheckRepeatDataUtil.java
  35. 4 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/UserExport.java
  36. 2 0
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 16 - 0
project_data/sql/0.0.6-iot/soc/soc.sql

@@ -907,3 +907,19 @@ INSERT INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `c
 INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '正常', '0', 'iot_device_net_status', NULL, 'default', 'N', '0', '超级管理员', '2024-02-23 10:24:07', '', NULL, NULL);
 INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 1, '异常', '1', 'iot_device_net_status', NULL, 'default', 'N', '0', '超级管理员', '2024-02-23 10:24:16', '', NULL, NULL);
 INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 2, '中断', '2', 'iot_device_net_status', NULL, 'default', 'N', '0', '超级管理员', '2024-02-23 10:24:24', '', NULL, NULL);
+INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231113254, 'App动环传感器设备类型', 'app_sensor_device_type', '0', '超级管理员', '2024-03-04 16:21:31', '', NULL, '值与web应保持一致,文本有差异');
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115451, 0, '温湿度', '4183', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:22:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115452, 1, '红外', '4181', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:22:41', '超级管理员', '2024-03-04 16:22:45', NULL);
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115453, 2, '烟感', '4182', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:22:58', '', NULL, NULL);
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115454, 3, '水浸', '4184', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:23:16', '', NULL, NULL);
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115455, 4, '门窗磁', '4188', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:23:38', '', NULL, NULL);
+INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20231115456, 5, '燃气', '41885', 'app_sensor_device_type', NULL, 'default', 'N', '0', '超级管理员', '2024-03-04 16:23:49', '', NULL, NULL);
+
+
+-- 调整统计报表菜单名称
+UPDATE sys_menu m set m.menu_name='行社全面检查情况表' WHERE m.menu_name ='行社全面检查统计报表';
+UPDATE sys_menu m set m.menu_name='外包履职评价情况表' WHERE m.menu_name ='外包履职评价统计表';
+UPDATE sys_menu m set m.menu_name='报警测试情况表' WHERE m.menu_name ='报警测试报表';
+UPDATE sys_menu m set m.menu_name='备用电源维护情况表' WHERE m.menu_name ='备用电源维护报表';
+UPDATE sys_menu m set m.menu_name='离行式自助银行巡检情况表' WHERE m.menu_name ='离行式自助银行巡检报表';
+UPDATE sys_menu m set m.menu_name='网点负责人自查情况表' WHERE m.menu_name ='网点负责人自查报表';

+ 11 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskReportVo.java

@@ -18,22 +18,28 @@ import lombok.Data;
 public class CoreDrillTaskReportVo {
 
     @ColumnWidth(15)
-    @ExcelProperty(index = 0,value = "序号")
+    @ExcelProperty(index = 0,value = {"${cellWriterValue}","序号"})
     private Integer no;
+
     @ColumnWidth(15)
-    @ExcelProperty(index = 1,value = "单位名称")
+    @ExcelProperty(index = 1,value = {"${cellWriterValue}","地区"})
+    @ApiModelProperty(value = "地区")
+    private String city;
+
+    @ColumnWidth(25)
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     @ApiModelProperty(value = "机构名称")
     private String orgName;
     @ColumnWidth(15)
-    @ExcelProperty(index = 2,value = "应完成数")
+    @ExcelProperty(value = {"${cellWriterValue}","应完成数"})
     @ApiModelProperty(value = "应演练数量")
     private Integer shouldFinish;
     @ColumnWidth(15)
-    @ExcelProperty(index = 3,value = "已完成数")
+    @ExcelProperty(value = {"${cellWriterValue}","已完成数"})
     @ApiModelProperty(value = "已培演练数量")
     private Integer finish;
     @ColumnWidth(15)
-    @ExcelProperty(index = 4,value = "评分")
+    @ExcelProperty(value = {"${cellWriterValue}","评分"})
     @ApiModelProperty(value = "评分")
     private String score;
 

+ 7 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/CoreEduTrainingTaskReportVo.java

@@ -19,24 +19,26 @@ public class CoreEduTrainingTaskReportVo {
 
 
 
-    @ExcelProperty(index = 0,value = "序号")
+    @ExcelProperty(index = 0,value = {"${cellWriterValue}","序号"})
     @ApiModelProperty(value = "机构")
     private Integer no;
 
+    @ExcelProperty(index = 1,value = {"${cellWriterValue}","地区"})
+    private String city;
 
-    @ExcelProperty(index = 1,value = "单位名称")
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     @ApiModelProperty(value = "机构名称")
     private String orgName;
 
-    @ExcelProperty(index = 2,value = "应完成数")
+    @ExcelProperty(value = {"${cellWriterValue}","应完成数"})
     @ApiModelProperty(value = "应培训数量")
     private Integer shouldFinish;
 
-    @ExcelProperty(index = 3,value = "已完成数")
+    @ExcelProperty(value = {"${cellWriterValue}","已完成数"})
     @ApiModelProperty(value = "已培训数量")
     private Integer finish;
 
-    @ExcelProperty(index = 4,value = "完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","完成率"})
     @ApiModelProperty(value = "培训完成率")
     private String finishRate;
 

+ 3 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java

@@ -44,6 +44,7 @@ import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.*;
 
+import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -995,7 +996,8 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
             dataVos.add(v);
         }
         accessPdf.setDataVos(dataVos);
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.MONITOR_ACCESS, accessPdfVO.getOrgName());
+        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> remoteOrgService.selectOrgById(accessPdfVO.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.MONITOR_ACCESS, sysOrg.getName());
         accessPdf.setDest(fileName);
         return accessPdf;
     }

+ 26 - 12
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -49,6 +49,7 @@ import com.xunmei.core.drill.mapper.CoreDrillTaskToRoleMapper;
 import com.xunmei.core.drill.mapper.CoreDrillTaskToUserMapper;
 import com.xunmei.core.drill.service.ICoreDrillTaskService;
 import com.xunmei.core.drill.service.ICoreDrillTaskToUserService;
+import com.xunmei.core.edu.service.impl.ValueCellWriteHandler;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
 import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.*;
@@ -572,6 +573,13 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 
     @Override
     public void exportReport(CoreDrillTaskReportDto request, HttpServletResponse response) {
+        if (ObjectUtil.isEmpty(request.getRange())) {
+            request.setStartTime(DateUtil.beginOfMonth(request.getStartTime()));
+            request.setEndTime(DateUtil.endOfMonth(request.getEndTime()));
+        } else {
+            request.setStartTime(DateUtil.beginOfMonth(request.getRange()[0]));
+            request.setEndTime(DateUtil.endOfMonth(request.getRange()[1]));
+        }
         final List<CoreDrillTaskReportVo> list = this.selectCoreDrillTaskReport(request);
         if (ObjectUtil.isEmpty(list)) {
             throw new SystemException("未获取到数据");
@@ -580,13 +588,15 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             task.setNo(list.indexOf(task) + 1);
         }
         try {
+            String baseHeaderName="预案演练情况表";
             // 设置响应头
-            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("预案演练统计报表", "utf-8"));
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
             response.setContentType("application/octet-stream;charset=UTF-8");
             response.setCharacterEncoding("utf-8");
+            String header=baseHeaderName+"("+DateUtil.format( request.getStartTime(),"yyyy-MM")+"~"+DateUtil.format( request.getEndTime(),"yyyy-MM")+")";
             // 数据导出
             EasyExcel.write(response.getOutputStream(), CoreDrillTaskReportVo.class)
-                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("预案演练统计报表").doWrite(list);
+                    .registerWriteHandler(new ValueCellWriteHandler(header)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(baseHeaderName).doWrite(list);
         } catch (Exception e) {
             e.printStackTrace();
             // 重置response
@@ -611,24 +621,27 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         if (ObjectUtil.isAllEmpty(planId, planIdList)) {
             return new ArrayList<>();
         }
-        if (ObjectUtil.isEmpty(request.getRange())) {
-            request.setStartTime(DateUtil.beginOfMonth(request.getStartTime()));
-            request.setEndTime(DateUtil.endOfMonth(request.getEndTime()));
-        } else {
-            request.setStartTime(DateUtil.beginOfMonth(request.getRange()[0]));
-            request.setEndTime(DateUtil.endOfMonth(request.getRange()[0]));
-        }
-
 
         Long orgId = request.getOrgId();
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         request.setOrgPath(sysOrg.getPath());
 
-        List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgTreeListByCurOrgId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        List<SysOrg> sysOrgList;
+        if (null==sysOrg.getType()){
+            return Collections.emptyList();
+        }
+        if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社")) {
+            sysOrgList = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
+        } else if (sysOrg.getType() == 3) {
+            sysOrgList = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
+        } else {
+            sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgTreeListByCurOrgId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        }
         if (ObjectUtil.isEmpty(sysOrgList)) {
             //这种情况一般来查询到网点了,网点无下级机构,需要展示网点自己的数据
             sysOrgList.add(sysOrg);
         }
+
         List<CoreDrillTaskReportVo> result = new ArrayList<>();
         List<CoreDrillTaskReportVo> list = coreDrillTaskMapper.selectReport(request, planId, planIdList);
         if (list.isEmpty()) {
@@ -658,6 +671,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 //                List<CoreDrillTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
                 CoreDrillTaskReportVo reportVo = new CoreDrillTaskReportVo();
                 reportVo.setOrgId(org.getId());
+                reportVo.setCity(org.getAffiliatedArea());
                 reportVo.setOrgName(org.getShortName());
                 if (ObjectUtil.isEmpty(childrenOrgData)) {
                     reportVo.setShouldFinish(0);
@@ -754,7 +768,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public AjaxResult buildDrillTaskPdf(Long id) {
         CoreDrillTaskDetailVo task = this.selectCoreDrillTaskById(id);
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(task.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.SAFETY_DRILL, task.getOrgName());
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.SAFETY_DRILL, sysOrg.getName());
         Map<String, Object> data = this.getFtlDrill(task);
         data.put("fileName", fileName);
         data.put("id", id);

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -83,14 +83,14 @@ public class CoreEduTrainingTaskController extends BaseController {
         return toAjax(coreEduTrainingTaskService.deleteCoreEduTrainingTaskByIds(ids));
     }
 
-    @ApiOperation(value = "教育培训统计表")
+    @ApiOperation(value = "教育培训统计情况表")
     @RequiresPermissions("core:eduTask:list")
     @PostMapping("report")
     public AjaxResult report(@RequestBody @Validated CoreEduTrainingTaskReportDto request) {
         return success(coreEduTrainingTaskService.selectCoreEduTrainingTaskReport(request));
     }
 
-    @ApiOperation(value = "导出教育培训统计表")
+    @ApiOperation(value = "导出教育培训统计情况表")
     @RequiresPermissions("core:eduTask:list")
     @PostMapping("exportReport")
     public void exportReport(CoreEduTrainingTaskReportDto request,HttpServletResponse response) {

+ 17 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -613,13 +613,15 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             task.setNo(list.indexOf(task) + 1);
         }
         try {
+            String baseHeaderName="教育培训情况表";
             // 设置响应头
-            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("教育培训统计报表", "utf-8"));
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
             response.setContentType("application/octet-stream;charset=UTF-8");
             response.setCharacterEncoding("utf-8");
+            String header=baseHeaderName+"("+DateUtil.format( request.getDate(),"yyyy-MM")+")";
             // 数据导出
             EasyExcel.write(response.getOutputStream(), CoreEduTrainingTaskReportVo.class)
-                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("教育培训统计报表").doWrite(list);
+                    .registerWriteHandler(new ValueCellWriteHandler(header)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(baseHeaderName).doWrite(list);
         } catch (Exception e) {
             // 重置response
             response.reset();
@@ -651,7 +653,17 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         request.setOrgPath(sysOrg.getPath());
 
-        List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgTreeListByCurOrgId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        List<SysOrg> sysOrgList;
+        if (null==sysOrg.getType()){
+            return Collections.emptyList();
+        }
+        if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社")) {
+            sysOrgList = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
+        } else if (sysOrg.getType() == 3) {
+            sysOrgList = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
+        } else {
+            sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgTreeListByCurOrgId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        }
         if (ObjectUtil.isEmpty(sysOrgList)) {
             //这种情况一般来查询到网点了,网点无下级机构,需要展示网点自己的数据
             sysOrgList.add(sysOrg);
@@ -693,6 +705,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 
             CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
             reportVo.setOrgId(org.getId());
+            reportVo.setCity(org.getAffiliatedArea());
             reportVo.setOrgName(org.getName());
             reportVo.setShouldFinish(totalShouldFinish);
             reportVo.setFinish(totalFinish);
@@ -767,7 +780,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     public AjaxResult buildEduPdf(Long id) {
         CoreEduTrainingTaskDetailVo task = this.selectCoreEduTrainingTaskById(id);
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(task.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.EDUCATION_TRAINING, sysOrg.getShortName());
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.EDUCATION_TRAINING, sysOrg.getName());
         Map<String, Object> data = this.getFtlEdu(task);
         data.put("fileName", fileName);
         data.put("id", id);

+ 58 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/ValueCellWriteHandler.java

@@ -0,0 +1,58 @@
+package com.xunmei.core.edu.service.impl;
+
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.handler.CellWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.springframework.util.PropertyPlaceholderHelper;
+
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @author 冥河教主
+ * @Date 2021/02/08 16:00
+ */
+public class ValueCellWriteHandler implements CellWriteHandler {
+    private String cellWritervalue;
+    PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("${","}");
+
+    public ValueCellWriteHandler(String cellvalue) {
+        this.cellWritervalue = cellvalue;
+    }
+
+    @Override
+    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+                                 Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+        if (head != null) {
+            List<String> headNameList = head.getHeadNameList();
+            if (CollectionUtils.isNotEmpty(headNameList)) {
+                Properties properties = new Properties();
+                properties.setProperty("cellWriterValue", cellWritervalue);
+                for (int i = 0; i < headNameList.size(); i++) {
+                    headNameList.set(i, propertyPlaceholderHelper.replacePlaceholders(headNameList.get(i), properties));
+                }
+            }
+        }
+    }
+
+    @Override
+    public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+
+    }
+
+    @Override
+    public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+
+    }
+
+    @Override
+    public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+
+    }
+
+}

+ 39 - 25
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/controller/CoreEvaluateTaskController.java

@@ -89,30 +89,37 @@ public class CoreEvaluateTaskController extends BaseController {
     @Log(title = "外包履职评价导出", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO, HttpServletResponse response) throws IOException {
+        SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+        evaluateTaskStatisticsDTO.setType(sysOrg.getType());
+        evaluateTaskStatisticsDTO.setOrgPath(sysOrg.getPath());
+        evaluateTaskStatisticsDTO.setOrgShortName(sysOrg.getShortName());
+
         if (null != evaluateTaskStatisticsDTO.getPlanId()) {
             CoreEvaluatePlanVO coreEvaluatePlanVO = coreEvaluatePlanService.selectCoreEvaluatePlanById(evaluateTaskStatisticsDTO.getPlanId());
             LocalDate localDate = LocalDate.now();
-            try {
-                switch (coreEvaluatePlanVO.getEvaluateCycle()) {
-                    case "0":
-                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + "-" + localDate.getMonthValue() + FORMAT_FIRST, FORMAT_SECOND, FORMAT_MILLISECOND));
-                        String lastDay = coreMonitoringRetrievalTaskService.getLastDay(localDate.getYear(), localDate.getMonthValue(), FORMAT_DAY);
-                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(lastDay + FORMAT_LAST, FORMAT_SECOND, FORMAT_MILLISECOND));
-                        break;
-                    case "1":
-                        DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
-                        DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
-                        evaluateTaskStatisticsDTO.setStartTime(beginOfQuarter);
-                        evaluateTaskStatisticsDTO.setEndTime(endOfQuarter);
-                        break;
-                    default:
-                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + FORMAT_DAY_FIRST, FORMAT_SECOND, FORMAT_MILLISECOND));
-                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(localDate.getYear() + FORMAT_DAY_LAST, FORMAT_SECOND, FORMAT_MILLISECOND));
-                        break;
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
+            evaluateTaskStatisticsDTO.setEvaluateName(coreEvaluatePlanVO.getEvaluateName());
+            evaluateTaskStatisticsDTO.setTitle(buildStatisticeTitle(evaluateTaskStatisticsDTO,coreEvaluatePlanVO));
+//            try {
+//                switch (coreEvaluatePlanVO.getEvaluateCycle()) {
+//                    case "0":
+//                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + "-" + localDate.getMonthValue() + FORMAT_FIRST, FORMAT_SECOND, FORMAT_MILLISECOND));
+//                        String lastDay = coreMonitoringRetrievalTaskService.getLastDay(localDate.getYear(), localDate.getMonthValue(), FORMAT_DAY);
+//                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(lastDay + FORMAT_LAST, FORMAT_SECOND, FORMAT_MILLISECOND));
+//                        break;
+//                    case "1":
+//                        DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
+//                        DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
+//                        evaluateTaskStatisticsDTO.setStartTime(beginOfQuarter);
+//                        evaluateTaskStatisticsDTO.setEndTime(endOfQuarter);
+//                        break;
+//                    default:
+//                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + FORMAT_DAY_FIRST, FORMAT_SECOND, FORMAT_MILLISECOND));
+//                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(localDate.getYear() + FORMAT_DAY_LAST, FORMAT_SECOND, FORMAT_MILLISECOND));
+//                        break;
+//                }
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
         }
         coreEvaluateTaskService.export(evaluateTaskStatisticsDTO, response);
     }
@@ -130,6 +137,16 @@ public class CoreEvaluateTaskController extends BaseController {
         if (null != evaluateTaskStatisticsDTO.getPlanId()) {
             CoreEvaluatePlanVO coreEvaluatePlanVO = coreEvaluatePlanService.selectCoreEvaluatePlanById(evaluateTaskStatisticsDTO.getPlanId());
             LocalDate localDate = LocalDate.now();
+            String dateTitle =buildStatisticeTitle(evaluateTaskStatisticsDTO,coreEvaluatePlanVO);
+            ajaxResult.put("tittle", coreEvaluatePlanVO.getEvaluateName() + "(" + dateTitle);
+        }
+        ajaxResult.put(AjaxResult.DATA_TAG, coreEvaluateTaskService.statistics(evaluateTaskStatisticsDTO));
+        return ajaxResult;
+    }
+
+    private String buildStatisticeTitle(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO,CoreEvaluatePlanVO coreEvaluatePlanVO)
+    {
+            LocalDate localDate = LocalDate.now();
             String dateTitle = null;
             String year;
             String month;
@@ -199,10 +216,7 @@ public class CoreEvaluateTaskController extends BaseController {
             } catch (Exception e) {
                 e.printStackTrace();
             }
-            ajaxResult.put("tittle", coreEvaluatePlanVO.getEvaluateName() + "(" + dateTitle);
-        }
-        ajaxResult.put(AjaxResult.DATA_TAG, coreEvaluateTaskService.statistics(evaluateTaskStatisticsDTO));
-        return ajaxResult;
+            return dateTitle;
     }
 
     /**

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/dto/EvaluateTaskStatisticsDTO.java

@@ -30,4 +30,6 @@ public class EvaluateTaskStatisticsDTO {
     private Date startTime;
     private Date endTime;
     private String searchTime;
+
+    private String title;
 }

+ 19 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java

@@ -18,6 +18,7 @@ import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.StringUtils;
 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.evaluate.domain.CoreEvaluateContent;
 import com.xunmei.core.evaluate.domain.CoreEvaluateTask;
 import com.xunmei.core.evaluate.domain.CoreEvaluateTaskContent;
@@ -26,6 +27,7 @@ import com.xunmei.core.evaluate.dto.EvaluateTaskContentDTO;
 import com.xunmei.core.evaluate.dto.EvaluateTaskDTO;
 import com.xunmei.core.evaluate.dto.EvaluateTaskStatisticsDTO;
 import com.xunmei.core.evaluate.mapper.*;
+import com.xunmei.core.evaluate.service.ICoreEvaluatePlanService;
 import com.xunmei.core.evaluate.service.ICoreEvaluateTaskService;
 import com.xunmei.core.evaluate.vo.*;
 import com.xunmei.system.api.RemoteOrgService;
@@ -68,6 +70,9 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
     @Autowired
     private CoreEvaluateTaskUserMapper coreEvaluateTaskUserMapper;
 
+    @Autowired
+    private ICoreEvaluatePlanService coreEvaluatePlanService;
+
     @Override
     public TableDataInfo<CoreEvaluateTaskVO> selectPage(EvaluateTaskDTO evaluateTaskDTO) {
         Page<CoreEvaluateTaskVO> page;
@@ -147,7 +152,12 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
             SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
             orgName = sysOrg.getName();
         }
-        List<SysOrg> sysOrgs = remoteOrgService.selectSysOrgByParentId(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+        List<SysOrg> sysOrgs =new ArrayList<>();
+        if (evaluateTaskStatisticsDTO.getType() < 3 || evaluateTaskStatisticsDTO.getOrgShortName().endsWith("地区行社")) {
+            sysOrgs = orgService.selectSysOrgByPathAndType(evaluateTaskStatisticsDTO.getOrgPath(), 3, SecurityConstants.INNER);
+        } else if (evaluateTaskStatisticsDTO.getType() == 3) {
+            sysOrgs = orgService.selectSysOrgByPathAndType(evaluateTaskStatisticsDTO.getOrgPath(), 4, SecurityConstants.INNER);
+        }
         List<EvaluateTaskExportVO> list = new ArrayList<>();
         Double all = 0d;
         for (int i = 0; i < sysOrgs.size(); i++) {
@@ -189,12 +199,18 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
         if (list.size() > 10000) {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
+
+        String baseHeaderName=evaluateTaskStatisticsDTO.getEvaluateName();
+        String header=baseHeaderName+"(" + evaluateTaskStatisticsDTO.getTitle();
+
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-监控调阅报表" + DateHelper.getDateString(new Date()), "UTF-8");
+        String fileName = URLEncoder.encode("【" + orgName + "】-外包履职评价情况表" + DateHelper.getDateString(new Date()), "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
         // 调用EasyExcel的导出方法
-        EasyExcel.write(response.getOutputStream(), EvaluateTaskExportVO.class).sheet("Sheet1").doWrite(list);
+        EasyExcel.write(response.getOutputStream(), EvaluateTaskExportVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName).doWrite(list);
     }
 
     @Override

+ 11 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/vo/EvaluateTaskExportVO.java

@@ -1,6 +1,7 @@
 package com.xunmei.core.evaluate.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import lombok.Data;
 
 /**
@@ -9,12 +10,18 @@ import lombok.Data;
  */
 @Data
 public class EvaluateTaskExportVO {
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("评价机构")
+
+    @ColumnWidth(25)
+    @ExcelProperty(value = {"${cellWriterValue}","评价机构"})
     private String orgName;
-    @ExcelProperty("被评价机构名称")
+
+    @ColumnWidth(25)
+    @ExcelProperty(value = {"${cellWriterValue}","被评价机构名称"})
     private String evaluatedOrgName;
-    @ExcelProperty("评价得分")
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"${cellWriterValue}","评价得分"})
     private Double score;
 }

+ 13 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -33,6 +33,7 @@ import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
+import io.netty.util.internal.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -154,7 +155,18 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
             List<CoreOutInRecord> letterOutInRecordList = coreOutInRecordMapper.findLetterOutInRecordList(records.stream().map(x -> x.getId()).collect(Collectors.toList()).toArray(new Long[records.size()]));
             for (CoreIntroduceLetterVo record : records) {
                 List<Long> orgIds = toOrgList.stream().filter(toOrg -> toOrg.getLetterId().equals(record.getId())).map(CoreIntroduceLetterToOrg::getOrgId).collect(Collectors.toList());
-                String orgNames = orgIds.stream().map(orgId -> orgList.stream().filter(org -> org.getId().equals(orgId)).findFirst().get().getShortName()).collect(Collectors.joining(","));
+                String orgNames = orgIds.stream().map(orgId ->{
+                    final SysOrg sysOrg = orgList.stream().filter(org -> org.getId().equals(orgId)).findFirst().get();
+                    if(ObjectUtil.isNotEmpty(sysOrg))
+                    {
+                        if(StringUtil.isNullOrEmpty(sysOrg.getAffiliatedArea()) || sysOrg.getType()<4 || sysOrg.getShortName().endsWith("地区行社"))
+                        {
+                            return sysOrg.getShortName();
+                        }
+                        return sysOrg.getAffiliatedBank()+"-"+ sysOrg.getShortName();
+                    }
+                    return StringUtil.EMPTY_STRING;
+                }).collect(Collectors.joining(","));
                 record.setReceptionOrgIds(orgIds);
                 record.setReceptionOrgNames(orgNames);
                 record.setHaveOutInRecord(letterOutInRecordList.stream().anyMatch(x -> ObjectUtil.equal(x.getLetterId(), record.getId())));

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreOutInRecordServiceImpl.java

@@ -195,7 +195,7 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
         final CoreOutInRecordVo record = selectCoreOutInRecordById(id);
         final List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
         final SysOrgVO sysOrg = orgList.stream().filter(org -> ObjectUtil.equal(record.getOrgId(), org.getId())).findFirst().get();
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.VISIT_RECORD, record.getOrgName());
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.VISIT_RECORD, sysOrg.getName());
         Map<String, Object> data = this.getFtlEdu(record, orgList);
         data.put("fileName", fileName);
         data.put("id", id);

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/controller/MonitorAccessReportController.java

@@ -58,9 +58,9 @@ public class MonitorAccessReportController {
     /**
      * 导出excel
      */
-    @ApiOperation(value = "监控调阅表导出")
+    @ApiOperation(value = "监控调阅情况表导出")
     @RequiresPermissions("core:monitorAccessReport:export")
-    @Log(title = "监控调阅表", businessType = BusinessType.EXPORT)
+    @Log(title = "监控调阅情况表", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(MonitoringAccessDTO request, HttpServletResponse response) throws IOException {
         if (null==request.getStartDate()||null==request.getEndDate()){

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

@@ -9,6 +9,7 @@ import com.xunmei.common.core.constant.SecurityConstants;
 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.dto.MonitoringAccessDTO;
 import com.xunmei.core.reportForms.monitor.mapper.MonitorAccessReportMapper;
 import com.xunmei.core.reportForms.monitor.service.MonitorAccessReportService;
@@ -173,12 +174,17 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
         if (monitoringAccessVOS.size() > 10000) {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
+        String baseHeaderName="监控调阅情况表";
+        String header=getTitle(monitoringAccessDTO);
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-监控调阅报表" + 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(), MonitoringAccessVO.class).sheet("Sheet1").doWrite(monitoringAccessVOS);
+        EasyExcel.write(response.getOutputStream(), MonitoringAccessVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName)
+                .doWrite(monitoringAccessVOS);
     }
 
     @Override
@@ -186,7 +192,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
         if (null == monitoringAccessDTO.getOrgId()) {
             monitoringAccessDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }
-        SysOrg sysOrg = remoteOrgService.selectSysOrgById(monitoringAccessDTO.getOrgId(), SecurityConstants.INNER);
+//        SysOrg sysOrg = remoteOrgService.selectSysOrgById(monitoringAccessDTO.getOrgId(), SecurityConstants.INNER);
         String st = null;
         String en = null;
         try {
@@ -197,7 +203,8 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
         } catch (Exception e) {
             e.printStackTrace();
         }
-        String title = sysOrg.getShortName() + "监控调阅情况表" + "(" + st + "~" + en + ")";
+//        String title = sysOrg.getShortName() + "监控调阅情况表" + "(" + st + "~" + en + ")";
+        String title =  "监控调阅情况表" + "(" + st + "~" + en + ")";
         return title;
     }
 

+ 15 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/vo/MonitoringAccessVO.java

@@ -2,6 +2,7 @@ package com.xunmei.core.reportForms.monitor.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -16,30 +17,36 @@ public class MonitoringAccessVO {
     /**
      * 序号
      */
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("地区")
+    @ExcelProperty(value = {"${cellWriterValue}","地区"})
     private String city;
 
-    @ExcelProperty("单位名称")
+    @ColumnWidth(25)
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     @ApiModelProperty(value = "机构名称")
     private String orgName;
 
-    @ExcelProperty("网点数量")
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"${cellWriterValue}","网点数量"})
     @ApiModelProperty(value = "网点数量")
     private Integer networkNumber;
 
-    @ExcelProperty("应调阅次数")
+    @ColumnWidth(17)
+    @ExcelProperty(value = {"${cellWriterValue}","应调阅次数"})
     @ApiModelProperty(value = "应调阅次数")
     private Integer planAccessNumber;
 
-    @ExcelProperty("调阅次数")
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"${cellWriterValue}","调阅次数"})
     @ApiModelProperty(value = "实际调阅次数")
     private Integer realityAccessNumber;
-    @ExcelProperty("平均调阅时长(小时)")
+
+    @ExcelProperty(value = {"${cellWriterValue}","平均调阅时长(小时)"})
     @ApiModelProperty(value = "平均调阅时长(小时)")
     private String duration;
-    @ExcelProperty("完成率")
+
+    @ExcelProperty(value = {"${cellWriterValue}","完成率"})
     @ApiModelProperty(value = "完成率")
     private String accessRate;
     @ExcelIgnore

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

@@ -114,7 +114,7 @@ public class ResumptionReportController {
         AjaxResult ajaxResult = AjaxResult.success();
         List<IntrusionTestReportVO> intrusionTestReportVOList = resumptionReportService.intrusionTest(resumptionDTO);
         ajaxResult.put(AjaxResult.DATA_TAG, intrusionTestReportVOList);
-        ajaxResult.put(TITLE, "报警测试表(" + resumptionDTO.getSearchTime() + ")");
+        ajaxResult.put(TITLE, "报警测试情况表(" + resumptionDTO.getSearchTime() + ")");
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
         ajaxResult.put("orgName", sysOrg.getShortName());
         return ajaxResult;
@@ -124,12 +124,14 @@ public class ResumptionReportController {
     @RequiresPermissions("core:resumptionReport:export")
     @PostMapping("/standbyPowerExport")
     public void standbyPowerExport(ResumptionDTO request, HttpServletResponse response) throws IOException {
-        if (null == request.getSearchTime()) {
-            DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
-            DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
-            request.setStartTime(beginOfQuarter);
-            request.setEndTime(endOfQuarter);
-        }
+//        if (null == request.getSearchTime()) {
+//            DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
+//            DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
+//            request.setStartTime(beginOfQuarter);
+//            request.setEndTime(endOfQuarter);
+//        }
+        String dateTitle=getStandbyPowerExportTitle(request);
+        request.setExportDateTitle(dateTitle);
         resumptionReportService.standbyPowerExport(request, response);
     }
 
@@ -137,7 +139,18 @@ public class ResumptionReportController {
     @RequiresPermissions("core:resumptionReport:list")
     @GetMapping("/standbyPower")
     public AjaxResult standbyPower(ResumptionDTO resumptionDTO) {
-        String time;
+        String time=getStandbyPowerExportTitle(resumptionDTO);
+        AjaxResult ajaxResult = AjaxResult.success();
+        List<IntrusionTestReportVO> intrusionTestReportVOList = resumptionReportService.standbyPower(resumptionDTO);
+        ajaxResult.put(AjaxResult.DATA_TAG, intrusionTestReportVOList);
+        ajaxResult.put(TITLE, "备用电源维护报表(" + time + ")");
+        SysOrg sysOrg = remoteOrgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
+        ajaxResult.put("orgName", sysOrg.getShortName());
+        return ajaxResult;
+    }
+
+    private String getStandbyPowerExportTitle(ResumptionDTO resumptionDTO)
+    {
         if (null == resumptionDTO.getSearchTime()) {
             DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
             DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
@@ -146,19 +159,12 @@ public class ResumptionReportController {
             LocalDate currentDate = LocalDate.now();
             int month = currentDate.getMonthValue();
             int quarter = (month - 1) / 3 + 1;
-            time = currentDate.getYear() + "年第" + quarter + "季度";
+            return currentDate.getYear() + "年第" + quarter + "季度";
         } else {
             String[] split = resumptionDTO.getSearchTime().split("-");
             Integer month = (Integer.valueOf(split[1]) - 1) / 3 + 1;
-            time = split[0] + "年第" + month + "季度";
+            return  split[0] + "年第" + month + "季度";
         }
-        AjaxResult ajaxResult = AjaxResult.success();
-        List<IntrusionTestReportVO> intrusionTestReportVOList = resumptionReportService.standbyPower(resumptionDTO);
-        ajaxResult.put(AjaxResult.DATA_TAG, intrusionTestReportVOList);
-        ajaxResult.put(TITLE, "备用电源维护报表(" + time + ")");
-        SysOrg sysOrg = remoteOrgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
-        ajaxResult.put("orgName", sysOrg.getShortName());
-        return ajaxResult;
     }
 
     @ApiOperation(value = "离行式自助银行巡检报表导出")
@@ -187,7 +193,7 @@ public class ResumptionReportController {
         AjaxResult ajaxResult = AjaxResult.success();
         List<IntrusionTestReportVO> intrusionTestReportVOList = resumptionReportService.serviceBank(resumptionDTO);
         ajaxResult.put(AjaxResult.DATA_TAG, intrusionTestReportVOList);
-        ajaxResult.put(TITLE, "离行式自助银行巡检表(" + resumptionDTO.getSearchTime() + ")");
+        ajaxResult.put(TITLE, "离行式自助银行巡检情况表(" + resumptionDTO.getSearchTime() + ")");
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(resumptionDTO.getOrgId(), SecurityConstants.INNER);
         ajaxResult.put("orgName", sysOrg.getShortName());
         return ajaxResult;

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/dto/ResumptionDTO.java

@@ -18,4 +18,6 @@ public class ResumptionDTO {
     private Date startTime;
     private Date endTime;
     private Integer cycle;
+
+    private String exportDateTitle;
 }

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

@@ -5,6 +5,7 @@ import com.alibaba.excel.EasyExcel;
 import com.xunmei.common.core.constant.SecurityConstants;
 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;
@@ -144,12 +145,17 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             ResumptionDayVO resumptionDayVO = report.get(i);
             resumptionDayVO.setOrderNum(i + 1);
         }
+        String baseHeaderName="营业网点安全保卫履职情况表";
+        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
+
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-履职报表" + DateHelper.getDateString(new Date()), "UTF-8");
+        String fileName = URLEncoder.encode("【" + orgName + "】-履职情况表" + DateHelper.getDateString(new Date()), "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
         // 调用EasyExcel的导出方法
-        EasyExcel.write(response.getOutputStream(), ResumptionDayVO.class).sheet("Sheet1").doWrite(report);
+        EasyExcel.write(response.getOutputStream(), ResumptionDayVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet("baseHeaderName").doWrite(report);
     }
 
     @Override
@@ -170,12 +176,16 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
+        String baseHeaderName="报警测试情况表";
+        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-报警测试报表" + 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).sheet("Sheet1").doWrite(report);
+        EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName).doWrite(report);
     }
 
     @Override
@@ -250,12 +260,16 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
+        String baseHeaderName="备用电源维护情况表";
+        String header=baseHeaderName+"(" + resumptionDTO.getExportDateTitle() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-备用电源维护报表" + 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).sheet("Sheet1").doWrite(report);
+        EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName).doWrite(report);
     }
 
 
@@ -388,12 +402,16 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             IntrusionTestReportVO intrusionTestReportVO = report.get(i);
             intrusionTestReportVO.setOrderNum(i + 1);
         }
+        String baseHeaderName="离行式自助银行巡检情况表";
+        String header=baseHeaderName+"(" + resumptionDTO.getSearchTime() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-离行式自助银行巡检报表" + 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).sheet("Sheet1").doWrite(report);
+        EasyExcel.write(response.getOutputStream(), IntrusionTestReportVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName).doWrite(report);
     }
 
 

+ 10 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/IntrusionTestReportVO.java

@@ -13,31 +13,31 @@ import lombok.Data;
  */
 @Data
 public class IntrusionTestReportVO {
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("地区")
+    @ExcelProperty(value = {"${cellWriterValue}","地区"})
     private String city;
-    @ExcelProperty("单位名称")
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     private String orgName;
-    @ExcelProperty("网点数量")
+    @ExcelProperty(value = {"${cellWriterValue}","网点数量"})
     @ApiModelProperty(value = "网点数量")
     private Integer networkNumber;
-    @ExcelProperty("应履职次数")
+    @ExcelProperty(value = {"${cellWriterValue}","应履职次数"})
     @ApiModelProperty(value = "应履职次数")
     private Integer planNumber;
-    @ExcelProperty("已履职次数")
+    @ExcelProperty(value = {"${cellWriterValue}","已履职次数"})
     @ApiModelProperty(value = "已履职次数")
     private Integer realityNumber;
-    @ExcelProperty("履职完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","履职完成率"})
     @ApiModelProperty(value = "履职完成率")
     private String realityRate;
-    @ExcelProperty("隐患数量")
+    @ExcelProperty(value = {"${cellWriterValue}","隐患数量"})
     @ApiModelProperty(value = "隐患数量")
     private Integer abnormalNumber;
-    @ExcelProperty("已整改数量")
+    @ExcelProperty(value = {"${cellWriterValue}","已整改数量"})
     @ApiModelProperty(value = "已整改数量")
     private Integer realityRectificationNumber;
-    @ExcelProperty("整改完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","整改完成率"})
     @ApiModelProperty(value = "整改完成率")
     private String realityRectificationRate;
 }

+ 13 - 13
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/vo/ResumptionDayVO.java

@@ -11,31 +11,31 @@ import lombok.Data;
  */
 @Data
 public class ResumptionDayVO {
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("地区")
+    @ExcelProperty(value = {"${cellWriterValue}","地区"})
     private String city;
-    @ExcelProperty("单位名称")
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     private String orgName;
-    @ExcelProperty("网点数量")
+    @ExcelProperty(value = {"${cellWriterValue}","网点数量"})
     @ApiModelProperty(value = "网点数量")
     private Integer networkNumber;
-    @ExcelProperty(value = {"总计","应履职次数"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","应履职次数"})
     @ApiModelProperty(value = "总计应履职次数")
     private Integer totalPlanNumber;
-    @ExcelProperty(value = {"总计","已履职次数"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","已履职次数"})
     @ApiModelProperty(value = "总计实际履职次数")
     private Integer totalRealityNumber;
-    @ExcelProperty(value = {"总计","履职完成率"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","履职完成率"})
     @ApiModelProperty(value = "总计检查率")
     private String totalRate;
-    @ExcelProperty(value = {"总计","隐患数量"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","隐患数量"})
     @ApiModelProperty(value = "总计隐患问题数")
     private Integer totalAbnormalNumber;
-    @ExcelProperty(value = {"总计","已整改数量"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","已整改数量"})
     @ApiModelProperty(value = "总计已整改数量")
     private Integer totalRealityRectificationNumber;
-    @ExcelProperty(value = {"总计","整改完成率"})
+    @ExcelProperty(value = {"${cellWriterValue}","总计","整改完成率"})
     @ApiModelProperty(value = "总计整改完成率")
     private String totalRealityRectificationRate;
 
@@ -45,7 +45,7 @@ public class ResumptionDayVO {
     @ExcelIgnore
     @ApiModelProperty(value = "前实际履职次数")
     private Integer frontRealityNumber;
-    @ExcelProperty(value = "营业前完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","营业前完成率"})
     @ApiModelProperty(value = "前检查率")
     private String frontRate;
     @ExcelIgnore
@@ -57,7 +57,7 @@ public class ResumptionDayVO {
     @ExcelIgnore
     @ApiModelProperty(value = "中实际履职次数")
     private Integer centreRealityNumber;
-    @ExcelProperty(value = "营业期间完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","营业期间完成率"})
     @ApiModelProperty(value = "中检查率")
     private String centreRate;
     @ExcelIgnore
@@ -69,7 +69,7 @@ public class ResumptionDayVO {
     @ExcelIgnore
     @ApiModelProperty(value = "中实际履职次数")
     private Integer afterRealityNumber;
-    @ExcelProperty(value = "营业终了完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","营业终了完成率"})
     @ApiModelProperty(value = "中检查率")
     private String afterRate;
     @ExcelIgnore

+ 25 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/controller/SafetyInspectReportController.java

@@ -36,7 +36,7 @@ public class SafetyInspectReportController {
     @Resource
     private RemoteOrgService remoteOrgService;
 
-    @ApiOperation(value = "行社全面检查表")
+    @ApiOperation(value = "行社全面检查情况表")
     @RequiresPermissions("core:safetyInspectReport:list")
     @GetMapping("/list")
     public AjaxResult list(SafetyInspectDTO safetyInspectDTO) {
@@ -52,11 +52,11 @@ public class SafetyInspectReportController {
         }
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(safetyInspectDTO.getOrgId(), SecurityConstants.INNER);
         ajax.put("orgName", sysOrg.getShortName());
-        ajax.put("title", "行社全面检查统计报表(" + safetyInspectDTO.getYear() + ")");
+        ajax.put("title", "行社全面检查情况表(" + safetyInspectDTO.getYear() + ")");
         return ajax;
     }
 
-    @ApiOperation(value = "网点负责人自查表")
+    @ApiOperation(value = "网点负责人自查情况表")
     @RequiresPermissions("core:safetyInspectReport:list")
     @GetMapping("/selfInspectList")
     public AjaxResult selfInspectList(SafetyInspectDTO safetyInspectDTO) {
@@ -82,7 +82,7 @@ public class SafetyInspectReportController {
         }
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(safetyInspectDTO.getOrgId(), SecurityConstants.INNER);
         ajax.put("orgName", sysOrg.getShortName());
-        ajax.put("title", "网点负责人自查表(" + safetyInspectDTO.getYear() + ")");
+        ajax.put("title", "网点负责人自查情况表(" + safetyInspectDTO.getYear() + ")");
         return ajax;
     }
 
@@ -94,9 +94,9 @@ public class SafetyInspectReportController {
     /**
      * 导出excel
      */
-    @ApiOperation(value = "行社全面检查表导出")
+    @ApiOperation(value = "行社全面检查情况表导出")
     @RequiresPermissions("core:safetyInspectReport:export")
-    @Log(title = "行社全面检查表", businessType = BusinessType.EXPORT)
+    @Log(title = "行社全面检查情况表", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(SafetyInspectDTO request, HttpServletResponse response) throws IOException {
         if (null == request.getYear()) {
@@ -106,15 +106,29 @@ public class SafetyInspectReportController {
         safetyInspectService.export(request, response);
     }
 
-    @ApiOperation(value = "网点负责人自查表导出")
+    @ApiOperation(value = "网点负责人自查情况表导出")
     @RequiresPermissions("core:safetyInspectReport:export")
-    @Log(title = "网点负责人自查表导出", businessType = BusinessType.EXPORT)
+    @Log(title = "网点负责人自查情况表导出", businessType = BusinessType.EXPORT)
     @PostMapping("/selfInspectExport")
     public void selfInspectExport(SafetyInspectDTO request, HttpServletResponse response) throws IOException {
+//        if (null == request.getYear()) {
+//            request.setCycle(1);
+//            LocalDate localDate = LocalDate.now();
+//            request.setYear(localDate.getYear() + "-" + localDate.getMonthValue());
+//        }
         if (null == request.getYear()) {
-            request.setCycle(1);
-            LocalDate localDate = LocalDate.now();
-            request.setYear(localDate.getYear() + "-" + localDate.getMonthValue());
+            if (request == null || request.getCycle() == 1) {
+                request.setCycle(1);
+                LocalDate localDate = LocalDate.now();
+                String m = String.valueOf(localDate.getMonthValue());
+                if (m.length() == 1) {
+                    m = "0" + localDate.getMonthValue();
+                }
+                request.setYear(localDate.getYear() + "-" + m);
+            } else {
+                LocalDate localDate = LocalDate.now();
+                request.setYear(localDate.getYear() + "");
+            }
         }
         safetyInspectService.selfInspectExport(request, response);
     }

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

@@ -8,6 +8,7 @@ import com.xunmei.common.core.exception.ServiceException;
 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;
 import com.xunmei.core.reportForms.safetyInspect.dto.SafetyInspectDTO;
 import com.xunmei.core.reportForms.safetyInspect.mapper.SafetyInspectMapper;
@@ -183,12 +184,18 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
         if (safetyInspectVOS.size() > 10000) {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
+
+        String baseHeaderName="行社全面检查情况表";
+        String header=baseHeaderName+"(" + safetyInspectDTO.getYear() + ")";
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-检查统计报表" + 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(), SafetyInspectVO.class).sheet("Sheet1").doWrite(safetyInspectVOS);
+        EasyExcel.write(response.getOutputStream(), SafetyInspectVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName)
+                .doWrite(safetyInspectVOS);
     }
 
     @Override
@@ -213,12 +220,18 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
         if (safetyInspectVOS.size() > 10000) {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
+        String baseHeaderName="网点负责人自查情况表";
+        String header=baseHeaderName+"(" + safetyInspectDTO.getYear() + ")";
+
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = URLEncoder.encode("【" + orgName + "】-网点负责人自查报表" + 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(), SelfInspectVO.class).sheet("Sheet1").doWrite(safetyInspectVOS);
+        EasyExcel.write(response.getOutputStream(), SelfInspectVO.class)
+                .registerWriteHandler(new ValueCellWriteHandler(header))
+                .sheet(baseHeaderName)
+                .doWrite(safetyInspectVOS);
     }
 
     @Override

+ 12 - 12
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/vo/SafetyInspectVO.java

@@ -12,40 +12,40 @@ import lombok.Data;
  */
 @Data
 public class SafetyInspectVO {
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("地区")
+    @ExcelProperty(value = {"${cellWriterValue}","地区"})
     private String city;
-    @ExcelProperty("单位名称")
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     @ApiModelProperty(value = "单位名称")
     private String orgName;
-    @ExcelProperty("被查机构数量")
+    @ExcelProperty(value = {"${cellWriterValue}","被查机构数量"})
     @ApiModelProperty(value = "网点数量")
     private Integer planInspectOrg;
-    @ExcelProperty("已查机构数量")
+    @ExcelProperty(value = {"${cellWriterValue}","已查机构数量"})
     @ApiModelProperty(value = "已查机构数量")
     private Integer realityInspectOrg;
-    @ExcelProperty("检查覆盖率")
+    @ExcelProperty(value = {"${cellWriterValue}","检查覆盖率"})
     @ApiModelProperty(value = "检查覆盖率")
     private String inspectCoverRate;
 
 
-    @ExcelProperty("应检次数")
+    @ExcelProperty(value = {"${cellWriterValue}","应检次数"})
     @ApiModelProperty(value = "应检查次数")
     private Integer planInspectNumber;
-    @ExcelProperty("已检次数")
+    @ExcelProperty(value = {"${cellWriterValue}","已检次数"})
     @ApiModelProperty(value = "实际检查次数")
     private Integer realityInspectNumber;
-    @ExcelProperty("检查完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","检查完成率"})
     @ApiModelProperty(value = "检查率")
     private String inspectRate;
-    @ExcelProperty("隐患数量")
+    @ExcelProperty(value = {"${cellWriterValue}","隐患数量"})
     @ApiModelProperty(value = "隐患数量")
     private Integer pitfallNumber;
-    @ExcelProperty("已整改数量")
+    @ExcelProperty(value = {"${cellWriterValue}","已整改数量"})
     @ApiModelProperty(value = "已整改数量")
     private Integer rectificationNumber;
-    @ExcelProperty("整改完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","整改完成率"})
     @ApiModelProperty(value = "整改完成率")
     private String rectificationRate;
     @ExcelIgnore

+ 11 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/vo/SelfInspectVO.java

@@ -11,14 +11,14 @@ import lombok.Data;
  */
 @Data
 public class SelfInspectVO {
-    @ExcelProperty("序号")
+    @ExcelProperty(value = {"${cellWriterValue}","序号"})
     private Integer orderNum;
-    @ExcelProperty("地区")
+    @ExcelProperty(value = {"${cellWriterValue}","地区"})
     private String city;
-    @ExcelProperty("单位名称")
+    @ExcelProperty(value = {"${cellWriterValue}","单位名称"})
     @ApiModelProperty(value = "单位名称")
     private String orgName;
-    @ExcelProperty("网点数量")
+    @ExcelProperty(value = {"${cellWriterValue}","网点数量"})
     @ApiModelProperty(value = "网点数量")
     private Integer planInspectOrg;
     @ExcelIgnore
@@ -29,25 +29,25 @@ public class SelfInspectVO {
     private String inspectCoverRate;
 
 
-    @ExcelProperty("应检次数")
+    @ExcelProperty(value = {"${cellWriterValue}","应检次数"})
     @ApiModelProperty(value = "应检查次数")
     private Integer planInspectNumber;
-    @ExcelProperty("已检次数")
+    @ExcelProperty(value = {"${cellWriterValue}","已检次数"})
     @ApiModelProperty(value = "实际检查次数")
     private Integer realityInspectNumber;
-    @ExcelProperty("检查完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","检查完成率"})
     @ApiModelProperty(value = "检查率")
     private String inspectRate;
-    @ExcelProperty("隐患数量")
+    @ExcelProperty(value = {"${cellWriterValue}","隐患数量"})
     @ApiModelProperty(value = "隐患数量")
     private Integer pitfallNumber;
-    @ExcelProperty("已整改数量")
+    @ExcelProperty(value = {"${cellWriterValue}","已整改数量"})
     @ApiModelProperty(value = "已整改数量")
     private Integer rectificationNumber;
-    @ExcelProperty("整改完成率")
+    @ExcelProperty(value = {"${cellWriterValue}","整改完成率"})
     @ApiModelProperty(value = "整改完成率")
     private String rectificationRate;
     @ExcelIgnore
-    @ExcelProperty("机构路径")
+    @ExcelProperty(value = {"${cellWriterValue}","机构路径"})
     private String path;
 }

+ 3 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -52,6 +52,7 @@ import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.core.safetyCheck.vo.ruleItem.SafetyCheckRulePointVo;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import io.netty.util.internal.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -1050,8 +1051,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         }
 
         registerBookVo.setCheckDatas(pointCheckDataList);
-
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.SAFE_CHECK_REPORT, registerBookVo.getOrgName());
+        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(registerBookVo.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.SAFE_CHECK_REPORT, sysOrg.getName());
         registerBookVo.setDest(fileName);
         return registerBookVo;
     }

+ 1 - 4
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotSensorController.java

@@ -44,11 +44,8 @@ public class IotSensorController {
         return page;
     }
 
-    /**
-     * 导出excel
-     */
+
     @ApiOperation(value = "导出动环设备")
-    //@RequiresPermissions("core:eduTask:export")
     @Log(title = "导出动环设备", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(SensorPageDto request, HttpServletResponse response) throws IOException {

+ 13 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -8,12 +8,15 @@ import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.bean.BeanUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.iot.dto.sensor.SensorAppPageDto;
 import com.xunmei.iot.vo.sensor.SensorAppStateVo;
@@ -28,6 +31,7 @@ import com.xunmei.iot.vo.sensor.SensorExportVo;
 import com.xunmei.iot.vo.sensor.SensorPageVo;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.SysOrgVO;
 import io.netty.util.internal.StringUtil;
 import org.springframework.stereotype.Service;
 
@@ -35,8 +39,10 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -63,8 +69,15 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
         dealPageParam(request);
 
         Page<SensorPageVo> page = sensorMapper.selectPageData(request.getPageRequest(), request);
+        final List<SysOrgVO> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+
         for (SensorPageVo record : page.getRecords()) {
             final String info = record.getInfo();
+            final List<Long> collect = Arrays.stream(record.getOrgPath().split("-")).map(Long::parseLong).collect(Collectors.toList());
+            //地区名称
+            cacheList.stream().filter(org->collect.contains(org.getId())&&OrgTypeEnum.DIQU_HANG_SHE.getCode().equals(org.getType())).findFirst().ifPresent(org->record.setFirstOrgName(org.getShortName()));
+            //行社名称
+            cacheList.stream().filter(org->collect.contains(org.getId())&&OrgTypeEnum.HANG_SHE.getCode().equals(org.getType())).findFirst().ifPresent(org->record.setSecondOrgName(org.getShortName()));
             record.setInfo(dealInfoData(info));
             record.setDeviceType(DictUtils.getDictLabel(DictConstants.SENSOR_DEVICE_TYPE, Integer.parseInt(record.getDeviceType())));
             record.setStateText(DictUtils.getDictLabel(DictConstants.SENSOR_ALARM_STATUS, record.getState()));

+ 9 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/sensor/SensorPageVo.java

@@ -1,6 +1,7 @@
 package com.xunmei.iot.vo.sensor;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import io.swagger.annotations.ApiModelProperty;
@@ -26,6 +27,10 @@ public class SensorPageVo {
     @ApiModelProperty("机构id")
     private Long orgId;
 
+    @JsonIgnore
+    @ApiModelProperty("机构路径")
+    private String orgPath;
+
     @ApiModelProperty("所属机构")
     private String orgName;
 
@@ -45,4 +50,8 @@ public class SensorPageVo {
     @ApiModelProperty("设备code")
     private String deviceCode;
 
+    private String firstOrgName;
+
+    private String secondOrgName;
+
 }

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xunmei.iot.mapper.IotCommonSensorMapper">
     <select id="selectPageData" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">
-        select s.id, org_id, org_name, device_name, device_type, infos as info,device_code, state_update_time as updateTime,state
+        select s.id, org_id, org_name,org_path, device_name, device_type, infos as info,device_code, state_update_time as updateTime,state
         from iot_sensor s
         where s.deleted=0
         <if test="request.orgId!= null">

+ 12 - 24
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java

@@ -83,7 +83,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
         if (org != null) {
             //制作一个随时变化的key
             Boolean flag = redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);
-            if (!flag) {
+            if (Boolean.FALSE.equals(flag)) {
                 //判断是否存在这个key
                 this.redisTemplate.opsForValue().set(CacheConstants.CHANNEL_KEY, UK);
             } else {
@@ -137,7 +137,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
 
 
             /**
-             * 先不做数据处理,先缓存所有待处理的数据,然后每5分钟处理一次缓存数据
+             * 先不做数据处理,先缓存所有待处理的数据,然后每10分钟处理一次缓存数据 http://localhost:8080/mediator/channelCacheDeal
              */
 
 
@@ -161,15 +161,17 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
             redisTemplate.expire(UK + CacheConstants.AFTER_DATA, 1, TimeUnit.HOURS);
         }
         northErrorService.saveErrorData(errors);
-
         return ReceiveErrorDto.success();
     }
 
     private IotDvrChannel getChannelDevice(DeviceDto deviceDto) {
         IotDvrChannel device = new IotDvrChannel();
-        IotDvrChannel old = this.findChannel(deviceDto.getEquipmentCode(), deviceDto.getChannelCode(), deviceDto.getOrg().getId());
+        final LocalDateTime now = LocalDateTime.now();
+        IotDvrChannel old = this.findChannel(deviceDto.getChannelCode(), deviceDto.getEquipmentCode(), deviceDto.getOrg().getId());
         if (old != null) {
             device = old;
+        }else {
+            device.setCreateTime(now);
         }
         device.setChannelName(deviceDto.getChannelName());
         device.setHostCode(deviceDto.getEquipmentCode());
@@ -178,10 +180,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
         device.setOrgName(deviceDto.getOrg().getShortName());
         device.setChannelCode(Integer.parseInt(deviceDto.getChannelCode()));
         device.setChannelAddr(deviceDto.getNetAddress());
-        final LocalDateTime now = LocalDateTime.now();
         device.setUpdateTime(now);
-        device.setCreateTime(now);
-
         device.setSource(1);
         device.setDeleted(0);
         return device;
@@ -192,12 +191,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
     public void channelCacheDeal() {
         try {
             Boolean flag = redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);
-            if (!flag) {
-                return;
-            }
-
-            Boolean isData = this.redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);
-            if (!isData) {
+            if (Boolean.FALSE.equals(flag)) {
                 return;
             }
 
@@ -205,22 +199,16 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
 
             ListOperations<String, EquipmentOrgVo> lso = this.redisTemplate.opsForList();
             List<EquipmentOrgVo> list = lso.range(UK, 0, -1);
-            int voSize = list.size();
-            if (voSize > 0) {
-                lso.trim(UK, voSize, -1L);
+            if (ObjectUtil.isEmpty(list)) {
+                return;
             }
-
+            lso.trim(UK, list.size(), -1L);
             ListOperations<String, IotDvrChannel> cso = this.redisTemplate.opsForList();
             List<IotDvrChannel> devices = cso.range(UK + RedisKey.AFTER_DATA, 0, -1);
-            int devSize = devices.size();
-            if (devSize > 0) {
-                cso.trim(UK + RedisKey.AFTER_DATA, devSize, -1L);
-            }
-
-            if (list.size() == 0) {
+            if (ObjectUtil.isEmpty(devices)) {
                 return;
             }
-
+            cso.trim(UK + RedisKey.AFTER_DATA, devices.size(), -1L);
             //获取要进行批量处理的通道信息,并通过主机code,通道id,机构id进行去重
             List<IotDvrChannel> devis = devices.stream().collect(Collectors.collectingAndThen(
                     Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getChannelCode() + ";" + o.getHostCode() + ";" + o.getOrgId()))), ArrayList::new));

+ 13 - 5
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -24,6 +24,7 @@ import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckDto
 import com.xunmei.mediator.util.RedisUtil;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.util.LogUtils;
 import io.netty.util.internal.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -77,7 +78,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         }
         //与上次接收到的数据进行比较,如果相同则不进行处理
         if (redisUtil.compareWithCache(videoIntegrityCheckDto)) {
-             return ReceiveErrorDto.error(RedisKey.REPORT_DATA_REFUSE_MSG);
+            return ReceiveErrorDto.error(RedisKey.REPORT_DATA_REFUSE_MSG);
         }
 
         String organizationGuid = videoIntegrityCheckDto.getOrganizationGuid();
@@ -98,8 +99,13 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
 
         MediatorVideoIntegrityCheck old = this.findByOrgIdAndEquipmentCodeAndAndChannelCodeAndRecordDate(org.getId(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getChannelCode());
         MediatorVideoIntegrityCheck videoIntegrityCheck = new MediatorVideoIntegrityCheck();
+        boolean isCompensate = false;
         if (old != null) {
             videoIntegrityCheck = old;
+            if (LocalDate.parse(videoIntegrityCheckDto.getRecordDate(), DateTimeFormatter.ISO_DATE).isBefore(old.getRecordDate())) {
+                isCompensate = true;
+                LogUtils.STATUS_INFO_VIDEO_COMPLETE.info("接收到录像完整性补录数据,仅修改日志消息,消息内容:{}", JSON.toJSONString(videoIntegrityCheckDto));
+            }
         } else {
             videoIntegrityCheck.setCreateTime(new Date());
         }
@@ -135,7 +141,10 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         videoIntegrityCheck.setOrgPath(org.getPath());
         videoIntegrityCheck.setStatus(getStatus(videoIntegrityCheckDto));
         videoIntegrityCheck.setLoseDuration(calculateLoseMinute(videoIntegrityCheck.getLoseSpan()));
-        this.saveOrUpdate(videoIntegrityCheck);
+        if (!isCompensate) {
+            //不是补录才进行保存数据
+            this.saveOrUpdate(videoIntegrityCheck);
+        }
         saveLog(videoIntegrityCheck);
 
         return ReceiveErrorDto.success();
@@ -144,13 +153,12 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     private void saveLog(MediatorVideoIntegrityCheck videoIntegrityCheck) {
         MediatorVideoIntegrityCheckLog newLog = new MediatorVideoIntegrityCheckLog();
         MediatorVideoIntegrityCheckLog logData = integrityCheckLogService.findByOrgIdAndEquipmentCodeAndChannelCode(videoIntegrityCheck.getOrgId(), videoIntegrityCheck.getEquipmentCode(), videoIntegrityCheck.getChannelCode(), videoIntegrityCheck.getRecordDate());
-
         if (logData != null) {
-            BeanUtils.copyProperties(videoIntegrityCheck,logData,"id");
+            BeanUtils.copyProperties(videoIntegrityCheck, logData, "id");
             integrityCheckLogService.updateById(logData);
             return;
         }
-        BeanUtils.copyProperties(videoIntegrityCheck,newLog);
+        BeanUtils.copyProperties(videoIntegrityCheck, newLog);
         newLog.setId(IdWorker.getId());
         newLog.setVideoIntegrityCheckId(videoIntegrityCheck.getId());
         integrityCheckLogService.save(newLog);

+ 2 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/util/RedisCheckRepeatDataUtil.java

@@ -1,5 +1,6 @@
 package com.xunmei.mediator.util;
 
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.xunmei.common.core.utils.SpringUtils;
@@ -108,7 +109,7 @@ public class RedisCheckRepeatDataUtil {
         //判断是否拿到所有的数据
         final List<Boolean> list = allPageKeyList.stream().map(redisTemplate::hasKey).distinct().collect(Collectors.toList());
         if (list.contains(Boolean.FALSE)) {
-            // return ListUtil.empty();
+             return ListUtil.empty();
         }
 
         return allPageKeyList.stream().map(k -> {

+ 4 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/UserExport.java

@@ -25,6 +25,10 @@ public class UserExport {
     private String username;
     @ExcelProperty(value = "姓名")
     private String name;
+    @ExcelProperty(value = "地区")
+    private String affiliatedArea;
+    @ExcelProperty(value = "行社名称")
+    private String affiliatedBank;
     @ExcelProperty(value = "所属机构")
     private String orgName;
     @ExcelProperty(value = "用户角色")

+ 2 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -644,6 +644,8 @@
         u.last_time,
         o.NAME AS org_name,
         o.path AS org_path,
+        o.affiliated_area,
+        o.affiliated_bank,
         u.image,
         u.card,
         u.gender,