mitao
2025-05-20 179c4d64313c9b7572778da4aaaf6c6584fe457d
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
@@ -33,7 +33,7 @@
        //构建单个用户数据
        List<Object> userData = new ArrayList<>();
        String noExport = "以上信息仅用于";
        String noExport = "本人对信息内容";
        //遍历答案列表
        Long reserveRecordId = 0L;
        Long reserveSubId = 0L;
@@ -45,6 +45,200 @@
                a++;
                if(answerContentVOList.size()==26&&a==9){
                   userData.add(" ");
                }
                //判断是文字描述直接跳过
                if (userAnswers.getOptionType().equals(5)
                        || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
                    continue;
                }
                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
                if (reserveRecordId.equals(0L)) {
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                }
                //根据reserveRecordId判断是否是第二条填报记录
                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
                    reserveSubId = 0L;
                    if(isOldDuo){
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                        isOldDuo = false;
                    }
                    resultList.add(userData);
                    userData = new ArrayList<>();
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                        userData.add(userAnswers.getAnswerContent());
                    }else{
                        userData.add(" ");
                    }
                }else{
                    if(reserveSubId.equals(0L)){
                        reserveSubId = userAnswers.getReserveSubId();
                    }
                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
                        reserveSubId = userAnswers.getReserveSubId();
                        //如果是承诺字段则不导出
                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
                            continue;
                        }
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                                    if(userAnswers.getAnswerContent().contains("_compress")){
                                        userData.add(new URL(userAnswers.getAnswerContent()));
                                    }
                                    else {
                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                        if(url.getContent()!=null){
                                            userData.add(url);
                                        }
                                        else {
                                            userData.add(userAnswers.getAnswerContent());
                                        }
                                    }
                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
                                }
                                else {
                                    userData.add(" ");
                                }
                            }catch (Exception e){
                                userData.add(" ");
                                e.printStackTrace();
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        //判断当前组件类型是否签名
                        if(userAnswers.getOptionType().equals(12)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        if(userAnswers.getOptionType().equals(1)){
                            isOldDuo = true;
                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                            continue;
                        }else{
                            if(isOldDuo){
                                String answer = sb.toString();
                                userData.add(answer.substring(0, answer.length() - 1));
                                sb = new StringBuffer();
                            }
                            isOldDuo = false;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }else{
                        //如果是承诺字段则不导出
                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
                            continue;
                        }
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                                    if(userAnswers.getAnswerContent().contains("_compress")){
                                        userData.add(new URL(userAnswers.getAnswerContent()));
                                    }
                                    else {
                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                        if(url.getContent()!=null){
                                            userData.add(url);
                                        }
                                        else {
                                            userData.add(userAnswers.getAnswerContent());
                                        }
                                    }
                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
                                }
                                else {
                                    userData.add(" ");
                                }
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        //判断当前组件类型是否签名
                        if(userAnswers.getOptionType().equals(12)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        if(userAnswers.getOptionType().equals(1)){
                            isOldDuo = true;
                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                            continue;
                        }else{
                            if(isOldDuo){
                                String answer = sb.toString();
                                userData.add(answer.substring(0, answer.length() - 1));
                                sb = new StringBuffer();
                            }
                            isOldDuo = false;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }
                }
            }
            if(isOldDuo){
                String answer = sb.toString();
                userData.add(answer.substring(0, answer.length() - 1));
            }
            resultList.add(userData);
        }
        return resultList;
    }
    public static List<List<Object>> ReserveDataNoImage(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
        //结果数据集合
        List<List<Object>> resultList = new ArrayList<>();
        //构建单个用户数据
        List<Object> userData = new ArrayList<>();
        String noExport = "以上信息仅用于";
        //遍历答案列表
        Long reserveRecordId = 0L;
        Long reserveSubId = 0L;
        Boolean isOldDuo = false;
        StringBuffer sb = new StringBuffer();
        if (answerContentVOList != null && answerContentVOList.size() > 0) {
            int a=0;
            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
                a++;
                if(answerContentVOList.size()==26&&a==9){
                    userData.add(" ");
                }
                //判断是文字描述直接跳过
                if (userAnswers.getOptionType().equals(5) ||userAnswers.getOptionType().equals(11)
@@ -99,8 +293,13 @@
                                        userData.add(new URL(userAnswers.getAnswerContent()));
                                    }
                                    else {
                                        userData.add(new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg"));
                                        log.info(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                        if(url.getContent()!=null){
                                            userData.add(url);
                                        }
                                        else {
                                            userData.add(userAnswers.getAnswerContent());
                                        }
                                    }
                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
                                }
@@ -109,6 +308,7 @@
                                }
                            }catch (Exception e){
                                userData.add(" ");
                                e.printStackTrace();
                                log.error("导出转换图片失败!");
                            }
                            continue;
@@ -153,10 +353,16 @@
                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                                    if(userAnswers.getAnswerContent().contains("_compress")){
                                        userData.add(new URL(userAnswers.getAnswerContent()));
                                        log.info(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                    }
                                    else {
                                        userData.add(new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg"));
                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
                                        if(url.getContent()!=null){
                                            userData.add(url);
                                        }
                                        else {
                                            userData.add(userAnswers.getAnswerContent());
                                        }
                                    }
                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
                                }