huanghongfa
2021-08-31 5309dbd17ef4a7add4eec83896f76ce29bcf4828
bug修复
6个文件已修改
112 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/QuestnaireAnswersDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/QuestnaireAnswersDTO.java
@@ -5,6 +5,7 @@
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,4 +22,7 @@
    @ApiModelProperty("题目用户回答列表")
    private List<ComActQuestnaireAnswerContentVO> answers;
    @ApiModelProperty("用户填报记录")
    private ComActReserveRegisterDetailedVO recordListVO;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -28,4 +29,7 @@
    private Integer type;
    @ApiModelProperty("题目选项ID")
    private Long selectionId;
    @ApiModelProperty("答题记录id")
    private Long reserveRecordId;
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -22,6 +22,7 @@
import com.panzhihua.common.model.vos.community.reserve.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.SFTPUtil;
import com.panzhihua.community_backstage.config.SFTPConfig;
import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
@@ -497,68 +498,28 @@
                        headList.add(headn);
                    });
                    List<List<Object>> datalist = new ArrayList<>();
                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
                    if(answerContentVOList!=null && answerContentVOList.size()>0) {
                        Map<LoginUserInfoVO, LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>>> answersMap = new HashMap<>();
                        List<Object> userData = new ArrayList<>();
                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
                        usersAnswers.forEach(userAnswers -> {
                            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfoByUserId(userAnswers.getUserId().toString());
                            if (R.isOk(loginUserInfoVOR)) {
                                LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData();
                                LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>> theUserList = answersMap.get(loginUserInfoVO);
                                if (theUserList == null) {
                                    theUserList = new LinkedHashMap<>();
                                    answersMap.put(loginUserInfoVO, theUserList);
                                }
                                /**
                                 * 按题分类题目答案
                                 */
                                Long subId = userAnswers.getSubId();
                                List<ComActQuestnaireAnswerContentVO> answerContentVOList1 = theUserList.get(subId);
                                if(answerContentVOList1==null){
                                    answerContentVOList1 = new ArrayList<>();
                                    theUserList.put(subId, answerContentVOList1);
                                }
                                answerContentVOList1.add(userAnswers);
                        //查询用户回答的所有答案,并新增到答案列表中
                        ComActReserveRegisterDetailedVO recordListVO = questnaireAnswersDTOS.getRecordListVO();
                        userData.add(recordListVO.getNickName());
                        userData.add(DateUtils.format(recordListVO.getCreateAt(),DateUtils.ymdhms_format));
                        Long reserveRecordId = null;
                        for (ComActQuestnaireAnswerContentVO userAnswers:usersAnswers) {
                            if(reserveRecordId == null){
                                reserveRecordId = userAnswers.getReserveRecordId();
                            }
                        });
                        /**
                         * 构造导出数据
                         */
                        answersMap.forEach((user, answers) ->{
                            List<Object> userData = new ArrayList<>();
                            userData.add(user.getName());
                            //获取提交时间
                            Set<Long> keySet = answers.keySet();
                            String dateStr = "";
                            if(keySet!=null && keySet.size()>0){
                                try {
                                    ComActQuestnaireAnswerContentVO firstvo = answers.get(keySet.toArray()[0]).get(0);
                                    if (firstvo != null) {
                                        Date time = firstvo.getCreateAt();
                                        if(time!=null) {
                                            String sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time);
                                            dateStr = sd;
                                        }
                                    }
                                }catch (Exception e){
                                    dateStr = "";
                                }
                            if(!reserveRecordId.equals(userAnswers.getReserveRecordId())){
                                datalist.add(userData);
                                userData = new ArrayList<>();
                                userData.add(recordListVO.getNickName());
                                userData.add(DateUtils.format(recordListVO.getCreateAt(),DateUtils.ymdhms_format));
                                reserveRecordId = userAnswers.getReserveRecordId();
                            }
                            userData.add(dateStr);
                            answers.forEach((id, answer )->{
                                StringBuilder usersAnswerContent = new StringBuilder("");
                                answer.forEach(ans ->{
                                    String context = (ans.getChoice()!=null?(ans.getChoice()+ "."):"")  + ans.getAnswerContent();
                                    usersAnswerContent.append(context +"\n");
                                });
                                userData.add(usersAnswerContent.toString());
                            });
                            datalist.add(userData);
                        });
                            userData.add(userAnswers.getAnswerContent());
                        }
                    }
                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
@@ -42,4 +42,6 @@
     */
    List<ComActReserveRegisterDetailedAnswerVO> getRegisterDetailedAnswerList(@Param("reserveRecordId")Long reserveRecordId);
    ComActReserveRegisterDetailedVO getRegisterDetailedById(@Param("reserveRecordId") Long reserveRecordId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -9,6 +9,7 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRecordListVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
import com.panzhihua.common.utlis.DateUtils;
@@ -58,15 +59,23 @@
        });
        result.setSubs(listSubVo);
        Long reserveRecordId = null;
        //查询用户回答
        List<ComActReserveAnswerContentDO> questnaireAnswerContentDOList = this.baseMapper.selectListByReserve(reserveId);
        List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>();
        questnaireAnswerContentDOList.forEach(dos -> {
        for (ComActReserveAnswerContentDO dos:questnaireAnswerContentDOList) {
            ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO();
            BeanUtils.copyProperties(dos, vo);
            reserveRecordId = dos.getReserveRecordId();
            vos.add(vo);
        });
        }
        result.setAnswers(vos);
        //查询用户提交信息
        ComActReserveRegisterDetailedVO recordListVO = this.baseMapper.getRegisterDetailedById(reserveRecordId);
        if(recordListVO != null){
            result.setRecordListVO(recordListVO);
        }
        return R.ok(result);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -32,9 +32,6 @@
            LEFT JOIN com_act_reserve qn ON qs.reserve_id = qn.id
        WHERE
            qn.id = #{reserveId}
        ORDER BY
            ac.user_id,
            qs.id
    </select>
    <select id="pageRegisterDetailedListAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO"
@@ -65,4 +62,15 @@
        where carac.reserve_record_id = #{reserveRecordId} order by carac.id asc
    </select>
    <select id="getRegisterDetailedById" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO">
        SELECT
            carr.id,
            su.nick_name,
            carr.create_at
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
            where carr.id = #{reserveRecordId}
    </select>
</mapper>