Browse Source

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

James 1 year ago
parent
commit
d537cdfd59

+ 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);
 }

+ 26 - 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,29 @@ 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();
+                statisticVO.setMaintainAmount(Double.parseDouble(maps.get(i).get("maintainAmount").toString()));
+                statisticVO.setMaintainNum(Integer.parseInt(maps.get(i).get("maintainNum").toString()));
+                statisticVO.setMaintainUsingNum(Integer.parseInt(maps.get(i).get("maintainUsingNum").toString()));
+                statisticVO.setMaintainExpireNum(Integer.parseInt(maps.get(i).get("maintainExpireNum").toString()));
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public List<CrmCustomInfoExportVO> recordListExport(CrmCustomInfoRequestVO cus){
         List<CrmCustomInfoExportVO> list = new ArrayList<>();

+ 22 - 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,27 @@ 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()));
+                statisticVO.setAverageScore(Double.parseDouble(maps.get(i).get("averageScore").toString()));
+                statisticVO.setProcessingNum(Integer.parseInt(maps.get(i).get("processingNum").toString()));
+                statisticVO.setProcessedNum(Integer.parseInt(maps.get(i).get("processedNum").toString()));
+                list.add(statisticVO);
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public List<CrmDeviceRepairAddVO> getAddHistoryInfo(String projectName){
 

+ 24 - 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,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -61,6 +64,27 @@ 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()));
+                statisticVO.setNotInvoicedAmount(Double.parseDouble(maps.get(i).get("notInvoicedAmount").toString()));
+                statisticVO.setNotInvoicedNum(Integer.parseInt(maps.get(i).get("notInvoicedNum").toString()));
+                statisticVO.setInvoicedNum(Integer.parseInt(maps.get(i).get("invoicedNum").toString()));
+                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;
+}