Browse Source

暂存

dev_shibei_match
yinzuomei 4 years ago
parent
commit
0271d4bd48
  1. 6
      epmet-module/data-aggregator/data-aggregator-client/pom.xml
  2. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/InputMapDTO.java
  3. 67
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java
  4. 45
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CascaderExpandStruct.java
  5. 44
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CheckboxExpandStruct.java
  6. 14
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ColorExpandStruct.java
  7. 20
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateExpandStruct.java
  8. 14
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateRangeExpandStruct.java
  9. 24
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DescTextExpandStruct.java
  10. 15
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DividerExpandStruct.java
  11. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/EmptyExpandStruct.java
  12. 25
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageCarouselExpandStruct.java
  13. 12
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageExpandStruct.java
  14. 31
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageSelectExpandStruct.java
  15. 36
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/InputExpandStruct.java
  16. 21
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ItemDefaultValueStruct.java
  17. 38
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/NumberExpandStruct.java
  18. 13
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/PaginationExpandStruct.java
  19. 31
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RadioExpandStruct.java
  20. 35
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RateExpandStruct.java
  21. 46
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SelectExpandStruct.java
  22. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SignPadExpandStruct.java
  23. 35
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SliderExpandStruct.java
  24. 14
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SwitchExpandStruct.java
  25. 27
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TextareaExpandStruct.java
  26. 14
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeExpandStruct.java
  27. 14
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeRangeExpandStruct.java
  28. 53
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadExpandStruct.java
  29. 22
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadResultStruct.java
  30. 77
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/ProjectItemTypeEnum.java
  31. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java
  32. 24
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java
  33. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java
  34. 165
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java
  35. 32
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml

6
epmet-module/data-aggregator/data-aggregator-client/pom.xml

@ -17,6 +17,12 @@
<artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>3.2.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

19
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/InputMapDTO.java

@ -0,0 +1,19 @@
package com.epmet.dataaggre.dto.epmettduck;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/9/16 11:34 下午
*/
@Data
public class InputMapDTO implements Serializable {
private BigDecimal longitude;
private BigDecimal latitude;
private String address;
}

67
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java

@ -0,0 +1,67 @@
package com.epmet.dataaggre.dto.epmettduck.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.apache.poi.ss.formula.functions.T;
import java.io.Serializable;
import java.util.Map;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/9/16 5:30 下午
*/
@Data
public class AnalysisReportResDTO implements Serializable {
private static final long serialVersionUID = -1637286883477938648L;
/**
* 项目key
*/
private String projectKey;
/**
* 表单项类型
*/
private String type;
/**
* 表单项标题
*/
private String label;
/**
* 表单项Id
*/
private String formItemId;
/**
* 展示类型组件
*/
private Integer isDisplayType;
/**
* 是否显示标签
*/
private Integer showLabel;
/**
* 是否必填
*/
private Integer required;
/**
* 排序
*/
private Long sort;
private Map<String, T> detail;
/**
* 扩展字段 表单项独有字段
*/
@JsonIgnore
private String expand;
}

45
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CascaderExpandStruct.java

@ -0,0 +1,45 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 级联选择
* @create : 2020-11-19 15:13
**/
@Data
public class CascaderExpandStruct {
/**
* 选项
*/
private List<Option> options;
/**
* 塞选
*/
private Boolean filterable;
/**
* 多选
*/
private Boolean multiple;
/**
* 分割符
*/
private String separator;
/**
* 显示全路径
*/
private Boolean showAllLevels;
public static class Option {
public Integer id;
public String label;
public String value;
public List<Option> children;
}
}

44
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CheckboxExpandStruct.java

@ -0,0 +1,44 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 颜色选择
* @create : 2020-11-19 11:42
**/
@Data
public class CheckboxExpandStruct {
/**
* 最小
*/
private Integer min;
/**
* 最大
*/
private Integer max;
/**
* 选项类型
*/
private String optionType;
/**
* 选项是按钮时大小
*/
private String size;
/**
* 选项
*/
private List<Option> options;
public static class Option {
public String label;
public Integer value;
}
}

