Przeglądaj źródła

[修复]跳过节假日BUG修复、举报数据同步问题

xuxiaodong 1 rok temu
rodzic
commit
a5a2053e62
23 zmienionych plików z 608 dodań i 336 usunięć
  1. 2 2
      pom.xml
  2. 106 39
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/video/EnforceVideo.java
  3. 23 0
      zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/context/ApplicationContextHolder.java
  4. 26 0
      zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/interfaces/IHolidayCacheService.java
  5. 1 1
      zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/CustomerIdGenerator.java
  6. 5 19
      zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/DateUtils.java
  7. 1 1
      zfjg-modules/zfjg-file/src/main/java/com/zfjg/file/config/MybatisPlusFileConfig.java
  8. 37 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/config/HolidayRunner.java
  9. 21 1
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceJobReportController.java
  10. 39 18
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceJobServiceImpl.java
  11. 31 9
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/report/ReportServiceImpl.java
  12. 1 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/video/EnforceVideoServiceImpl.java
  13. 67 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/IHolidayCacheServiceImpl.java
  14. 38 38
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceJobPushDataHandler.java
  15. 38 38
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceJobReportPushDataHandler.java
  16. 42 42
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceObjPushDataHandler.java
  17. 21 17
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/remote/DefaultLjZfjgSyncDataService.java
  18. 9 8
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/approve/ApproveTask.java
  19. 2 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/job/DataShareEnforceJobClient.java
  20. 23 19
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/job/EnforceJobTask.java
  21. 66 66
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/video/DataShareVeidoListClient.java
  22. 1 1
      zfjg-modules/zfjg-sync/src/main/java/com/zfjg/sync/modules/job/service/impl/EnforceJobServiceImpl.java
  23. 8 17
      zfjg-modules/zfjg-system/src/main/java/com/zfjg/system/controller/SysRoleController.java

+ 2 - 2
pom.xml

@@ -57,8 +57,8 @@
                 <spring.profile>dev</spring.profile>
                 <nacos.server.username>nacos</nacos.server.username>
                 <nacos.server.password>mxkj123..</nacos.server.password>
-                <nacos.server.address>127.0.0.1:8848</nacos.server.address>
-                <nacos.server.namespace>b98a94e3-baf2-45bd-b0a8-cffcf0fc607f</nacos.server.namespace>
+                <nacos.server.address>172.20.21.8:8848</nacos.server.address>
+                <nacos.server.namespace>823425f6-a668-46bb-b916-9a451221c24d</nacos.server.namespace>
                 <nacos.server.group>zfjg</nacos.server.group>
             </properties>
             <activation>

+ 106 - 39
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/video/EnforceVideo.java

@@ -1,152 +1,219 @@
 package com.zfjg.manage.api.domain.enforce.video;
 
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
 
 /**
  * 执法音视频记录对象 enforce_video
- * 
+ *
  * @author mxkj
  * @date 2022-12-06
  */
 @Data
 @ApiModel("执法音视频记录")
 @TableName("enforce_video")
