| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.yuanchu.mom.annotation.ValueAuth; |
| | | import com.yuanchu.mom.common.GetLook; |
| | | import com.yuanchu.mom.dto.DataReportingCsvDto; |
| | | import com.yuanchu.mom.dto.DataReportingPageDto; |
| | | import com.yuanchu.mom.dto.ProductCountDto; |
| | | import com.yuanchu.mom.dto.RegistrantCountDto; |
| | | import com.yuanchu.mom.dto.*; |
| | | import com.yuanchu.mom.exception.ErrorException; |
| | | import com.yuanchu.mom.pojo.DataReporting; |
| | | import com.yuanchu.mom.pojo.FansSubmit; |
| | | import com.yuanchu.mom.pojo.FinanceSubmit; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.nio.file.Files; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | @RequestMapping("/dataReporting") |
| | | @RestController |
| | |
| | | @ApiOperation(value = "添加进粉上报信息") |
| | | @PostMapping("/addFansSubmit") |
| | | public Result<?> addFansSubmit(@RequestBody FansSubmit fansSubmit) { |
| | | return Result.success(fansSubmitService.addFansSubmit(fansSubmit)); |
| | | return Result.success(fansSubmitService.addFansSubmit(fansSubmit, null)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取财务上报列表") |
| | |
| | | |
| | | @ApiOperation(value = "添加财务上报信息") |
| | | @PostMapping("/addFinanceSubmit") |
| | | public Result<?> addFinanceSubmit(@RequestBody FinanceSubmit financeSubmit) { |
| | | return Result.success(financeSubmitService.addFinanceSubmit(financeSubmit)); |
| | | public Result<?> addFinanceSubmit(@RequestBody FinanceSubmit financeSubmit, String date) { |
| | | return Result.success(financeSubmitService.addFinanceSubmit(financeSubmit, date)); |
| | | } |
| | | |
| | | @ValueAuth |
| | |
| | | CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312")); |
| | | List<CsvRow> rows = data.getRows(); |
| | | List<DataReporting> list = new ArrayList<>(); |
| | | for (int i = 5; i < rows.size(); i++) { |
| | | String format; |
| | | try { |
| | | format = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyyMMdd").parse(rows.get(2).get(0).split(":")[1])); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | throw new ErrorException("文件中日期在转换时出现错误"); |
| | | } |
| | | for (int i = 6; i < rows.size(); i++) { |
| | | DataReporting reporting = new DataReporting(); |
| | | reporting.setName(rows.get(i).get(0)) |
| | | .setProduct(rows.get(i).get(1)) |
| | | .setShowNum(Integer.valueOf(rows.get(i).get(3))) |
| | | .setClick(Integer.valueOf(rows.get(i).get(4))) |
| | | // .setAvgPrice(new BigDecimal(rows.get(i).get(5))) |
| | | .setAccountConsumption(new BigDecimal(rows.get(i).get(6))); |
| | | // .setSearchBalance(new BigDecimal(rows.get(i).get(6))) |
| | | // .setInfoBalance(new BigDecimal(rows.get(i).get(7))) |
| | | // .setVxClick(Double.valueOf(rows.get(i).get(8))) |
| | | // .setClickThroughRate(rows.get(i).get(9)); |
| | | 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 "账户": |
| | | reporting.setName(str); |
| | | break; |
| | | case "备注": |
| | | String[] split = str.split("-"); |
| | | if (split.length == 4) { |
| | | reporting.setName2(split[0]); |
| | | reporting.setChannel(split[1]); |
| | | reporting.setAgent(split[2]); |
| | | reporting.setProduct(split[3]); |
| | | break; |
| | | } |
| | | reporting.setProduct(str); |
| | | break; |
| | | case "展现量": |
| | | reporting.setShowNum(Integer.parseInt(str)); |
| | | break; |
| | | case "点击量": |
| | | reporting.setClick(Integer.parseInt(str)); |
| | | break; |
| | | case "消费": |
| | | reporting.setAccountConsumption(new BigDecimal(str)); |
| | | break; |
| | | } |
| | | } |
| | | list.add(reporting); |
| | | } |
| | | dataReportingService.addDataReporting(list); |
| | | dataReportingService.addDataReporting(list, format); |
| | | return Result.success(); |
| | | } |
| | | |
| | |
| | | public Result<?> addDataReporting(@RequestBody DataReporting dataReporting) { |
| | | ArrayList<DataReporting> list = new ArrayList<>(); |
| | | list.add(dataReporting); |
| | | dataReportingService.addDataReporting(list); |
| | | dataReportingService.addDataReporting(list, null); |
| | | return Result.success(); |
| | | } |
| | | |
| | |
| | | return Result.success("导出成功", dataReportingService.downRegistrantCountFile(page, registrantCountDto)); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出进粉上报列表") |
| | | @PostMapping("/downFansSubmitFile") |
| | | public Result downFansSubmitFile(@RequestBody Map<String, Object> data) { |
| | | Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class); |
| | | FansSubmit fansSubmit = JSON.parseObject(JSON.toJSONString(data.get("entity")), FansSubmit.class); |
| | | return Result.success("导出成功", dataReportingService.downFansSubmitFile(page, fansSubmit)); |
| | | } |
| | | |
| | | @ApiOperation(value = "导入进粉上报列表") |
| | | @PostMapping("/inputFansSubmitCsv") |
| | | public Result<?> inputFansSubmitCsv(@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++) { |
| | | FansSubmit fansSubmit = new FansSubmit(); |
| | | 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 "客户": |
| | | fansSubmit.setCustom(str); |
| | | break; |
| | | case "项目": |
| | | fansSubmit.setProduct(str); |
| | | break; |
| | | case "微信号": |
| | | fansSubmit.setVx(str); |
| | | break; |
| | | case "进粉": |
| | | fansSubmit.setFansAdd(Integer.parseInt(str)); |
| | | break; |
| | | } |
| | | } |
| | | fansSubmitService.addFansSubmit(fansSubmit, format); |
| | | } |
| | | return Result.success(); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取数据对比列表") |
| | | @PostMapping("/selectDataComparisonDtoPageList") |
| | | public Result selectDataComparisonDtoPageList(@RequestBody Map<String, Object> data) { |
| | | Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class); |
| | | DataComparisonDto dataComparisonDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataComparisonDto.class); |
| | | Map<String, Object> stringObjectMap = dataReportingService.selectDataComparisonDtoPageList(page, dataComparisonDto); |
| | | return Result.success(stringObjectMap); |
| | | } |
| | | |
| | | @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(); |
| | | } |
| | | } |