14
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ColorExpandStruct.java

@ -0,0 +1,14 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 颜色选择
* @create : 2020-11-19 11:42
**/
@Data
public class ColorExpandStruct {
}

20
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateExpandStruct.java

@ -0,0 +1,20 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 日期选择
* @create : 2020-11-19 11:42
**/
@Data
public class DateExpandStruct {
// 日期类型
private String type;
// 日期格式
private String format;
// 日期格式
private String valueFormat;
}

14
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateRangeExpandStruct.java

@ -0,0 +1,14 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 日期范围
* @create : 2020-11-19 11:42
**/
@Data
public class DateRangeExpandStruct {
}

24
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DescTextExpandStruct.java

@ -0,0 +1,24 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* 文字描述组件属性
*
* @author smalljop
*/
@Data
public class DescTextExpandStruct {
/**
* 颜色
*/
private String color;
/**
* 文字位置
*/
private String textAlign;
}

15
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DividerExpandStruct.java

@ -0,0 +1,15 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* 分割线组件属性
*
* @author smalljop
*/
@Data
public class DividerExpandStruct {
}

10
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/EmptyExpandStruct.java

@ -0,0 +1,10 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* 无扩展属性
*/
@Data
public class EmptyExpandStruct {
}

25
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageCarouselExpandStruct.java

@ -0,0 +1,25 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 颜色选择
* @create : 2020-11-19 11:42
**/
@Data
public class ImageCarouselExpandStruct {
/**
* 选项
*/
private List<Option> options;
public static class Option {
public String image;
public String label;
}
}

12
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageExpandStruct.java

@ -0,0 +1,12 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
@Data
public class ImageExpandStruct {
private String src;
private String alt;
}

31
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageSelectExpandStruct.java

@ -0,0 +1,31 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 颜色选择
* @create : 2020-11-19 11:42
**/
@Data
public class ImageSelectExpandStruct {
/**
* 选项
*/
private List<Option> options;
/**
* 是否多选
*/
private Boolean multiple;
public static class Option {
public String image;
public String label;
public Integer value;
}
}

36
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/InputExpandStruct.java

@ -0,0 +1,36 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 输入框配置
* @create : 2020-11-19 11:42
**/
@Data
public class InputExpandStruct {
/**
* 前缀
*/
public String prepend;
/**
* 后缀
*/
public String append;
/**
* 最大长度
*/
private Long maxlength;
/**
* 前置图标
*/
private String prefixIcon;
/**
* 显示可输入字数
*/
private Boolean showWordLimit;
}

21
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ItemDefaultValueStruct.java

@ -0,0 +1,21 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ItemDefaultValueStruct {
/**
* 值是否是Json
*/
private boolean json;
/**
* 默认值具体值
*/
private Object value;
}

38
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/NumberExpandStruct.java

@ -0,0 +1,38 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 数字型输入
* @create : 2020-11-19 15:13
**/
@Data
public class NumberExpandStruct {
/**
* 最小
*/
private Integer min;
/**
* 最大
*/
private Integer max;
/**
* 计数器步长 每次+
*/
private Integer step;
/**
* 是否只能输入 step 的倍数
*/
private Boolean stepStrictly;
/**
* 经度
*/
private Integer precision;
/**
* 按钮控制位置
*/
private String controlsPosition;
}

13
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/PaginationExpandStruct.java

@ -0,0 +1,13 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 分页组件属性
* @create : 2021/05/19 10:29
**/
@Data
public class PaginationExpandStruct {
}

31
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RadioExpandStruct.java

@ -0,0 +1,31 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : d
* @create : 2020-11-19 11:42
**/
@Data
public class RadioExpandStruct {
/**
* 选项样式
*/
private String optionType;
/**
* 选项
*/
private List<Option> options;
public static class Option {
public String label;
public Integer value;
}
}

35
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RateExpandStruct.java

