doum
2026-01-30 2815206d8821a79de11d6f2c3de9c4bedbe719b0
提交忽略文件
已修改12个文件
474 ■■■■ 文件已修改
admin/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
admin/public/template/member.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCasesImportWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCasesWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/cases.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/annotation/excel/ExcelPictureUtil.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/dto/CasesImport.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/dto/MemberImport.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/Cases.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java 190 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/public/favicon.ico

admin/public/template/member.xlsx
Binary files differ
admin/src/components/business/OperaCasesImportWindow.vue
@@ -48,7 +48,7 @@
      this.title = title
      this.fileName = ''
      this.visible = true
      this.type = 0
      this.type = 1
    },
    // 导出模板
    exportTemplate () {
admin/src/components/business/OperaCasesWindow.vue
@@ -74,7 +74,7 @@
    return {
      isUploading: false,
      uploadData: {
        folder: 'dianjiang/category'
        folder: 'dianjiang/cases'
      },
      // 表单数据
      form: {
admin/src/views/business/cases.vue
@@ -54,7 +54,7 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="案例标题" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="案例标题" min-width="200px"></el-table-column>
        <el-table-column  prop="icon" label="排行榜图集" min-width="220px">
          <template slot-scope="{row}">
            <div style="display: flex; flex-wrap: wrap;width: 200px;"  v-if="row.fileList && row.fileList.length">
server/services/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
@@ -4,6 +4,7 @@
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
@@ -329,64 +330,102 @@
            }
            StringBuilder sb = new StringBuilder();
            for (Object[] os : annotationList){
                Object val = this.getCellValue(row, column++);
                if (val != null){
                    ExcelColumn ef = (ExcelColumn)os[0];
                    // Get param type and type cast
                    Class<?> valType = Class.class;
                    if (os[1] instanceof Field){
                        valType = ((Field)os[1]).getType();
                    }else if(os[1] instanceof Method){
                        Method method = ((Method)os[1]);
                        if ("get".equals(method.getName().substring(0, 3))){
                            valType = method.getReturnType();
                        }else if("set".equals(method.getName().substring(0, 3))){
                            valType = ((Method)os[1]).getParameterTypes()[0];
                        }
                int tcolumn = column++;
                Object val = this.getCellValue(row, tcolumn);;
                ExcelColumn ef = (ExcelColumn)os[0];
                // Get param type and type cast
                Class<?> valType = Class.class;
                if (os[1] instanceof Field){
                    valType = ((Field)os[1]).getType();
                }else if(os[1] instanceof Method){
                    Method method = ((Method)os[1]);
                    if ("get".equals(method.getName().substring(0, 3))){
                        valType = method.getReturnType();
                    }else if("set".equals(method.getName().substring(0, 3))){
                        valType = ((Method)os[1]).getParameterTypes()[0];
                    }
                    //log.debug("Import value type: ["+i+","+column+"] " + valType);
                    try {
                        if (valType == String.class){
                            String s = String.valueOf(val.toString());
                            if(StringUtils.endsWith(s, ".0")){
                                val = StringUtils.substringBefore(s, ".0");
                            }else{
                                val = String.valueOf(val.toString()).trim();
                }
                if(ef.fieldType()== XSSFPictureData.class){
                    XSSFPictureData qrData = null;
                    if(val !=null){
                        String tid = String.valueOf(val.toString()).trim();
                        int start = tid.indexOf("(\"")+2;
                        int end = tid.indexOf("\",");
                        if(start>=0&& end>=1 && end>start){
                            String picId = tid.substring(start,end);
                            XSSFPictureData data = this.pictureList.get(picId);
                            if(data!= null && data.getData() != null){
                                qrData =data;
                            }
                        }
                        else if (valType == Integer.class){
                            val = Double.valueOf(val.toString()).intValue();
                        }else if (valType == Long.class){
                            val = Double.valueOf(val.toString()).longValue();
                        }else if (valType == Double.class){
                            val = Double.valueOf(val.toString());
                        }else if (valType == Float.class){
                            val = Float.valueOf(val.toString());
                        }else if (valType == Date.class){
                            val = DateUtil.getJavaDate((Double)val);
                        }else{
                            if (ef.fieldType() != Class.class){
                                val = ef.fieldType().getMethod("getValue", String.class).invoke(null, val.toString());
                            }else{
                                val = Class.forName(this.getClass().getName().replaceAll(this.getClass().getSimpleName(),
                                    "fieldtype."+valType.getSimpleName()+"Type")).getMethod("getValue", String.class).invoke(null, val.toString());
                    }
                    val = null;
                    //悬浮图片
                    List<XSSFPictureData> xfData = ExcelPictureUtil.getPicturesFromCell(this.sheet,row.getCell(tcolumn));
                    List<XSSFPictureData> valList =new ArrayList<>();
                    if(qrData!=null){
                        valList.add(qrData);
                    }
                    if(xfData!=null){
                        valList.addAll(xfData);
                    }
                    if (valType==List.class){
                        val =valList;
                    } else if ( valType==XSSFPictureData.class){
                        val = (valList!=null && valList.size()>0)?valList.get(0):null;
                    }
                }else{
                    if (val != null){
                        try {
                            if (valType == String.class){
                                String s = String.valueOf(val.toString());
                                if(StringUtils.endsWith(s, ".0")){
                                    val = StringUtils.substringBefore(s, ".0");
                                }else{
                                    val = String.valueOf(val.toString()).trim();
                                }
                            }
                            else if (valType == Integer.class){
                                val = Double.valueOf(val.toString()).intValue();
                            }else if (valType == Long.class){
                                val = Double.valueOf(val.toString()).longValue();
                            }else if (valType == Double.class){
                                val = Double.valueOf(val.toString());
                            }else if (valType == Float.class){
                                val = Float.valueOf(val.toString());
                            }else if (valType == Date.class){
                                val = DateUtil.getJavaDate((Double)val);
                            }else if (valType == XSSFPictureData.class){
                            }else{
                                if (ef.fieldType() != Class.class){
                                    val = ef.fieldType().getMethod("getValue", String.class).invoke(null, val.toString());
                                }else{
                                    val = Class.forName(this.getClass().getName().replaceAll(this.getClass().getSimpleName(),
                                            "fieldtype."+valType.getSimpleName()+"Type")).getMethod("getValue", String.class).invoke(null, val.toString());
                                }
                            }
                        } catch (Exception ex) {
                            log.info("Get cell value ["+i+","+column+"] error: " + ex.toString());
                            val = null;
                        }
                    } catch (Exception ex) {
                        log.info("Get cell value ["+i+","+column+"] error: " + ex.toString());
                        val = null;
                    }
                    // set entity value
                    if (os[1] instanceof Field){
                        Reflections.invokeSetter(e, ((Field)os[1]).getName(), val);
                    }else if (os[1] instanceof Method){
                        String mthodName = ((Method)os[1]).getName();
                        if ("get".equals(mthodName.substring(0, 3))){
                            mthodName = "set"+StringUtils.substringAfter(mthodName, "get");
                        }
                        Reflections.invokeMethod(e, mthodName, new Class[] {valType}, new Object[] {val});
                    }
                }
                 if (val != null){
                     try {
                         // set entity value
                         if (os[1] instanceof Field){
                             Reflections.invokeSetter(e, ((Field)os[1]).getName(), val);
                         }else if (os[1] instanceof Method){
                             String mthodName = ((Method)os[1]).getName();
                             if ("get".equals(mthodName.substring(0, 3))){
                                 mthodName = "set"+StringUtils.substringAfter(mthodName, "get");
                             }
                             Reflections.invokeMethod(e, mthodName, new Class[] {valType}, new Object[] {val});
                         }
                     }catch (Exception e1){
                         val =null;
                     }
                }else{
                }
                sb.append(val+", ");
            }
server/services/src/main/java/com/doumee/core/annotation/excel/ExcelPictureUtil.java
@@ -7,17 +7,13 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.openxml4j.opc.PackagePartName;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -315,4 +311,75 @@
        }
    }
    /**
     * 获取单元格中的图片
     */
    public static List<XSSFPictureData> getPicturesFromCell(Sheet sheet, Cell cell) {
        try {
            List<XSSFPictureData> cellPictures = new ArrayList<>();
            XSSFDrawing drawing = ((XSSFSheet) sheet).createDrawingPatriarch();
            if (drawing != null) {
                List<XSSFPicture> pictures = drawing.getShapes().stream()
                        .filter(shape -> shape instanceof XSSFPicture)
                        .map(shape -> (XSSFPicture) shape).collect(Collectors.toList());
                for (XSSFPicture picture : pictures) {
                    int rowIndex = picture.getPreferredSize().getRow1();
                    int colIndex = picture.getPreferredSize().getCol1();
                    if (colIndex == cell.getColumnIndex() && rowIndex == cell.getRowIndex()) {
                        cellPictures.add(picture.getPictureData());
                    }
                }
            }
            return cellPictures;
        }catch (Exception e){
            e.printStackTrace();
        }
         return  null;
    }
    private static Map<String, List<XSSFPicture>> getImgPathMap(Sheet sheet) {
        Map<String, List<XSSFPicture>> imgPathMap = new HashMap<>();
        XSSFDrawing drawing = ((XSSFSheet) sheet).createDrawingPatriarch();
        if (drawing != null) {
            List<XSSFPicture> pictures = drawing.getShapes().stream()
                    .filter(shape -> shape instanceof XSSFPicture)
                    .map(shape -> (XSSFPicture) shape).collect(Collectors.toList());
            for (XSSFPicture picture : pictures) {
                int rowIndex = picture.getPreferredSize().getRow1();
                int colIndex = picture.getPreferredSize().getCol1();
                String key = colIndex + "-" + rowIndex;
                List<XSSFPicture> list = null;
                if (imgPathMap.containsKey(key)) {
                    list = imgPathMap.get(key);
                } else {
                    list = new ArrayList<>();
                    imgPathMap.put(key, list);
                }
                list.add(picture);
            }
        }
        return imgPathMap;
    }
    /**
     * 获取图片的扩展名
     */
    private static String getImageExtension(PictureData picture) {
        String mimeType = picture.getMimeType();
        switch (mimeType) {
            case "image/jpeg":
                return "jpg";
            case "image/png":
                return "png";
            default:
                return "";
        }
    }
}
server/services/src/main/java/com/doumee/dao/business/dto/CasesImport.java
@@ -3,6 +3,11 @@
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import java.util.Date;
import java.util.List;
/**
 * 员工信息导入表
@@ -13,24 +18,30 @@
@ApiModel("员工信息导入")
public class CasesImport {
//    @ExcelColumn(name="序号",value = "sn")
    private Integer sn;
    @ExcelColumn(name="姓名",value = "name",index = 1)
    @ExcelColumn(name="案例主题",value = "name",index = 1)
    private String name;
    @ExcelColumn(name="手机号",value = "phone",index = 2)
    private String phone;
    @ExcelColumn(name="开始日期",value = "startDate",index = 2)
    private String startDate;
    @ExcelColumn(name="身份证号",value = "idcardNo",index = 3)
    private String idcardNo;
    @ExcelColumn(name="结束日期",value = "endDate",index = 3)
    private String endDate;
    @ExcelColumn(name="组织名称" , value = "companyName" ,index = 4)
    private String companyName;
    @ExcelColumn(name="服务老师" , value = "memberCode" ,index = 4)
    private String memberCode;
    @ExcelColumn(name="工号" , value = "code")
    private String code;
    @ExcelColumn(name="案例说明" , value = "detail",index = 5)
    private String detail;
    @ExcelColumn(name="岗位" , value = "code")
    private String positionName;
    @ExcelColumn(name="案例图1" , value = "imageList",fieldType = XSSFPictureData.class,index = 5)
    private List<XSSFPictureData> imageList;
    @ExcelColumn(name="案例图2" , value = "imageList1",fieldType = XSSFPictureData.class,index = 6)
    private List<XSSFPictureData> imageList1;
    @ExcelColumn(name="案例图3" , value = "imageList2",fieldType = XSSFPictureData.class,index = 7)
    private List<XSSFPictureData> imageList2;
    @ExcelColumn(name="案例图4" , value = "imageList3",fieldType = XSSFPictureData.class,index = 8)
    private List<XSSFPictureData> imageList3;
    @ExcelColumn(name="案例图5" , value = "imageList4",fieldType = XSSFPictureData.class,index = 9)
    private List<XSSFPictureData> imageList4;
    @ExcelColumn(name="案例图6" , value = "imageList5",fieldType = XSSFPictureData.class,index = 10)
    private List<XSSFPictureData> imageList5;
}
server/services/src/main/java/com/doumee/dao/business/dto/MemberImport.java
@@ -5,6 +5,7 @@
import com.doumee.dao.business.model.Category;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import java.util.List;
@@ -20,8 +21,8 @@
    private String code;
    @ExcelColumn(name="姓名",value = "name",index = 2)
    private String name;
    @ExcelColumn(name="职业照",value = "imgurl",index = 3)
    private String imgurl;
    @ExcelColumn(name="职业照",value = "imgurl",index = 3,fieldType = XSSFPictureData.class)
    private XSSFPictureData imgurl;
    @ExcelColumn(name="等级",value = "levelName",index = 4)
    private String levelName;
    @ExcelColumn(name="性别" , value = "sex" ,index = 5)
server/services/src/main/java/com/doumee/dao/business/model/Cases.java
@@ -92,4 +92,10 @@
    @ApiModelProperty(value = "最后操作人员;", example = "1")
    @TableField(exist = false)
    private String updateUserName;
    @ApiModelProperty(value = "图片集数据;", example = "1")
    @TableField(exist = false)
    private List<byte[]> imgdataList;
}
server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java
@@ -209,7 +209,7 @@
    }
    private void initMultifileList(Cases cate) {
        String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode()
                + systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.CATEGORY_FILES).getCode();
                + systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.CASES_FILES).getCode();
        Multifile find = new Multifile();
        find.setObjId(cate.getId());
server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java
@@ -10,17 +10,11 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.tyyun.TyyZosUtil;
import com.doumee.dao.business.CasesMapper;
import com.doumee.dao.business.CategoryMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dto.CasesImport;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.model.Cases;
import com.doumee.dao.business.model.Category;
import com.doumee.dao.business.model.ImportRecord;
import com.doumee.dao.business.model.*;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.ImportRecordMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ImportRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -67,6 +61,8 @@
    private MemberMapper memberMapper;
    @Autowired
    private CasesMapper casesMapper;
    @Autowired
    private MultifileMapper multifileMapper;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
    @Resource
@@ -203,9 +199,7 @@
            Map<String, XSSFPictureData> pics = ie.getExcelPictures();
            if(type == 1) {
              List<CasesImport> importList =  (ie.getDataList(CasesImport.class,null));
              if(importList==null || importList.size()==0){
                  throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"导入文件案例信息内容为空!");
              }
              model.setCaseList(isvalidImpartCasesParam(loginUserInfo,pics,importList));
              model.setTotalNum(model.getCaseList().size());
            }else{
               List<MemberImport> importList = (ie.getDataList(MemberImport.class,null));
@@ -242,19 +236,21 @@
        int index = 1;
         for(MemberImport param :memberList){
             index ++;
             if(StringUtils.isBlank(param.getImgurl())
             ||StringUtils.isBlank(param.getFee())
             ||StringUtils.isBlank(param.getName())
             ||StringUtils.isBlank(param.getInfo())
             ||StringUtils.isBlank(param.getJobYear())
             ||StringUtils.isBlank(param.getPosition())
             ||StringUtils.isBlank(param.getFieldNames())
             ||StringUtils.isBlank(param.getSex())
             ||StringUtils.isBlank(param.getCode())
             ||StringUtils.isBlank(param.getZqNames())
             ||StringUtils.isBlank(param.getLevelName())
             ||StringUtils.isBlank(param.getServeNum())
             ||StringUtils.isBlank(param.getTypeNames())){
             if(( param.getImgurl() == null
                 ||param.getImgurl().getData() == null
                 ||param.getImgurl().getData().length == 0)
                     &&StringUtils.isBlank(param.getFee())
                     &&StringUtils.isBlank(param.getName())
                     &&StringUtils.isBlank(param.getInfo())
                     &&StringUtils.isBlank(param.getJobYear())
                     &&StringUtils.isBlank(param.getPosition())
                     &&StringUtils.isBlank(param.getFieldNames())
                     &&StringUtils.isBlank(param.getSex())
                     &&StringUtils.isBlank(param.getCode())
                     &&StringUtils.isBlank(param.getZqNames())
                     &&StringUtils.isBlank(param.getLevelName())
                     &&StringUtils.isBlank(param.getServeNum())
                     &&StringUtils.isBlank(param.getTypeNames())){
                 continue;
             }
             Member member = new Member();
@@ -295,7 +291,7 @@
             if(StringUtils.isBlank(param.getFee())){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 费用标准信息不能为空");
             }
             if(pics!=null && StringUtils.isNotBlank(param.getImgurl())){
          /*   if(pics!=null && StringUtils.isNotBlank(param.getImgurl())){
                log.info("===================="+param.getImgurl());
                int start = param.getImgurl().indexOf("(\"")+2;
                int end = param.getImgurl().indexOf("\",");
@@ -307,7 +303,11 @@
                        member.setImgurlData(data.getData());
                    }
                }
            }
            }*/
             if(param.getImgurl() ==null ){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行【"+param.getName()+"】数据, 未读取到任何职业照图片数据");
             }
             member.setImgurlData(param.getImgurl().getData());
             if(member.getImgurlData() ==null || member.getImgurlData().length==0){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行【"+param.getName()+"】数据, 未读取到任何职业照图片数据");
             }
@@ -350,6 +350,93 @@
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,未读取到有效数据");
        }
         return insertMember;
    }
    private  List<Cases> isvalidImpartCasesParam(LoginUserInfo user,  Map<String, XSSFPictureData> pics, List<CasesImport> casesImportList) {
        if(casesImportList ==null || casesImportList.size()==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,未读取到有效数据");
        }
        if(pics ==null || pics.size()==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,未读取到任何职业照图片数据");
        }
        List<Cases> insertList = new ArrayList<>();
        List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
                .eq(Member::getDeleted,Constants.ZERO));
        allList=allList==null?new ArrayList<>():allList;
        if(allList == null || allList.size()==0){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起, 读取老师数据异常,请先维护老师数据信息!");
        }
        Date date = new Date();
        int index = 1;
         for(CasesImport param :casesImportList){
             index ++;
             if( ( param.getImageList() == null
                 ||param.getImageList().size() == 0 )
                     &&StringUtils.isBlank(param.getName())
                     &&StringUtils.isBlank(param.getMemberCode())
                     &&StringUtils.isBlank(param.getStartDate())
                     &&StringUtils.isBlank(param.getEndDate())
                     &&StringUtils.isBlank(param.getDetail())){
                 continue;
             }
             Cases cases = new Cases();
             cases.setStartDate(DateUtil.fromStringToDate("yyyy-MM-dd",param.getStartDate()));
             cases.setEndDate(DateUtil.fromStringToDate("yyyy-MM-dd",param.getEndDate()));
             if(StringUtils.isBlank(param.getName())){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 案例主题不能为空");
             }
             Member member =null;
             for(Member m : allList){
                 if(StringUtils.equals(param.getMemberCode(),m.getCode())){
                    member = m;
                 }
             }
             if(member == null){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 老师工号【"+param.getMemberCode()+"】信息不存在,请确认不要重复录入");
             }
             if(StringUtils.isBlank(param.getDetail())){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 案例说明不能为空");
             }
             if(param.getImageList() == null){
                 param.setImageList(new ArrayList<>());
             }
             param.getImageList().addAll(param.getImageList1()!=null?param.getImageList1():new ArrayList<>());
             param.getImageList().addAll(param.getImageList2()!=null?param.getImageList2():new ArrayList<>());
             param.getImageList().addAll(param.getImageList3()!=null?param.getImageList3():new ArrayList<>());
             param.getImageList().addAll(param.getImageList4()!=null?param.getImageList4():new ArrayList<>());
             param.getImageList().addAll(param.getImageList5()!=null?param.getImageList5():new ArrayList<>());
             if(param.getImageList() == null
                     ||param.getImageList().size() == 0 ){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 案例图信息不能为空");
             }
             if(cases.getStartDate()==null){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 开始日期读取失败");
             }
             if(cases.getEndDate()==null){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据, 结束日期读取失败");
             }
             cases.setImgdataList(new ArrayList<>());
             for(XSSFPictureData d : param.getImageList()){
                 cases.getImgdataList().add(d.getData());
             }
             cases.setCreateTime(date);
             cases.setUpdateTime(date);
             cases.setCreateUser(user.getId());
             cases.setUpdateUser(user.getId());
             cases.setAddType(Constants.ONE);
             cases.setDeleted(Constants.ZERO);
             cases.setStatus(Constants.ZERO);
             cases.setName(param.getName());
             cases.setDetail(param.getDetail());
             cases.setMemberId(member.getId());
             insertList.add(cases);
         }
        if(insertList ==null || insertList.size()==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,未读取到有效数据");
        }
         return insertList;
    }
@@ -420,16 +507,34 @@
    private int dealCaseImportBiz(ImportRecord importRecord) {
        int success=0;
        String msg ="";
        String msg = "";
        String nowDate =DateUtil.getNowShortDate();
        try {
            for(Cases param:importRecord.getCaseList()){
            String bucket =systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.BUCKETNAME).getCode();
            String folder =systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.CASES_FILES).getCode();
            TyyZosUtil obs = new TyyZosUtil(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ENDPOINT).getCode(),
                    systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_ID).getCode(),
                    systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_KEY).getCode());
            for(Cases param: importRecord.getCaseList()){
                int ts =0;
                try {
                    param.setImportId(importRecord.getId());
                    param.setAddType(Constants.ONE);
                    ts =  dealCasesInsert(obs,param,folder,nowDate,bucket);
                }catch (Exception e){
                    log.error("处理人员信息发生异常{}",e.getMessage());
                    ts =0;
                }
                success += ts;
            }
            obs.shutDown();
        }catch (Exception e){
        }
        importRecord.setDoneNum(success);
        importRecord.setErrorNum(importRecord.getTotalNum() - success);
        importRecord.setDetail(msg);
        redisTemplate.delete(Constants.RedisKeys.IMPORTING_RECORD);
        return success;
    }
