DataImportController.java 12.8 KB
Newer Older
eddie.woo's avatar
eddie.woo committed
1 2
package pwc.taxtech.atms.controller;

gary's avatar
gary committed
3
import com.alibaba.fastjson.JSONArray;
4
import org.apache.commons.lang3.StringUtils;
gary's avatar
gary committed
5 6 7
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.message.ErrorMessage;
kevin's avatar
kevin committed
8
import pwc.taxtech.atms.dao.ProjectMapper;
eddie.woo's avatar
eddie.woo committed
9
import pwc.taxtech.atms.dpo.PagingDto;
gary's avatar
gary committed
10
import pwc.taxtech.atms.dto.*;
gary's avatar
gary committed
11
import pwc.taxtech.atms.dto.dataimport.DataImportAllParam;
gary's avatar
gary committed
12
import pwc.taxtech.atms.dto.dataimport.DataImportParam;
gary's avatar
gary committed
13
import pwc.taxtech.atms.dto.dataimport.DataProcessParam;
gary's avatar
gary committed
14
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
eddie.woo's avatar
eddie.woo committed
15 16
import pwc.taxtech.atms.dto.vatdto.TrialBalanceDto;
import pwc.taxtech.atms.dto.vatdto.TrialBalanceParam;
kevin's avatar
kevin committed
17 18
import pwc.taxtech.atms.entity.Project;
import pwc.taxtech.atms.entity.ProjectExample;
gary's avatar
gary committed
19
import pwc.taxtech.atms.exception.ServiceException;
eddie.woo's avatar
eddie.woo committed
20
import pwc.taxtech.atms.service.impl.DataImportService;
21
import pwc.taxtech.atms.service.impl.DidiFileUploadService;
eddie.woo's avatar
eddie.woo committed
22
import pwc.taxtech.atms.service.impl.LgGlBalanceService;
eddie.woo's avatar
eddie.woo committed
23 24

import javax.annotation.Resource;
eddie.woo's avatar
eddie.woo committed
25
import java.util.List;
eddie.woo's avatar
eddie.woo committed
26 27 28

@RestController
@RequestMapping("/api/v1/DataImport/")
eddie.woo's avatar
eddie.woo committed
29
public class DataImportController extends BaseController {
eddie.woo's avatar
eddie.woo committed
30 31 32

    @Resource
    private DataImportService dataImportService;
eddie.woo's avatar
eddie.woo committed
33 34
    @Resource
    private LgGlBalanceService lgGlBalanceService;
eddie.woo's avatar
eddie.woo committed
35

36 37
    @Resource
    private DidiFileUploadService didiFileUploadService;
eddie.woo's avatar
eddie.woo committed
38
    @PostMapping("GetBalanceDataForDisplay")
eddie.woo's avatar
eddie.woo committed
39
    public PagingResultDto<TrialBalanceDto> getBalanceDataForDisplay(@RequestBody TrialBalanceParam param) {
eddie.woo's avatar
eddie.woo committed
40
        PagingResultDto<TrialBalanceDto> resultDto = new PagingResultDto<>();
eddie.woo's avatar
eddie.woo committed
41 42 43 44 45
        List<TrialBalanceDto> list = dataImportService.getBalanceDataForDisplay(param);
        PagingDto pagingDto = new PagingDto();
//        pagingDto.setPageIndex(1);
//        pagingDto.setPageSize(100);
//        pagingDto.setTotalCount(list);
eddie.woo's avatar
eddie.woo committed
46
        resultDto.setPageInfo(pagingDto);
eddie.woo's avatar
eddie.woo committed
47 48
        resultDto.setList(list);
        resultDto.setCalculateData(dataImportService.calculateData(list));
eddie.woo's avatar
eddie.woo committed
49 50 51 52 53 54
        return resultDto;
    }