@ -0,0 +1,35 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 评分
* @create : 2020-11-19 11:42
**/
@Data
public class RateExpandStruct {
/**
* 最大分数
*/
private Integer max;
/**
* 允许半选
*/
private Boolean allowHalf;
/**
* 辅助文字
*/
private Boolean showText;
/**
* 显示分数
*/
private Boolean showScore;
/**
* 禁用
*/
private Boolean disabled;
}

46
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SelectExpandStruct.java

@ -0,0 +1,46 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 下拉框
* @create : 2020-11-19 15:13
**/
@Data
public class SelectExpandStruct {
/**
* 选项
*/
private List<Option> options;
/**
* 最大
*/
private Boolean multiple;
/**
* 塞选
*/
private Boolean filterable;
/**
* 是否只能输入 step 的倍数
*/
private Boolean stepStrictly;
/**
* 经度
*/
private Integer precision;
/**
* 按钮控制位置
*/
private String controlsPosition;
public static class Option {
public String label;
public Integer value;
}
}

19
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SignPadExpandStruct.java

@ -0,0 +1,19 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* 手写签名组件属性
*
* @author smalljop
*/
@Data
public class SignPadExpandStruct {
/**
* 颜色
*/
private String color;
}

35
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SliderExpandStruct.java

@ -0,0 +1,35 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 滑块
* @create : 2020-11-19 15:13
**/
@Data
public class SliderExpandStruct {
/**
* 最小
*/
private Integer min;
/**
* 最大
*/
private Integer max;
/**
* 计数器步长 每次+
*/
private Integer step;
/**
* 是否是范围选择
*/
private Boolean range;
/**
* 按钮控制位置
*/
private String controlsPosition;
}

14
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SwitchExpandStruct.java

@ -0,0 +1,14 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 输入框配置
* @create : 2020-11-19 11:42
**/
@Data
public class SwitchExpandStruct {
}

27
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TextareaExpandStruct.java

@ -0,0 +1,27 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 多行文本
* @create : 2020-11-19 11:42
**/
@Data
public class TextareaExpandStruct {
/**
* 最大行数
*/
public Integer maxRows;
/**
* 最小行数
*/
public Integer minRows;
/**
* 最大长度
*/
private Long maxlength;
}

14
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeExpandStruct.java

@ -0,0 +1,14 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 时间选择
* @create : 2020-11-19 11:42
**/
@Data
public class TimeExpandStruct {
}

14
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeRangeExpandStruct.java

@ -0,0 +1,14 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 时间区间选择
* @create : 2020-11-19 11:42
**/
@Data
public class TimeRangeExpandStruct {
}

53
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadExpandStruct.java

@ -0,0 +1,53 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
/**
* @author : smalljop
* @description : 上传文件
* @create : 2020-11-19 11:42
**/
@Data
public class UploadExpandStruct {
/**
* 按钮文字
*/
private String buttonText;
/**
* 显示提示
*/
private Boolean showTip;
/**
* 文件大小
*/
private Long fileSize;
/**
* 大小单位
*/
private String sizeUnit;
/**
* 显示列表类型
*/
private String listType;
/**
* 文件数字
*/
private Integer limit;
/**
* 是否可以多选
*/
private boolean multiple;
/**
* 允许上传的文件类型
*/
private String accept;
}

22
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadResultStruct.java

@ -0,0 +1,22 @@
package com.epmet.dataaggre.dto.epmettduck.struct;
import lombok.Data;
import java.util.List;
/**
* @author : smalljop
* @description : 上传收集结果
* @create : 2021/06/07 16:37
**/
@Data
public class UploadResultStruct {
private List<UploadFile> files;
@Data
public static class UploadFile {
private String fileName;
private String url;
}
}

77
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/ProjectItemTypeEnum.java

