Browse Source

itemresdetail-concat

master
yinzuomei 4 years ago
parent
commit
250c2e701d
  1. 27
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java
  2. 25
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java
  3. 21
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java
  4. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java
  5. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java
  6. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java
  7. 92
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java
  8. 18
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml

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

@ -0,0 +1,27 @@
package com.epmet.dataaggre.dto.epmettduck.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 表头
* @Author yinzuomei
* @Date 2021/9/22 3:41 下午
*/
@Data
public class ConcatTableHeaderDTO implements Serializable {
private static final long serialVersionUID = -1133629000511948034L;
/**
* 显示名称
*/
private String label;
/**
* 表单项Id
*/
private String formItemId;
private String type;
}

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

@ -0,0 +1,25 @@
package com.epmet.dataaggre.dto.epmettduck.result;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/9/22 2:54 下午
*/
@Data
public class ItemResDetailConcatResultDTO implements Serializable {
private static final long serialVersionUID = -3695200094740706700L;
private List<ConcatTableHeaderDTO> tableHeaderList;
private List<List<String>> dataList;
public ItemResDetailConcatResultDTO(){
this.tableHeaderList=new ArrayList<>();
this.dataList=new ArrayList<>();
}
}

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

@ -6,10 +6,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.epmettduck.PrPublishRangeDTO;
import com.epmet.dataaggre.dto.epmettduck.form.*;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.GetRangeResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.*;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectItemEntity;
import com.epmet.dataaggre.service.epmettduck.PrUserProjectItemService;
@ -121,9 +118,23 @@ public class EpmetTDuckController {
* @author yinzuomei
* @date 2021/9/22 1:37 下午
*/
@PostMapping("itemresdetail")
@PostMapping("itemresdetail-list")
public Result<List<String>> queryItemResDetail(@RequestBody ItemResDetailFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class);
return new Result<List<String>>().ok(prUserProjectService.queryItemResDetail(formDTO));
}
/**
* 联系人组件-查看详情
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dataaggre.dto.epmettduck.result.ItemResDetailConcatResultDTO>
* @author yinzuomei
* @date 2021/9/22 2:57 下午
*/
@PostMapping("itemresdetail-concat")
public Result<ItemResDetailConcatResultDTO> queryItemResDetailConcat(@RequestBody ItemResDetailFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class);
return new Result<ItemResDetailConcatResultDTO>().ok(prUserProjectService.queryItemResDetailConcat(formDTO));
}
}

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

