Selaa lähdekoodia

Merge branch 'server-165' of uskycloud/usky-modules into master

hanzhengyi 1 vuosi sitten
vanhempi
commit
dad819dc2b
28 muutettua tiedostoa jossa 556 lisäystä ja 25 poistoa
  1. 3 1
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/BaseAlarmNoticeResultController.java
  2. 5 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/BaseAlarmNoticeResult.java
  3. 1 1
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/BaseAlarmNoticeResultService.java
  4. 3 2
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/BaseAlarmNoticeResultServiceImpl.java
  5. 1 0
      service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/BaseAlarmNoticeResultMapper.xml
  6. 12 5
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseGgpFacilityController.java
  7. 39 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFireSafetyInspectionController.java
  8. 116 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/DemFireSafetyInspection.java
  9. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/DemFireSafetyInspectionMapper.java
  10. 4 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseGgpFacilityService.java
  11. 19 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFireSafetyInspectionService.java
  12. 1 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyPersonServiceImpl.java
  13. 23 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseGgpFacilityServiceImpl.java
  14. 34 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireSafetyInspectionServiceImpl.java
  15. 18 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/BaseGgpFacilityStatisticVO.java
  16. 27 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/DemFireSafetyInspectionMapper.xml
  17. 10 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmCustomInfoController.java
  18. 6 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmDeviceRepairController.java
  19. 11 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmInvoiceInfoController.java
  20. 4 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmCustomInfoService.java
  21. 3 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmDeviceRepairService.java
  22. 3 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmInvoiceInfoService.java
  23. 40 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmCustomInfoServiceImpl.java
  24. 36 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmDeviceRepairServiceImpl.java
  25. 39 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmInvoiceInfoServiceImpl.java
  26. 28 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmCustomInfoStatisticVO.java
  27. 27 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmDeviceRepairStatisticVO.java
  28. 27 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmInvoiceInfoStatisticVO.java

+ 3 - 1
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/BaseAlarmNoticeResultController.java