@ -0,0 +1,77 @@
package com.epmet.dataaggre.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import com.epmet.dataaggre.dto.epmettduck.struct.*;
/**
* @author : smalljop
* @description : 表单项类型枚举
* @create : 2020-11-19 10:51
**/
@AllArgsConstructor
@Getter
public enum ProjectItemTypeEnum {
//联系人组件:
INPUT("INPUT", "单行文本", InputExpandStruct.class),
TEXTAREA("TEXTAREA", "多行文本", TextareaExpandStruct.class),
PASSWORD_INPUT("PASSWORD_INPUT", "密码输入", null),
NUMBER_INPUT("NUMBER_INPUT", "数字输入", NumberExpandStruct.class),
SELECT("SELECT", "下拉框", SelectExpandStruct.class),
CASCADER("CASCADER", "级联选择", CascaderExpandStruct.class),
RADIO("RADIO", "单选框", RadioExpandStruct.class),
CHECKBOX("CHECKBOX", "多选框", CheckboxExpandStruct.class),
SWITCH("SWITCH", "开关", SwitchExpandStruct.class),
TIME("TIME", "时间选择", TimeExpandStruct.class),
TIME_RANGE("TIME_RANGE", "时间范围", TimeRangeExpandStruct.class),
DATE("DATE", "日期选择", DateExpandStruct.class),
DATE_RANGE("DATE_RANGE", "日期范围", DateRangeExpandStruct.class),
RATE("RATE", "评分", RateExpandStruct.class),
PROVINCE_CITY("PROVINCE_CITY", "省市联动", EmptyExpandStruct.class),
INPUT_MAP("INPUT_MAP", "地理位置", EmptyExpandStruct.class),
// 以下不分析
PHONE_VERIFICATION("PHONE_VERIFICATION", "手机号验证", EmptyExpandStruct.class),
SLIDER("SLIDER", "滑块", SliderExpandStruct.class),
COLOR("COLOR", "颜色", ColorExpandStruct.class),
UPLOAD("UPLOAD", "文件上传组件", UploadExpandStruct.class),
IMAGE("IMAGE", "图片展示", ImageExpandStruct.class),
IMAGE_SELECT("IMAGE_SELECT", "图片选择", ImageSelectExpandStruct.class),
IMAGE_CAROUSEL("IMAGE_CAROUSEL", "图片轮播", ImageCarouselExpandStruct.class),
DESC_TEXT("DESC_TEXT", "文字描述", DescTextExpandStruct.class),
SIGN_PAD("SIGN_PAD", "手写签名", SignPadExpandStruct.class),
PAGINATION("PAGINATION", "分页", PaginationExpandStruct.class),
DIVIDER("DIVIDER", "分割线", DividerExpandStruct.class);
@EnumValue
@JsonValue
private String value;
private String desc;
/**
* 扩展属性类
*/
private Class expandClass;
/**
* 枚举入参注解
*
* @param value
* @return
*/
@JsonCreator
public static ProjectItemTypeEnum getByValue(String value) {
for (ProjectItemTypeEnum typeEnum : values()) {
if (typeEnum.getValue().equals(value)) {
return typeEnum;
}
}
return null;
}
}

16
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java

@ -2,6 +2,7 @@ package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.epmettduck.form.ProjectKeyCommonDTO;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.service.epmettduck.PrUserProjectService;
import org.springframework.beans.factory.annotation.Autowired;
@ -10,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/9/15 2:43 下午
@ -35,7 +38,18 @@ public class EpmetTDuckController {
return new Result<ProjectProfileResultDTO>().ok(prUserProjectService.queryProjectProfile(formDTO.getProjectKey()));
}
/**
* 分析报告
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO>
* @author yinzuomei
* @date 2021/9/16 5:56 下午
*/
@PostMapping("analysisreport")
public Result<List<AnalysisReportResDTO>> queryAnalysisReport(@RequestBody ProjectKeyCommonDTO formDTO){
return new Result<List<AnalysisReportResDTO>>().ok(prUserProjectService.queryAnalysisReport(formDTO.getProjectKey()));
}
}

24
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java

