1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.vci.ubcs.code.service;
 
 
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.code.vo.universalInter.attrmap.DataObjectVO;
import com.vci.ubcs.code.vo.universalInter.result.xml.XMLResultDataObjectDetailDO;
import com.vci.starter.poi.bo.SheetDataSet;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.ubcs.code.dto.CodeExportAttrDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import org.springblade.code.vo.pagemodel.*;
 
import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
 
/**
 * 主数据导入导出服务
 * @author weidy
 * @date 2022-3-6
 */
public interface MdmIOServiceI {
 
    /**
     * 导出主题库的数据
     * @param exportAttrDTO 导出相关的配置,必须要有主题库分类的主键
     * @return 导出的excel的文件
     */
    String exportCode(CodeExportAttrDTO exportAttrDTO);
 
    /**
     * 生成导入的文件
     * @param codeClassifyOid 分类的主键
     * @param isHistory 是否历史数据导入
     * @return excel的文件地址
     */
    String createImportExcel(String codeClassifyOid,boolean isHistory);
 
 
    /**
     * 生成导入的文件
     * @param codeClassifyOid 分类的主键
     * @return excel的文件地址
     */
    String downloadTopImportExcel(String codeClassifyOid);
 
 
    /**
     * 批量申请编码数据
     * @param orderDTO 编码申请信息,必须包含分类主键和码段的信息
     * @param file excel文件的信息
     * @return 有错误信息的excel
     */
    CodeImProtRusultVO batchImportCode(CodeOrderDTO orderDTO, File file);
 
    /***
     *批量申请编码数据
     * @param codeClassifyOid 分类的主键
     * @param classifyAttr 分类路径使用的属性
     * @param file excel文件的信息
     * @return 有错误信息的excel
     */
    CodeImProtRusultVO batchTopImportCode(String codeClassifyOid,String classifyAttr, File file);
    /***
     * 批量申请编码数据
     * @param orderDTO 编码申请信息,必须包含分类主键和码段的信息
     * @param templateVO//模板对象
     * @param dataSet//数据对象
     * @param  isNumType 是否检验枚举/参照
     * @return
     */
    List<String> batchImportCode(CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO, SheetDataSet dataSet, Map<String,String> errorMap, boolean isNumType);
 
    /**
     * 导入历史数据
     * @param codeClassifyOid 分类的主键
     * @param classifyAttr 分类路径使用的属性
     * @param file excel文件的信息
     * @return 有错误信息的excel
     */
    CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid,String classifyAttr, File file);
    /**
     * 集成批量申请数据
     * @param orderDTO 分类的主键
     * @param dataObjectVO 数据信息
     * @param resultDataObjectDetailDOs 错误信息
     * @return 有错误信息的excel
     */
    void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs);
    /**
     * 集成批量更改数据
     * @param codeClassifyVO;
     * @param dataObjectVO 数据信息
     * @param resultDataObjectDetailDOs 错误信息
     * @return 有错误信息的excel
     */
    void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO>  resultDataObjectDetailDOs);
    /***
     * 从redis缓存里获取到导入的数据
     * @param oid
     * @param redisOid
     * @return
     */
    public DataGrid<Map<String,String>> gridRowResemble(String oid, String redisOid);
    /***
     * 从redis缓存里获取到导入的数据
     * @param codeClssifyOid
     * @param redisOid
     * @return
     */
    DataGrid<Map<String,String>> gridDatas(String codeClssifyOid,String redisOid);
    /***
     * 根据导入缓存id获取分类
     * @param redisOid
     * @return
     */
    public List<CodeImportTemplateVO> gridclassifys(String redisOid);
 
    /**
     * 批量申请
     * @param codeImprotSaveDatVOList
     * @param isImprot
     * @return
     */
    public BaseResult batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot);
}