Browse Source

企业自主管理相关接口开发

jichaobo 2 years ago
parent
commit
33654048ff
18 changed files with 874 additions and 31 deletions
  1. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java
  2. 46 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseAutonomyController.java
  3. 42 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseStreetTownController.java
  4. 61 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BscEnterpriseAutonomy.java
  5. 61 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BscEnterpriseStreetTown.java
  6. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BscEnterpriseAutonomyMapper.java
  7. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BscEnterpriseStreetTownMapper.java
  8. 7 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyService.java
  9. 59 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseAutonomyService.java
  10. 25 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseStreetTownService.java
  11. 3 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemBuildScoreRecordService.java
  12. 19 12
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyServiceImpl.java
  13. 379 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseAutonomyServiceImpl.java
  14. 33 14
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseScreenServiceImpl.java
  15. 71 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseStreetTownServiceImpl.java
  16. 3 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemBuildScoreRecordServiceImpl.java
  17. 16 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/BscEnterpriseAutonomyMapper.xml
  18. 16 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/BscEnterpriseStreetTownMapper.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("dem_atl_inspect_declare");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("bsc_enterprise_street_town");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 46 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseAutonomyController.java

@@ -0,0 +1,46 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.service.BscEnterpriseAutonomyService;
+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;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(全部) 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+@RestController
+@RequestMapping("/bscEnterpriseAutonomy")
+public class BscEnterpriseAutonomyController {
+
+    @Autowired
+    private BscEnterpriseAutonomyService bscEnterpriseAutonomyService;
+
+    /**
+     * 企业自主管理大屏统计-全部单位数据查询
+     *
+     * @param moduleType 模块类型
+     * @param dataType   数据类型
+     * @return
+     */
+    @GetMapping("enterpriseAutonomy")
+    public ApiResult<Object> enterpriseAutonomy(@RequestParam(value = "dataType") String dataType,
+                                                @RequestParam(value = "moduleType") String moduleType) {
+        return ApiResult.success(bscEnterpriseAutonomyService.enterpriseAutonomy(moduleType, dataType));
+    }
+
+
+    @GetMapping("streetCompany")
+    public ApiResult<Object> streetCompany() {
+        return ApiResult.success(bscEnterpriseAutonomyService.streetCompany());
+    }
+}
+

+ 42 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseStreetTownController.java

@@ -0,0 +1,42 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.service.BscEnterpriseStreetTownService;
+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;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(街镇) 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+@RestController
+@RequestMapping("/bscEnterpriseStreetTown")
+public class BscEnterpriseStreetTownController {
+
+    @Autowired
+    private BscEnterpriseStreetTownService bscEnterpriseStreetTownService;
+
+    /**
+     * 企业自主管理大屏统计-街镇数据查询
+     *
+     * @param moduleType 模块类型
+     * @param dataType   数据类型
+     * @param streetTown 街镇
+     * @return
+     */
+    @GetMapping("enterpriseStreetTown")
+    public ApiResult<Object> enterpriseStreetTown(@RequestParam(value = "dataType") String dataType,
+                                                  @RequestParam(value = "moduleType") String moduleType,
+                                                  @RequestParam(value = "streetTown") String streetTown) {
+        return ApiResult.success(bscEnterpriseStreetTownService.enterpriseStreetTown(moduleType, dataType, streetTown));
+    }
+}
+

+ 61 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BscEnterpriseAutonomy.java

@@ -0,0 +1,61 @@
+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-10-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BscEnterpriseAutonomy implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 企业自主情况
+     */
+    private String enterpriseAutonomy;
+
+    /**
+     * 物联网设备情况
+     */
+    private String iotDevice;
+
+    /**
+     * 企业自主巡检情况
+     */
+    private String patrolInspection;
+
+    /**
+     * 各街镇单位情况
+     */
+    private String streetCompany;
+
+    /**
+     * 风险指数
+     */
+    private String rpn;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 61 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BscEnterpriseStreetTown.java

@@ -0,0 +1,61 @@
+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-10-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BscEnterpriseStreetTown implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 企业自主情况
+     */
+    private String enterpriseAutonomy;
+
+    /**
+     * 物联网设备情况
+     */
+    private String iotDevice;
+
+    /**
+     * 企业自主巡检情况
+     */
+    private String patrolInspection;
+
+    /**
+     * 各街镇单位情况
+     */
+    private String streetCompany;
+
+    /**
+     * 街镇
+     */
+    private String streetTown;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.BscEnterpriseAutonomy;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(全部) Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+public interface BscEnterpriseAutonomyMapper extends CrudMapper<BscEnterpriseAutonomy> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.BscEnterpriseStreetTown;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(街镇) Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+public interface BscEnterpriseStreetTownMapper extends CrudMapper<BscEnterpriseStreetTown> {
+
+}

