浏览代码

值班查岗相关接口开发

jichaobo 2 年之前
父节点
当前提交
4b04450ebd

+ 24 - 5
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PostInspectController.java

@@ -7,10 +7,9 @@ import com.usky.common.log.enums.BusinessType;
 import com.usky.fire.domain.PostInspect;
 import com.usky.fire.service.PostInspectService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * <p>
@@ -28,7 +27,7 @@ public class PostInspectController {
     private PostInspectService postInspectService;
 
     /**
-     * 值班查岗-企业版平台查岗功能推送接收接口
+     * 值班查岗-企业版平台查岗功能推送接收
      *
      * @param postInspect
      * @return
@@ -39,5 +38,25 @@ public class PostInspectController {
         postInspectService.postInspectRecept(postInspect);
         return ApiResult.success();
     }
+
+    /**
+     * 值班查岗-企业版系统查岗功能相关数据查询
+     *
+     * @return
+     */
+    @GetMapping("postInspectPlatform")
+    public ApiResult<List<PostInspect>> postInspectPlatform() {
+        return ApiResult.success(postInspectService.postInspectPlatform());
+    }
+
+    /**
+     * 值班查岗-企业版系统查岗记录查询接口
+     *
+     * @return
+     */
+    @GetMapping("postInspectAnswerRecept")
+    public ApiResult<List<PostInspect>> postInspectAnswerRecept() {
+        return ApiResult.success(postInspectService.postInspectAnswerRecept());
+    }
 }
 

+ 30 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/TaskController.java

@@ -0,0 +1,30 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.fire.service.PostInspectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author JCB
+ * @since 2022-08-08
+ */
+@EnableScheduling
+@Component
+public class TaskController {
+    @Autowired
+    private PostInspectService postInspectService;
+
+    //    @Scheduled(cron = "0/5 * *  * * ?") // 间隔5秒执行
+    @Scheduled(cron = "0 0/5 * * * ? ") // 间隔5分钟执行
+    public void task() {
+        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
+        postInspectService.postInspectAnswerRequest();
+
+    }
+
+
+}
+

+ 6 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/PostInspect.java

@@ -1,6 +1,7 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -82,5 +83,9 @@ public class PostInspect implements Serializable {
      */
     private LocalDateTime updateTime;
 
-
+    /**
+     * 倒计时(秒)
+     */
+    @TableField(exist = false)
+    private Long countdown;
 }

+ 23 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/PostInspectService.java

@@ -1,7 +1,9 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.PostInspect;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.PostInspect;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,7 +17,27 @@ public interface PostInspectService extends CrudService<PostInspect> {
 
     /**
      * 值班查岗-企业版平台查岗功能推送接收接口
+     *
      * @param postInspect
      */
     void postInspectRecept(PostInspect postInspect);
+
+    /**
+     * 值班查岗-企业版系统查岗功能相关数据查询
+     *
+     * @return
+     */
+    List<PostInspect> postInspectPlatform();
+
+    /**
+     * 值班查岗-企业版系统查岗记录查询接口
+     *
+     * @return
+     */
+    List<PostInspect> postInspectAnswerRecept();
+
+    /**
+     * 值班查岗-闵行、企业值班记录数据同步
+     */
+    void postInspectAnswerRequest();
 }

+ 94 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/PostInspectServiceImpl.java

@@ -1,11 +1,31 @@
 package com.usky.fire.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.util.HttpUtils;
+import com.usky.common.core.util.StringUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.MhPostInspect;
 import com.usky.fire.domain.PostInspect;
 import com.usky.fire.mapper.PostInspectMapper;
+import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.MhPostInspectService;
 import com.usky.fire.service.PostInspectService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 /**
  * <p>
  * 查岗信息 服务实现类
@@ -17,9 +37,83 @@ import org.springframework.stereotype.Service;
 @Service
 public class PostInspectServiceImpl extends AbstractCrudService<PostInspectMapper, PostInspect> implements PostInspectService {
 
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Autowired
+    private MhPostInspectService mhPostInspectService;
+
     @Override
     public void postInspectRecept(PostInspect postInspect) {
         this.save(postInspect);
     }
 
+    @Override
+    public List<PostInspect> postInspectPlatform() {
+        List<PostInspect> list = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List<String> companyIdList = baseUserCompanyService.companyIdList();
+        if (CollectionUtils.isNotEmpty(companyIdList)) {
+            Date date = new Date();
+            String startTime = OnlineMethod.minuteDateTime(new Date(), -10);
+            String endTime = sdf.format(date);
+            LambdaQueryWrapper<PostInspect> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(PostInspect::getCompanyId, companyIdList)
+                    .between(PostInspect::getInspectTime, startTime, endTime)
+                    .eq(PostInspect::getInspectStatus, 0);
+            list = this.list(queryWrapper);
+            for (int i = 0; i < list.size(); i++) {
+                long data1 = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
+                long data2 = list.get(i).getInspectTime().toEpochSecond(ZoneOffset.of("+8"));
+                long time = data1 - data2;
+                list.get(i).setCountdown(600 - time);
+            }
+        }
+        return list;
+    }
+
+
+    @Override
+    public List<PostInspect> postInspectAnswerRecept() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date();
+        String startTime = OnlineMethod.minuteDateTime(new Date(), -5);
+        String endTime = sdf.format(date);
+        LambdaQueryWrapper<PostInspect> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.between(PostInspect::getInspectTime, startTime, endTime);
+        List<PostInspect> list = this.list(queryWrapper);
+        for (int i = 0; i < list.size(); i++) {
+            long data1 = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
+            long data2 = list.get(i).getInspectTime().toEpochSecond(ZoneOffset.of("+8"));
+            long time = data1 - data2;
+            if (list.get(i).getInspectStatus() == 0) {
+                if (time < 600) {
+                    list.get(i).setCountdown(600 - time);
+                }
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public void postInspectAnswerRequest() {
+        String url = "http://172.16.120.165:13200/prod-api/service-fire/postInspect/postInspectAnswerRecept";
+        String res = null;
+        try {
+            res = HttpUtils.get(url, null);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        if (StringUtils.isNotBlank(res)) {
+            JSONObject jsonObj = JSONObject.parseObject(res);
+            String userStr = jsonObj.getString("data");
+            if(StringUtils.isNotBlank(userStr)&&!userStr.equals("[]")){
+                List<MhPostInspect> mhPostInspectList = JSON.parseArray(userStr, MhPostInspect.class);
+                for (int i = 0; i < mhPostInspectList.size(); i++) {
+//                mhPostInspectService.updateById(mhPostInspectList.get(i));
+                }
+            }
+        }
+    }
+
 }

+ 16 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -52,6 +52,22 @@ public class OnlineMethod {
         return format.format(d);
     }
 
+    /**
+     * @param date   当前时间
+     * @param minute 分钟
+     * @return
+     */
+    public static String minuteDateTime(Date date, Integer minute) {
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Calendar rightNow = Calendar.getInstance();
+        rightNow.setTime(date);
+        rightNow.add(Calendar.MINUTE, minute);
+        Date dt2 = rightNow.getTime();
+        String format = sdf.format(dt2);
+        return format;
+    }
+
     public static String timeChange(Object dateTime1) {
         SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");