Browse Source

统计数据

storyxc 3 years ago
parent
commit
a0d5c09815

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+# intellij project files.
+.idea/
+*.iml
+*.ipr
+*.iws
+
+
+# eclipse project files.
+.classpath
+.project
+.settings/
+
+/target/
+target
+logs/
+
+
+#*.properties
+
+format/
+superdesk-app-services/superdesk-app-services-organisation_linjinyu4testauth.zip
+.rebel.xml.bak
+rebel.xml

+ 29 - 0
gaudi-common/src/main/java/com/jianxun/gaudi/common/vo/StatisticParam.java

@@ -0,0 +1,29 @@
+package com.jianxun.gaudi.common.vo;
+
+import java.io.Serializable;
+
+/**
+ * @author xc
+ * @description
+ * @date 2022/1/20 11:22
+ */
+public class StatisticParam implements Serializable {
+    private String beginDate;
+    private String endDate;
+
+    public String getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(String beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+}

+ 31 - 0
gaudi-common/src/main/java/com/jianxun/gaudi/common/vo/StatisticRes.java

@@ -0,0 +1,31 @@
+package com.jianxun.gaudi.common.vo;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author xc
+ * @description
+ * @date 2022/1/20 11:22
+ */
+
+public class StatisticRes implements Serializable {
+    Integer type;
+    List<StatisticVo> list;
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public List<StatisticVo> getList() {
+        return list;
+    }
+
+    public void setList(List<StatisticVo> list) {
+        this.list = list;
+    }
+}

+ 29 - 0
gaudi-common/src/main/java/com/jianxun/gaudi/common/vo/StatisticSumVo.java

@@ -0,0 +1,29 @@
+package com.jianxun.gaudi.common.vo;
+
+import java.io.Serializable;
+
+/**
+ * @author xc
+ * @description
+ * @date 2022/1/20 11:25
+ */
+public class StatisticSumVo implements Serializable {
+    private Integer orgId;
+    private Integer count;
+
+    public Integer getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Integer orgId) {
+        this.orgId = orgId;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+}

+ 47 - 0
gaudi-common/src/main/java/com/jianxun/gaudi/common/vo/StatisticVo.java

@@ -0,0 +1,47 @@
+package com.jianxun.gaudi.common.vo;
+
+import java.io.Serializable;
+
+/**
+ * @author xc
+ * @description
+ * @date 2022/1/20 11:23
+ */
+public class StatisticVo implements Serializable {
+    private Integer compId;
+    private Integer orgId;
+    private Integer sumCount;
+    private Integer newCount;
+
+    public Integer getCompId() {
+        return compId;
+    }
+
+    public void setCompId(Integer compId) {
+        this.compId = compId;
+    }
+
+    public Integer getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Integer orgId) {
+        this.orgId = orgId;
+    }
+
+    public Integer getSumCount() {
+        return sumCount;
+    }
+
+    public void setSumCount(Integer sumCount) {
+        this.sumCount = sumCount;
+    }
+
+    public Integer getNewCount() {
+        return newCount;
+    }
+
+    public void setNewCount(Integer newCount) {
+        this.newCount = newCount;
+    }
+}

+ 15 - 0
gaudi-common/src/main/java/com/jianxun/gaudi/qs/dubbo/DubboQuestionnaireSurveyService.java

@@ -3,6 +3,9 @@ package com.jianxun.gaudi.qs.dubbo;
 import java.util.List;
 
 import com.github.pagehelper.PageInfo;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.qs.model.QsAnswer;
 import com.jianxun.gaudi.qs.param.*;
 import com.jianxun.gaudi.qs.vo.*;
@@ -124,4 +127,16 @@ public interface DubboQuestionnaireSurveyService {
 	 */
 	List<QsQuestionnaireUserVO> questionnaireProgress(QuestionnaireProgressParam param)throws Exception;
 
+	/**
+	 * 查询统计数据
+	 * @param param
+	 * @return
+	 */
+    List<StatisticVo> getStatisticalData(StatisticParam param);
+
+	/**
+	 * 查询总数据
+	 * @return
+	 */
+	List<StatisticSumVo> getStatisticalSumData();
 }

