李林
2024-01-09 d0c3258ed4871f2b9f03357bfd39b6caeff156b0
data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -286,6 +286,72 @@
        return Result.success(stringObjectMap);
    }
    public static void main(String[] args) {
    @ApiOperation(value = "导出财务上报列表")
    @PostMapping("/downFinanceSubmitFile")
    public Result downFinanceSubmitFile(@RequestBody Map<String, Object> data) {
        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
        FinanceSubmit financeSubmit = JSON.parseObject(JSON.toJSONString(data.get("entity")), FinanceSubmit.class);
        return Result.success("导出成功", dataReportingService.downFinanceSubmitFile(page, financeSubmit));
    }
    @ApiOperation(value = "导入财务上报列表")
    @PostMapping("/inputFinanceSubmitCsv")
    public Result<?> inputFinanceSubmitCsv(@RequestParam("file") MultipartFile file) throws IOException {
        CsvReader reader = CsvUtil.getReader();
        CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312"));
        List<CsvRow> rows = data.getRows();
        String format;
        try {
            format = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyyMMdd").parse(rows.get(2).get(0).split(":")[1]));
        } catch (ParseException e) {
            throw new ErrorException("文件中日期在转换时出现错误");
        }
        for (int i = 6; i < rows.size(); i++) {
            FinanceSubmit financeSubmit = new FinanceSubmit();
            for (int i1 = 0; i1 < rows.get(5).size(); i1++) {
                String str = rows.get(i).get(i1);
                if (str == null) continue;
                switch (rows.get(5).get(i1)) {
                    case "代理商":
                        financeSubmit.setCompany(str);
                        break;
                    case "账户名":
                        financeSubmit.setName(str);
                        break;
                    case "金额":
                        try {
                            financeSubmit.setConsumption(new BigDecimal(str));
                        } catch (Exception e) {
                        }
                        break;
                    case "代理返点":
                        try {
                            financeSubmit.setAgentRebate(new BigDecimal(str));
                        } catch (Exception e) {
                        }
                        break;
                    case "打款人民币":
                        try {
                            financeSubmit.setMoney(new BigDecimal(str));
                        } catch (Exception e) {
                        }
                        break;
                    case "员工返点":
                        try {
                            financeSubmit.setEmployeeRebate(new BigDecimal(str));
                        } catch (Exception e) {
                        }
                        break;
                    case "员工返点人民币":
                        try {
                            financeSubmit.setEmployeeRebateMoney(new BigDecimal(str));
                        } catch (Exception e) {
                        }
                        break;
                }
            }
            financeSubmitService.addFinanceSubmit(financeSubmit, format);
        }
        return Result.success();
    }
}