@@ -464,6 +569,33 @@
    }
    @Transactional
    private int dealCasesInsert( TyyZosUtil obs,Cases param,String folder,String nowDate,String bucketName) {
        int success = casesMapper.insert(param);
        List<Multifile> multifileList = new ArrayList<>();
        for(byte[] d : param.getImgdataList()){
            String fileName = UUID.randomUUID() + ".png";
            String tempFileName = nowDate + "/" + fileName;
            String key = folder + tempFileName;// 文件名
            if (obs.uploadInputstreamObjectNoShutdown(new ByteArrayInputStream(d ) ,bucketName,  key)) {
                Multifile s = new Multifile();
                s.setIsdeleted(Constants.ZERO);
                s.setCreator(param.getCreateUser());
                s.setCreateDate(param.getCreateTime());
                s.setObjId(param.getId());
                s.setType(Constants.ZERO);
                s.setFileurl(tempFileName);
                s.setObjType(Constants.ONE);
                multifileList.add(s);
                param.setImgurl(tempFileName);//证件照地址
            }else{
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"图集上传失败!");
            }
        }
        multifileMapper.insert(multifileList);
        return success;
}
    private int dealMemberInsert( TyyZosUtil obs,Member param,String folder,String nowDate,String bucketName) {
        int success =0;
        try {