diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java new file mode 100644 index 0000000000..b44f736854 --- /dev/null +++ b/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; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java new file mode 100644 index 0000000000..f8b5acb128 --- /dev/null +++ b/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 tableHeaderList; + private List> dataList; + + public ItemResDetailConcatResultDTO(){ + this.tableHeaderList=new ArrayList<>(); + this.dataList=new ArrayList<>(); + } +} + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java index 8f7638e589..2d5c8d6d12 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java +++ b/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> queryItemResDetail(@RequestBody ItemResDetailFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class); return new Result>().ok(prUserProjectService.queryItemResDetail(formDTO)); } + + /** + * 联系人组件-查看详情 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @date 2021/9/22 2:57 下午 + */ + @PostMapping("itemresdetail-concat") + public Result queryItemResDetailConcat(@RequestBody ItemResDetailFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class); + return new Result().ok(prUserProjectService.queryItemResDetailConcat(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java index 6f246a7d4e..2c185e8db7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java +++ b/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 { * @date 2021/9/22 9:42 上午 */ PrUserProjectEntity selectHeaderInfoByKey(@Param("key")String key); + + /** + * 当前问卷中所有的联系人组件 + * + * @param projectKey + * @return java.util.List + * @author yinzuomei + * @date 2021/9/22 3:04 下午 + */ + List selectCocatItems(String projectKey); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java index e01e439e9a..3138b101ab 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java +++ b/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> regList; - + /** + * 组件类型:联系人组件:concat;输入型组件:input;图片型组件:image;辅助型组件:assist;选择性组件:choose + */ + private String moduleType; + /** + * 与type一致,手机号:mobile;邮箱:email;身份证号:id_card + */ + private String itemKey; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java index 16d14000d5..b8f9aac6db 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java +++ b/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 { * @date 2021/9/22 1:37 下午 */ List 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); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java index f04cf54966..85788c5ab2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java +++ b/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 itemList=baseDao.selectCocatItems(formDTO.getProjectKey()); + if(CollectionUtils.isEmpty(itemList)){ + return new ItemResDetailConcatResultDTO(); + } + //答案 + List resultList=baseDao.selectResults(formDTO.getProjectKey()); + if(CollectionUtils.isEmpty(resultList)){ + return new ItemResDetailConcatResultDTO(); + } + + ItemResDetailConcatResultDTO resultDTO=new ItemResDetailConcatResultDTO(); + + List 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> dataList=new ArrayList<>(); + for(PrUserProjectResultEntity res:resultList){ + List 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 provinceCityList= (List) 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 inputMap= (List) 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; + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml index 55ddf7c707..dde753c53f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml @@ -35,6 +35,24 @@ order by i.sort asc + +