Browse Source

值班查岗相关接口开发

jichaobo 2 years ago
parent
commit
0641fb7720
20 changed files with 965 additions and 4 deletions
  1. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java
  2. 91 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseCompanyPersonController.java
  3. 21 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/MhPostInspectController.java
  4. 21 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PostInspectController.java
  5. 150 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseCompanyPerson.java
  6. 105 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/MhPostInspect.java
  7. 86 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/PostInspect.java
  8. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BaseCompanyPersonMapper.java
  9. 29 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/MhPostInspectMapper.java
  10. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/PostInspectMapper.java
  11. 36 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyPersonService.java
  12. 36 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/MhPostInspectService.java
  13. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/PostInspectService.java
  14. 95 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyPersonServiceImpl.java
  15. 91 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/MhPostInspectServiceImpl.java
  16. 20 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/PostInspectServiceImpl.java
  17. 18 3
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java
  18. 30 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseCompanyPersonMapper.xml
  19. 66 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/MhPostInspectMapper.xml
  20. 21 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/PostInspectMapper.xml

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java

@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("data_rt");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("base_company_person");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 91 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseCompanyPersonController.java

@@ -0,0 +1,91 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.fire.domain.BaseCompanyPerson;
+import com.usky.fire.domain.MhPostInspect;
+import com.usky.fire.service.BaseCompanyPersonService;
+import com.usky.fire.service.MhPostInspectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 联网单位消防人员信息 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@RestController
+@RequestMapping("/baseCompanyPerson")
+public class BaseCompanyPersonController {
+
+    @Autowired
+    private BaseCompanyPersonService baseCompanyPersonService;
+
+    @Autowired
+    private MhPostInspectService mhPostInspectService;
+
+    /**
+     * 值班查岗-查岗单位及记录数据查询列表查询接口(闵行支队、企业版)
+     *
+     * @param companyCode 单位编号
+     * @param companyName 单位名称
+     * @param pageNum     当前页
+     * @param pageSize    每页条数
+     * @return
+     */
+    @GetMapping("postInspectList")
+    public ApiResult<CommonPage<BaseCompanyPerson>> postInspectList(@RequestParam(value = "companyCode", required = false) String companyCode,
+                                                                    @RequestParam(value = "companyName", required = false) String companyName,
+                                                                    @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                                    @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+        return ApiResult.success(baseCompanyPersonService.baseCompanyPersonList(companyCode, companyName, pageNum, pageSize));
+    }
+
+    /**
+     * 值班查岗-主页面响应时间、查岗次数等统计查询接口(闵行支队、企业版)
+     *
+     * @return
+     */
+    @GetMapping("postInspectStatistics")
+    public ApiResult<Map<String, Object>> postInspectStatistics() {
+        return ApiResult.success(baseCompanyPersonService.postInspectStatistics());
+    }
+
+
+    /**
+     * 值班查岗-查岗记录数据列表查询接口(闵行支队、企业版)
+     *
+     * @param companyId 单位ID
+     * @param pageNum   当前页
+     * @param pageSize  每页条数
+     * @return
+     */
+    @GetMapping("postInspectRecordList")
+    public ApiResult<CommonPage<MhPostInspect>> postInspectRecordList(@RequestParam(value = "companyId") String companyId,
+                                                                      @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                                      @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+        return ApiResult.success(mhPostInspectService.postInspectRecordList(companyId, pageNum, pageSize));
+    }
+
+    /**
+     * 值班查岗-查岗记录页面响应时间、查岗次数等统计查询接口(闵行支队、企业版)
+     *
+     * @param companyId 单位ID
+     * @return
+     */
+    @GetMapping("postInspectRecordStatistics")
+    public ApiResult<Map<String, Object>> postInspectRecordStatistics(@RequestParam(value = "companyId") String companyId) {
+        return ApiResult.success(mhPostInspectService.postInspectRecordStatistics(companyId));
+    }
+
+}
+