@ -1,10 +1,14 @@
package com.epmet.dataaggre.dao.epmettduck;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 项目表
*
@ -22,4 +26,24 @@ public interface PrUserProjectDao extends BaseDao<PrUserProjectEntity> {
* @date 2021/9/16 2:58 下午
*/
ProjectProfileResultDTO queryProjectProfile(String projectKey);
/**
* 分析报告展示的题目列表
*
* @param projectKey
* @return java.util.List<com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO>
* @author yinzuomei
* @date 2021/9/16 5:59 下午
*/
List<AnalysisReportResDTO> selectItems(String projectKey);
/**
* 查询结果项
*
* @param projectKey
* @return java.util.List<com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity>
* @author yinzuomei
* @date 2021/9/16 6:18 下午
*/
List<PrUserProjectResultEntity> selectResults(String projectKey);
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java

@ -20,6 +20,7 @@ package com.epmet.dataaggre.service.epmettduck;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
@ -103,4 +104,14 @@ public interface PrUserProjectService extends BaseService<PrUserProjectEntity> {
* @date 2021/9/16 2:54 下午
*/
ProjectProfileResultDTO queryProjectProfile(String projectKey);
/**
* 分析报告
*
* @param projectKey
* @return com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO
* @author yinzuomei
* @date 2021/9/16 5:57 下午
*/
List<AnalysisReportResDTO> queryAnalysisReport(String projectKey);
}

165
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java

@ -17,6 +17,8 @@
package com.epmet.dataaggre.service.epmettduck.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
@ -26,18 +28,21 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.epmettduck.PrUserProjectDao;
import com.epmet.dataaggre.dto.epmettduck.InputMapDTO;
import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity;
import com.epmet.dataaggre.enums.ProjectItemTypeEnum;
import com.epmet.dataaggre.service.epmettduck.PrUserProjectService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 项目表
@ -115,4 +120,158 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl<PrUserProjectDao,
return baseDao.queryProjectProfile(projectKey);
}
/**
* 分析报告
*
* @param projectKey
* @return com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO
* @author yinzuomei
* @date 2021/9/16 5:57 下午
*/
@Override
public List<AnalysisReportResDTO> queryAnalysisReport(String projectKey) {
List<AnalysisReportResDTO> itemList=baseDao.selectItems(projectKey);
if(CollectionUtils.isEmpty(itemList)){
return new ArrayList<>();
}
List<PrUserProjectResultEntity> resultList=baseDao.selectResults(projectKey);
if(CollectionUtils.isEmpty(resultList)){
return new ArrayList<>();
}
for(AnalysisReportResDTO item:itemList){
String currentType=item.getType();
String key="field".concat(item.getFormItemId());
Map<String, Object> detail=new HashMap<>();
//总采集数
detail.put("collectionTotal",resultList.size());
//有效记录
int validTotal=0;
//1、联系人组件统一用一个统计显示多少条,点击查看更多显示汇总列表,如有非必填项没有填写显示空(手机号验证不需要统计)
//2、单行文本、多行文本、时间选择、时间范围、日期选择、日期范围,统计填写人数,点击查看列表
if(ProjectItemTypeEnum.INPUT.getValue().equals(currentType)
||ProjectItemTypeEnum.PROVINCE_CITY.getValue().equals(currentType)
||ProjectItemTypeEnum.INPUT_MAP.getValue().equals(currentType)
||ProjectItemTypeEnum.TEXTAREA.getValue().equals(currentType)
||ProjectItemTypeEnum.TIME.getValue().equals(currentType)
||ProjectItemTypeEnum.TIME_RANGE.getValue().equals(currentType)
||ProjectItemTypeEnum.DATE.getValue().equals(currentType)
||ProjectItemTypeEnum.DATE_RANGE.getValue().equals(currentType)){
for(PrUserProjectResultEntity res:resultList){
JSONObject originalData = JSON.parseObject(res.getOriginalData());
log.info("----------------------key:"+key+",值: "+originalData.get(key));
//手机号、邮箱、身份证: INPUT
if(ProjectItemTypeEnum.INPUT.getValue().equals(currentType)){
if(StringUtils.isNotBlank(originalData.get(key).toString())){
validTotal+=1;
}
}
//省市联动: PROVINCE_CITY
if(ProjectItemTypeEnum.PROVINCE_CITY.getValue().equals(currentType)){
List<String> provinceCityList= (List<String>) originalData.get(key);
if(!CollectionUtils.isEmpty(provinceCityList)){
validTotal+=1;
}
}
//地理位置:INPUT_MAP
if(ProjectItemTypeEnum.INPUT_MAP.getValue().equals(currentType)){
InputMapDTO inputMapDTO= (InputMapDTO) originalData.get(key);
if(null!=inputMapDTO&&StringUtils.isNotBlank(inputMapDTO.getAddress())){
validTotal+=1;
}
}
}
detail.put("validTotal",validTotal);
continue;
}
//3、下拉选择、级联选择、单选框组、多选框组显示不同选项选择次数、所占比例
if(ProjectItemTypeEnum.SELECT.getValue().equals(currentType)){
continue;
}
if(ProjectItemTypeEnum.CASCADER.getValue().equals(currentType)){
continue;
}
if(ProjectItemTypeEnum.RADIO.getValue().equals(currentType)){
continue;
}
if(ProjectItemTypeEnum.CHECKBOX.getValue().equals(currentType)){
continue;
}
//4、计数器显示所有填写者选择的数字总和
if(ProjectItemTypeEnum.TEXTAREA.getValue().equals(currentType)){
int sumTotal=0;
for(PrUserProjectResultEntity res:resultList){
JSONObject originalData = JSON.parseObject(res.getOriginalData());
Integer score= (Integer) originalData.get(key);
if(null!=score){
sumTotal+=score;
validTotal+=1;
}
}
detail.put("validTotal",validTotal);
detail.put("sumTotal",sumTotal);
continue;
}
//5、开关统计开有多少、关有多少
if(ProjectItemTypeEnum.SWITCH.getValue().equals(currentType)){
int openTotal=0;
int closedTotal=0;
for(PrUserProjectResultEntity res:resultList){
JSONObject originalData = JSON.parseObject(res.getOriginalData());
Boolean result= (Boolean) originalData.get(key);
if(null!=result){
validTotal+=1;
if(result){
openTotal+=1;
}else{
closedTotal+=1;
}
}
}
detail.put("validTotal",validTotal);
detail.put("openTotal",openTotal);
detail.put("closedTotal",closedTotal);
continue;
}
//6、滑块、颜色选择、上传不统计
//7、评分统计1星几人,2星几人,3星几人......,显示平均分
if(ProjectItemTypeEnum.RATE.getValue().equals(currentType)){
// 1、标签设置的满星是几个星星?
//RateExpandStruct rateExpandStruct = JSON.parseObject(item.getExpand(), RateExpandStruct.class);
//int maxStarNum=;
//detail.put("maxStarNum",maxStarNum);
for(PrUserProjectResultEntity res:resultList){
JSONObject originalData = JSON.parseObject(res.getOriginalData());
Integer starNum= (Integer) originalData.get(key);
if(null!=starNum){
validTotal+=1;
}
}
//2、几条有效记录
detail.put("validTotal",validTotal);
continue;
}
}
return itemList;
}
}

32
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml

@ -15,4 +15,36 @@
m.del_flag = '0'
AND m.`key` = #{projectKey}
</select>
<!-- 分析报告展示的题目列表 -->
<select id="selectItems" parameterType="java.lang.String" resultType="com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO">
select
i.project_key,
i.form_item_id,
i.type,
i.label,
i.is_display_type,
i.show_label,
i.required,
i.sort,
i.expand
from pr_user_project_item i
where i.del_flag='0'
and i.project_key=#{projectKey}
and i.type not in ('PHONE_VERIFICATION','IMAGE','IMAGE_SELECT','IMAGE_CAROUSEL','DESC_TEXT','SIGN_PAD','PAGINATION','DIVIDER','COLOR','SLIDER','UPLOAD')
order by i.sort asc
</select>
<!-- 调查问卷的答题结果 -->
<select id="selectResults" parameterType="java.lang.String" resultType="com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity">
select
m.serial_number,
m.original_data,
m.process_data,
m.user_id
from pr_user_project_result m
where m.del_flag='0'
and m.project_key=#{projectKey}
order by m.serial_number asc
</select>
</mapper>
Loading…
Cancel
Save