From 780578502875aa0c339cb73f11b1e635df458c77 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期三, 28 二月 2024 14:55:05 +0800
Subject: [PATCH] 系统调整

---
 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java |  289 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 278 insertions(+), 11 deletions(-)

diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
index 74b4779..b8f673f 100644
--- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
+++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -1,12 +1,16 @@
 package com.yuanchu.mom.controller;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.resource.ResourceUtil;
+import cn.hutool.core.text.csv.CsvData;
+import cn.hutool.core.text.csv.CsvReader;
+import cn.hutool.core.text.csv.CsvRow;
+import cn.hutool.core.text.csv.CsvUtil;
 import com.alibaba.fastjson.JSON;
 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.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;
@@ -18,8 +22,15 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Map;
+import javax.validation.constraints.NotBlank;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @RequestMapping("/dataReporting")
 @RestController
@@ -45,6 +56,12 @@
     @PostMapping("/upDataReporting")
     public Result upDataReporting(@RequestBody DataReporting dataReporting) {
         return Result.success(dataReportingService.updateDataReporting(dataReporting));
+    }
+
+    @ApiOperation(value = "鍒犻櫎鏁版嵁涓婃姤淇℃伅")
+    @PostMapping("/delDataReporting")
+    public Result delDataReporting(Integer id) {
+        return Result.success(dataReportingService.delDataReporting(id));
     }
 
     @ApiOperation(value = "鑾峰彇椤圭洰姹囨�诲垪琛�")
@@ -73,7 +90,7 @@
 
     @ApiOperation(value = "鍒犻櫎杩涚矇涓婃姤鍒楄〃")
     @PostMapping("/delFansSubmit")
-    public Result delFansSubmit(Integer id){
+    public Result delFansSubmit(Integer id) {
         return Result.success(fansSubmitService.delFansSubmit(id));
     }
 
@@ -86,7 +103,7 @@
     @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 = "鑾峰彇璐㈠姟涓婃姤鍒楄〃")
@@ -99,7 +116,7 @@
 
     @ApiOperation(value = "鍒犻櫎璐㈠姟涓婃姤鍒楄〃")
     @PostMapping("/delFinanceSubmit")
-    public Result delFinanceSubmit(Integer id){
+    public Result delFinanceSubmit(Integer id) {
         return Result.success(financeSubmitService.delFinanceSubmit(id));
     }
 
@@ -111,15 +128,265 @@
 
     @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, financeSubmit.getParam()));
     }
 
+    @ValueAuth
     @ApiOperation(value = "鑾峰彇棣栭〉鏁版嵁")
     @GetMapping("/getDataList")
-    @ValueAuth
     public Result<?> getDataList() {
         return Result.success(dataReportingService.getDataList());
     }
 