+ 7 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyService.java

@@ -6,6 +6,7 @@ import com.usky.fire.domain.BaseCompany;
 import com.usky.fire.service.vo.CompanyDataVo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -83,4 +84,10 @@ public interface BaseCompanyService extends CrudService<BaseCompany> {
      * @param streetTown 街道
      */
     void updateCompany1(Integer id1, Integer id2, String longitude, String latitude, String streetTown);
+
+    /**
+     * 单位数量查询
+     * @return
+     */
+    int companyCount();
 }

+ 59 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseAutonomyService.java

@@ -0,0 +1,59 @@
+package com.usky.fire.service;
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BscEnterpriseAutonomy;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(全部) 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+public interface BscEnterpriseAutonomyService extends CrudService<BscEnterpriseAutonomy> {
+
+    /**
+     * 企业自主管理大屏统计-全部单位数据查询
+     *
+     * @param moduleType 模块类型
+     * @param dataType   数据类型
+     * @return
+     */
+    Object enterpriseAutonomy(String moduleType, String dataType);
+
+    /**
+     * 企业自主管理大屏统计(全部)-企业自主情况模块查询(定时)
+     * @return
+     */
+    Object enterpriseAutonomyData();
+
+    /**
+     * 最后6条数据查询
+     * @return
+     */
+    List<BscEnterpriseAutonomy> enterpriseAutonomyList();
+
+    /**
+     * 企业自主管理大屏统计(全部)-企业自主巡检情况模块查询(定时)
+     * @return
+     */
+    Object patrolInspection();
+
+    /**
+     * 巡检计划子ID查询
+     * @param startDate 开始日期
+     * @param endDate 结束日期
+     * @return
+     */
+    List<Integer> planSonIdList(String startDate, String endDate);
+
+    /**
+     * 企业自主管理大屏统计(全部)-各街镇单位情况模块查询(定时)
+     * @return
+     */
+    List<Map<String, Object>> streetCompany();
+}

+ 25 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseStreetTownService.java

@@ -0,0 +1,25 @@
+package com.usky.fire.service;
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BscEnterpriseStreetTown;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(街镇) 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+public interface BscEnterpriseStreetTownService extends CrudService<BscEnterpriseStreetTown> {
+
+    /**
+     * 企业自主管理大屏统计-街镇数据查询
+     *
+     * @param moduleType 模块类型
+     * @param dataType   数据类型
+     * @param streetTown 街镇
+     * @return
+     */
+    Object enterpriseStreetTown(String moduleType, String dataType, String streetTown);
+}

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemBuildScoreRecordService.java

@@ -19,10 +19,11 @@ public interface DemBuildScoreRecordService extends CrudService<DemBuildScoreRec
      * 查询建筑评分记录数
      *
      * @param scoreDate  时间(年-月)
-     * @param buildScore 评分
+     * @param buildScore1 评分
+     * @param buildScore2 评分
      * @return
      */