+ 21 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/MhPostInspectController.java

@@ -0,0 +1,21 @@
+package com.usky.fire.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 查岗信息 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Controller
+@RequestMapping("/mhPostInspect")
+public class MhPostInspectController {
+
+}
+

+ 21 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PostInspectController.java

@@ -0,0 +1,21 @@
+package com.usky.fire.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 查岗信息 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Controller
+@RequestMapping("/postInspect")
+public class PostInspectController {
+
+}
+

+ 150 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseCompanyPerson.java

@@ -0,0 +1,150 @@
+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;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 联网单位消防人员信息
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseCompanyPerson implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 联网单位id
+     */
+    private String companyId;
+
+    /**
+     * 单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 单位名称
+     */
+    private String companyName;
+
+    /**
+     * 消防控制室电话
+     */
+    private String fireControlPhone;
+
+    /**
+     * 消防安全责任人姓名
+     */
+    private String fireDutyName;
+
+    /**
+     * 消防安全责任人公民身份号码
+     */
+    private String fireDutyIdcard;
+
+    /**
+     * 消防安全责任人电话
+     */
+    private String fireDutyPhone;
+
+    /**
+     * 消防安全管理人姓名
+     */
+    private String fireManageName;
+
+    /**
+     * 消防安全管理人公民身份号码
+     */
+    private String fireManageIdcard;
+
+    /**
+     * 消防安全管理人电话
+     */
+    private String fireManagePhone;
+
+    /**
+     * 专兼职消防管理人姓名
+     */
+    private String partTimeFireName;
+
+    /**
+     * 专兼职消防管理人公民身份号码
+     */
+    private String partTimeFireIdcard;
+
+    /**
+     * 专兼职消防管理人电话
+     */
+    private String partTimeFirePhone;
+
+    /**
+     * 法人代表姓名
+     */
+    private String delegateName;
+
+    /**
+     * 法人代表公民身份号码
+     */
+    private String delegateIdcard;
+
+    /**
+     * 法人代表电话
+     */
+    private String delegatePhone;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 查岗次数
+     */
+    @TableField(exist = false)
+    private Integer inspectCount;
+
+    /**
+     * 应答次数
+     */
+    @TableField(exist = false)
+    private Integer answerCount;
+
+    /**
+     * 最后查岗时间
+     */
+    @TableField(exist = false)
+    private LocalDateTime inspectTime;
+}

+ 105 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/MhPostInspect.java

@@ -0,0 +1,105 @@
+package com.usky.fire.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 查岗信息
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class MhPostInspect implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 查岗唯一编号;支队推送获取,与支队查岗记录关联
+     */
+    private String inspectCode;
+
+    /**
+     * 查岗时间
+     */
+    private LocalDateTime inspectTime;
+
+    /**
+     * 应答时间
+     */
+    private LocalDateTime replyTime;
+
+    /**
+     * 应答用时
+     */
+    private Integer spentTime;
+
+    /**
+     * 查岗状态
+     */
+    private Integer inspectStatus;
+
+    /**
+     * 查岗对象单位ID
+     */
+    private String companyId;
+
+    /**
+     * 查岗对象单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 查岗状态名称
+     */
+    @TableField(exist = false)
+    private String inspectStatusName;
+
+    /**
+     * 倒计时(秒)
+     */
+    @TableField(exist = false)
+    private Long countdown;
+
+    /**
+     * 应答用时
+     */
+    @TableField(exist = false)
+    private String spentDate;
+
+}

+ 86 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/PostInspect.java