+ 12 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/dubbo/qs/DubboQuestionaireSurveyServiceImpl.java

@@ -4,6 +4,9 @@ import java.io.Serializable;
 import java.util.List;
 
 import com.github.pagehelper.PageInfo;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.qs.param.*;
 import com.jianxun.gaudi.qs.vo.*;
 import com.jianxun.gaudi.utils.Pager;
@@ -97,6 +100,15 @@ public class DubboQuestionaireSurveyServiceImpl implements DubboQuestionnaireSur
 		return qsService.questionnaireProgress(param);
 	}
 
+    @Override
+    public List<StatisticVo> getStatisticalData(StatisticParam param) {
+        return qsService.getStatisticalData(param);
+    }
+
+	@Override
+	public List<StatisticSumVo> getStatisticalSumData() {
+		return qsService.getStatisticalSumData();
+	}
 
 
 }

+ 7 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/qs/dao/QsQuestionnaireReleaseDAO.java

@@ -1,6 +1,9 @@
 package com.jianxun.gaudi.qs.dao;
 
 import com.jianxun.gaudi.common.base.MyBatisBaseDao;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.qs.model.QsAnswer;
 import com.jianxun.gaudi.qs.model.QsAnswerExample;
 import com.jianxun.gaudi.qs.model.QsQuestionnaireRelease;
@@ -23,4 +26,8 @@ public interface QsQuestionnaireReleaseDAO extends MyBatisBaseDao<QsQuestionnair
     List<QuestionnaireReminderVO>questionnaireCollection();
 
     QuestionnaireReminderVO questionnaireId(@Param("activity")String activity,@Param("user")String user);
+
+    List<StatisticSumVo> getStatisticalSumData();
+
+    List<StatisticVo> getStatisticalData(StatisticParam param);
 }

+ 6 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/qs/service/QuestionnaireSurveyService.java

@@ -3,6 +3,9 @@ package com.jianxun.gaudi.qs.service;
 import java.util.List;
 
 import com.github.pagehelper.PageInfo;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.qs.model.QsAnswer;
 import com.jianxun.gaudi.qs.param.*;
 import com.jianxun.gaudi.qs.vo.*;
@@ -144,4 +147,7 @@ public interface QuestionnaireSurveyService {
     List<QsQuestionnaireUserVO> questionnaireProgress(QuestionnaireProgressParam param) throws Exception;
 
 
+    List<StatisticVo> getStatisticalData(StatisticParam param);
+
+    List<StatisticSumVo> getStatisticalSumData();
 }

+ 11 - 1
gaudi-service/src/main/java/com/jianxun/gaudi/qs/service/impl/QuestionnaireSurveyServiceImpl.java

@@ -17,6 +17,9 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.cp.model.CpComment;
 import com.jianxun.gaudi.qs.dao.*;
 import com.jianxun.gaudi.qs.model.*;
@@ -717,8 +720,15 @@ public class QuestionnaireSurveyServiceImpl implements QuestionnaireSurveyServic
         return questionnaireParticipated;
     }
 
+    @Override
+    public List<StatisticVo> getStatisticalData(StatisticParam param) {
+        return qsQuestionnaireReleaseDAO.getStatisticalData(param);
+    }
 