@@ -33,6 +33,7 @@ public class BaseAlarmNoticeResultController {
     /**
      * 推送记录查看分页
      * @param receiver  接收人
+     * @param alarmId  告警ID
      * @param current      当前页
      * @param size     每页条数
      * @return
@@ -40,10 +41,11 @@ public class BaseAlarmNoticeResultController {
     @Log(title = "关联设备查看分页", businessType = BusinessType.OTHER)
     @GetMapping("/resultInfo")
     public ApiResult<CommonPage<BaseAlarmNoticeResult>> resultInfo(@RequestParam(value = "receiver", required = false) String receiver,
+                                                                   @RequestParam(value = "alarmId") Integer alarmId,
                                                                    @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
                                                                    @RequestParam(value = "size", required = false, defaultValue = "10") Integer size)
     {
-        return ApiResult.success(baseAlarmNoticeResultService.resultInfo(receiver, current, size));
+        return ApiResult.success(baseAlarmNoticeResultService.resultInfo(receiver, alarmId, current, size));
     }
 }
 

+ 5 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/BaseAlarmNoticeResult.java

@@ -55,6 +55,11 @@ public class BaseAlarmNoticeResult implements Serializable {
      */
     private Integer noticeType;
 
+    /**
+     * 推送内容
+     */
+    private String noticeContent;
+
     /**
      * 是否已读
      */

+ 1 - 1
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/BaseAlarmNoticeResultService.java

@@ -13,5 +13,5 @@ import com.usky.common.mybatis.core.CrudService;
  * @since 2023-09-25
  */
 public interface BaseAlarmNoticeResultService extends CrudService<BaseAlarmNoticeResult> {
-    CommonPage<BaseAlarmNoticeResult> resultInfo(String receiver, Integer current, Integer size);
+    CommonPage<BaseAlarmNoticeResult> resultInfo(String receiver, Integer alarmId, Integer current, Integer size);
 }

+ 3 - 2
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/BaseAlarmNoticeResultServiceImpl.java

@@ -24,10 +24,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseAlarmNoticeResultServiceImpl extends AbstractCrudService<BaseAlarmNoticeResultMapper, BaseAlarmNoticeResult> implements BaseAlarmNoticeResultService {
     @Override
-    public CommonPage<BaseAlarmNoticeResult> resultInfo(String receiver, Integer current, Integer size) {
+    public CommonPage<BaseAlarmNoticeResult> resultInfo(String receiver, Integer alarmId, Integer current, Integer size) {
         IPage<BaseAlarmNoticeResult> page = new Page<>(current, size);
         LambdaQueryWrapper<BaseAlarmNoticeResult> queryWrapper1 = Wrappers.lambdaQuery();
-        queryWrapper1.like(StringUtils.isNotBlank(receiver),BaseAlarmNoticeResult::getReceiver, receiver);
+        queryWrapper1.like(StringUtils.isNotBlank(receiver),BaseAlarmNoticeResult::getReceiver, receiver)
+                .eq(BaseAlarmNoticeResult::getAlarmId, alarmId);
 //                .eq(BaseAlarmNoticeResult::getTenantId, SecurityUtils.getTenantId());
         page = this.page(page,queryWrapper1);
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());

+ 1 - 0
service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/BaseAlarmNoticeResultMapper.xml

@@ -10,6 +10,7 @@
         <result column="alarm_id" property="alarmId" />
         <result column="notice_time" property="noticeTime" />
         <result column="notice_type" property="noticeType" />
+        <result column="notice_content" property="noticeContent" />
         <result column="is_read" property="isRead" />
         <result column="dept_id" property="deptId" />
         <result column="tenant_id" property="tenantId" />

+ 12 - 5
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseGgpFacilityController.java

@@ -5,13 +5,10 @@ import com.usky.common.core.bean.ApiResult;
 import com.usky.fire.domain.BaseGgpFacility;
 import com.usky.fire.service.BaseGgpFacilityService;
 import com.usky.fire.service.vo.BaseGgpFacilityListVO;
+import com.usky.fire.service.vo.BaseGgpFacilityStatisticVO;
 import com.usky.fire.service.vo.BaseGgpFacilityVO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-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;
 
@@ -38,5 +35,15 @@ public class BaseGgpFacilityController {
     public ApiResult<List<BaseGgpFacility>> baseGgpFacilityList(@RequestBody BaseGgpFacilityVO baseGgpFacilityVO) {
         return ApiResult.success(baseGgpFacilityService.baseGgpFacilityList(baseGgpFacilityVO));
     }
+
+    /**
+     * 统计
+     * @param facilityType
+     * @return
+     */
+    @GetMapping("statistic")
+    public ApiResult<List<BaseGgpFacilityStatisticVO>> statistic(@RequestParam(value = "facilityType") Integer facilityType){
+        return ApiResult.success(baseGgpFacilityService.statistic(facilityType));
+    }
 }
 

+ 39 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFireSafetyInspectionController.java

@@ -0,0 +1,39 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.domain.DemFireSafetyInspection;
+import com.usky.fire.service.DemFireSafetyInspectionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 消防安全检查记录表 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2023-10-25
+ */
+@RestController
+@RequestMapping("/demFireSafetyInspection")
+public class DemFireSafetyInspectionController {
+    @Autowired
+    private DemFireSafetyInspectionService demFireSafetyInspectionService;
+
+    /**
+     * 撒点
+     * @return
+     */
+    @GetMapping("fireSafetyInspectionScatter")
+    public ApiResult<List<DemFireSafetyInspection>> fireSafetyInspectionScatter(){
+        return ApiResult.success(demFireSafetyInspectionService.fireSafetyInspectionScatter());
+    }
+}
+

+ 116 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/DemFireSafetyInspection.java

@@ -0,0 +1,116 @@
+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 han
+ * @since 2023-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemFireSafetyInspection implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 检查人员姓名
+     */
+    private String checkName;
+
+    /**
+     * 检查人员所属单位
+     */
+    private String subordinateCompany;
+
+    /**
+     * 检查时间
+     */
+    private LocalDateTime checkTime;
+
+    /**
+     * 单位类型(1:重点单位、2:一般单位、3:九小场所、9:其他单位)
+     */
+    private String companyType;
+
+    /**
+     * 单位使用性质
+     */
+    private String companyUseNature;
+
+    /**
+     * 单位(法人)名称
+     */
+    private String companyName;
+
+    /**
+     * 单位(场所)实际名称
+     */
+    private String companyActualName;
+
+    /**
+     * 网格号
+     */
+    private String gridNum;
+
+    /**
+     * 所辖派出所
+     */
+    private String subordinatePoliceStation;
+
+    /**
+     * 街镇
+     */
+    private String street;
+
+    /**
+     * 单位地址
+     */
+    private String companyAddress;
+
+    /**
+     * 消防安全责任人姓名
+     */
+    private String fireDutyName;
+
+    /**
+     * 消防安全管理人姓名
+     */
+    private String fireManageName;
+
+    /**
+     * 联系电话(手机)
+     */
+    private String phone;
+
+    /**
+     * 隐患图片
+     */
+    private String hiddImage;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    private String latitude;
+
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.DemFireSafetyInspection;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 消防安全检查记录表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-10-25
+ */
+public interface DemFireSafetyInspectionMapper extends CrudMapper<DemFireSafetyInspection> {
+
+}

+ 4 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseGgpFacilityService.java

@@ -4,8 +4,10 @@ import com.usky.fire.domain.BaseGgpFacility;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.DemFireStation;
 import com.usky.fire.service.vo.BaseGgpFacilityListVO;
+import com.usky.fire.service.vo.BaseGgpFacilityStatisticVO;
 import com.usky.fire.service.vo.BaseGgpFacilityVO;
 import com.usky.fire.service.vo.DemFireStationVO;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -25,4 +27,6 @@ public interface BaseGgpFacilityService extends CrudService<BaseGgpFacility> {
      * @return
      */
     List<BaseGgpFacility> baseGgpFacilityList(BaseGgpFacilityVO baseGgpFacilityVO);
+
+    List<BaseGgpFacilityStatisticVO> statistic(Integer facilityType);
 }

+ 19 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFireSafetyInspectionService.java

@@ -0,0 +1,19 @@
+package com.usky.fire.service;
+
+import com.usky.fire.domain.DemFireSafetyInspection;
+import com.usky.common.mybatis.core.CrudService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 消防安全检查记录表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-10-25
+ */
+public interface DemFireSafetyInspectionService extends CrudService<DemFireSafetyInspection> {
+
+    List<DemFireSafetyInspection> fireSafetyInspectionScatter();
+}

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

@@ -47,6 +47,7 @@ public class BaseCompanyPersonServiceImpl extends AbstractCrudService<BaseCompan
         LambdaQueryWrapper<BaseCompany> queryWrapper1 = Wrappers.lambdaQuery();
         queryWrapper1.select(BaseCompany::getCompanyId)
                 .eq(BaseCompany::getEnable,0)
+                .eq(BaseCompany::getCompanyType,"1")
                 .like(StringUtils.isNotBlank(companyCode), BaseCompany::getCompanyCode, companyCode)
                 .like(StringUtils.isNotBlank(companyName), BaseCompany::getCompanyName, companyName)
                 .orderByDesc(BaseCompany::getId);

+ 23 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseGgpFacilityServiceImpl.java

@@ -2,6 +2,7 @@ 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.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,12 +11,14 @@ import com.usky.fire.mapper.BaseGgpFacilityMapper;
 import com.usky.fire.service.BaseGgpFacilityService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.service.vo.BaseGgpFacilityListVO;
+import com.usky.fire.service.vo.BaseGgpFacilityStatisticVO;
 import com.usky.fire.service.vo.BaseGgpFacilityVO;
 import com.usky.fire.service.vo.CompanyDataVo;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -49,4 +52,24 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
 //        }
         return list;
     }
+
+    @Override
+    public List<BaseGgpFacilityStatisticVO> statistic(Integer facilityType){
+        List<BaseGgpFacilityStatisticVO> list = new ArrayList<>();
+        QueryWrapper<BaseGgpFacility> queryWrapper = Wrappers.query();
+        queryWrapper.select("street_town as streetTown","count(*) as count")
+                .eq("facility_type",facilityType)
+                .groupBy("street_town");
+        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
+        if(maps.size() > 0){
+            for (int i = 0; i < maps.size(); i++) {
+                BaseGgpFacilityStatisticVO statisticVO = new BaseGgpFacilityStatisticVO();
+                statisticVO.setStreetTown(maps.get(i).get("streetTown").toString());
+                statisticVO.setCount(Integer.parseInt(maps.get(i).get("count").toString()));
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
 }

+ 34 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireSafetyInspectionServiceImpl.java

@@ -0,0 +1,34 @@
+package com.usky.fire.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.fire.domain.DemFireSafetyInspection;
+import com.usky.fire.mapper.DemFireSafetyInspectionMapper;
+import com.usky.fire.service.DemFireSafetyInspectionService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 消防安全检查记录表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-10-25
+ */
+@Service
+public class DemFireSafetyInspectionServiceImpl extends AbstractCrudService<DemFireSafetyInspectionMapper, DemFireSafetyInspection> implements DemFireSafetyInspectionService {
+
+    @Override
+    public List<DemFireSafetyInspection> fireSafetyInspectionScatter(){
+        LambdaQueryWrapper<DemFireSafetyInspection> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.orderByDesc(DemFireSafetyInspection::getCheckTime)
+                .last("limit 500");
+        List<DemFireSafetyInspection> list = this.list(queryWrapper);
+
+        return list;
+    }
+}

+ 18 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/BaseGgpFacilityStatisticVO.java

@@ -0,0 +1,18 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseGgpFacilityStatisticVO {
+
+    /**
+     * 所属街镇
+     */
+    private String streetTown;
+
+    /**
+     * 街镇统计数
+     */
+    private Integer count;
+
+}

+ 27 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/DemFireSafetyInspectionMapper.xml

@@ -0,0 +1,27 @@
+<?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.DemFireSafetyInspectionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.DemFireSafetyInspection">
+        <id column="id" property="id" />
+        <result column="check_name" property="checkName" />
+        <result column="subordinate_company" property="subordinateCompany" />
+        <result column="check_time" property="checkTime" />
+        <result column="company_type" property="companyType" />
+        <result column="company_use_nature" property="companyUseNature" />
+        <result column="company_name" property="companyName" />
+        <result column="company_actual_name" property="companyActualName" />
+        <result column="grid_num" property="gridNum" />
+        <result column="subordinate_police_station" property="subordinatePoliceStation" />
+        <result column="street" property="street" />
+        <result column="company_address" property="companyAddress" />
+        <result column="fire_duty_name" property="fireDutyName" />
+        <result column="fire_manage_name" property="fireManageName" />
+        <result column="phone" property="phone" />
+        <result column="hidd_image" property="hiddImage" />
+        <result column="longitude" property="longitude" />
+        <result column="latitude" property="latitude" />
+    </resultMap>
+
+</mapper>

+ 10 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmCustomInfoController.java

@@ -8,6 +8,7 @@ import com.usky.iot.domain.CrmCustomInfo;
 import com.usky.iot.service.CrmCustomInfoService;
 import com.usky.iot.service.vo.CrmCustomInfoExportVO;
 import com.usky.iot.service.vo.CrmCustomInfoRequestVO;
+import com.usky.iot.service.vo.CrmCustomInfoStatisticVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
@@ -72,6 +73,15 @@ public class CrmCustomInfoController {
         return ApiResult.success(crmCustomInfoService.page(crmCustomInfoRequestVO));
     }
 
+    /**
+     * 统计
+     * @param crmCustomInfoRequestVO
+     * @return
+     */
+    @PostMapping("statistic")
+    public ApiResult<List<CrmCustomInfoStatisticVO>> statistic(@RequestBody CrmCustomInfoRequestVO crmCustomInfoRequestVO){
+        return ApiResult.success(crmCustomInfoService.statistic(crmCustomInfoRequestVO));
+    }
 
     @PostMapping("export")
     public void export(@RequestBody CrmCustomInfoRequestVO crmCustomInfoRequestVO, HttpServletResponse response)throws IOException {

+ 6 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmDeviceRepairController.java

@@ -5,10 +5,7 @@ import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.CrmDeviceRepair;
 import com.usky.iot.service.CrmDeviceRepairService;
-import com.usky.iot.service.vo.CrmDeviceRepairAddVO;
-import com.usky.iot.service.vo.CrmDeviceRepairScoreVO;
-import com.usky.iot.service.vo.CrmDeviceRepairVO;
-import com.usky.iot.service.vo.PhoneVerifyVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -51,6 +48,11 @@ public class CrmDeviceRepairController {
         return ApiResult.success(crmDeviceRepairService.page(crmDeviceRepairVO));
     }
 
+    @PostMapping("statistic")
+    ApiResult<List<CrmDeviceRepairStatisticVO>> statistic(@RequestBody CrmDeviceRepairVO crmDeviceRepairVO){
+        return ApiResult.success(crmDeviceRepairService.statistic(crmDeviceRepairVO));
+    }
+
     /**
      * 获取项目历史信息
      *

+ 11 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmInvoiceInfoController.java

@@ -9,6 +9,7 @@ import com.usky.iot.service.CrmInvoiceInfoService;
 import com.usky.iot.service.vo.CrmCustomInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
+import com.usky.iot.service.vo.CrmInvoiceInfoStatisticVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -65,6 +66,16 @@ public class CrmInvoiceInfoController {
         return ApiResult.success(crmInvoiceInfoService.page(crmInvoiceInfoRequest));
     }
 
+    /**
+     * 统计
+     * @param crmInvoiceInfoRequest
+     * @return
+     */
+    @PostMapping("statistic")
+    public ApiResult<List<CrmInvoiceInfoStatisticVO>> statistic(@RequestBody CrmInvoiceInfoRequest crmInvoiceInfoRequest){
+        return ApiResult.success(crmInvoiceInfoService.statistic(crmInvoiceInfoRequest));
+    }
+
     /**
      * 导出
      * @param crmInvoiceInfoRequest

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmCustomInfoService.java

@@ -5,6 +5,8 @@ import com.usky.iot.domain.CrmCustomInfo;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.service.vo.CrmCustomInfoExportVO;
 import com.usky.iot.service.vo.CrmCustomInfoRequestVO;
+import com.usky.iot.service.vo.CrmCustomInfoStatisticVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -26,6 +28,8 @@ public interface CrmCustomInfoService extends CrudService<CrmCustomInfo> {
 
     CommonPage<CrmCustomInfo> page(CrmCustomInfoRequestVO crmCustomInfoRequestVO);
 
+    List<CrmCustomInfoStatisticVO> statistic(CrmCustomInfoRequestVO crmCustomInfoRequestVO);
+
     boolean checkNameUnique(CrmCustomInfo crmCustomInfo);
 
     List<CrmCustomInfoExportVO> recordListExport(CrmCustomInfoRequestVO crmCustomInfoRequestVO);

+ 3 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmDeviceRepairService.java

@@ -3,10 +3,7 @@ package com.usky.iot.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.CrmDeviceRepair;
 import com.usky.common.mybatis.core.CrudService;
-import com.usky.iot.service.vo.CrmDeviceRepairAddVO;
-import com.usky.iot.service.vo.CrmDeviceRepairScoreVO;
-import com.usky.iot.service.vo.CrmDeviceRepairVO;
-import com.usky.iot.service.vo.PhoneVerifyVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -26,6 +23,8 @@ public interface CrmDeviceRepairService extends CrudService<CrmDeviceRepair> {
 
     CommonPage<CrmDeviceRepair> page(CrmDeviceRepairVO crmDeviceRepairVO);
 
+    List<CrmDeviceRepairStatisticVO> statistic(CrmDeviceRepairVO crmDeviceRepairVO);
+
     List<CrmDeviceRepairAddVO> getAddHistoryInfo(String projectName);
 
     void remove(Integer id);

+ 3 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmInvoiceInfoService.java

@@ -5,6 +5,7 @@ import com.usky.iot.domain.CrmInvoiceInfo;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
+import com.usky.iot.service.vo.CrmInvoiceInfoStatisticVO;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
@@ -25,5 +26,7 @@ public interface CrmInvoiceInfoService extends CrudService<CrmInvoiceInfo> {
 
     CommonPage<CrmInvoiceInfo> page(CrmInvoiceInfoRequest crmInvoiceInfoRequest);
 
+    List<CrmInvoiceInfoStatisticVO> statistic(CrmInvoiceInfoRequest crmInvoiceInfoRequest);
+
     List<CrmInvoiceInfoExportVO> export(CrmInvoiceInfoRequest crmInvoiceInfoRequest);
 }

+ 40 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmCustomInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.iot.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;
@@ -15,15 +16,13 @@ import com.usky.iot.service.CrmCustomInfoService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.iot.service.vo.CrmCustomInfoExportVO;
 import com.usky.iot.service.vo.CrmCustomInfoRequestVO;
+import com.usky.iot.service.vo.CrmCustomInfoStatisticVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * <p>
@@ -94,6 +93,43 @@ public class CrmCustomInfoServiceImpl extends AbstractCrudService<CrmCustomInfoM
 
     }
 
+    @Override
+    public List<CrmCustomInfoStatisticVO> statistic(CrmCustomInfoRequestVO cus){
+        List<CrmCustomInfoStatisticVO> list = new ArrayList<>();
+        QueryWrapper<CrmCustomInfo> queryWrapper = Wrappers.query();
+        queryWrapper.select("SUM(maintain_amount) as maintainAmount","COUNT(*) as maintainNum","SUM(maintain_status=1) as maintainUsingNum","SUM(maintain_status=2) as maintainExpireNum")
+                .between("expire_time",cus.getStartTime(),cus.getEndTime())
+                .eq("delete_flag",0)
+                .eq("tenant_id",SecurityUtils.getTenantId());
+        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
+        if(maps.size() > 0){
+            for (int i = 0; i < maps.size(); i++) {
+                CrmCustomInfoStatisticVO statisticVO = new CrmCustomInfoStatisticVO();
+                if(Objects.nonNull(maps.get(i).get("maintainAmount"))){
+                    statisticVO.setMaintainAmount(Double.parseDouble(maps.get(i).get("maintainAmount").toString()));
+                }else{
+                    statisticVO.setMaintainAmount(Double.parseDouble("0"));
+                }
+
+                statisticVO.setMaintainNum(Integer.parseInt(maps.get(i).get("maintainNum").toString()));
+
+                if(Objects.nonNull(maps.get(i).get("maintainUsingNum"))){
+                    statisticVO.setMaintainUsingNum(Integer.parseInt(maps.get(i).get("maintainUsingNum").toString()));
+                }else{
+                    statisticVO.setMaintainUsingNum(0);
+                }
+                if(Objects.nonNull(maps.get(i).get("maintainExpireNum"))){
+                    statisticVO.setMaintainExpireNum(Integer.parseInt(maps.get(i).get("maintainExpireNum").toString()));
+                }else{
+                    statisticVO.setMaintainExpireNum(0);
+                }
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public List<CrmCustomInfoExportVO> recordListExport(CrmCustomInfoRequestVO cus){
         List<CrmCustomInfoExportVO> list = new ArrayList<>();

+ 36 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmDeviceRepairServiceImpl.java

@@ -25,10 +25,7 @@ import com.usky.iot.domain.CrmDeviceRepair;
 import com.usky.iot.mapper.CrmDeviceRepairMapper;
 import com.usky.iot.service.CrmDeviceRepairService;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.iot.service.vo.CrmDeviceRepairAddVO;
-import com.usky.iot.service.vo.CrmDeviceRepairScoreVO;
-import com.usky.iot.service.vo.CrmDeviceRepairVO;
-import com.usky.iot.service.vo.PhoneVerifyVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -125,6 +122,41 @@ public class CrmDeviceRepairServiceImpl extends AbstractCrudService<CrmDeviceRep
 
     }
 
+    @Override
+    public List<CrmDeviceRepairStatisticVO> statistic(CrmDeviceRepairVO crmDeviceRepairVO){
+        List<CrmDeviceRepairStatisticVO> list = new ArrayList<>();
+        QueryWrapper<CrmDeviceRepair> queryWrapper = Wrappers.query();
+        queryWrapper.select("COUNT(*) as repairNum","AVG(CASE WHEN score IS NOT NULL THEN score END) as averageScore","SUM(repair_status=1) as processingNum","SUM(repair_status=2) as processedNum")
+                .between("create_time",crmDeviceRepairVO.getStartTime(),crmDeviceRepairVO.getEndTime());
+        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
+        if(maps.size() > 0){
+            for (int i = 0; i < maps.size(); i++) {
+                CrmDeviceRepairStatisticVO statisticVO = new CrmDeviceRepairStatisticVO();
+                statisticVO.setRepairNum(Integer.parseInt(maps.get(i).get("repairNum").toString()));
+
+                if(Objects.nonNull(maps.get(i).get("averageScore"))){
+                    statisticVO.setAverageScore(Double.parseDouble(maps.get(i).get("averageScore").toString()));
+                }else{
+                    statisticVO.setAverageScore(Double.parseDouble("0"));
+                }
+                if(Objects.nonNull(maps.get(i).get("processingNum"))){
+                    statisticVO.setProcessingNum(Integer.parseInt(maps.get(i).get("processingNum").toString()));
+                }else{
+                    statisticVO.setProcessingNum(0);
+                }
+                if(Objects.nonNull(maps.get(i).get("processedNum"))){
+                    statisticVO.setProcessedNum(Integer.parseInt(maps.get(i).get("processedNum").toString()));
+                }else{
+                    statisticVO.setProcessedNum(0);
+                }
+
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public List<CrmDeviceRepairAddVO> getAddHistoryInfo(String projectName){
 

+ 39 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmInvoiceInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.iot.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;
@@ -16,6 +17,7 @@ import com.usky.iot.service.CrmInvoiceInfoService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
+import com.usky.iot.service.vo.CrmInvoiceInfoStatisticVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoVO;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +27,8 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -61,6 +65,41 @@ public class CrmInvoiceInfoServiceImpl extends AbstractCrudService<CrmInvoiceInf
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getSize(),page.getCurrent());
     }
 
+    @Override
+    public List<CrmInvoiceInfoStatisticVO> statistic(CrmInvoiceInfoRequest crmInvoiceInfoRequest){
+        List<CrmInvoiceInfoStatisticVO> list = new ArrayList<>();
+        QueryWrapper<CrmInvoiceInfo> queryWrapper = Wrappers.query();
+        queryWrapper.select("count(*) as invoiceApplicantNum","SUM(CASE WHEN invoice_status=1 THEN amount END) as notInvoicedAmount","SUM(invoice_status=1) as notInvoicedNum","SUM(invoice_status=2) as invoicedNum")
+                .between("create_time",crmInvoiceInfoRequest.getStartTime(),crmInvoiceInfoRequest.getEndTime());
+        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
+        if(maps.size() > 0){
+            for (int i = 0; i < maps.size(); i++) {
+                CrmInvoiceInfoStatisticVO statisticVO = new CrmInvoiceInfoStatisticVO();
+                statisticVO.setInvoiceApplicantNum(Integer.parseInt(maps.get(i).get("invoiceApplicantNum").toString()));
+
+                if(Objects.nonNull(maps.get(i).get("notInvoicedAmount"))){
+                    statisticVO.setNotInvoicedAmount(Double.parseDouble(maps.get(i).get("notInvoicedAmount").toString()));
+                }else{
+                    statisticVO.setNotInvoicedAmount(Double.parseDouble("0"));
+                }
+                if(Objects.nonNull(maps.get(i).get("notInvoicedNum"))){
+                    statisticVO.setNotInvoicedNum(Integer.parseInt(maps.get(i).get("notInvoicedNum").toString()));
+                }else{
+                    statisticVO.setNotInvoicedNum(0);
+                }
+                if(Objects.nonNull(maps.get(i).get("invoicedNum"))){
+                    statisticVO.setInvoicedNum(Integer.parseInt(maps.get(i).get("invoicedNum").toString()));
+                }else{
+                    statisticVO.setInvoicedNum(0);
+                }
+
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public List<CrmInvoiceInfoExportVO> export(CrmInvoiceInfoRequest crmInvoiceInfoRequest){
         List<CrmInvoiceInfoExportVO> list = new ArrayList<>();

+ 28 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmCustomInfoStatisticVO.java

@@ -0,0 +1,28 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class CrmCustomInfoStatisticVO {
+
+    /**
+     * 维保到期金额
+     */
+    private Double maintainAmount;
+
+    /**
+     * 维保到期数
+     */
+    private Integer maintainNum;
+
+    /**
+     * 维保状态为使用中的个数
+     */
+    private Integer maintainUsingNum;
+
+    /**
+     * 维保状态为已到期的个数
+     */
+    private Integer maintainExpireNum;
+
+}

+ 27 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmDeviceRepairStatisticVO.java

@@ -0,0 +1,27 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class CrmDeviceRepairStatisticVO {
+
+    /**
+     * 报修数
+     */
+    private Integer repairNum;
+
+    /**
+     * 平均分
+     */
+    private Double averageScore;
+
+    /**
+     * 报修状态为受理中的个数
+     */
+    private Integer processingNum;
+
+    /**
+     * 报修状态为处理完成的个数
+     */
+    private Integer processedNum;
+}

+ 27 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmInvoiceInfoStatisticVO.java

@@ -0,0 +1,27 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class CrmInvoiceInfoStatisticVO {
+
+    /**
+     * 开票申请数
+     */
+    private Integer invoiceApplicantNum;
+
+    /**
+     * 待开票金额
+     */
+    private Double notInvoicedAmount;
+
+    /**
+     * 待开票数
+     */
+    private Integer notInvoicedNum;
+
+    /**
+     * 已开票数
+     */
+    private Integer invoicedNum;
+}