@@ -0,0 +1,86 @@
+package com.usky.fire.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 查岗信息
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PostInspect implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 查岗唯一编号;支队推送获取,与支队查岗记录关联
+     */
+    private String inspectCode;
+
+    /**
+     * 查岗时间
+     */
+    private LocalDateTime inspectTime;
+
+    /**
+     * 应答时间
+     */
+    private LocalDateTime replyTime;
+
+    /**
+     * 应答用时
+     */
+    private Integer spentTime;
+
+    /**
+     * 查岗状态
+     */
+    private Integer inspectStatus;
+
+    /**
+     * 查岗对象单位ID
+     */
+    private String companyId;
+
+    /**
+     * 查岗对象单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+
+}

+ 16 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BaseCompanyPersonMapper.java

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.BaseCompanyPerson;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 联网单位消防人员信息 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+public interface BaseCompanyPersonMapper extends CrudMapper<BaseCompanyPerson> {
+
+}

+ 29 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/MhPostInspectMapper.java

@@ -0,0 +1,29 @@
+package com.usky.fire.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.fire.domain.BaseCompanyPerson;
+import com.usky.fire.domain.MhPostInspect;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 查岗信息 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Repository
+public interface MhPostInspectMapper extends CrudMapper<MhPostInspect> {
+    List<BaseCompanyPerson> inspectStatistics(@Param("companyIdList") List<String> companyIdList);
+
+    Integer mhPostInspectStatistics(@Param("find") String find,
+                                    @Param("inspectStatus") Integer inspectStatus,
+                                    @Param("startTime") String startTime,
+                                    @Param("endTime") String endTime,
+                                    @Param("companyIdList") List<String> companyIdList,
+                                    @Param("companyId") String companyId);
+}

+ 16 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/PostInspectMapper.java

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.PostInspect;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 查岗信息 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+public interface PostInspectMapper extends CrudMapper<PostInspect> {
+
+}

+ 36 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyPersonService.java

@@ -0,0 +1,36 @@
+package com.usky.fire.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BaseCompanyPerson;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 联网单位消防人员信息 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+public interface BaseCompanyPersonService extends CrudService<BaseCompanyPerson> {
+
+    /**
+     * 值班查岗-查岗单位及记录数据查询列表查询接口(闵行支队、企业版)
+     *
+     * @param companyCode 单位编号
+     * @param companyName 单位名称
+     * @param pageNum     当前页
+     * @param pageSize    每页条数
+     * @return
+     */
+    CommonPage<BaseCompanyPerson> baseCompanyPersonList(String companyCode, String companyName, Integer pageNum, Integer pageSize);
+
+    /**
+     * 值班查岗-主页面响应时间、查岗次数等统计查询接口(闵行支队、企业版)
+     *
+     * @return
+     */
+    Map<String, Object> postInspectStatistics();
+}

+ 36 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/MhPostInspectService.java