-
+    @Override
+    public List<StatisticSumVo> getStatisticalSumData() {
+        return qsQuestionnaireReleaseDAO.getStatisticalSumData();
+    }
 
 
     public void delayedOrderTask() {

+ 23 - 0
gaudi-service/src/main/resources/mappers/qs/QsQuestionnaireReleaseDAO.xml

@@ -97,5 +97,28 @@ WHERE
           and user_id=#{user}
           limit 1
     </select>
+    <select id="getStatisticalSumData" resultType="com.jianxun.gaudi.common.vo.StatisticSumVo">
+        SELECT
+            ORG_ID AS orgId,
+            COUNT( 1 ) AS count
+        FROM
+            QS_QUESTIONNAIRE_RELEASE
+        GROUP BY
+            ORG_ID
+    </select>
+    <select id="getStatisticalData" resultType="com.jianxun.gaudi.common.vo.StatisticVo">
+        SELECT
+            org_id AS orgId,
+            count( 1 ) AS newCount
+        FROM
+            qs_questionnaire_release
+        WHERE
+            CREATEDAT BETWEEN #{beginDate}
+
+                AND #{endDate}
+
+        GROUP BY
+            org_id
+    </select>
 
 </mapper>

+ 0 - 1
gaudi-service/src/main/resources/mappers/qs/QsQuestionnaireUserDAO.xml

@@ -1,4 +1,3 @@
-
 <?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.jianxun.gaudi.qs.dao.QsQuestionnaireUserDAO">

+ 18 - 0
gaudi-web/src/main/java/com/jianxun/gaudi/controller/qs/QuestionnaireSurveyController.java

@@ -5,6 +5,8 @@ import com.alibaba.dubbo.common.json.JSONArray;
 import com.github.pagehelper.PageInfo;
 import com.jianxun.gaudi.common.ResponseResult;
 import com.jianxun.gaudi.common.ResponseResultUtil;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticRes;
 import com.jianxun.gaudi.dubbo.consumer.qs.QuestionnaireSurveyDubboConsumerService;
 import com.jianxun.gaudi.qs.param.*;
 import com.jianxun.gaudi.qs.vo.*;
@@ -210,4 +212,20 @@ public class QuestionnaireSurveyController {
         ExcelUtil.exportExcel(templatePath, map,uploadPath);
         return ResponseResultUtil.createSuccesResult(uploadPath);
     }
+
+    /**
+     * 问卷调查统计数据
+     * @param param
+     * @return
+     */
+    @PostMapping("/statistics")
+    public ResponseResult<List<StatisticRes>> getStatisticalData(@RequestBody StatisticParam param) {
+        List<StatisticRes> res = new ArrayList<>();
+        StatisticRes statisticRes = new StatisticRes();
+        statisticRes.setType(4);
+        statisticRes.setList(service.getStatisticalData(param));
+        res.add(statisticRes);
+        return ResponseResultUtil.createSuccesResult(res);
+    }
+
 }

+ 26 - 0
gaudi-web/src/main/java/com/jianxun/gaudi/dubbo/consumer/qs/QuestionnaireSurveyDubboConsumerService.java

@@ -1,6 +1,7 @@
 package com.jianxun.gaudi.dubbo.consumer.qs;
 
 import java.io.Serializable;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -8,9 +9,13 @@ import com.alibaba.fastjson.JSON;
 import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Maps;
 import com.google.gson.Gson;
+import com.jianxun.gaudi.common.vo.StatisticParam;
+import com.jianxun.gaudi.common.vo.StatisticSumVo;
+import com.jianxun.gaudi.common.vo.StatisticVo;
 import com.jianxun.gaudi.qs.param.*;
 import com.jianxun.gaudi.qs.vo.*;
 import com.jianxun.gaudi.utils.HttpRequestUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -196,4 +201,25 @@ public class QuestionnaireSurveyDubboConsumerService {
         qsService.questionnaireReminder(param);
     }
 
+    public List<StatisticVo> getStatisticalData(StatisticParam param) {
+        List<StatisticVo> statisticalData = qsService.getStatisticalData(param);
+        List<StatisticSumVo> sumData = qsService.getStatisticalSumData();
+        Map<Integer,Integer> res = assembleMap(sumData);
+        if (CollectionUtils.isNotEmpty(statisticalData)) {
+            statisticalData.forEach(statisticVo -> {
+                statisticVo.setSumCount(res.get(statisticVo.getOrgId()));
+            });
+        }
+        return statisticalData;
+    }
+
+    private Map<Integer, Integer> assembleMap(List<StatisticSumVo> sumData) {
+        Map<Integer, Integer> map = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(sumData)) {
+            for (StatisticSumVo sumDatum : sumData) {
+                map.put(sumDatum.getOrgId(), sumDatum.getCount());
+            }
+        }
+        return map;
+    }
 }