-public class EnforceVideo
-{
+public class EnforceVideo {
     private static final long serialVersionUID = 1L;
 
-    /** 主键id */
+    /**
+     * 主键id
+     */
     @TableId(type = IdType.ASSIGN_ID)
     private Long id;
 
-    /** 视频id */
+    /**
+     * 视频id
+     */
     @ApiModelProperty(value = "视频id")
     private String mediaId;
 
-    /** 经度 */
+    /**
+     * 经度
+     */
     @ApiModelProperty(value = "经度")
     private String longitude;
 
-    /** 纬度 */
+    /**
+     * 纬度
+     */
     @ApiModelProperty(value = "纬度")
     private String latitude;
 
-    /** 执法地址 */
+    /**
+     * 执法地址
+     */
     @ApiModelProperty(value = "执法地址")
     private String address;
 
-    /** 监控点编号(通用唯一识别码UUID) */
+    /**
+     * 监控点编号(通用唯一识别码UUID)
+     */
     @ApiModelProperty(value = "监控点编号")
     private String cameraIndexCode;
 
-    /** 所属设备编号(通用唯一识别码UUID) */
+    /**
+     * 所属设备编号(通用唯一识别码UUID)
+     */
     @ApiModelProperty(value = "所属设备编号")
     private String deviceIndexCode;
 
-    /** 设备序列号,也叫主动设备编号 */
+    /**
+     * 设备序列号,也叫主动设备编号
+     */
     @ApiModelProperty(value = "设备序列号,也叫主动设备编号")
     private String serialNo;
 
-    /** 设备id */
+    /**
+     * 设备id
+     */
     @ApiModelProperty(value = "设备id")
     private Long deviceId;
 
-    /** 设备名称 */
+    /**
+     * 设备名称
+     */
     @ApiModelProperty(value = "设备名称")
     private String deviceName;
 
-    /** 所属机构id */
+    /**
+     * 所属机构id
+     */
     @ApiModelProperty(value = "所属机构id")
     private String enforceOrgId;
 
-    /** 所属机构名称 */
+    /**
+     * 所属机构名称
+     */
     @ApiModelProperty(value = "所属机构名称")
     private String enforceOrgName;
 
-    /** 任务id */
+    /**
+     * 任务id
+     */
     @ApiModelProperty(value = "任务id")
     private Long enforeJobId;
 
-    /** 所属人员id */
+    /**
+     * 所属人员id
+     */
     @ApiModelProperty(value = "所属人员id")
     private String usePersonId;
 
-    /** 使用人员名称 */
+    /**
+     * 使用人员名称
+     */
     @ApiModelProperty(value = "使用人员名称")
     private String usePersonName;
 
-    /** 视频名称 */
+    /**
+     * 视频名称
+     */
     @ApiModelProperty(value = "视频名称")
     private String videoName;
 
-    /** 视频类型 */
+    /**
+     * 视频类型
+     */
     @ApiModelProperty(value = "视频类型")
     private String videoType;
 
-    /** 视频开始时间 */
+
+    @ApiModelProperty(value = "超时")
+    @TableField(exist = false)
+    private Integer timeOut;
+
+    /**
+     * 视频开始时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "视频开始时间")
     private Date videoBeginTime;
 
-    /** 视频结束时间 */
+    /**
+     * 视频结束时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "视频结束时间")
     private Date videoEndTime;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @ApiModelProperty(value = "创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @ApiModelProperty(value = "${comment}")
     private String createUserId;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @ApiModelProperty(value = "${comment}")
     private String updateUserId;
 
-    /** 更新人名称 */
+    /**
+     * 更新人名称
+     */
     @ApiModelProperty(value = "更新人名称")
     private String updateUserName;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @ApiModelProperty(value = "${comment}")
     private Long isDeleted;
 
-    /** 封面图地址 */
+    /**
+     * 封面图地址
+     */
     @ApiModelProperty(value = "封面图地址")
     private String thumbnailUrl;
 
-    /** 本地上传视频文件id */
+    /**
+     * 本地上传视频文件id
+     */
     @ApiModelProperty(value = "本地上传视频文件id")
     private Long fileId;
 
-    /** 主办人员id */
+    /**
+     * 主办人员id
+     */
     @ApiModelProperty(value = "主办人员id")
     private String masterPersonId;
 
-    /** 主办人员名称 */
+    /**
+     * 主办人员名称
+     */
     @ApiModelProperty(value = "主办人员名称")
     private String masterPersonName;
 
-    /** 协办人员id */
+    /**
+     * 协办人员id
+     */
     @ApiModelProperty(value = "协办人员id")
     private String slavePersonId;
 
-    /** 协办人员名称 */
+    /**
+     * 协办人员名称
+     */
     @ApiModelProperty(value = "协办人员名称")
     private String slavePersonName;
 
-    /** 视频时长 */
+    /**
+     * 视频时长
+     */
     @ApiModelProperty(value = "视频时长")
     private Long duration;
 

+ 23 - 0
zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/context/ApplicationContextHolder.java

@@ -0,0 +1,23 @@
+package com.zfjg.common.core.context;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author xxd
+ */
+@Component
+public class ApplicationContextHolder implements ApplicationContextAware {
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        ApplicationContextHolder.applicationContext = applicationContext;
+    }
+
+    public static <T> T getBean(Class<T> clazz) {
+        return applicationContext != null ? applicationContext.getBean(clazz) : null;
+    }
+}

+ 26 - 0
zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/interfaces/IHolidayCacheService.java

@@ -0,0 +1,26 @@
+package com.zfjg.common.core.interfaces;
+
+import java.util.Date;
+
+/**
+ * 节假日缓存一年
+ *
+ * @author xxd
+ */
+public interface IHolidayCacheService {
+    String CACHE_KEY = "remote:holiday:cache";
+
+    /**
+     * 设置假期存入redis
+     *
+     * @param holidayOrigin 节假日接口数据
+     */
+    void setHoliday(String holidayOrigin);
+
+    /**
+     * 获取当天是否节假日
+     *
+     * @param currentDay 计算的日期
+     */
+    Boolean getHoliday(Date currentDay);
+}

+ 1 - 1
zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/CustomerIdGenerator.java

@@ -17,7 +17,7 @@ public class CustomerIdGenerator implements IdentifierGenerator {
     public Long nextId(Object entity) {
         // 填充自己的Id生成器,
         long uuid = IdGenerator.generateId();
-        log.info("生成16位雪花ID:{} ", uuid);
+//        log.info("生成16位雪花ID:{} ", uuid);
         return uuid;
     }
 }

+ 5 - 19
zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/DateUtils.java

@@ -1,6 +1,6 @@
 package com.zfjg.common.core.utils;
 
-import cn.hutool.json.JSONUtil;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
@@ -452,7 +452,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
      * @return 加算后的日期
      * @Description 参数的日期加指定的工作日(排除节假日)
      */
-    public static String getWorkDays(Date nowTime, int timeout) throws Exception {
+    public static String getWorkDays(Date nowTime, int timeout, IHolidayCacheService holidayCacheService) throws Exception {
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(nowTime);
@@ -460,31 +460,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 //        File filePath = resource.getFile();
 //        //读取文件
 //        String s = FileUtils.readFileToString(filePath, "UTF-8");
-        Map holiday = JSONUtil.toBean(JSONUtil.parseObj(s), Map.class);
         int timeouts = 0;
         String lastTime = "";
         String lastDate = sdf1.format(nowTime);
-        String week = "";
         for (int i = 1; i <= timeout; i++) {
             SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
             lastTime = sdf.format(addDay(nowTime, i));
             lastDate = sdf1.format(addDay(nowTime, i));
-            if (holiday.get(lastTime) != null) {
-                Map ts = (Map) holiday.get(lastTime);
-                if (ts.get("holiday").equals(true)) {
-                    timeouts++;
-                    timeout++;
-                }
-                ;
-            } else {
-                //判断是否为周六周日
-                week = getWeek(addDay(nowTime, i));
-                if (week.equals("星期六") || week.equals("星期日")) {
-                    timeouts++;
-                    timeout++;
-                }
+            if (holidayCacheService.getHoliday(transStrToDate(lastDate))) {
+                timeouts++;
+                timeout++;
             }
-            ;
         }
         Map<String, Object> maps = new HashMap<>();
         //工作日后实际时间:

+ 1 - 1
zfjg-modules/zfjg-file/src/main/java/com/zfjg/file/config/MybatisPlusConfig.java → zfjg-modules/zfjg-file/src/main/java/com/zfjg/file/config/MybatisPlusFileConfig.java

@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
  * 配置自定义ID生成策略
  */
 @Configuration
-public class MybatisPlusConfig {
+public class MybatisPlusFileConfig {
 
     //@Bean
     //public GlobalConfig globalConfig() {

+ 37 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/config/HolidayRunner.java

@@ -0,0 +1,37 @@
+package com.zfjg.manage.config;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
+import com.zfjg.common.core.utils.PostUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class HolidayRunner implements ApplicationRunner {
+    @Resource
+    private IHolidayCacheService holidayCacheService;
+
+    @Value("${http.old-ssl-system}")
+    private String baseUrl;
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        JSONArray objectArray = new JSONArray();
+        JSONObject object = new JSONObject();
+        object.put("day_date.like", "2024%");
+        objectArray.add(object);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("page", 1);
+        jsonObject.put("rowIdOnly", 0);
+        jsonObject.put("search", object.toJSONString());
+        jsonObject.put("size", 370);
+        jsonObject.put("xftoken", PostUtils.getBigDataXFToken());
+        String postJson = PostUtils.postJson(baseUrl + "/admin-ht/api/resource/dapi/北京中软国际信息技术有限公司/1/8c0c4ee6474e38335a1db33c67eefc2c", jsonObject, "UTF-8");
+        holidayCacheService.setHoliday(postJson);
+    }
+}

+ 21 - 1
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceJobReportController.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.controller.enforce.job;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zfjg.common.core.exception.ServiceException;
 import com.zfjg.common.core.utils.StringUtils;
 import com.zfjg.common.core.utils.poi.ExcelUtil;
@@ -8,7 +9,7 @@ import com.zfjg.common.core.web.domain.AjaxResult;
 import com.zfjg.common.log.annotation.Log;
 import com.zfjg.common.log.enums.BusinessType;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
-import com.zfjg.manage.api.dto.enforce.job.EnforceJobDTO;
+import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
 import com.zfjg.manage.api.dto.enforce.job.EnforceJobReportDTO;
 import com.zfjg.manage.api.search.enforce.job.EnforceJobQuery;
 import com.zfjg.manage.api.sync.EnforceJobSyncReport;
@@ -17,16 +18,19 @@ import com.zfjg.manage.service.enforce.job.IEnforceJobReportService;
 import com.zfjg.manage.service.enforce.job.IEnforceJobService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 import java.util.List;
 
 @RestController
 @RequestMapping("/enforceJob/report")
 @Api(tags = "举报投诉")
+@Slf4j
 public class EnforceJobReportController extends BaseController {
 
     @Autowired
@@ -34,6 +38,7 @@ public class EnforceJobReportController extends BaseController {
 
     @Autowired
     private IEnforceJobService enforceJobService;
+
     /**
      * POST /enforce-job : 创建/编辑举报投诉附加表
      */
@@ -82,4 +87,19 @@ public class EnforceJobReportController extends BaseController {
         util.exportExcel(response, enforceJobDTOS, "举报投诉转发", "附件  全市涉及占用、堵塞、封闭消防车通道的举报投诉情况明细表");
     }
 
+
+    @PostMapping(value = "/doit/{id}")
+    public void reportRepeat(@PathVariable Long id) {
+        log.info("开始处理ID: " + id);
+        LambdaQueryWrapper<EnforceJobReport> enforceJobReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        enforceJobReportLambdaQueryWrapper.eq(EnforceJobReport::getJobId, id);
+        EnforceJob byId = enforceJobService.getById(id);
+        List<EnforceJobReport> list = enforceJobReportService.list(enforceJobReportLambdaQueryWrapper);
+        EnforceJobReport enforceJobReport = list.get(0);
+        log.info("----------------开始处理对象: " + list);
+        enforceJobReport.setUpdateTime(new Date());
+        enforceJobReportService.updateById(enforceJobReport);
+        enforceJobService.updateById(byId);
+        log.info("----------------完成处理对象: " + enforceJobReport);
+    }
 }

+ 39 - 18
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceJobServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.service.impl.enforce.job;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -15,10 +16,14 @@ import com.zfjg.common.core.constant.CacheConstants;
 import com.zfjg.common.core.constant.Constants;
 import com.zfjg.common.core.constant.GlobalConstant;
 import com.zfjg.common.core.constant.PlaceConstant;
+import com.zfjg.common.core.context.ApplicationContextHolder;
 import com.zfjg.common.core.domain.R;
 import com.zfjg.common.core.enums.*;
 import com.zfjg.common.core.exception.ServiceException;
-import com.zfjg.common.core.utils.*;
+import com.zfjg.common.core.utils.DateUtils;
+import com.zfjg.common.core.utils.ServletUtils;
+import com.zfjg.common.core.utils.SpringUtils;
+import com.zfjg.common.core.utils.StringUtils;
 import com.zfjg.common.core.utils.bean.BeanUtils;
 import com.zfjg.common.datascope.annotation.DataScope;
 import com.zfjg.common.redis.service.RedisService;
@@ -29,7 +34,10 @@ import com.zfjg.manage.api.domain.enforce.job.*;
 import com.zfjg.manage.api.domain.enforce.message.EnforceMessage;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
-import com.zfjg.manage.api.domain.enforce.template.*;
+import com.zfjg.manage.api.domain.enforce.template.EnforceTemplate;
+import com.zfjg.manage.api.domain.enforce.template.EnforceTemplateHandbook;
+import com.zfjg.manage.api.domain.enforce.template.EnforceTemplateNode;
+import com.zfjg.manage.api.domain.enforce.template.EnforceTemplateNodeItem;
 import com.zfjg.manage.api.dto.approve.ApproveDetailDTO;
 import com.zfjg.manage.api.dto.enforce.job.*;
 import com.zfjg.manage.api.dto.enforce.message.EnforceMessageTemplateDTO;
@@ -41,6 +49,7 @@ import com.zfjg.manage.api.repository.enforce.obj.EnforceObjRepositoryDTO;
 import com.zfjg.manage.api.search.enforce.job.CropTaskViewQuery;
 import com.zfjg.manage.api.search.enforce.job.EnforceJobQuery;
 import com.zfjg.manage.api.vo.enforce.job.*;
+import com.zfjg.manage.config.Constant;
 import com.zfjg.manage.mapper.CommMapper;
 import com.zfjg.manage.mapper.enforce.job.EnforceJobMapper;
 import com.zfjg.manage.mapper.enforce.job.EnforceJobNodeItemMapper;
@@ -63,10 +72,11 @@ import com.zfjg.manage.service.enforce.template.IEnforceTemplateHandbookService;
 import com.zfjg.manage.service.enforce.template.IEnforceTemplateNodeItemService;
 import com.zfjg.manage.service.enforce.template.IEnforceTemplateNodeService;
 import com.zfjg.manage.service.enforce.template.IEnforceTemplateService;
+import com.zfjg.manage.service.impl.other.IHolidayCacheServiceImpl;
 import com.zfjg.manage.service.sys.IFileService;
+import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
 import com.zfjg.manage.utils.gd.GDUtils;
 import com.zfjg.system.api.RemoteDictDataService;
-import com.zfjg.system.api.RemoteUserService;
 import com.zfjg.system.api.domain.SysDept;
 import com.zfjg.system.api.domain.SysUser;
 import com.zfjg.system.api.domain.dto.SysDictDataDTO;
@@ -100,14 +110,17 @@ import java.util.stream.Collectors;
  * @author mxkj
  * @date 2022-12-06
  */
-@Service
 @Slf4j
+@Service("EnforceManageJobService")
 public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, EnforceJob> implements IEnforceJobService {
 
     @Autowired
     private EnforceJobMapper enforceJobMapper;
     @Autowired
     private IEnforceObjService enforceObjService;
+
+    @Autowired
+    private IHolidayCacheServiceImpl holidayCacheService;
     //    @Autowired
 //    private IEnforceMessageService enforceMessageService;
     @Autowired
@@ -155,9 +168,6 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
     @Autowired
     private CommService commService;
 
-    @Autowired
-    private RemoteUserService remoteUserService;
-
     @Autowired
     private UserRedisCacheService userRedisCacheService;
     @Autowired
@@ -191,6 +201,7 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
      * @param enforceJobDTO
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public EnforceJobDTO addJob(EnforceJobDTO enforceJobDTO) {
         Date lastEnforceDate = enforceJobDTO.getLastEnforceDate();
         //如果检查期限没有传,默认取本月最后一天
@@ -262,12 +273,21 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
      * @param id
      * @return
      */
+    @Transactional
     @Override
     public int delJobById(Long id) {
         EnforceJob enforceJob = enforceJobMapper.selectById(id);
         if (ObjectUtils.isEmpty(enforceJob)) {
             throw new ServiceException("任务不存在!", 404);
         }
+        enforceJob.setIsDeleted(1L);
+        ILjZfjgSyncDataService syncDataService = ApplicationContextHolder.getBean(ILjZfjgSyncDataService.class);
+        if (syncDataService != null) {
+            if (JobTypeEnum.REPORT.getValue().equals(enforceJob.getJobType()) && Constant.NEED_PUSH_DATA_ORG_ID.equals(enforceJob.getEnforceOrgId())) {
+                log.warn("非两江任务:{}", enforceJob);
+                syncDataService.updateEnforceJob(BeanUtil.beanToMap(enforceJob));
+            }
+        }
         return this.removeById(id) ? 1 : 0;
     }
 
@@ -489,11 +509,12 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
                         log.error("生成复查任务-复查期限时间转换错误", ex);
                     }
                     try {
-                        String workDays = DateUtils.getWorkDays(date, 3);
+                        //此用引用了新节假日
+                        String workDays = DateUtils.getWorkDays(date, 3, holidayCacheService);
                         date = format.parse(workDays);
                     } catch (Exception exception) {
-                        log.error("获取3个工作日后的日期失败");
-                        exception.printStackTrace();
+                        log.error("获取3个工作日后的日期失败", e);
+                        throw new ServiceException("获取3个工作日后的日期失败");
                     }
                     reviewJob.setLastEnforceDate(date);
                     // todo 获取任务编号
@@ -850,7 +871,7 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
         enforceObjArchitectureService.checkAndUpdateEnforceObjArchitecture(enforceJob.getEnforceObjId(),
                 enforceJobDTO.getArchitectureId(),
                 enforceJobDTO.getArchitectureName()
-                );
+        );
         // 校验json,防止数据覆盖
         checkStaticNoticeResult(enforceJob, enforceJobDTO.getStaticNoticeResult(), executeStep);
         if (JobStatusEnum.ARCHIVED.getValue().equals(enforceJob.getJobStatus()))
@@ -2249,7 +2270,7 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
             }
 
             //解析备注
-            if (StringUtils.isNotEmpty(o.getJobResultRemark())){
+            if (StringUtils.isNotEmpty(o.getJobResultRemark())) {
                 String exp = "\\[(.*?)\\]";
                 Pattern pattern = Pattern.compile(exp);
                 Matcher matcher = pattern.matcher(o.getJobResultRemark());
@@ -2261,20 +2282,20 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
 
                 StringBuffer buffer = new StringBuffer();
 
-                for (String str : matches){
+                for (String str : matches) {
                     JSONArray array = JSONObject.parseArray(str);
-                    for (Object obj : array){
+                    for (Object obj : array) {
                         JSONObject jsonObject = (JSONObject) obj;
-                        if (jsonObject.containsKey("v")){
+                        if (jsonObject.containsKey("v")) {
                             String remark = jsonObject.get("v").toString();
-                            if (StringUtils.isNotEmpty(remark)){
+                            if (StringUtils.isNotEmpty(remark)) {
                                 buffer.append(remark);
                             }
                         }
                     }
 
                 }
-                if (buffer!=null && buffer.length()>0){
+                if (buffer != null && buffer.length() > 0) {
                     o.setJobResultRemark(buffer.toString());
                 }
             }
@@ -2470,7 +2491,7 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
         //获取当前登录人的信息
         SysUser loginUser = SecurityUtils.getLoginUser().getSysUser();
         String enforceOrgId = loginUser.getEnforceOrgId();
-        if(!"55c99876ec0f425aac6925a92cceeb17".equals(enforceOrgId)){
+        if (!"55c99876ec0f425aac6925a92cceeb17".equals(enforceOrgId)) {
             enforceJobQuery.setEnforceOrgId(enforceOrgId);
         }
         // 默认查询已生效的任务

+ 31 - 9
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/report/ReportServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.service.impl.enforce.report;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -8,7 +9,9 @@ import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.page.PageMethod;
 import com.zfjg.common.core.constant.SecurityConstants;
 import com.zfjg.common.core.domain.R;
+import com.zfjg.common.core.enums.JobTypeEnum;
 import com.zfjg.common.core.exception.ServiceException;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import com.zfjg.common.core.utils.DateUtils;
 import com.zfjg.common.core.utils.SpringUtils;
 import com.zfjg.common.core.utils.StringUtils;
@@ -30,6 +33,7 @@ import com.zfjg.manage.api.search.enforce.inspection.InspectionQuery;
 import com.zfjg.manage.api.search.enforce.report.ReportQuery;
 import com.zfjg.manage.api.vo.enforce.job.EnforceJobReportExporter;
 import com.zfjg.manage.api.vo.enforce.job.EnforceTaskExport;
+import com.zfjg.manage.config.Constant;
 import com.zfjg.manage.mapper.enforce.job.EnforceJobDao;
 import com.zfjg.manage.mapper.enforce.job.EnforceJobFallbackLogMapper;
 import com.zfjg.manage.mapper.enforce.job.EnforceJobMapper;
@@ -42,13 +46,16 @@ import com.zfjg.manage.service.enforce.job.IEnforceJobNodeItemService;
 import com.zfjg.manage.service.enforce.job.IEnforceJobReportService;
 import com.zfjg.manage.service.enforce.message.ISendMessageService;
 import com.zfjg.manage.service.enforce.report.ReportService;
+import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
 import com.zfjg.system.api.RemoteUserService;
 import com.zfjg.system.api.domain.SysUser;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
@@ -58,6 +65,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Service
 public class ReportServiceImpl implements ReportService {
 
@@ -67,6 +75,9 @@ public class ReportServiceImpl implements ReportService {
     @Autowired
     private EnforceJobDao enforceJobDao;
 
+    @Autowired
+    private IHolidayCacheService holidayCacheService;
+
     @Autowired
     private EnforceJobMapper enforceJobMapper;
 
@@ -97,6 +108,9 @@ public class ReportServiceImpl implements ReportService {
     @Autowired
     private HttpServletResponse response;
 
+    @Autowired
+    ILjZfjgSyncDataService ljZfjgSyncDataService;
+
     @Autowired
     private IEnforceJobNodeItemService enforceJobNodeItemService;
 
@@ -121,6 +135,7 @@ public class ReportServiceImpl implements ReportService {
         return tableInfo;
     }
 
+    @Transactional
     @Override
     public R<ReportDTO> forward(ReportQuery enforceJobDTO) {
         EnforceJob enforceJob = enforceJobMapper.selectById(enforceJobDTO.getId());
@@ -139,6 +154,12 @@ public class ReportServiceImpl implements ReportService {
         enforceJob.setForwardTime(new Date());
         enforceJobMapper.updateById(enforceJob);
         ReportDTO enforceJobMybatisDTO = enforceJobDao.ReportById(enforceJob.getId());
+        if (!JobTypeEnum.REPORT.getValue().equals(enforceJob.getJobType()) || !Constant.NEED_PUSH_DATA_ORG_ID.equals(enforceJob.getEnforceOrgId())) {
+            log.warn("非两江任务:{}", enforceJob);
+            return R.ok(enforceJobMybatisDTO);
+        }
+        //同步推送兩江執法数据
+        ljZfjgSyncDataService.updateEnforceJob(BeanUtil.beanToMap(enforceJob));
         return R.ok(enforceJobMybatisDTO);
     }
 
@@ -413,7 +434,8 @@ public class ReportServiceImpl implements ReportService {
                     return R.ok(DateUtils.addDayString(DateUtils.getNowDate(), index));
                 case "THREEDAY":
                     index = 3;
-                    return R.ok(DateUtils.getWorkDays(DateUtils.getNowDate(), index));
+                    //fixme: 此处修改新节假日
+                    return R.ok(DateUtils.getWorkDays(DateUtils.getNowDate(), index, holidayCacheService));
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -551,7 +573,7 @@ public class ReportServiceImpl implements ReportService {
         for (Map<String, Object> notPassItem : notPassItems) {
             Object jobId = notPassItem.get("jobId");
             Object problemSum = notPassItem.get("problemSum");
-            items.put(jobId,problemSum);
+            items.put(jobId, problemSum);
         }
         if (total <= 0) {
             throw new ServiceException("导出失败!无检查记录");
@@ -647,7 +669,7 @@ public class ReportServiceImpl implements ReportService {
             inspectionQuery.setPageNum(pageNum == null || pageNum == 0 ? 0 : (pageNum - 1) * pageSize);
             inspectionQuery.setPageSize(pageSize);
             List<EnforceTaskExport> userEntityList = enforceJobDao.taskExportList(inspectionQuery);
-            userEntityList.stream().forEach(e ->{
+            userEntityList.stream().forEach(e -> {
                 Object o = items.get(e.getId());
                 e.setNotPassNum("0");
                 if (!Objects.isNull(o)) {
@@ -667,7 +689,7 @@ public class ReportServiceImpl implements ReportService {
                 }
 
                 //解析备注
-                if (StringUtils.isNotEmpty(e.getJobResultRemark())){
+                if (StringUtils.isNotEmpty(e.getJobResultRemark())) {
                     String exp = "\\[(.*?)\\]";
                     Pattern pattern = Pattern.compile(exp);
                     Matcher matcher = pattern.matcher(e.getJobResultRemark());
@@ -679,20 +701,20 @@ public class ReportServiceImpl implements ReportService {
 
                     StringBuffer buffer = new StringBuffer();
 
-                    for (String str : matches){
+                    for (String str : matches) {
                         JSONArray array = JSONObject.parseArray(str);
-                        for (Object obj : array){
+                        for (Object obj : array) {
                             JSONObject jsonObject = (JSONObject) obj;
-                            if (jsonObject.containsKey("v")){
+                            if (jsonObject.containsKey("v")) {
                                 String remark = jsonObject.get("v").toString();
-                                if (StringUtils.isNotEmpty(remark)){
+                                if (StringUtils.isNotEmpty(remark)) {
                                     buffer.append(remark);
                                 }
                             }
                         }
 
                     }
-                    if (buffer!=null && buffer.length()>0){
+                    if (buffer != null && buffer.length() > 0) {
                         e.setJobResultRemark(buffer.toString());
                     }
                 }

+ 1 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/video/EnforceVideoServiceImpl.java

@@ -65,6 +65,7 @@ import java.util.Optional;
  * @author mxkj
  * @date 2022-12-06
  */
+@SuppressWarnings("AlibabaTransactionMustHaveRollback")
 @Service
 @Slf4j
 public class EnforceVideoServiceImpl extends ServiceImpl<EnforceVideoMapper, EnforceVideo> implements IEnforceVideoService {

+ 67 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/IHolidayCacheServiceImpl.java

@@ -0,0 +1,67 @@
+package com.zfjg.manage.service.impl.other;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
+import com.zfjg.common.core.utils.DateUtils;
+import com.zfjg.common.redis.service.RedisService;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.rmi.ServerException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author xxd
+ */
+@Slf4j
+@Service
+public class IHolidayCacheServiceImpl implements IHolidayCacheService {
+    @Resource
+    private RedisService redisService;
+
+    @Override
+    public void setHoliday(String holidayOrigin) {
+        JSONObject holidayResponse = (JSONObject) JSONObject.parse(holidayOrigin);
+        if (!holidayResponse.containsKey("code")) {
+            log.error("节假日数据未返回code");
+            return;
+        }
+
+        if (holidayResponse.getInteger("code") != 0) {
+            log.error("返回code不为0");
+            return;
+        }
+        HashMap<String, Object> cacheObject = new HashMap<>();
+        JSONArray holidayResponseJSONArray = holidayResponse.getJSONArray("data");
+        for (Object data : holidayResponseJSONArray) {
+            JSONObject item = (JSONObject) data;
+            String dayDate = item.getString("day_date");
+            if ("节假日".equals(item.getString("day_type"))) {
+                cacheObject.put(dayDate, true);
+            } else {
+                cacheObject.put(dayDate, false);
+            }
+        }
+        redisService.setCacheMap(CACHE_KEY, cacheObject);
+
+    }
+
+    @SneakyThrows
+    @Override
+    public Boolean getHoliday(Date currentDay) {
+        String dateFormat = DateUtils.getDateFormat(currentDay, "yyyy-MM-dd");
+        if (!redisService.hasKey(CACHE_KEY)) {
+            throw new ServerException("数据未启动至缓存");
+        }
+        Map<String, Object> cacheMap = redisService.getCacheMap(CACHE_KEY);
+        if (cacheMap.containsKey(dateFormat)) {
+            return (Boolean) cacheMap.get(dateFormat);
+        }
+        throw new ServerException("获取节假日数据异常");
+    }
+}

+ 38 - 38
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceJobPushDataHandler.java

@@ -1,38 +1,38 @@
-package com.zfjg.manage.sync.push;
-
-import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
-import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
-import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-@Component
-@Slf4j
-public class EnforceJobPushDataHandler extends AbstractPushDataHandler {
-
-    @Autowired
-    private ILjZfjgSyncDataService ljZfjgSyncDataService;
-
-    @Override
-    protected String getEntityName() {
-        return "enforce_job";
-    }
-
-    @Override
-    public void insert(Map<String, Object> data) {
-        log.info("插入执法任务数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceJob(data);
-    }
-
-    @Override
-    public void update(Map<String, Object> data) {
-        log.info("更新执法任务数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceJob(data);
-    }
-
-
-
-}
+//package com.zfjg.manage.sync.push;
+//
+//import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
+//import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
+//import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Map;
+//
+//@Component
+//@Slf4j
+//public class EnforceJobPushDataHandler extends AbstractPushDataHandler {
+//
+//    @Autowired
+//    private ILjZfjgSyncDataService ljZfjgSyncDataService;
+//
+//    @Override
+//    protected String getEntityName() {
+//        return "enforce_job";
+//    }
+//
+//    @Override
+//    public void insert(Map<String, Object> data) {
+//        log.info("插入执法任务数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceJob(data);
+//    }
+//
+//    @Override
+//    public void update(Map<String, Object> data) {
+//        log.info("更新执法任务数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceJob(data);
+//    }
+//
+//
+//
+//}

+ 38 - 38
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceJobReportPushDataHandler.java

@@ -1,38 +1,38 @@
-package com.zfjg.manage.sync.push;
-
-import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
-import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
-import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-@Component
-@Slf4j
-public class EnforceJobReportPushDataHandler extends AbstractPushDataHandler {
-
-
-    @Autowired
-    private ILjZfjgSyncDataService ljZfjgSyncDataService;
-
-    @Override
-    protected String getEntityName() {
-        return "enforce_job_report";
-    }
-
-
-    @Override
-    public void insert(Map<String, Object> data) {
-        log.info("插入举报投诉数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceJobReport(data);
-    }
-
-    @Override
-    public void update(Map<String, Object> data) {
-        log.info("更新举报投诉数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceJobReport(data);
-    }
-}
+//package com.zfjg.manage.sync.push;
+//
+//import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
+//import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
+//import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Map;
+//
+//@Component
+//@Slf4j
+//public class EnforceJobReportPushDataHandler extends AbstractPushDataHandler {
+//
+//
+//    @Autowired
+//    private ILjZfjgSyncDataService ljZfjgSyncDataService;
+//
+//    @Override
+//    protected String getEntityName() {
+//        return "enforce_job_report";
+//    }
+//
+//
+//    @Override
+//    public void insert(Map<String, Object> data) {
+//        log.info("插入举报投诉数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceJobReport(data);
+//    }
+//
+//    @Override
+//    public void update(Map<String, Object> data) {
+//        log.info("更新举报投诉数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceJobReport(data);
+//    }
+//}

+ 42 - 42
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/push/EnforceObjPushDataHandler.java

@@ -1,42 +1,42 @@
-package com.zfjg.manage.sync.push;
-
-import com.alibaba.fastjson.JSON;
-import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
-import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
-import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-@Slf4j
-@RequiredArgsConstructor
-@Component
-public class EnforceObjPushDataHandler extends AbstractPushDataHandler {
-
-
-
-    @Autowired
-    private ILjZfjgSyncDataService ljZfjgSyncDataService;
-
-    @Override
-    protected String getEntityName() {
-        return "enforce_obj";
-    }
-
-    @Override
-    public void insert(Map<String, Object> data) {
-        log.info("插入执法单位数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceObj(data);
-    }
-
-    @Override
-    public void update(Map<String, Object> data) {
-        log.info("更新执法单位数据: {}", data);
-        ljZfjgSyncDataService.updateEnforceObj(data);
-    }
-
-}
+//package com.zfjg.manage.sync.push;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.zfjg.comm.datasync.factory.AbstractPushDataHandler;
+//import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
+//import com.zfjg.manage.sync.remote.ILjZfjgSyncDataService;
+//import lombok.RequiredArgsConstructor;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Map;
+//
+//
+//@Slf4j
+//@RequiredArgsConstructor
+//@Component
+//public class EnforceObjPushDataHandler extends AbstractPushDataHandler {
+//
+//
+//
+//    @Autowired
+//    private ILjZfjgSyncDataService ljZfjgSyncDataService;
+//
+//    @Override
+//    protected String getEntityName() {
+//        return "enforce_obj";
+//    }
+//
+//    @Override
+//    public void insert(Map<String, Object> data) {
+//        log.info("插入执法单位数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceObj(data);
+//    }
+//
+//    @Override
+//    public void update(Map<String, Object> data) {
+//        log.info("更新执法单位数据: {}", data);
+//        ljZfjgSyncDataService.updateEnforceObj(data);
+//    }
+//
+//}

+ 21 - 17
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/remote/DefaultLjZfjgSyncDataService.java

@@ -5,9 +5,8 @@ import cn.hutool.core.util.ReflectUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zfjg.common.core.enums.JobTypeEnum;
+import com.zfjg.common.core.exception.ServiceException;
 import com.zfjg.common.core.web.domain.AjaxResult;
-import com.zfjg.common.security.utils.SecurityUtils;
-import com.zfjg.manage.api.domain.approve.EnforceApproveTemplete;
 import com.zfjg.manage.api.domain.device.Device;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
@@ -32,12 +31,10 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
@@ -50,7 +47,7 @@ import java.util.Optional;
 @Slf4j
 @RequiredArgsConstructor
 @Service
-public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
+public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService {
     /**
      * 两江执法监督基础路由
      */
@@ -71,9 +68,10 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
 
     /**
      * 更新执法设备
-     *
+     * <p>
      * 1、检查必传参数是否包含
      * 2、检查id是否包含
+     *
      * @param obj
      */
     @Override
@@ -133,10 +131,10 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
             EnforceJob enforceJob = Optional.ofNullable(enforceJobService.getRealJobById((Serializable) obj.get("id")))
                     .orElse(new EnforceJob());
             if (!JobTypeEnum.REPORT.getValue().equals(enforceJob.getJobType()) || !checkIsLjData(enforceJob.getEnforceOrgId())) {
-                log.warn("不是两江举报投诉任务不进行同步:{}", enforceJob);
-                return;
+                throw new ServiceException("不是两江举报投诉任务不进行同步: " + enforceJob);
             }
             map2Obj(obj, enforceJob);
+            log.warn("推送两江举报投诉任务enforce_job: {}", enforceJob.getId());
             request("/enforce_job", enforceJob, true);
             if (JobTypeEnum.REPORT.getValue().equals(enforceJob.getJobType())) {
                 EnforceJobSyncReport enforceJobSyncReport = new EnforceJobSyncReport();
@@ -145,10 +143,12 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
                 if (Objects.nonNull(one)) {
                     BeanUtils.copyProperties(one, enforceJobSyncReport);
                 }
+                log.warn("推送两江举报投诉任务enforceJobSyncReport: {}", enforceJobSyncReport.getJobId());
                 request("/enforce_job_report", enforceJobSyncReport, true);
+                log.warn("推送两江举报投诉任务完成: {}", enforceJobSyncReport.getJobId());
             }
         } else {
-            log.error("参数错误:请即时处理:{}", obj);
+            throw new ServiceException("参数错误:请即时处理:" + obj);
         }
     }
 
@@ -192,10 +192,10 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
         if (checkParams(obj, "id", "enforceOrgName", "enforceObjName", "manageStatus", "enforceOrgId", "enforceObjType", "architectureType",
                 "holeResponsibility", "createUserId", "updateUserId",
                 "isDeleted", "selectTimes", "dataSources", "isLabel", "extractNum", "createTime", "updateTime"
-                )) {
+        )) {
             request("/enforce_obj", obj, checkIsLjData(MapUtil.getStr(obj, "enforceOrgId")));
         } else if (checkParams(obj, "id")) {
-            EnforceObj enforceObj =  Optional.ofNullable(enforceObjService.getById((Serializable) obj.get("id"))).orElse(new EnforceObj());
+            EnforceObj enforceObj = Optional.ofNullable(enforceObjService.getById((Serializable) obj.get("id"))).orElse(new EnforceObj());
             map2Obj(obj, enforceObj);
             request("/enforce_obj", enforceObj, checkIsLjData(enforceObj.getEnforceOrgId()));
         } else {
@@ -214,12 +214,12 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
             log.info("未开启两江数据推送接口");
             return;
         }
-        if (checkParams(obj, "id", "tagId", "tagName", "rootTagId", "rootTagName", "enforceOrgId", "enforceObjId", "enforceObjType" )) {
-            request("/obj_tag", obj,  checkIsLjData(MapUtil.getStr(obj, "enforceOrgId")));
+        if (checkParams(obj, "id", "tagId", "tagName", "rootTagId", "rootTagName", "enforceOrgId", "enforceObjId", "enforceObjType")) {
+            request("/obj_tag", obj, checkIsLjData(MapUtil.getStr(obj, "enforceOrgId")));
         } else if (checkParams(obj, "id")) {
             EnforceObjTag enforceObjTag = Optional.ofNullable(enforceObjTagService.getById((Serializable) obj.get("id"))).orElse(new EnforceObjTag());
             map2Obj(obj, enforceObjTag);
-            request("/obj_tag", enforceObjTag,  checkIsLjData(enforceObjTag.getEnforceOrgId()));
+            request("/obj_tag", enforceObjTag, checkIsLjData(enforceObjTag.getEnforceOrgId()));
         } else {
             log.error("参数错误:请即时处理:{}", obj);
         }
@@ -244,7 +244,7 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
             EnforceVideo enforceVideo = Optional.ofNullable(enforceVideoService.getById((Serializable) obj.get("id"))).orElse(new EnforceVideo());
             map2Obj(obj, enforceVideo);
             EnforceVideoSync enforceVideoSync = new EnforceVideoSync();
-            BeanUtils.copyProperties(enforceVideo,enforceVideoSync);
+            BeanUtils.copyProperties(enforceVideo, enforceVideoSync);
             enforceVideoSync.setTimeOut(0);
             request("/device_video", enforceVideo, checkIsLjData(enforceVideo.getEnforceOrgId()));
         } else {
@@ -307,10 +307,11 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
 
     /**
      * 通用请求处理
+     *
      * @param apiUrl
      * @param data
      */
-    private void request(String apiUrl, Object data, boolean isPush) {
+    public void request(String apiUrl, Object data, boolean isPush) {
 
         if (!isPush) {
             log.warn("{} 不符合要求不进行推送:{}", apiUrl, JSON.toJSONString(data));
@@ -332,17 +333,19 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
 
     /**
      * 检查参数是否包含
+     *
      * @param params
      * @param keys
      * @return
      */
-    private boolean checkParams(Map<String, Object> params, String ... keys) {
+    private boolean checkParams(Map<String, Object> params, String... keys) {
         return Arrays.stream(keys).allMatch(params::containsKey);
     }
 
 
     /**
      * 检查数据权限是否为两江
+     *
      * @param enforceOrgId
      * @return
      */
@@ -352,6 +355,7 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService{
 
     /**
      * 检查数据权限是否为两江或者总队
+     *
      * @param enforceOrgId
      * @return
      */

+ 9 - 8
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/approve/ApproveTask.java

@@ -2,8 +2,8 @@ package com.zfjg.manage.task.approve;
 
 
 import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import com.zfjg.common.core.utils.DateUtils;
-import com.zfjg.common.core.utils.StringUtils;
 import com.zfjg.manage.api.domain.approve.EnforceApprove;
 import com.zfjg.manage.api.domain.approve.EnforceApproveTemplete;
 import com.zfjg.manage.mapper.approve.EnforceApproveMapper;
@@ -13,7 +13,6 @@ import com.zfjg.manage.service.approve.IEnforceApproveTempleteService;
 import com.zfjg.manage.service.enforce.job.IEnforceJobService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -21,7 +20,6 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -44,6 +42,9 @@ public class ApproveTask {
     @Autowired
     private IEnforceApproveTempleteService enforceApproveTempleteService;
 
+    @Autowired
+    private IHolidayCacheService holidayCacheService;
+
     @Scheduled(cron = "${approve.batch.update-status.cron:0 * */1 * * ?}")
     //@Scheduled(cron = "* * * * * ?")
     public void updateStatus() throws Exception {
@@ -57,7 +58,7 @@ public class ApproveTask {
         List<EnforceApprove> enforceApproves = new ArrayList<>();
         for (int i = 0; i < approveTemplates.size(); i++) {
             EnforceApproveTemplete enf = approveTemplates.get(i);
-            List<String> enforceOrgIds=new ArrayList<>();
+            List<String> enforceOrgIds = new ArrayList<>();
             String enforceOrgId = enf.getEnforceOrgId();
             enforceOrgIds.add(enforceOrgId);
             //获取天数以及开始时间,任务id
@@ -65,14 +66,14 @@ public class ApproveTask {
             Date createTime = enf.getCreateTime();
             //用创建人接收任务id
             String jobId = enf.getCreateUserId();
-            //排除节假日,获取排除节假日后的日期
-            String workDays = DateUtils.getWorkDays(createTime, linkDay.intValue());
+            //fixme: 排除节假日,获取排除节假日后的日期
+            String workDays = DateUtils.getWorkDays(createTime, linkDay.intValue(), holidayCacheService);
             Date parse = format.parse(workDays);
             double target = parse.getTime();
             double source = createTime.getTime();
             //计算出排除节假日后限改开始时间与到期时间的天数
             Integer day = (int) Math.ceil((target - source) / 1000 / 3600 / 24);
-            List<EnforceApprove> timeOutApproves = enforceApproveMapper.getTimeOutApproves1(day, enforceOrgIds,jobId);
+            List<EnforceApprove> timeOutApproves = enforceApproveMapper.getTimeOutApproves1(day, enforceOrgIds, jobId);
             enforceApproves.addAll(timeOutApproves);
         }
 //        Map<Long, List<EnforceApproveTemplete>> linkDayMap = approveTemplates.stream().collect(Collectors.groupingBy(EnforceApproveTemplete::getLinkDays));
@@ -107,7 +108,7 @@ public class ApproveTask {
     }
 
 
-    private void updateStatusBuffer(List<EnforceApprove> buffer){
+    private void updateStatusBuffer(List<EnforceApprove> buffer) {
         //更新超时的明细
         buffer.forEach(e -> enforceApproveDetailService.updateTimeOutStatus(e.getId(), e.getApproveOrder()));
 

+ 2 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/job/DataShareEnforceJobClient.java

@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpEntity;
@@ -52,6 +53,7 @@ public class DataShareEnforceJobClient {
     private RestTemplate restTemplate;
 
     @Autowired
+    @Qualifier("EnforceManageJobService")
     IEnforceJobService enforceJobMapper;
 
     @Autowired

+ 23 - 19
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/job/EnforceJobTask.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zfjg.common.core.constant.CacheConstants;
 import com.zfjg.common.core.constant.GlobalConstant;
 import com.zfjg.common.core.enums.DeleteStatusEnum;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import com.zfjg.common.core.utils.DateUtils;
 import com.zfjg.common.redis.service.RedisService;
 import com.zfjg.manage.api.domain.enforce.job.EnforceHandbook;
@@ -15,11 +16,9 @@ import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
 import com.zfjg.manage.api.dto.enforce.job.EnforceHandbookDTO;
 import com.zfjg.manage.api.dto.enforce.job.EnforceHandbookProblemDTO;
-import com.zfjg.manage.api.dto.enforce.job.EnforceJobReportDTO;
 import com.zfjg.manage.api.dto.enforce.message.EnforceMessageReceiverDTO;
 import com.zfjg.manage.api.dto.enforce.message.EnforceMessageTemplateDTO;
 import com.zfjg.manage.api.dto.enforce.message.MessageParamsDTO;
-import com.zfjg.manage.api.dto.enforce.message.SendMessageParamsDTO;
 import com.zfjg.manage.service.enforce.job.IEnforceHandbookProblemService;
 import com.zfjg.manage.service.enforce.job.IEnforceHandbookService;
 import com.zfjg.manage.service.enforce.job.IEnforceJobReportService;
@@ -67,6 +66,8 @@ public class EnforceJobTask {
     private ISendMessageService sendMessageService;
     @Autowired
     private IEnforceJobReportService enforceJobReportService;
+    @Autowired
+    private IHolidayCacheService holidayCacheService;
 
     private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 
@@ -128,15 +129,16 @@ public class EnforceJobTask {
     // 举报核查正在执行的数据  doing
     @Scheduled(cron = "0 0/30 * * * ?")
     //@Scheduled(cron = "0 * * * * ?")
-    public void reportingVerificationWithDoing(){
+    public void reportingVerificationWithDoing() {
         try {
             doingData();
-        }catch(Exception e){
-            log.error("执行举报核查的定时任务出错,错误为:"+e.getMessage());
+        } catch (Exception e) {
+            log.error("执行举报核查的定时任务出错,错误为:" + e.getMessage());
         }
     }
-    private void doingData(){
-        List<EnforceJob> newList=new ArrayList<>();
+
+    private void doingData() {
+        List<EnforceJob> newList = new ArrayList<>();
         QueryWrapper<EnforceJob> reportWrapper = new QueryWrapper<>();
         reportWrapper.eq("job_type", "REPORT")
                 .eq("time_out", 0)
@@ -144,12 +146,12 @@ public class EnforceJobTask {
                 .eq("job_status", "DOING");
         List<EnforceJob> reportList = enforceJobService.list(reportWrapper);
         //设置检查时间为一天的23:59:59
-        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        if(reportList != null){
+        if (reportList != null) {
             for (int i = 0; i < reportList.size(); i++) {
-                if(reportList.get(i).getLastEnforceDate() != null){
-                    String dateString = sdf.format(reportList.get(i).getLastEnforceDate())+" 23:59:59";
+                if (reportList.get(i).getLastEnforceDate() != null) {
+                    String dateString = sdf.format(reportList.get(i).getLastEnforceDate()) + " 23:59:59";
                     try {
                         reportList.get(i).setLastEnforceDate(sdf1.parse(dateString));
                     } catch (ParseException e) {
@@ -160,11 +162,11 @@ public class EnforceJobTask {
         }
 
         //举报核查检查超期判定改为,1、已检查--记录表生成时间和核查期限比对
-        List<EnforceJob> reportList1=null;
-        if(CollectionUtils.isNotEmpty(reportList)){
-            reportList1=reportList.stream()
+        List<EnforceJob> reportList1 = null;
+        if (CollectionUtils.isNotEmpty(reportList)) {
+            reportList1 = reportList.stream()
                     .filter(o -> Objects.nonNull(o.getRecordCreateTime()) && Objects.nonNull(o.getLastEnforceDate()))
-                    .filter(o -> o.getRecordCreateTime().compareTo(o.getLastEnforceDate())>0)
+                    .filter(o -> o.getRecordCreateTime().compareTo(o.getLastEnforceDate()) > 0)
                     .collect(Collectors.toList());
         }
         if (CollectionUtils.isNotEmpty(reportList1))
@@ -189,7 +191,8 @@ public class EnforceJobTask {
         Date time = df.parse(new SimpleDateFormat("yyyy-MM-dd").format(date));
 
         try {
-            String workDays = DateUtils.getWorkDays(date, 3);
+            //fixme: 节假日更新
+            String workDays = DateUtils.getWorkDays(date, 3, holidayCacheService);
             date = df.parse(workDays);
         } catch (Exception exception) {
             log.error("获取3个工作日后的日期失败");
@@ -222,7 +225,7 @@ public class EnforceJobTask {
                         String messageContent;
                         if (!templateDTO.isPresent()) {
                             messageContent = "【重庆消防指挥中心】【被检查单位】:根据《消防法》及《消防监督检查规定》,我支队拟于【复查时间】,对您的单位履行法定消防安全职责情况实施监督检查,请做好检查前的消防安全自检程序。";
-                        }else {
+                        } else {
                             EnforceMessageTemplateDTO enforceMessageTemplateDTO = templateDTO.get();
                             messageContent = enforceMessageTemplateDTO.getMessageContent();
                         }
@@ -300,10 +303,10 @@ public class EnforceJobTask {
                 .eq("job_type", "REVIEW")
                 .ne("time_out", 1)
                 .eq("is_deleted", 0)
-                .eq("job_status","TODO");
+                .eq("job_status", "TODO");
         List<EnforceJob> list = enforceJobService.list(wrapper);
         //数据接收   newList替换list做新数据集合
-        List<EnforceJob> newList=new ArrayList<>();
+        List<EnforceJob> newList = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(list)) {
             for (int result = 0; result < list.size(); result++) {
                 EnforceJob enforceJob = list.get(result);
@@ -347,6 +350,7 @@ public class EnforceJobTask {
         record.setTimeOut(1);
         enforceJobService.update(record, wrapper);
     }
+
     private void doJob() throws ParseException {
         QueryWrapper wrapper = new QueryWrapper<>();
         wrapper.eq("is_deleted", DeleteStatusEnum.NOT_DELETED);

+ 66 - 66
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/task/video/DataShareVeidoListClient.java

@@ -6,7 +6,6 @@ import com.hikvision.artemis.sdk.ArtemisHttpUtil;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
 import com.zfjg.common.core.constant.GlobalConstant;
 import com.zfjg.common.core.utils.DateUtils;
-import com.zfjg.common.core.utils.IdGenerator;
 import com.zfjg.common.core.utils.SpringUtils;
 import com.zfjg.common.core.utils.StringUtils;
 import com.zfjg.common.redis.service.RedisService;
@@ -20,13 +19,12 @@ import com.zfjg.manage.mapper.sys.SysPullLogMapper;
 import com.zfjg.manage.service.device.IDeviceService;
 import com.zfjg.manage.service.enforce.video.IEnforceVideoHkResService;
 import com.zfjg.manage.service.enforce.video.IEnforceVideoService;
-import com.zfjg.manage.utils.LoggerUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -34,7 +32,8 @@ import org.springframework.web.bind.annotation.RestController;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -45,9 +44,6 @@ import java.util.stream.Collectors;
  * 海康平台,同步视频列表
  */
 public class DataShareVeidoListClient {
-
-    private static final Logger LOGGER = LoggerUtils.getLogger(LoggerUtils.PatrolLoggerType.HIK_DATA_SYNC_LOG);
-
     @Value("${hikvision.host}")
     private String host;
 
@@ -89,7 +85,7 @@ public class DataShareVeidoListClient {
 //     @Scheduled(cron = "* 0/1 * * * ?")
     public void rsyncVediosData() {
         if (isopen) {
-            LOGGER.info("同步视频数据开始");
+            log.info("同步视频数据开始");
             List<Device> devices = deviceRepository.getBaseMapper().selectList(new QueryWrapper<Device>().lambda()
                     .eq(Device::getIsDeleted, 0));
             if (StringUtils.isEmpty(devices)) {
@@ -114,7 +110,7 @@ public class DataShareVeidoListClient {
                 }
             });
         } else {
-            LOGGER.info("同步视频数据已关闭");
+            log.info("同步视频数据已关闭");
         }
     }
 
@@ -122,7 +118,7 @@ public class DataShareVeidoListClient {
     @Scheduled(cron = "${fire.corn.datashare-vedio-rsync.time}")
     public void pageRsyncVideoData_v2() {
         if (!isopen) {
-            LOGGER.info("同步视频数据已关闭");
+            log.info("同步视频数据已关闭");
             return;
         }
         /**
@@ -161,7 +157,7 @@ public class DataShareVeidoListClient {
 
 
         String body = json.toJSONString();
-        LOGGER.info("requset={}", body);
+        log.info("requset={}", body);
 
         /**
          * STEP6:调用接口
@@ -210,8 +206,9 @@ public class DataShareVeidoListClient {
         }
 
         @Override
+        @Transactional
         public void run() {
-            System.out.println("线程:" + Thread.currentThread().getName() + " , 开始读取数据------");
+            log.info("线程:" + Thread.currentThread().getName() + " , 开始读取数据------");
             SysPullLog sysPullLog = new SysPullLog();
             sysPullLog.setType("video");
             sysPullLog.setRunTime(DateUtils.getNowDate());
@@ -219,18 +216,18 @@ public class DataShareVeidoListClient {
             long start = System.currentTimeMillis();
             JSONObject result = JSONObject.parseObject(ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null));// post请求application/json类型参数
             if (!"0".equals(result.getString("code"))) {
-                LOGGER.error("根据监控点列表查询录像完整性结果出错");
+                log.error("根据监控点列表查询录像完整性结果出错");
                 sysPullLog.setState(1L);
                 sysPullLog.setExceptJson(result.getString("msg"));
                 sysPullLogMapper.insert(sysPullLog);
                 return;
             }
             sysPullLogMapper.insert(sysPullLog);
-            System.out.println("线程:" + Thread.currentThread().getName() + " , 读取数据耗时 :" + (System.currentTimeMillis() - start) + "ms");
+            log.info("线程:" + Thread.currentThread().getName() + " , 读取数据耗时 :" + (System.currentTimeMillis() - start) + "ms");
             List<EnforceVideoHkRes> enforceVideoHkRes = result.getJSONObject("data").getJSONArray("list").toJavaList(EnforceVideoHkRes.class);
             enforceVideoHkRes.stream().forEach(t -> {
                 t.setSysPullId(sysPullLog.getId());
-                String serialNo =t.getRecorderCode();
+                String serialNo = t.getRecorderCode();
                 Device deviceOptional = deviceRepository.getBaseMapper()
                         .selectOne(new QueryWrapper<Device>()
                                 .lambda()
@@ -241,46 +238,49 @@ public class DataShareVeidoListClient {
                     /**
                      * 视频时间取takeTimeString,时长取duration
                      */
-                        Date takeTime = t.getTakeTimeString();
-                        Integer duration = t.getDuration();
-                        if (takeTime != null) {
-                            EnforceVideo video = enforceVideoRepository.getBaseMapper()
-                                    .selectOne(new QueryWrapper<EnforceVideo>().lambda()
-                                    .eq(EnforceVideo::getMediaId, t.getMediaId())
-                                     //放开筛选条件,前端删除视频会有视频重复出现的情况
-                                    //.eq(EnforceVideo::getIsDeleted, 0)
-                                    .last("LIMIT 1"));
-                            if (Objects.isNull(video)) {
-                                String yyMMdd = DateUtils.getDay(takeTime, DateUtils.DATETIME_FORMAT_DAY3);
-                                EnforceVideo enforceVideo = new EnforceVideo();
-                                enforceVideo.setMediaId(t.getMediaId());
-                                enforceVideo.setCameraIndexCode(deviceOptional.getCameraIndexCode());
-                                enforceVideo.setDeviceId(deviceOptional.getId());
-                                enforceVideo.setDeviceName(deviceOptional.getDeviceName());
-                                enforceVideo.setSerialNo(serialNo);
-                                enforceVideo.setVideoName(yyMMdd);
-                                enforceVideo.setDeviceIndexCode(deviceOptional.getDeviceIndexCode());
-                                enforceVideo.setVideoBeginTime(takeTime);
-                                enforceVideo.setVideoEndTime(new Date((takeTime.getTime() / 1000 + duration) * 1000));
-                                enforceVideo.setThumbnailUrl(t.getThumbnailUrl());
-                                enforceVideo.setEnforceOrgId(deviceOptional.getEnforceOrgId());
-                                enforceVideo.setEnforceOrgName(deviceOptional.getEnforceOrgName());
-                                enforceVideo.setUsePersonName(deviceOptional.getUsePersonName());
-                                enforceVideo.setUsePersonId(deviceOptional.getUsePersonId());
-
-                                enforceVideoRepository.save(enforceVideo);
-                                //将视频绑定到任务上
-                                videoBindJobService.bindVideo2JobById(enforceVideo.getId());
-                            } else {
-                                LOGGER.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
-                                t.setState(1);
-                            }
+                    Date takeTime = t.getTakeTimeString();
+                    Integer duration = t.getDuration();
+                    if (takeTime != null) {
+                        EnforceVideo video = enforceVideoRepository.getBaseMapper()
+                                .selectOne(new QueryWrapper<EnforceVideo>().lambda()
+                                        .eq(EnforceVideo::getMediaId, t.getMediaId())
+                                        //放开筛选条件,前端删除视频会有视频重复出现的情况
+                                        //.eq(EnforceVideo::getIsDeleted, 0)
+                                        .last("LIMIT 1"));
+                        if (Objects.isNull(video)) {
+                            String yyMMdd = DateUtils.getDay(takeTime, DateUtils.DATETIME_FORMAT_DAY3);
+                            EnforceVideo enforceVideo = new EnforceVideo();
+                            enforceVideo.setMediaId(t.getMediaId());
+                            enforceVideo.setCameraIndexCode(deviceOptional.getCameraIndexCode());
+                            enforceVideo.setDeviceId(deviceOptional.getId());
+                            enforceVideo.setDeviceName(deviceOptional.getDeviceName());
+                            enforceVideo.setSerialNo(serialNo);
+                            enforceVideo.setVideoName(yyMMdd);
+                            enforceVideo.setDeviceIndexCode(deviceOptional.getDeviceIndexCode());
+                            enforceVideo.setVideoBeginTime(takeTime);
+                            enforceVideo.setVideoEndTime(new Date((takeTime.getTime() / 1000 + duration) * 1000));
+                            enforceVideo.setThumbnailUrl(t.getThumbnailUrl());
+                            enforceVideo.setEnforceOrgId(deviceOptional.getEnforceOrgId());
+                            enforceVideo.setEnforceOrgName(deviceOptional.getEnforceOrgName());
+                            enforceVideo.setUsePersonName(deviceOptional.getUsePersonName());
+                            enforceVideo.setVideoType("master");
+                            enforceVideo.setFileId(1L);
+                            enforceVideo.setDuration(1L);
+                            enforceVideo.setUsePersonId(deviceOptional.getUsePersonId());
+                            enforceVideo.setTimeOut(0);
+                            enforceVideoRepository.save(enforceVideo);
+                            //将视频绑定到任务上
+                            videoBindJobService.bindVideo2JobById(enforceVideo.getId());
                         } else {
-                            LOGGER.info("任务时间为空!,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
-                            t.setState(2);
+                            log.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
+                            t.setState(1);
                         }
+                    } else {
+                        log.info("任务时间为空!,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
+                        t.setState(2);
+                    }
                 } else {
-                    LOGGER.warn("设备:serialNo:[{}]不存在!", serialNo);
+                    log.warn("设备:serialNo:[{}]不存在!", serialNo);
                     t.setState(3);
                 }
             });
@@ -322,7 +322,7 @@ public class DataShareVeidoListClient {
          * STEP5:组装请求参数
          */
         String body = JSONObject.toJSONString(shareVideoListRequest);
-        LOGGER.info("同步视频数据请求参数,request={}", shareVideoListRequest);
+        log.info("同步视频数据请求参数,request={}", shareVideoListRequest);
 
         /**
          * STEP6:调用接口
@@ -330,13 +330,13 @@ public class DataShareVeidoListClient {
         JSONObject result = JSONObject.parseObject(ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null));// post请求application/json类型参数
         DataShareVideoListResponse response = JSONObject.toJavaObject(result, DataShareVideoListResponse.class);
         if (!"0".equals(response.getCode())) {
-            LOGGER.error("根据监控点列表查询录像完整性结果出错,[{}]", shareVideoListRequest.getRecorderCode());
+            log.error("根据监控点列表查询录像完整性结果出错,[{}]", shareVideoListRequest.getRecorderCode());
             return;
         }
-//        LOGGER.info("同步视频数据,接口返回数据,result={}", result);
+//        log.info("同步视频数据,接口返回数据,result={}", result);
         shareVideoListRequest.setTotal(response.getData().getTotal());
         long mp4Total = response.getData().getList().stream().filter(s -> "mp4".equals(s.getFileType())).count();
-        LOGGER.info("同步视频数据响应数据,serial_no={},total={}", shareVideoListRequest.getRecorderCode(), mp4Total);
+        log.info("同步视频数据响应数据,serial_no={},total={}", shareVideoListRequest.getRecorderCode(), mp4Total);
         response.getData().getList().forEach(t -> {
             String serialNo = t.getRecorderCode();
             List<Device> deviceList = deviceRepository.getBaseMapper().selectList(new QueryWrapper<Device>().lambda().eq(Device::getSerialNo, serialNo).orderByDesc(Device::getIsDeleted));
@@ -377,15 +377,15 @@ public class DataShareVeidoListClient {
                             //将视频绑定到任务上
                             videoBindJobService.bindVideo2JobById(enforceVideo.getId());
                         } else {
-                            LOGGER.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
+                            log.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
                         }
                     } else {
-                        LOGGER.info("该视频片段格式不是MP4,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
+                        log.info("该视频片段格式不是MP4,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
                     }
 
                 }
             } else {
-                LOGGER.warn("设备:serialNo:[{}]不存在!", serialNo);
+                log.warn("设备:serialNo:[{}]不存在!", serialNo);
             }
         });
         //判断是否最后一页,否则进行再次查询下一页
@@ -430,7 +430,7 @@ public class DataShareVeidoListClient {
              * STEP5:组装请求参数
              */
             String body = JSONObject.toJSONString(shareVideoListRequest);
-            LOGGER.info("同步视频数据请求参数,request={}", shareVideoListRequest);
+            log.info("同步视频数据请求参数,request={}", shareVideoListRequest);
 
             /**
              * STEP6:调用接口
@@ -440,7 +440,7 @@ public class DataShareVeidoListClient {
             if (!"0".equals(response.getCode())) {
                 log.error("根据监控点列表查询录像完整性结果出错,[{}]", shareVideoListRequest.toString());
             }
-//        LOGGER.info("同步视频数据,接口返回数据,result={}", result);
+//        log.info("同步视频数据,接口返回数据,result={}", result);
             shareVideoListRequest.setTotal(response.getData().getTotal());
             List<DataShareVideoListResponse.Result.DataNode> list = response.getData().getList();
             for (DataShareVideoListResponse.Result.DataNode t : list) {
@@ -455,7 +455,7 @@ public class DataShareVeidoListClient {
                         device = one;
                         redisService.setCacheObject(GlobalConstant.ENFORCE_DEVICE + serialNo, JSONObject.toJSONString(device), 1l, TimeUnit.DAYS);
                     } else {
-                        LOGGER.warn("设备:serialNo:[{}]不存在!", serialNo);
+                        log.warn("设备:serialNo:[{}]不存在!", serialNo);
                         continue;
                     }
                 } else {
@@ -495,19 +495,19 @@ public class DataShareVeidoListClient {
                             //将视频绑定到任务上
                             videoBindJobService.bindVideo2JobById(enforceVideo.getId());
                         } else {
-                            LOGGER.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
+                            log.info("该视频片段已存在,hikDeviceId={},takeTime={},duration={},MediaId = {}", serialNo, takeTime, duration, t.getMediaId());
                         }
                     } else {
-                        LOGGER.info("该视频片段格式不是MP4,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
+                        log.info("该视频片段格式不是MP4,hikDeviceId={},格式为={},MediaId = {}", serialNo, t.getFileType(), t.getMediaId());
                     }
 
                 }
             }
 //            long mp4Total = response.getData().getList().stream().filter(s -> "mp4".equals(s.getFileType())).count();
-//        LOGGER.info("同步视频数据响应数据,page={},total={}", shareVideoListRequest.getPageNo(), mp4Total);
+//        log.info("同步视频数据响应数据,page={},total={}", shareVideoListRequest.getPageNo(), mp4Total);
 
         } catch (Exception e) {
-            LOGGER.error("根据监控点列表查询录像完整性结果出错,[{}]", shareVideoListRequest.toString());
+            log.error("根据监控点列表查询录像完整性结果出错,[{}]", shareVideoListRequest.toString());
         }
 
     }

+ 1 - 1
zfjg-modules/zfjg-sync/src/main/java/com/zfjg/sync/modules/job/service/impl/EnforceJobServiceImpl.java

@@ -41,7 +41,7 @@ import java.util.stream.Collectors;
  * @author mxkj
  * @date 2022-12-06
  */
-@Service
+@Service("EnforceSyncJobService")
 @RequiredArgsConstructor
 @Slf4j
 public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, EnforceJob> implements IEnforceJobService {

+ 8 - 17
zfjg-modules/zfjg-system/src/main/java/com/zfjg/system/controller/SysRoleController.java

@@ -1,38 +1,29 @@
 package com.zfjg.system.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
 import com.zfjg.common.core.domain.R;
-import com.zfjg.common.security.annotation.InnerAuth;
-import com.zfjg.system.api.domain.dto.SysRoleDTO;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import com.zfjg.common.core.constant.UserConstants;
 import com.zfjg.common.core.utils.poi.ExcelUtil;
 import com.zfjg.common.core.web.controller.BaseController;
 import com.zfjg.common.core.web.domain.AjaxResult;
 import com.zfjg.common.core.web.page.TableDataInfo;
 import com.zfjg.common.log.annotation.Log;
 import com.zfjg.common.log.enums.BusinessType;
+import com.zfjg.common.security.annotation.InnerAuth;
 import com.zfjg.common.security.annotation.RequiresPermissions;
 import com.zfjg.common.security.utils.SecurityUtils;
 import com.zfjg.system.api.domain.SysDept;
 import com.zfjg.system.api.domain.SysRole;
 import com.zfjg.system.api.domain.SysUser;
+import com.zfjg.system.api.domain.dto.SysRoleDTO;
 import com.zfjg.system.domain.SysUserRole;
 import com.zfjg.system.service.ISysDeptService;
 import com.zfjg.system.service.ISysRoleService;
 import com.zfjg.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 角色信息