@ -72,4 +72,14 @@ public interface PrUserProjectDao extends BaseDao<PrUserProjectEntity> {
* @date 2021/9/22 9:42 上午
*/
PrUserProjectEntity selectHeaderInfoByKey(@Param("key")String key);
/**
* 当前问卷中所有的联系人组件
*
* @param projectKey
* @return java.util.List<com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO>
* @author yinzuomei
* @date 2021/9/22 3:04 下午
*/
List<AnalysisReportResDTO> selectCocatItems(String projectKey);
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java

@ -19,7 +19,6 @@ package com.epmet.dataaggre.entity.epmettduck;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import com.epmet.dataaggre.dto.epmettduck.ProjectItemTypeEnum;
@ -30,7 +29,6 @@ import lombok.experimental.Accessors;
import lombok.experimental.FieldNameConstants;
import org.apache.ibatis.type.EnumTypeHandler;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -124,5 +122,12 @@ public class PrUserProjectItemEntity extends BaseEpmetEntity{
@TableField(typeHandler = JacksonTypeHandler.class)
private List<Map<String, Object>> regList;
/**
* 组件类型联系人组件concat输入型组件input;图片型组件image;辅助型组件assist选择性组件choose
*/
private String moduleType;
/**
* 与type一致手机号mobile邮箱email身份证号id_card
*/
private String itemKey;
}

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

@ -23,10 +23,7 @@ import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO;
import com.epmet.dataaggre.dto.epmettduck.form.ItemResDetailFormDTO;
import com.epmet.dataaggre.dto.epmettduck.form.TDuckHeaderInfoFormDTO;
import com.epmet.dataaggre.dto.epmettduck.form.TDuckListFormDTO;
import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
import com.epmet.dataaggre.dto.epmettduck.result.GetRangeResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO;
import com.epmet.dataaggre.dto.epmettduck.result.*;
import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
import java.util.List;
@ -156,4 +153,14 @@ public interface PrUserProjectService extends BaseService<PrUserProjectEntity> {
* @date 2021/9/22 1:37 下午
*/
List<String> queryItemResDetail(ItemResDetailFormDTO formDTO);
/**
* 联系人组件
*
* @param formDTO
* @return com.epmet.dataaggre.dto.epmettduck.result.ItemResDetailConcatResultDTO
* @author yinzuomei
* @date 2021/9/22 2:57 下午
*/
ItemResDetailConcatResultDTO queryItemResDetailConcat(ItemResDetailFormDTO formDTO);
}

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

@ -574,4 +574,96 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl<PrUserProjectDao,
}
return stringList;
}
/**
* 联系人组件
*
* @param formDTO
* @return com.epmet.dataaggre.dto.epmettduck.result.ItemResDetailConcatResultDTO
* @author yinzuomei
* @date 2021/9/22 2:57 下午
*/
@Override
public ItemResDetailConcatResultDTO queryItemResDetailConcat(ItemResDetailFormDTO formDTO) {
// 联系人题目
List<AnalysisReportResDTO> itemList=baseDao.selectCocatItems(formDTO.getProjectKey());
if(CollectionUtils.isEmpty(itemList)){
return new ItemResDetailConcatResultDTO();
}
//答案
List<PrUserProjectResultEntity> resultList=baseDao.selectResults(formDTO.getProjectKey());
if(CollectionUtils.isEmpty(resultList)){
return new ItemResDetailConcatResultDTO();
}
ItemResDetailConcatResultDTO resultDTO=new ItemResDetailConcatResultDTO();
List<ConcatTableHeaderDTO> tableHeaderList=new ArrayList<>();
for(AnalysisReportResDTO item:itemList){
ConcatTableHeaderDTO headerDTO=new ConcatTableHeaderDTO();
headerDTO.setFormItemId(item.getFormItemId());
headerDTO.setLabel(item.getLabel());
headerDTO.setType(item.getType());
tableHeaderList.add(headerDTO);
}
List<List<String>> dataList=new ArrayList<>();
for(PrUserProjectResultEntity res:resultList){
List<String> userAnswer=new ArrayList<>();
JSONObject originalData = JSON.parseObject(res.getOriginalData());
for(ConcatTableHeaderDTO header:tableHeaderList){
String key="field".concat(header.getFormItemId());
//手机号、邮箱、身份证、单行文本: INPUT
if(ProjectItemTypeEnum.INPUT.getValue().equals(header.getType())){
if(originalData.containsKey(key)){
if(StringUtils.isNotBlank(originalData.get(key).toString())){
userAnswer.add((String) originalData.get(key));
}else{
userAnswer.add(StrConstant.EPMETY_STR);
}
}else{
log.warn("没有当前的key:,可能用户没填写吧"+key);
userAnswer.add(StrConstant.HYPHEN);
}
}
//省市联动: PROVINCE_CITY
if(ProjectItemTypeEnum.PROVINCE_CITY.getValue().equals(header.getType())){
if(originalData.containsKey(key)){
List<String> provinceCityList= (List<String>) originalData.get(key);
if(!CollectionUtils.isEmpty(provinceCityList)){
userAnswer.add(StringUtils.join(provinceCityList,StrConstant.HYPHEN));
}else{
userAnswer.add(StrConstant.EPMETY_STR);
}
}else{
log.warn("没有当前的key:,可能用户没填写吧"+key);
userAnswer.add(StrConstant.HYPHEN);
}
}
//地理位置:INPUT_MAP
if(ProjectItemTypeEnum.INPUT_MAP.getValue().equals(header.getType())){
if(originalData.containsKey(key)){
List<String> inputMap= (List<String>) originalData.get(key);
log.info("地理位置:"+JSON.toJSONString(inputMap,true));
if (!CollectionUtils.isEmpty(inputMap) && inputMap.size() == 3) {
userAnswer.add(inputMap.get(2));
}else{
userAnswer.add(StrConstant.EPMETY_STR);
}
}else{
log.warn("没有当前的key:,可能用户没填写吧"+key);
userAnswer.add(StrConstant.HYPHEN);
}
}
}
dataList.add(userAnswer);
}
resultDTO.setTableHeaderList(tableHeaderList);
resultDTO.setDataList(dataList);
return resultDTO;
}
}

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

@ -35,6 +35,24 @@
order by i.sort asc
</select>
<!-- 当前问卷中所有的联系人组件 -->
<select id="selectCocatItems" 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.module_type='concat'
order by i.sort asc
</select>
<!-- 调查问卷的答题结果 -->
<select id="selectResults" parameterType="java.lang.String" resultType="com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity">
select

Loading…
Cancel
Save