@@ -0,0 +1,36 @@
+package com.usky.fire.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.MhPostInspect;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 查岗信息 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+public interface MhPostInspectService extends CrudService<MhPostInspect> {
+
+    /**
+     * 值班查岗-查岗记录数据列表查询接口(闵行支队、企业版)
+     *
+     * @param companyId 单位ID
+     * @param pageNum   当前页
+     * @param pageSize  每页条数
+     * @return
+     */
+    CommonPage<MhPostInspect> postInspectRecordList(String companyId, Integer pageNum, Integer pageSize);
+
+    /**
+     * 值班查岗-查岗记录页面响应时间、查岗次数等统计查询接口(闵行支队、企业版)
+     *
+     * @param companyId 单位ID
+     * @return
+     */
+    Map<String, Object> postInspectRecordStatistics(String companyId);
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.service;
+
+import com.usky.fire.domain.PostInspect;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 查岗信息 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+public interface PostInspectService extends CrudService<PostInspect> {
+
+}

+ 95 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyPersonServiceImpl.java

@@ -0,0 +1,95 @@
+package com.usky.fire.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.util.StringUtils;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BaseCompanyPerson;
+import com.usky.fire.mapper.BaseCompanyPersonMapper;
+import com.usky.fire.mapper.MhPostInspectMapper;
+import com.usky.fire.service.BaseCompanyPersonService;
+import com.usky.fire.service.BaseUserCompanyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 联网单位消防人员信息 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Service
+public class BaseCompanyPersonServiceImpl extends AbstractCrudService<BaseCompanyPersonMapper, BaseCompanyPerson> implements BaseCompanyPersonService {
+
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Autowired
+    private MhPostInspectMapper mhPostInspectMapper;
+
+    @Override
+    public CommonPage<BaseCompanyPerson> baseCompanyPersonList(String companyCode, String companyName, Integer pageNum, Integer pageSize) {
+        List<String> companyIdList = baseUserCompanyService.companyIdList();
+        IPage<BaseCompanyPerson> page = new Page<>(pageNum, pageSize);
+        if (CollectionUtils.isNotEmpty(companyIdList)) {
+            LambdaQueryWrapper<BaseCompanyPerson> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.like(StringUtils.isNotBlank(companyCode), BaseCompanyPerson::getCompanyCode, companyCode)
+                    .like(StringUtils.isNotBlank(companyName), BaseCompanyPerson::getCompanyName, companyName)
+                    .in(BaseCompanyPerson::getCompanyId, companyIdList)
+                    .orderByDesc(BaseCompanyPerson::getId);
+            page = this.page(page, queryWrapper);
+            if (page.getTotal() > 0) {
+                List<BaseCompanyPerson> baseCompanyPeople = mhPostInspectMapper.inspectStatistics(companyIdList);
+                for (int i = 0; i < page.getRecords().size(); i++) {
+                    for (int j = 0; j < baseCompanyPeople.size(); j++) {
+                        if (page.getRecords().get(i).getCompanyId().equals(baseCompanyPeople.get(j).getCompanyId())) {
+                            page.getRecords().get(i).setInspectCount(baseCompanyPeople.get(j).getInspectCount());
+                            page.getRecords().get(i).setAnswerCount(baseCompanyPeople.get(j).getAnswerCount());
+                            page.getRecords().get(i).setInspectTime(baseCompanyPeople.get(j).getInspectTime());
+                        }
+                    }
+                }
+            }
+        }
+        return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
+    }
+
+    @Override
+    public Map<String, Object> postInspectStatistics() {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = new Date();
+        String format = simpleDateFormat.format(date);
+        String startTime = format + " 00:00:00";
+        String endTime = format + " 23:59:59";
+        List<String> companyIdList = baseUserCompanyService.companyIdList();
+        String spentTime = "--:--";
+        Integer answeredCount = 0;
+        Integer notAnsweredCount = 0;
+        Integer count = 0;
+        if (CollectionUtils.isNotEmpty(companyIdList)) {
+            Integer spentTimeAvg = mhPostInspectMapper.mhPostInspectStatistics(" AVG(spent_time) ", 1, startTime, endTime, companyIdList, null);
+            answeredCount = mhPostInspectMapper.mhPostInspectStatistics(" count(*) ", 1, startTime, endTime, companyIdList, null);
+            notAnsweredCount = mhPostInspectMapper.mhPostInspectStatistics(" count(*) ", 0, startTime, endTime, companyIdList, null);
+            count = answeredCount + notAnsweredCount;
+            spentTime = spentTimeAvg / 60 + ":" + spentTimeAvg % 60;
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("spentTimeAvg", spentTime);
+        map.put("count", count);
+        map.put("answeredCount", answeredCount);
+        map.put("notAnsweredCount", notAnsweredCount);
+        return map;
+    }
+}

+ 91 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/MhPostInspectServiceImpl.java

@@ -0,0 +1,91 @@
+package com.usky.fire.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.util.StringUtils;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.MhPostInspect;
+import com.usky.fire.mapper.MhPostInspectMapper;
+import com.usky.fire.service.MhPostInspectService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 查岗信息 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Service
+public class MhPostInspectServiceImpl extends AbstractCrudService<MhPostInspectMapper, MhPostInspect> implements MhPostInspectService {
+
+    @Override
+    public CommonPage<MhPostInspect> postInspectRecordList(String companyId, Integer pageNum, Integer pageSize) {
+        IPage<MhPostInspect> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<MhPostInspect> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(MhPostInspect::getId, MhPostInspect::getInspectStatus, MhPostInspect::getInspectTime,
+                MhPostInspect::getSpentTime, MhPostInspect::getReplyTime)
+                .eq(MhPostInspect::getCompanyId, companyId);
+        page = this.page(page, queryWrapper);
+        if (page.getTotal() > 0) {
+            for (int i = 0; i < page.getRecords().size(); i++) {
+                if (page.getRecords().get(i).getInspectStatus() == 1) {
+                    page.getRecords().get(i).setInspectStatusName("已响应");
+                    String spentDate = page.getRecords().get(i).getSpentTime() / 60 + ":" + page.getRecords().get(i).getSpentTime() % 60;
+                    page.getRecords().get(i).setSpentDate(spentDate);
+                } else {
+                    //查岗时间与当前时间差
+                    long data1 = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
+                    long data2 = page.getRecords().get(i).getInspectTime().toEpochSecond(ZoneOffset.of("+8"));
+                    long time = data1 - data2;
+                    if (time < 600) {
+                        page.getRecords().get(i).setInspectStatusName("等待响应");
+                        page.getRecords().get(i).setCountdown(600-time);
+                    } else {
+                        page.getRecords().get(i).setInspectStatusName("离岗");
+                        page.getRecords().get(i).setSpentDate("超时未响应");
+                    }
+                }
+            }
+        }
+        return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
+    }
+
+    @Override
+    public Map<String, Object> postInspectRecordStatistics(String companyId) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String spentTime = "--:--";
+        Integer answeredCount = 0;
+        Integer notAnsweredCount = 0;
+        Integer count = 0;
+        Date date = new Date();
+        String startTime = OnlineMethod.getDateTime(date, 7);
+        String endTime = format.format(date);
+        if (StringUtils.isNotBlank(companyId)) {
+            Integer spentTimeAvg = baseMapper.mhPostInspectStatistics(" AVG(spent_time) ", 1, startTime, endTime, null, companyId);
+            answeredCount = baseMapper.mhPostInspectStatistics(" count(*) ", 1, startTime, endTime, null, companyId);
+            notAnsweredCount = baseMapper.mhPostInspectStatistics(" count(*) ", 0, startTime, endTime, null, companyId);
+            count = answeredCount + notAnsweredCount;
+            spentTime = spentTimeAvg / 60 + ":" + spentTimeAvg % 60;
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("spentTimeAvg", spentTime);
+        map.put("count", count);
+        map.put("answeredCount", answeredCount);
+        map.put("notAnsweredCount", notAnsweredCount);
+        return map;
+    }
+
+}

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

@@ -0,0 +1,20 @@
+package com.usky.fire.service.impl;
+
+import com.usky.fire.domain.PostInspect;
+import com.usky.fire.mapper.PostInspectMapper;
+import com.usky.fire.service.PostInspectService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 查岗信息 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-24
+ */
+@Service
+public class PostInspectServiceImpl extends AbstractCrudService<PostInspectMapper, PostInspect> implements PostInspectService {
+
+}

+ 18 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -17,8 +17,23 @@ import java.util.*;
 public class OnlineMethod {
 
 
+    /**
+     * 根据当前时间获取几天后日期
+     *
+     * @param day  天数
+     * @param date 当前时间
+     * @return
+     */
+    public static String getDateTime(Date date, Integer day) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.add(Calendar.DATE, -7);
+        Date d = c.getTime();
+        return format.format(d);
+    }
 
-    public static String timeChange(Object dateTime1){
+    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");
         try {
@@ -32,7 +47,7 @@ public class OnlineMethod {
         return null;
     }
 
-    public static String getDeviceTypeName(Integer deviceType){
+    public static String getDeviceTypeName(Integer deviceType) {
         String deviceName = "";
         switch (deviceType) {
             case 1:
@@ -72,7 +87,7 @@ public class OnlineMethod {
                 deviceName = "井盖";
                 break;
             default:
-                deviceName = ""+deviceType;
+                deviceName = "" + deviceType;
                 break;
         }
         return deviceName;

+ 30 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseCompanyPersonMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.fire.mapper.BaseCompanyPersonMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.BaseCompanyPerson">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="company_code" property="companyCode" />
+        <result column="company_name" property="companyName" />
+        <result column="fire_control_phone" property="fireControlPhone" />
+        <result column="fire_duty_name" property="fireDutyName" />
+        <result column="fire_duty_idcard" property="fireDutyIdcard" />
+        <result column="fire_duty_phone" property="fireDutyPhone" />
+        <result column="fire_manage_name" property="fireManageName" />
+        <result column="fire_manage_idcard" property="fireManageIdcard" />
+        <result column="fire_manage_phone" property="fireManagePhone" />
+        <result column="part_time_fire_name" property="partTimeFireName" />
+        <result column="part_time_fire_idcard" property="partTimeFireIdcard" />
+        <result column="part_time_fire_phone" property="partTimeFirePhone" />
+        <result column="delegate_name" property="delegateName" />
+        <result column="delegate_idcard" property="delegateIdcard" />
+        <result column="delegate_phone" property="delegatePhone" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_person" property="updatePerson" />
+        <result column="creator" property="creator" />
+    </resultMap>
+
+</mapper>

+ 66 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/MhPostInspectMapper.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.fire.mapper.MhPostInspectMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.MhPostInspect">
+        <id column="id" property="id"/>
+        <result column="inspect_code" property="inspectCode"/>
+        <result column="inspect_time" property="inspectTime"/>
+        <result column="reply_time" property="replyTime"/>
+        <result column="spent_time" property="spentTime"/>
+        <result column="inspect_status" property="inspectStatus"/>
+        <result column="company_id" property="companyId"/>
+        <result column="company_code" property="companyCode"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_person" property="updatePerson"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+    <select id="inspectStatistics" resultType="com.usky.fire.domain.BaseCompanyPerson">
+        SELECT
+        company_id,
+        COUNT(*) AS inspect_count,
+        SUM(inspect_status) AS answer_count,
+        MAX(inspect_time) AS inspect_time
+        FROM
+        mh_post_inspect
+        <where>
+            <if test="companyIdList != null and companyIdList.size() > 0">
+                AND company_id in
+                <foreach item="item" collection="companyIdList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        company_id
+        ORDER BY
+        inspect_time DESC
+    </select>
+
+    <select id="mhPostInspectStatistics" resultType="java.lang.Integer">
+        SELECT
+        ${find}
+        FROM
+        mh_post_inspect
+        <where>
+            <if test="companyIdList != null and companyIdList.size() > 0">
+                AND company_id in
+                <foreach item="item" collection="companyIdList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="inspectStatus != null">
+                AND inspect_status = #{inspectStatus}
+            </if>
+            <if test="startTime != null and startTime !='' and endTime != null and endTime !=''">
+                AND inspect_time BETWEEN #{startTime} and #{endTime}
+            </if>
+            <if test="companyId != null and companyId!= 0">
+                AND company_id = #{companyId}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 21 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/PostInspectMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.fire.mapper.PostInspectMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.PostInspect">
+        <id column="id" property="id" />
+        <result column="inspect_code" property="inspectCode" />
+        <result column="inspect_time" property="inspectTime" />
+        <result column="reply_time" property="replyTime" />
+        <result column="spent_time" property="spentTime" />
+        <result column="inspect_status" property="inspectStatus" />
+        <result column="company_id" property="companyId" />
+        <result column="company_code" property="companyCode" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+        <result column="update_person" property="updatePerson" />
+        <result column="update_time" property="updateTime" />
+    </resultMap>
+
+</mapper>