+    @ApiOperation(value = "瀵煎叆鏁版嵁涓婃姤鍒楄〃")
+    @PostMapping("/inputCsv")
+    public Result<?> inputCsv(@RequestParam("file") MultipartFile file, String param) throws IOException {
+        CsvReader reader = CsvUtil.getReader();
+        CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312"));
+        List<CsvRow> rows = data.getRows();
+        List<DataReporting> list = new ArrayList<>();
+        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("鏂囦欢涓棩鏈熷湪杞崲鏃跺嚭鐜伴敊璇�");
+        }
+        int fieldIndex = 5;
+        for (int i = 0; i < rows.size(); i++) {
+            if (JSON.toJSONString(rows.get(i)).contains("璐︽埛ID")) {
+                fieldIndex = i;
+                break;
+            }
+        }
+        for (int i = fieldIndex + 1; i < rows.size(); i++) {
+            DataReporting reporting = new DataReporting();
+            for (int i1 = 0; i1 < rows.get(fieldIndex).size(); i1++) {
+                String str = rows.get(i).get(i1);
+                if (str == null) continue;
+                switch (rows.get(fieldIndex).get(i1)) {
+                    case "璐︽埛":
+                        reporting.setName(str);
+                        break;
+                    case "澶囨敞":
+                        String[] split = str.split("-");
+                        if (split.length > 3) {
+                            reporting.setName2(split[0]);
+                            reporting.setChannel(split[2]);
+                            reporting.setAgent(split[3]);
+                            reporting.setProduct(split[1]);
+                            break;
+                        }
+                        reporting.setProduct(str);
+                        break;
+                    case "灞曠幇閲�":
+                        try {
+                            reporting.setShowNum(Integer.parseInt(str));
+                        } catch (Exception e) {
+                        }
+                        break;
+                    case "鐐瑰嚮閲�":
+                        try {
+                            reporting.setClick(Integer.parseInt(str));
+                        } catch (Exception e) {
+                        }
+                        break;
+                    case "娑堣垂":
+                        try {
+                            reporting.setAccountConsumption(new BigDecimal(str));
+                        } catch (Exception e) {
+                        }
+                        break;
+                }
+            }
+            list.add(reporting);
+        }
+        dataReportingService.addDataReporting(list, format, param);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鏂板鏁版嵁涓婃姤")
+    @PostMapping("/addDataReporting")
+    public Result<?> addDataReporting(@RequestBody DataReporting dataReporting) {
+        ArrayList<DataReporting> list = new ArrayList<>();
+        list.add(dataReporting);
+        dataReportingService.addDataReporting(list, null,dataReporting.getVxCard());
+        return Result.success();
+    }
+
+    @ApiOperation(value = "瀵煎嚭鏁版嵁涓婃姤鍒楄〃")
+    @PostMapping("/downDataReportingFile")
+    public Result downDataReportingFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        DataReportingPageDto dataReportingPageDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataReportingPageDto.class);
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downDataReportingFile(page, dataReportingPageDto));
+    }
+
+    @ApiOperation(value = "瀵煎嚭椤圭洰鏁版嵁缁熻鍒楄〃")
+    @PostMapping("/downProductCountFile")
+    public Result downProductCountFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        ProductCountDto productCountDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), ProductCountDto.class);
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downProductCountFile(page, productCountDto));
+    }
+
+    @ApiOperation(value = "瀵煎嚭鍛樺伐鏁版嵁缁熻鍒楄〃")
+    @PostMapping("/downRegistrantCountFile")
+    public Result downRegistrantCountFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        RegistrantCountDto registrantCountDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), RegistrantCountDto.class);
+        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, String param) 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 "浠g悊鍟�":
+                        financeSubmit.setCompany(str);
+                        break;
+                    case "璐︽埛鍚�":
+                        financeSubmit.setName(str);
+                        break;
+                    case "閲戦":
+                        try {
+                            financeSubmit.setConsumption(new BigDecimal(str));
+                        } catch (Exception e) {
+                        }
+                        break;
+                    case "浠g悊杩旂偣":
+                        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, param);
+        }
+        return Result.success();
+    }
+
+    @ApiOperation(value = "涓�閿垹闄ゆ墍鏈夋暟鎹笂鎶ョ殑鏁版嵁")
+    @PostMapping("/deleteAllData")
+    public Result deleteAllData(String date) {
+        dataReportingService.deleteAllData(date);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鑾峰彇鏁版嵁涓婃姤鐨勭櫥璁颁汉绛涢�夐」")
+    @PostMapping("/selectDataReportingForCreateUserNames")
+    @ValueAuth
+    public Result selectDataReportingForCreateUserNames(String time) {
+        return Result.success(dataReportingService.selectDataReportingForCreateUserNames(time));
+    }
+
+    @ApiOperation(value = "鑾峰彇寰俊鍙峰垪琛�")
+    @GetMapping("/selectVxs")
+    @ValueAuth
+    public Result selectVxs(String time) {
+        return Result.success(fansSubmitService.vxs(time));
+    }
+
+    @ApiOperation(value = "鎵归噺淇敼寰俊鍙�")
+    @PostMapping("/updateVxCards")
+    public Result updateVxCards(String str){
+        List<DataReporting> list = JSON.parseArray(str, DataReporting.class);
+        return Result.success(dataReportingService.updateVxCards(list));
+    }
 }

--
Gitblit v1.9.3