    @PostMapping("queryGlBalance")
    public ApiResultDto queryGlBalance(@RequestBody TrialBalanceParam param) {
        ApiResultDto resultDto = new ApiResultDto();
55
        lgGlBalanceService.queryGlBalance(param.getOrgId(), param.getPeriodStart(), param.getPeriodEnd());
eddie.woo's avatar
eddie.woo committed
56
        return resultDto;
eddie.woo's avatar
eddie.woo committed
57
    }
gary's avatar
gary committed
58 59 60

    @ResponseBody
    @RequestMapping(value = "PLExcelFile", method = RequestMethod.POST)
61
    public OperationResultDto importPLExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
gary's avatar
gary committed
62
        try {
63 64 65 66 67
            // 这里可以写aop简化代码,我没时间先不写了:)
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
gary's avatar
gary committed
68
            }
69
            return dataImportService.importPLExcelFile(file, orgList,periodDate,importType);
gary's avatar
gary committed
70 71 72
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
73 74
            logger.error("importPLExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
gary's avatar
gary committed
75 76 77 78 79
        }
    }

    @ResponseBody
    @RequestMapping(value = "BSExcelFile", method = RequestMethod.POST)
80
    public OperationResultDto importBSExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
gary's avatar
gary committed
81
        try {
82 83 84 85
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
gary's avatar
gary committed
86
            }
87
            return dataImportService.importBSExcelFile(file,orgList, periodDate,importType);
gary's avatar
gary committed
88 89 90
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
91 92 93 94 95 96 97
            logger.error("importBSExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

    @ResponseBody
    @RequestMapping(value = "RLITExcelFile", method = RequestMethod.POST)
gary's avatar
gary committed
98
    public OperationResultDto importRLITExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
99
        try {
gary's avatar
gary committed
100
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
101 102 103 104
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
            }
gary's avatar
gary committed
105
            return dataImportService.importRLITExcelFile(file,orgList, periodDate,importType);
106 107 108 109 110 111 112 113 114 115
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importRLITExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

    @ResponseBody
    @RequestMapping(value = "ATExcelFile", method = RequestMethod.POST)
gary's avatar
gary committed
116
    public OperationResultDto importATExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
117
        try {
gary's avatar
gary committed
118
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
119 120 121 122
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
            }
gary's avatar
gary committed
123
            return dataImportService.importATExcelFile(file, orgList,periodDate,importType);
124 125 126 127 128
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importATExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
gary's avatar
gary committed
129 130 131
        }
    }

kevin's avatar
kevin committed
132

gary's avatar
gary committed
133 134
    @ResponseBody
    @RequestMapping(value = "CFExcelFile", method = RequestMethod.POST)
135
    public OperationResultDto importCFExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
gary's avatar
gary committed
136
        try {
137 138 139 140
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
gary's avatar
gary committed
141
            }
142
            return dataImportService.importCFExcelFile(file,orgList, periodDate,importType);
gary's avatar
gary committed
143 144 145
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
146
            logger.error("importCFExcelFile error.", e);
gary's avatar
gary committed
147 148 149 150 151 152
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

    @ResponseBody
    @RequestMapping(value = "CPRExcelFile", method = RequestMethod.POST)
gary's avatar
gary committed
153
    public OperationResultDto importCPRExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
gary's avatar
gary committed
154
        try {
gary's avatar
gary committed
155
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
156 157 158 159
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
            }
gary's avatar
gary committed
160
            return dataImportService.importCPRExcelFile(file,orgList, periodDate,importType);
gary's avatar
gary committed
161 162 163 164 165 166 167 168
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importATExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

169 170
    @ResponseBody
    @RequestMapping(value = "IDExcelFile", method = RequestMethod.POST)
171
    public OperationResultDto importIDExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
172
        try {
173 174 175 176
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
177
            }
178
            return dataImportService.importIDExcelFile(file,orgList, periodDate,importType);
179 180 181 182 183 184 185 186
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importIDExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

gary's avatar
gary committed
187 188 189 190 191
    @ResponseBody
    @RequestMapping(value = "IRExcelFile", method = RequestMethod.POST)
    public OperationResultDto importIRExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
        try {
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
192 193 194 195
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
            }