-    int demBuildScoreRecordCount(String scoreDate, Integer buildScore, String companyId);
+    int demBuildScoreRecordCount(String scoreDate, Integer buildScore1,Integer buildScore2, String companyId);
 
     /**
      * 查询建筑评分记录列表

+ 19 - 12
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.fire.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -219,7 +220,7 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
         List<Object> list = new ArrayList<>();
         LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(BaseCompany::getId, BaseCompany::getCompanyId, BaseCompany::getCompanyName,
-                BaseCompany::getCompanyType, BaseCompany::getLinkPhone, BaseCompany::getAddress,BaseCompany::getStreetTown)
+                BaseCompany::getCompanyType, BaseCompany::getLinkPhone, BaseCompany::getAddress, BaseCompany::getStreetTown)
                 .eq(BaseCompany::getEnable, 0)
                 .eq(StringUtils.isNotBlank(streetTown), BaseCompany::getStreetTown, streetTown)
                 .eq(StringUtils.isNotBlank(companyType), BaseCompany::getCompanyType, companyType);
@@ -230,7 +231,7 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
                 companyIdList.add(list1.get(i).getCompanyId());
             }
             LambdaQueryWrapper<BaseCompanyAttach1> queryWrapper1 = Wrappers.lambdaQuery();
-            queryWrapper1.select(BaseCompanyAttach1::getId,BaseCompanyAttach1::getCompanyId,BaseCompanyAttach1::getLongitude,
+            queryWrapper1.select(BaseCompanyAttach1::getId, BaseCompanyAttach1::getCompanyId, BaseCompanyAttach1::getLongitude,
                     BaseCompanyAttach1::getLatitude)
                     .in(BaseCompanyAttach1::getCompanyId, companyIdList);
             List<BaseCompanyAttach1> list2 = baseCompanyAttach1Service.list(queryWrapper1);
@@ -261,19 +262,19 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
                     if (list1.get(i).getCompanyId().equals(list2.get(j).getCompanyId())) {
                         String longitude = null;
                         String latitude = null;
-                        if ((StringUtils.isBlank(list2.get(j).getLongitude())&&StringUtils.isNotBlank(list1.get(i).getAddress()))) {
+                        if ((StringUtils.isBlank(list2.get(j).getLongitude()) && StringUtils.isNotBlank(list1.get(i).getAddress()))) {
                             List<LocateInfo> lonLat = OnlineMethod.getLonLat(list1.get(i).getAddress());
-                            if (CollectionUtils.isNotEmpty(lonLat)){
-                                if (StringUtils.isBlank(list2.get(j).getLongitude())&&StringUtils.isBlank(list2.get(j).getLatitude())){
+                            if (CollectionUtils.isNotEmpty(lonLat)) {
+                                if (StringUtils.isBlank(list2.get(j).getLongitude()) && StringUtils.isBlank(list2.get(j).getLatitude())) {
                                     longitude = "" + lonLat.get(0).getLongitude();
                                     latitude = "" + lonLat.get(0).getLatitude();
-                                }else {
+                                } else {
                                     longitude = list2.get(j).getLongitude();
                                     latitude = list2.get(j).getLatitude();
                                 }
-                                if (StringUtils.isBlank(list1.get(i).getStreetTown())){
+                                if (StringUtils.isBlank(list1.get(i).getStreetTown())) {
                                     streetTown = lonLat.get(0).getStreet();
-                                }else {
+                                } else {
                                     streetTown = list1.get(i).getStreetTown();
                                 }
                                 this.updateCompany1(list1.get(i).getId(), list2.get(j).getId(), longitude, latitude, streetTown);
@@ -289,11 +290,11 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
                     }
                 }
                 if (map.get("longitude") != null && map.get("latitude") != null) {
-                    if (StringUtils.isNotBlank(streetTown)){
-                        if (streetTown.equals(map.get("streetTown").toString())){
+                    if (StringUtils.isNotBlank(streetTown)) {
+                        if (streetTown.equals(map.get("streetTown").toString())) {
                             list.add(map);
                         }
-                    }else {
+                    } else {
                         list.add(map);
                     }
                 }
@@ -320,5 +321,11 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
         baseCompanyAttach1Service.updateById(baseCompanyAttach1);
     }
 
-
+    @Override
+    public int companyCount() {
+        LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseCompany::getEnable, 0);
+        int count = this.count(queryWrapper);
+        return count;
+    }
 }

+ 379 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseAutonomyServiceImpl.java

@@ -0,0 +1,379 @@
+package com.usky.fire.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.Arith;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.*;
+import com.usky.fire.mapper.BscEnterpriseAutonomyMapper;
+import com.usky.fire.service.*;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(全部) 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+@Service
+public class BscEnterpriseAutonomyServiceImpl extends AbstractCrudService<BscEnterpriseAutonomyMapper, BscEnterpriseAutonomy> implements BscEnterpriseAutonomyService {
+
+    @Autowired
+    private DemBuildScoreService demBuildScoreService;
+
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
+    @Autowired
+    private DemBuildScoreRecordService demBuildScoreRecordService;
+
+    @Autowired
+    private PatrolInspectionPlanService patrolInspectionPlanService;
+
+    @Autowired
+    private PatrolInspectionPlanSonService patrolInspectionPlanSonService;
+
+    @Autowired
+    private PatrolInspectionPlanSiteSonService patrolInspectionPlanSiteSonService;
+
+    @Override
+    public Object enterpriseAutonomy(String moduleType, String dataType) {
+        LambdaQueryWrapper<BscEnterpriseAutonomy> queryWrapper = Wrappers.lambdaQuery();
+        switch (moduleType) {
+            case "enterpriseAutonomy":
+                queryWrapper.select(BscEnterpriseAutonomy::getEnterpriseAutonomy);
+                break;
+            case "iotDevice":
+                queryWrapper.select(BscEnterpriseAutonomy::getIotDevice);
+                break;
+            case "patrolInspection":
+                queryWrapper.select(BscEnterpriseAutonomy::getPatrolInspection);
+                break;
+            case "streetCompany":
+                queryWrapper.select(BscEnterpriseAutonomy::getStreetCompany);
+                break;
+            default:
+                throw new BusinessException("参数错误");
+        }
+        queryWrapper.orderByDesc(BscEnterpriseAutonomy::getId)
+                .last(" limit 1");
+        List<BscEnterpriseAutonomy> list = this.list(queryWrapper);
+        Object data = null;
+        if (CollectionUtils.isNotEmpty(list)) {
+            switch (moduleType) {
+                case "enterpriseAutonomy":
+                    data = list.get(0).getEnterpriseAutonomy();
+                    break;
+                case "iotDevice":
+                    data = list.get(0).getIotDevice();
+                    break;
+                case "patrolInspection":
+                    data = list.get(0).getPatrolInspection();
+                    break;
+                case "streetCompany":
+                    data = list.get(0).getStreetCompany();
+                    break;
+            }
+        }
+        JSONObject jsonObject = JSONObject.parseObject(data.toString());
+        Object disparateData = jsonObject.get(dataType);
+        return disparateData;
+    }
+
+    @Override
+    public Object enterpriseAutonomyData() {
+        String LastMonthDate = OnlineMethod.getLastMonth(new Date());
+        DecimalFormat df = new DecimalFormat("0.00");
+        int deviceDamageCount = 20;
+        int fireCount = 0;
+        int rectificationCount = 40;
+        int buildTypeCount = 10;
+        int highRiskCount = 30;
+        int hiddenDangerCount = 70;
+        List<DemBuildScore> list1 = demBuildScoreService.buildScoreListOne();
+        int companyScoreCount1 = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, null, 85, null);
+        int companyScoreCount2 = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, 85, 60, null);
+        int companyScoreCount3 = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, 60, null, null);
+        int companyScoreRatio = companyScoreCount3 / (companyScoreCount1 + companyScoreCount2 + companyScoreCount3);
+        int companyCount = baseCompanyService.companyCount();
+        Double companyCount1 = Double.valueOf(companyCount);
+        Double deviceDamageRieo = 0.00;
+        Double fireRieo = 0.00;
+        Double rectificationRieo = 0.00;
+        Double buildTypeRieo = 0.00;
+        Double highRiskRieo = 0.00;
+        Double hiddenDangerRieo = 0.00;
+
+        Double deviceDamageScore = 0.00;
+        Double fireScore = 0.00;
+        Double rectificationScore = 0.00;
+        Double buildTypeScore = 0.00;
+        Double highRiskScore = 0.00;
+        Double hiddenDangerScore = 0.00;
+
+        Double deviceDamageScore1 = 0.00;
+        Double fireScore1 = 0.00;
+        Double rectificationScore1 = 0.00;
+        Double buildTypeScore1 = 0.00;
+        Double highRiskScore1 = 0.00;
+        Double hiddenDangerScore1 = 0.00;
+
+        List<Object> data1 = new ArrayList<>();
+        for (int i = 0; i < list1.size(); i++) {
+            Map<String, Object> map1 = new HashMap<>();
+            double sub = 0.0;
+            double div = 0.0;
+            int riskMax = Integer.parseInt(list1.get(i).getRiskMax());
+            int weightProportion = Integer.parseInt(list1.get(i).getWeightProportion());
+            switch (list1.get(i).getRiskId()) {
+                case 1:
+                    deviceDamageRieo = Double.valueOf(df.format((float) deviceDamageCount / riskMax * 100));
+                    sub = Arith.sub(100, deviceDamageRieo);
+                    div = Arith.div(weightProportion, 100);
+                    deviceDamageScore = Arith.mul(sub, div);
+                    deviceDamageScore1 = Arith.div(deviceDamageScore, companyCount1);
+                    map1.put("name", "设备状况指数");
+                    map1.put("value", deviceDamageScore1);
+                    break;
+                case 2:
+                    fireRieo = Double.valueOf(df.format((float) fireCount / riskMax * 100));
+                    sub = Arith.sub(100, fireRieo);
+                    div = Arith.div(weightProportion, 100);
+                    fireScore = Arith.mul(sub, div);
+                    fireScore1 = Arith.div(fireScore, companyCount1);
+                    map1.put("name", "历史火灾指数");
+                    map1.put("value", fireScore1);
+                    break;
+                case 3:
+                    rectificationRieo = Double.valueOf(df.format((float) rectificationCount / riskMax * 100));
+                    sub = Arith.sub(100, rectificationRieo);
+                    div = Arith.div(weightProportion, 100);
+                    rectificationScore = Arith.mul(sub, div);
+                    rectificationScore1 = Arith.div(rectificationScore, companyCount1);
+                    map1.put("name", "执法监管安全指数");
+                    map1.put("value", rectificationScore1);
+                    break;
+                case 4:
+                    buildTypeRieo = Double.valueOf(df.format((float) buildTypeCount / riskMax * 100));
+                    sub = Arith.sub(100, buildTypeRieo);
+                    div = Arith.div(weightProportion, 100);
+                    buildTypeScore = Arith.mul(sub, div);
+                    buildTypeScore1 = Arith.div(buildTypeScore, companyCount1);
+                    map1.put("name", "建筑整体风险指");
+                    map1.put("value", buildTypeScore1);
+                    break;
+                case 5:
+                    highRiskRieo = Double.valueOf(df.format((float) highRiskCount / riskMax * 100));
+                    sub = Arith.sub(100, highRiskRieo);
+                    div = Arith.div(weightProportion, 100);
+                    highRiskScore = Arith.mul(sub, div);
+                    highRiskScore1 = Arith.div(highRiskScore, companyCount1);
+                    map1.put("name", "场所行业风险指数");
+                    map1.put("value", highRiskScore1);
+                    break;
+                case 6:
+                    hiddenDangerRieo = Double.valueOf(df.format((float) hiddenDangerCount / riskMax * 100));
+                    sub = Arith.sub(100, hiddenDangerRieo);
+                    div = Arith.div(weightProportion, 100);
+                    hiddenDangerScore = Arith.mul(sub, div);
+                    hiddenDangerScore1 = Arith.div(hiddenDangerScore, companyCount1);
+                    map1.put("name", "隐患状况指数");
+                    map1.put("value", hiddenDangerScore1);
+                    break;
+            }
+            map1.put("mark", "分");
+            data1.add(map1);
+        }
+        List<Object> data2 = new ArrayList<>();
+        for (int i = 0; i < 4; i++) {
+            Map<String, Object> map2 = new HashMap<>();
+            switch (i) {
+                case 0:
+                    map2.put("name", "85分以上");
+                    map2.put("value", companyScoreCount1);
+                    map2.put("mark", "家");
+                    break;
+                case 1:
+                    map2.put("name", "60~85分");
+                    map2.put("value", companyScoreCount2);
+                    map2.put("mark", "家");
+                    break;
+                case 2:
+                    map2.put("name", "60分以下");
+                    map2.put("value", companyScoreCount3);
+                    map2.put("mark", "家");
+                    break;
+                case 3:
+                    map2.put("name", "综合风险率");
+                    map2.put("value", companyScoreRatio);
+                    map2.put("mark", "%");
+                    break;
+            }
+            data2.add(map2);
+        }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<BscEnterpriseAutonomy> list = this.enterpriseAutonomyList();
+        List<Object> data3 = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            Map<String, Object> map3 = new HashMap<>();
+            if (!formatter.format(LocalDateTime.now()).equals(formatter.format(list.get(i + list.size() - 1).getCreateTime()))) {
+                map3.put("time", formatter.format(list.get(i + list.size() - 1).getCreateTime()));
+                map3.put("value", list.get(i + list.size() - 1).getRpn());
+                data3.add(map3);
+            }
+        }
+        Map<String, Object> map4 = new HashMap<>();
+        map4.put("time", formatter.format(LocalDateTime.now()));
+        map4.put("value", deviceDamageScore1 + fireScore1 + rectificationScore1 + buildTypeScore1 + highRiskScore1 + hiddenDangerScore1);
+        data3.add(map4);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("data1", data1);
+        map.put("data2", data2);
+        map.put("data3", data3);
+        map.put("data4", deviceDamageScore1 + fireScore1 + rectificationScore1 + buildTypeScore1 + highRiskScore1 + hiddenDangerScore1);
+        return map;
+    }
+
+    @Override
+    public List<BscEnterpriseAutonomy> enterpriseAutonomyList() {
+        LambdaQueryWrapper<BscEnterpriseAutonomy> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BscEnterpriseAutonomy::getRpn, BscEnterpriseAutonomy::getCreateTime)
+                .orderByDesc(BscEnterpriseAutonomy::getId)
+                .last(" limit 6");
+        List<BscEnterpriseAutonomy> list = this.list(queryWrapper);
+        return list;
+    }
+
+
+    public Object iotDevice() {
+        return null;
+    }
+
+    @Override
+    public Object patrolInspection() {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String sameDay = format.format(new Date());
+        Integer completedCount = 0;
+        Integer undoneCount = 0;
+        String startTime = null;
+        String endTime = null;
+        List<Object> data1 = new ArrayList<>();
+        List<Object> data2 = new ArrayList<>();
+        List<Object> data3 = new ArrayList<>();
+        for (int i = 0; i < 3; i++) {
+            if (i == 0) {
+                startTime = sameDay;
+                endTime = sameDay;
+            } else if (i == 1) {
+                long timeStamp = OnlineMethod.getLastPeroid(1, new Date());
+                startTime = format.format(timeStamp);
+                endTime = sameDay;
+            } else if (i == 2) {
+                long timeStamp = OnlineMethod.getLastPeroid(2, new Date());
+                startTime = format.format(timeStamp);
+                endTime = sameDay;
+            }
+            List<Integer> planSonIdList1 = this.planSonIdList(startTime,endTime);
+            if (CollectionUtils.isNotEmpty(planSonIdList1)) {
+                undoneCount = patrolInspectionPlanSiteSonService.siteCount(planSonIdList1, 1);
+                completedCount = patrolInspectionPlanSiteSonService.siteCount(planSonIdList1, 2);
+            }
+
+            for (int j = 0; j < 4; j++) {
+                Map<String, Object> map1 = new HashMap<>();
+                switch (i) {
+                    case 0:
+                        map1.put("name", "今日巡检次数");
+                        map1.put("value", undoneCount + completedCount);
+                        map1.put("mark", "");
+                        break;
+                    case 1:
+                        map1.put("name", "巡检率");
+                        map1.put("value", completedCount / (undoneCount + completedCount) * 100);
+                        map1.put("mark", "%");
+                        break;
+                    case 2:
+                        map1.put("name", "合格数");
+                        map1.put("value", completedCount);
+                        map1.put("mark", "");
+                        break;
+                    case 3:
+                        map1.put("name", "漏检数");
+                        map1.put("value", undoneCount);
+                        map1.put("mark", "");
+                        break;
+                }
+                if (i == 0) {
+                    data1.add(map1);
+                } else if (i == 1) {
+                    data2.add(map1);
+                } else if (i == 2) {
+                    data3.add(map1);
+                }
+            }
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("data1",data1);
+        map.put("data2",data2);
+        map.put("data3",data3);
+        return map;
+    }
+
+
+    @Override
+    public List<Integer> planSonIdList(String startDate,String endDate) {
+        List<Integer> planSonIdList = new ArrayList<>();
+        LambdaQueryWrapper<PatrolInspectionPlan> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(PatrolInspectionPlan::getId)
+                .eq(PatrolInspectionPlan::getTenantId, SecurityUtils.getTenantId())
+                .eq(PatrolInspectionPlan::getEnable, 1)
+                .between(PatrolInspectionPlan::getEndDate, startDate, endDate)
+                .between(PatrolInspectionPlan::getStartDate, startDate, endDate);
+        List<PatrolInspectionPlan> planList = patrolInspectionPlanService.list(queryWrapper);
+        if (CollectionUtils.isNotEmpty(planList)) {
+            List<Integer> planIdList = new ArrayList<>();
+            for (int i = 0; i < planList.size(); i++) {
+                planIdList.add(planList.get(i).getId());
+            }
+            List<PatrolInspectionPlanSon> planSonList = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(planIdList)) {
+                LambdaQueryWrapper<PatrolInspectionPlanSon> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.select(PatrolInspectionPlanSon::getId)
+                        .in(PatrolInspectionPlanSon::getPlanId, planIdList)
+                        .between(PatrolInspectionPlanSon::getInspectionDate, startDate, endDate);
+                planSonList = patrolInspectionPlanSonService.list(queryWrapper1);
+            }
+            for (int i = 0; i < planSonList.size(); i++) {
+                planSonIdList.add(planSonList.get(i).getId());
+            }
+        }
+        return planSonIdList;
+    }
+
+    @Override
+    public List<Map<String, Object>> streetCompany(){
+        QueryWrapper<BaseCompany> query = Wrappers.query();
+        query.select("street_town as streetTown","count(id) as count" )
+                .eq("enable",0)
+                .ne("street_town","")
+                .groupBy("street_town");
+        List<Map<String, Object>> list = baseCompanyService.listMaps(query);
+        return list;
+    }
+}

+ 33 - 14
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseScreenServiceImpl.java

@@ -178,8 +178,8 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
             String scoreDate = format.format(timeStamp);
             List<DemBuildScoreRecord> list1 = demBuildScoreRecordService.demBuildScoreRecordListOne(scoreDate, null);
             for (int i = 0; i < list1.size(); i++) {
-                int count = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, null, null);
-                int overstepCount = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, list1.get(i).getBuildScore(), null);
+                int count = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, null,null, null);
+                int overstepCount = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, list1.get(i).getBuildScore(), null,null);
                 double faultRatio1 = Arith.div(overstepCount, count, 2) * 100;
                 int faultRatio = new Double(faultRatio1).intValue();
                 int rank = count - overstepCount;
@@ -455,10 +455,10 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
                     map4.put("value", Integer.parseInt(smokeControlData.get("untreated").toString()));
                     break;
             }
-            map3.put("series","已处置");
-            map3.put("type","bar");
-            map4.put("series","未处置");
-            map4.put("type","bar");
+            map3.put("series", "已处置");
+            map3.put("type", "bar");
+            map4.put("series", "未处置");
+            map4.put("type", "bar");
             data1.add(map3);
             data1.add(map4);
         }
@@ -480,7 +480,7 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
         int hiddenDangerCount = 70;
 
         List<DemBuildScore> list1 = demBuildScoreService.buildScoreListOne();
-        int demBuildScoreRecordsCount = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, null, companyId);
+        int demBuildScoreRecordsCount = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, null,null, companyId);
         Double deviceDamageRieo = 0.00;
         Double fireRieo = 0.00;
         Double rectificationRieo = 0.00;
@@ -496,32 +496,51 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
         Double hiddenDangerScore = 0.00;
 
         for (int i = 0; i < list1.size(); i++) {
+            double sub = 0.0;
+            double div = 0.0;
             int riskMax = Integer.parseInt(list1.get(i).getRiskMax());
             int weightProportion = Integer.parseInt(list1.get(i).getWeightProportion());
             switch (list1.get(i).getRiskId()) {
                 case 1:
                     deviceDamageRieo = Double.valueOf(df.format((float) deviceDamageCount / riskMax * 100));
-                    deviceDamageScore = (100 - deviceDamageRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, deviceDamageRieo);
+                    div = Arith.div(weightProportion, 100);
+                    deviceDamageScore = Arith.mul(sub, div);
                     break;
                 case 2:
                     fireRieo = Double.valueOf(df.format((float) fireCount / riskMax * 100));
-                    fireScore = (100 - fireRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, fireRieo);
+                    div = Arith.div(weightProportion, 100);
+                    fireScore = Arith.mul(sub, div);
+//                    fireScore = (100 - fireRieo) * (weightProportion / 100);
                     break;
                 case 3:
                     rectificationRieo = Double.valueOf(df.format((float) rectificationCount / riskMax * 100));
-                    rectificationScore = (100 - rectificationRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, rectificationRieo);
+                    div = Arith.div(weightProportion, 100);
+                    rectificationScore = Arith.mul(sub, div);
+//                    rectificationScore = (100 - rectificationRieo) * (weightProportion / 100);
                     break;
                 case 4:
                     buildTypeRieo = Double.valueOf(df.format((float) buildTypeCount / riskMax * 100));
-                    buildTypeScore = (100 - buildTypeRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, buildTypeRieo);
+                    div = Arith.div(weightProportion, 100);
+                    buildTypeScore = Arith.mul(sub, div);
+//                    buildTypeScore = (100 - buildTypeRieo) * (weightProportion / 100);
                     break;
                 case 5:
                     highRiskRieo = Double.valueOf(df.format((float) highRiskCount / riskMax * 100));
-                    highRiskScore = (100 - highRiskRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, highRiskRieo);
+                    div = Arith.div(weightProportion, 100);
+                    highRiskScore = Arith.mul(sub, div);
+//                    highRiskScore = (100 - highRiskRieo) * (weightProportion / 100);
                     break;
                 case 6:
                     hiddenDangerRieo = Double.valueOf(df.format((float) hiddenDangerCount / riskMax * 100));
-                    hiddenDangerScore = (100 - hiddenDangerRieo) * (weightProportion / 100);
+                    sub = Arith.sub(100, hiddenDangerRieo);
+                    div = Arith.div(weightProportion, 100);
+                    hiddenDangerScore = Arith.mul(sub, div);
+//                    hiddenDangerScore = (100 - hiddenDangerRieo) * (weightProportion / 100);
                     break;
             }
         }
@@ -547,7 +566,7 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
                     break;
                 case 3:
                     map1.put("text", "隐患状况指数");
-                    map1.put("value", highRiskRieo);
+                    map1.put("value", hiddenDangerRieo);
                     break;
                 case 4:
                     map1.put("text", "建筑整体风险指");

+ 71 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseStreetTownServiceImpl.java

@@ -0,0 +1,71 @@
+package com.usky.fire.service.impl;
+
+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.exception.BusinessException;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BscEnterpriseStreetTown;
+import com.usky.fire.mapper.BscEnterpriseStreetTownMapper;
+import com.usky.fire.service.BscEnterpriseStreetTownService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 企业自主管理大屏统计(街镇) 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-09
+ */
+@Service
+public class BscEnterpriseStreetTownServiceImpl extends AbstractCrudService<BscEnterpriseStreetTownMapper, BscEnterpriseStreetTown> implements BscEnterpriseStreetTownService {
+
+    @Override
+    public Object enterpriseStreetTown(String moduleType, String dataType, String streetTown) {
+        LambdaQueryWrapper<BscEnterpriseStreetTown> queryWrapper = Wrappers.lambdaQuery();
+        switch (moduleType) {
+            case "enterpriseAutonomy":
+                queryWrapper.select(BscEnterpriseStreetTown::getEnterpriseAutonomy);
+                break;
+            case "iotDevice":
+                queryWrapper.select(BscEnterpriseStreetTown::getIotDevice);
+                break;
+            case "patrolInspection":
+                queryWrapper.select(BscEnterpriseStreetTown::getPatrolInspection);
+                break;
+            case "streetCompany":
+                queryWrapper.select(BscEnterpriseStreetTown::getStreetCompany);
+                break;
+            default:
+                throw new BusinessException("参数错误");
+        }
+        queryWrapper.eq(BscEnterpriseStreetTown::getStreetTown, streetTown)
+                .orderByDesc(BscEnterpriseStreetTown::getId)
+                .last(" limit 1");
+        List<BscEnterpriseStreetTown> list = this.list(queryWrapper);
+        Object data = null;
+        if (CollectionUtils.isNotEmpty(list)) {
+            switch (moduleType) {
+                case "enterpriseAutonomy":
+                    data = list.get(0).getEnterpriseAutonomy();
+                    break;
+                case "iotDevice":
+                    data = list.get(0).getIotDevice();
+                    break;
+                case "patrolInspection":
+                    data = list.get(0).getPatrolInspection();
+                    break;
+                case "streetCompany":
+                    data = list.get(0).getStreetCompany();
+                    break;
+            }
+        }
+        JSONObject jsonObject = JSONObject.parseObject(data.toString());
+        Object disparateData = jsonObject.get(dataType);
+        return disparateData;
+    }
+}

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemBuildScoreRecordServiceImpl.java

@@ -24,10 +24,11 @@ import java.util.List;
 public class DemBuildScoreRecordServiceImpl extends AbstractCrudService<DemBuildScoreRecordMapper, DemBuildScoreRecord> implements DemBuildScoreRecordService {
 
     @Override
-    public int demBuildScoreRecordCount(String scoreDate, Integer buildScore, String companyId) {
+    public int demBuildScoreRecordCount(String scoreDate, Integer buildScore1,Integer buildScore2, String companyId) {
         LambdaQueryWrapper<DemBuildScoreRecord> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(StringUtils.isNotBlank(scoreDate), DemBuildScoreRecord::getScoreDate, scoreDate)
-                .lt(buildScore != null, DemBuildScoreRecord::getBuildScore, buildScore)
+                .ge(buildScore2 != null, DemBuildScoreRecord::getBuildScore, buildScore2)
+                .lt(buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore1)
                 .eq(StringUtils.isNotBlank(companyId), DemBuildScoreRecord::getCompanyId, companyId);
         int count = this.count(queryWrapper);
         return count;

+ 16 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/BscEnterpriseAutonomyMapper.xml

@@ -0,0 +1,16 @@
+<?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.BscEnterpriseAutonomyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.BscEnterpriseAutonomy">
+        <id column="id" property="id" />
+        <result column="enterprise_autonomy" property="enterpriseAutonomy" />
+        <result column="iot_device" property="iotDevice" />
+        <result column="patrol_inspection" property="patrolInspection" />
+        <result column="street_company" property="streetCompany" />
+        <result column="create_time" property="createTime" />
+        <result column="rpn" property="rpn" />
+    </resultMap>
+
+</mapper>

+ 16 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/BscEnterpriseStreetTownMapper.xml

@@ -0,0 +1,16 @@
+<?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.BscEnterpriseStreetTownMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.BscEnterpriseStreetTown">
+        <id column="id" property="id" />
+        <result column="enterprise_autonomy" property="enterpriseAutonomy" />
+        <result column="iot_device" property="iotDevice" />
+        <result column="patrol_inspection" property="patrolInspection" />
+        <result column="street_company" property="streetCompany" />
+        <result column="street_town" property="streetTown" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>