gary's avatar
gary committed
196 197 198 199 200 201 202 203 204 205 206
            return dataImportService.importIRExcelFile(file,orgList, periodDate,importType);
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importIRExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

    @ResponseBody
    @RequestMapping(value = "CILExcelFile", method = RequestMethod.POST)
207
    public OperationResultDto importCILExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
gary's avatar
gary committed
208
        try {
209 210 211 212
            List<String> orgList = (List<String>)JSONArray.parse(orgIds);
            String valMsg = valParameter(file,orgList,periodDate);
            if(StringUtils.isNotEmpty(valMsg)){
                return OperationResultDto.error(valMsg);
gary's avatar
gary committed
213
            }
214
            return dataImportService.importCILExcelFile(file,orgList, periodDate,importType);
gary's avatar
gary committed
215 216 217 218 219 220 221 222
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("importCILExcelFile error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

gary's avatar
gary committed
223
    @ResponseBody
gary's avatar
gary committed
224 225 226 227 228
    @RequestMapping(value = "displayImportLog", method = RequestMethod.POST)
    public CamelPagingResultDto<DataImportLogDto> displayImportLog(@RequestBody DataImportParam param) {
        return new CamelPagingResultDto<>(dataImportService.displayImportLog(param));
    }

gary's avatar
gary committed
229 230 231 232 233 234
    @ResponseBody
    @RequestMapping(value = "displayImportLogAll", method = RequestMethod.POST)
    public CamelPagingResultDto<DataImportLogDto> displayImportLogAll(@RequestBody DataImportAllParam param) {
        return new CamelPagingResultDto<>(dataImportService.displayImportLogAll(param));
    }

gary's avatar
gary committed
235
    @ResponseBody
gary's avatar
gary committed
236
    @RequestMapping(value = "displayProcessLog", method = RequestMethod.POST)
gary's avatar
gary committed
237
    public CamelPagingResultDto<DataValidateLogDto> displayProcessLog(@RequestBody DataProcessParam param) {
gary's avatar
gary committed
238
        return new CamelPagingResultDto<>(dataImportService.displayProcessLog(param));
gary's avatar
gary committed
239
    }
gary's avatar
gary committed
240

gary's avatar
gary committed
241 242 243
    @ResponseBody
    @RequestMapping(value = "callExtractFinancialData", method = RequestMethod.POST)
    public OperationResultDto callExtractFinancialData(@RequestBody DataExtractParam dataExtractParam) {
gary's avatar
gary committed
244
        try {
gary's avatar
gary committed
245 246 247
            return dataImportService.callExtractFinancialData(dataExtractParam);
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
gary's avatar
gary committed
248
        } catch (Exception e) {
gary's avatar
gary committed
249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
            logger.error("callExtractFinancialData error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
        }
    }

    @ResponseBody
    @RequestMapping(value = "callExtractInvoiceData", method = RequestMethod.POST)
    public OperationResultDto callExtractInvoiceData(@RequestBody DataExtractParam dataExtractParam) {
        try {
            return dataImportService.callExtractInvoiceData(dataExtractParam);
        } catch (ServiceException e) {
            return OperationResultDto.error(e.getMessage());
        } catch (Exception e) {
            logger.error("callExtractInvoiceData error.", e);
            return OperationResultDto.error(ErrorMessage.SystemError);
gary's avatar
gary committed
264 265
        }
    }
266 267 268 269 270 271 272 273 274 275 276 277 278

    private String valParameter(MultipartFile file,List<String> orgList,String periodDate){
        if (null == file) {
            return ErrorMessage.NoFile;
        }
        if(orgList.size()<1){
            return ErrorMessage.DidntSelectedCompany;
        }
        if(StringUtils.isEmpty(periodDate)){
            return ErrorMessage.DidntSelectedPeriod;
        }
        return null;
    }
gary's avatar
gary committed
279

eddie.woo's avatar
eddie.woo committed
280
}