From 7cf8ae446e880537a38bd7ac403bd53741a5294f Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期一, 08 一月 2024 09:21:19 +0800
Subject: [PATCH] 修订版2.0
---
data-server/src/main/java/com/yuanchu/mom/dto/DataReportingCsvDto.java | 1
data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java | 2
data-server/src/main/java/com/yuanchu/mom/service/FinanceSubmitService.java | 2
data-server/src/main/java/com/yuanchu/mom/pojo/FansSubmit.java | 2
data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java | 113 +++++++++++++++---
data-server/src/main/java/com/yuanchu/mom/pojo/DataReporting.java | 37 ++---
data-server/src/main/resources/mapper/DataReportingMapper.xml | 4
data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java | 37 ++++++
data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java | 23 +++
data-server/src/main/java/com/yuanchu/mom/service/FansSubmitService.java | 2
data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java | 5
framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java | 2
data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java | 54 +++++---
data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java | 60 ++++++++-
14 files changed, 260 insertions(+), 84 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 b018ee4..30d1cac 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
@@ -15,6 +15,7 @@
import com.yuanchu.mom.dto.DataReportingPageDto;
import com.yuanchu.mom.dto.ProductCountDto;
import com.yuanchu.mom.dto.RegistrantCountDto;
+import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DataReporting;
import com.yuanchu.mom.pojo.FansSubmit;
import com.yuanchu.mom.pojo.FinanceSubmit;
@@ -36,10 +37,12 @@
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
@@ -112,7 +115,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 = "鑾峰彇璐㈠姟涓婃姤鍒楄〃")
@@ -137,8 +140,8 @@
@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
@@ -155,21 +158,47 @@
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();
}
@@ -178,7 +207,7 @@
public Result<?> addDataReporting(@RequestBody DataReporting dataReporting) {
ArrayList<DataReporting> list = new ArrayList<>();
list.add(dataReporting);
- dataReportingService.addDataReporting(list);
+ dataReportingService.addDataReporting(list, null);
return Result.success();
}
@@ -206,4 +235,48 @@
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();
+ }
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingCsvDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingCsvDto.java
index 96905f9..a97c873 100644
--- a/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingCsvDto.java
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingCsvDto.java
@@ -2,7 +2,6 @@
import cn.hutool.core.annotation.Alias;
import lombok.AllArgsConstructor;
-import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java
index 9b93280..0d68c56 100644
--- a/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java
@@ -13,12 +13,10 @@
@NoArgsConstructor
public class DataReportingPageDto extends DataReporting {
- @Alias("鍒涘缓鐢ㄦ埛")
@ValueTableShow(21)
@ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
private String createUserName;
- @Alias("鏇存柊鐢ㄦ埛")
@ValueTableShow(22)
@ApiModelProperty(value = "鏇存柊鐢ㄦ埛")
private String updateUserName;
diff --git a/data-server/src/main/java/com/yuanchu/mom/pojo/DataReporting.java b/data-server/src/main/java/com/yuanchu/mom/pojo/DataReporting.java
index acfaf60..ad81cb9 100644
--- a/data-server/src/main/java/com/yuanchu/mom/pojo/DataReporting.java
+++ b/data-server/src/main/java/com/yuanchu/mom/pojo/DataReporting.java
@@ -44,7 +44,6 @@
/**
* 鐧昏浜�
*/
- @Alias("鐧昏浜�")
@Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ApiModelProperty("鐧昏浜�")
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@@ -53,7 +52,6 @@
/**
* 閮ㄩ棬
*/
- @Alias("閮ㄩ棬")
@Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ApiModelProperty("閮ㄩ棬")
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@@ -62,25 +60,34 @@
/**
* 璐︽埛鍚�
*/
- @Alias("璐︽埛鍚�")
@Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ApiModelProperty("璐︽埛鍚�")
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ValueTableShow(3)
private String name;
+
+ @ApiModelProperty("濮撳悕")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ValueTableShow(4)
+ private String name2;
+
/**
* 娓犻亾
*/
- @Alias("娓犻亾")
@Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ApiModelProperty("娓犻亾")
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ValueTableShow(4)
private String channel;
+
+ @ApiModelProperty("浠g悊鍟�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ValueTableShow(4)
+ private String agent;
+
/**
* 椤圭洰
*/
- @Alias("椤圭洰")
@Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@ApiModelProperty("椤圭洰")
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
@@ -89,105 +96,90 @@
/**
* 灞曠幇閲�
*/
- @Alias("灞曠幇閲�")
@ApiModelProperty("灞曠幇閲�")
@ValueTableShow(6)
private Integer showNum;
/**
* 鐐瑰嚮閲�
*/
- @Alias("鐐瑰嚮閲�")
@ApiModelProperty("鐐瑰嚮閲�")
@ValueTableShow(7)
private Integer click;
/**
* 璐︽埛娑堣垂
*/
- @Alias("璐︽埛娑堣垂")
@ApiModelProperty("璐︽埛娑堣垂")
@ValueTableShow(8)
private BigDecimal accountConsumption;
/**
* 瀹㈡埛杩旂偣娑堣垂
*/
- @Alias("瀹㈡埛杩旂偣娑堣垂")
@ApiModelProperty("瀹㈡埛杩旂偣娑堣垂")
@ValueTableShow(9)
private BigDecimal rebateConsumption;
/**
* 娑堣垂
*/
- @Alias("娑堣垂")
@ApiModelProperty("娑堣垂")
@ValueTableShow(10)
private BigDecimal consumption;
/**
* 鎶樺悗娑堣垂
*/
- @Alias("鎶樺悗娑堣垂")
@ApiModelProperty("鎶樺悗娑堣垂")
@ValueTableShow(11)
private BigDecimal discountedConsumption;
/**
* 杩涚矇
*/
- @Alias("杩涚矇")
@ApiModelProperty("杩涚矇")
@ValueTableShow(12)
private Integer fansAdd;
/**
* 瀹為檯鎴愭湰
*/
- @Alias("瀹為檯鎴愭湰")
@ApiModelProperty("瀹為檯鎴愭湰")
@ValueTableShow(13)
private BigDecimal actualCost;
/**
* 鍐呴儴鎴愭湰
*/
- @Alias("鍐呴儴鎴愭湰")
@ApiModelProperty("鍐呴儴鎴愭湰")
@ValueTableShow(14)
private BigDecimal internalCosts;
/**
* 瀹㈡埛鎴愭湰
*/
- @Alias("瀹㈡埛鎴愭湰")
@ApiModelProperty("瀹㈡埛鎴愭湰")
@ValueTableShow(15)
private BigDecimal customerCosts;
/**
* 鍒╂鼎
*/
- @Alias("鍒╂鼎")
@ApiModelProperty("鍒╂鼎")
@ValueTableShow(16)
private BigDecimal profit;
/**
* 浠g悊杩旂偣
*/
- @Alias("浠g悊杩旂偣")
- @ApiModelProperty("浠g悊杩旂偣")
+ @ApiModelProperty("鍛樺伐浠g悊杩旂偣")
@ValueTableShow(17)
private BigDecimal agentRebate;
/**
* 瀹㈡埛杩旂偣
*/
- @Alias("瀹㈡埛杩旂偣")
@ApiModelProperty("瀹㈡埛杩旂偣")
@ValueTableShow(18)
private BigDecimal customerRebate;
/**
* 澶囩敤瀛楁
*/
- @Alias("澶囩敤瀛楁")
- @ApiModelProperty("澶囩敤瀛楁")
+ @ApiModelProperty("鍋氳繘鏉�")
@ValueTableShow(23)
private BigDecimal remark;
/**
*
*/
- @Alias("鍒涘缓鏃堕棿")
@ApiModelProperty("鍒涘缓鏃堕棿")
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -196,7 +188,6 @@
/**
*
*/
- @Alias("鏇存柊鏃堕棿")
@ApiModelProperty("鏇存柊鏃堕棿")
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/data-server/src/main/java/com/yuanchu/mom/pojo/FansSubmit.java b/data-server/src/main/java/com/yuanchu/mom/pojo/FansSubmit.java
index a0dc70f..f10dbb3 100644
--- a/data-server/src/main/java/com/yuanchu/mom/pojo/FansSubmit.java
+++ b/data-server/src/main/java/com/yuanchu/mom/pojo/FansSubmit.java
@@ -97,4 +97,6 @@
@ApiModelProperty("鏇存柊鐢ㄦ埛")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateUser;
+
+ private Integer dataId;
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java b/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java
index cd5080b..4cca3bc 100644
--- a/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java
+++ b/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java
@@ -37,6 +37,14 @@
@TableId(type = IdType.AUTO)
private Integer id;
/**
+ * 浠g悊鍏徃
+ */
+ @ValueTableShow
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("浠g悊鍟�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String company;
+ /**
* 璐︽埛鍚�
*/
@ValueTableShow
@@ -45,37 +53,35 @@
@Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
private String name;
/**
- * 浠g悊鍏徃
- */
- @ValueTableShow
- @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
- @ApiModelProperty("浠g悊鍏徃")
- @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
- private String company;
- /**
* 娑堣垂閲戦
*/
@ValueTableShow
- @ApiModelProperty("娑堣垂閲戦")
+ @ApiModelProperty("閲戦")
private BigDecimal consumption;
/**
- * 鍏呭�奸噾棰�
- */
- @ValueTableShow
- @ApiModelProperty("鍏呭�奸噾棰�")
- private BigDecimal recharge;
- /**
- * 閫�娆鹃噾棰�
- */
- @ValueTableShow
- @ApiModelProperty("閫�娆鹃噾棰�")
- private BigDecimal refund;
- /**
- * 浠g悊杩旂偣
- */
+ * 浠g悊杩旂偣
+ */
@ValueTableShow
@ApiModelProperty("浠g悊杩旂偣")
private BigDecimal agentRebate;
+ /**
+ * 鎵撴浜烘皯甯�
+ */
+ @ValueTableShow
+ @ApiModelProperty("鎵撴浜烘皯甯�")
+ private BigDecimal money;
+ /**
+ * 鍛樺伐杩旂偣
+ */
+ @ValueTableShow
+ @ApiModelProperty("鍛樺伐杩旂偣")
+ private BigDecimal employeeRebate;
+ /**
+ * 鍛樺伐杩旂偣浜烘皯甯�
+ */
+ @ValueTableShow
+ @ApiModelProperty("鍛樺伐杩旂偣浜烘皯甯�")
+ private BigDecimal employeeRebateMoney;
/**
* 鍒涘缓鏃堕棿
*/
@@ -109,5 +115,7 @@
@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateUser;
+ private Integer dataId;
+
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
index c779ced..e60467f 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
@@ -6,6 +6,7 @@
import com.yuanchu.mom.dto.RegistrantCountDto;
import com.yuanchu.mom.pojo.DataReporting;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.FansSubmit;
import java.util.List;
import java.util.Map;
@@ -27,7 +28,7 @@
Map<String, Object> getDataList();
- void addDataReporting(List<DataReporting> list);
+ void addDataReporting(List<DataReporting> list, String date);
Integer delDataReporting(Integer id);
@@ -37,4 +38,6 @@
String downRegistrantCountFile(IPage<RegistrantCountDto> page, RegistrantCountDto registrantCountDto);
+ String downFansSubmitFile(IPage<FansSubmit> page, FansSubmit fansSubmit);
+
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/FansSubmitService.java b/data-server/src/main/java/com/yuanchu/mom/service/FansSubmitService.java
index 6e7653c..d233e54 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/FansSubmitService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/FansSubmitService.java
@@ -20,6 +20,6 @@
int updateFansSubmit(FansSubmit fansSubmit);
- int addFansSubmit(FansSubmit fansSubmit);
+ int addFansSubmit(FansSubmit fansSubmit, String date);
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/FinanceSubmitService.java b/data-server/src/main/java/com/yuanchu/mom/service/FinanceSubmitService.java
index b730773..935e6bb 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/FinanceSubmitService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/FinanceSubmitService.java
@@ -20,6 +20,6 @@
int updateFinanceSubmit(FinanceSubmit financeSubmit);
- int addFinanceSubmit(FinanceSubmit financeSubmit);
+ int addFinanceSubmit(FinanceSubmit financeSubmit, String date);
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
index c978ba5..efe7b8d 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
@@ -19,15 +19,19 @@
import com.yuanchu.mom.dto.DataReportingPageDto;
import com.yuanchu.mom.dto.ProductCountDto;
import com.yuanchu.mom.dto.RegistrantCountDto;
+import com.yuanchu.mom.mapper.FansSubmitMapper;
import com.yuanchu.mom.pojo.DataReporting;
+import com.yuanchu.mom.pojo.FansSubmit;
import com.yuanchu.mom.service.DataReportingService;
import com.yuanchu.mom.mapper.DataReportingMapper;
+import com.yuanchu.mom.service.FansSubmitService;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.utils.ServletUtils;
import lombok.AllArgsConstructor;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -35,12 +39,12 @@
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -60,6 +64,12 @@
@Value("${outPath}")
private String outPath;
+
+ @Resource
+ private FansSubmitMapper fansSubmitMapper;
+
+ @Resource
+ private FansSubmitService fansSubmitService;
@Override
public Map<String, Object> selectDataReportingList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) {
@@ -123,12 +133,15 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void addDataReporting(List<DataReporting> list) {
+ public void addDataReporting(List<DataReporting> list, String date) {
int userId = Integer.parseInt(JSONUtil.parseObj(new Jwt().readJWT(ServletUtils.getRequest().getHeader("token")).get("data")).get("id") + "");
Map<String, String> map = dataReportingMapper.selectUser(userId);
for (DataReporting dataReporting : list) {
- if (dataReporting.getName() == null) dataReporting.setName(map.get("account"));
- DataReporting one = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getProduct, dataReporting.getProduct()).eq(DataReporting::getName, dataReporting.getName()));
+ if (dataReporting.getName() == null || dataReporting.getName().equals("")) dataReporting.setName(map.get("account"));
+ if (date == null) {
+ date = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ };
+ DataReporting one = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getProduct, dataReporting.getProduct()).eq(DataReporting::getName, dataReporting.getName()).like(DataReporting::getCreateTime, date));
try {
dataReporting.setRebateConsumption(dataReporting.getAccountConsumption().divide(dataReporting.getCustomerRebate(), 2, RoundingMode.HALF_UP));
} catch (Exception e) {
@@ -156,6 +169,7 @@
if (ObjectUtil.isEmpty(one)) {
dataReporting.setRegistrant(map.get("name"));
dataReporting.setDepartment(map.get("department"));
+ dataReporting.setCreateTime(LocalDateTime.parse(date + " " + new SimpleDateFormat("HH:mm:ss").format(new Date()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
dataReportingMapper.insert(dataReporting);
} else {
dataReporting.setId(one.getId());
@@ -165,8 +179,11 @@
}
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public Integer delDataReporting(Integer id) {
+ List<FansSubmit> fansSubmits = fansSubmitMapper.selectList(Wrappers.<FansSubmit>lambdaQuery().eq(FansSubmit::getDataId, id).select(FansSubmit::getId));
+ fansSubmitMapper.deleteBatchIds(fansSubmits);
return dataReportingMapper.deleteById(id);
}
@@ -256,6 +273,35 @@
writer.close();
return name;
}
+
+ @Override
+ public String downFansSubmitFile(IPage<FansSubmit> page, FansSubmit fansSubmit) {
+ Map<String, Object> map = fansSubmitService.selectFansSubmitList(page, fansSubmit);
+ String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss"));
+ String name = "绮変笣涓婃姤" + time + ".csv";
+ String path = outPath + name;
+ CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK);
+ writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time});
+ writer.write(new String[]{});
+ writer.write(new String[]{});
+ writer.write(new String[]{});
+ writer.write(new String[]{});
+ List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class);
+ String[] str = new String[head.size()];
+ for (int i = 0; i < head.size(); i++) {
+ str[i] = head.get(i).get("value");
+ }
+ writer.write(str);
+ JSON.parseObject(JSON.toJSONString(map.get("body")), IPage.class).getRecords().forEach(a->{
+ Map<String, Object> map1 = JSON.parseObject(JSON.toJSONString(a), Map.class);
+ for (int i = 0; i < head.size(); i++) {
+ str[i] = map1.get(head.get(i).get("label"))==null?null:map1.get(head.get(i).get("label"))+"";
+ }
+ writer.write(str);
+ });
+ writer.close();
+ return name;
+ }
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
index e7219e4..4865a3d 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
@@ -1,17 +1,28 @@
package com.yuanchu.mom.service.impl;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.DataReportingPageDto;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.DataReportingMapper;
+import com.yuanchu.mom.pojo.DataReporting;
import com.yuanchu.mom.pojo.FansSubmit;
import com.yuanchu.mom.service.FansSubmitService;
import com.yuanchu.mom.mapper.FansSubmitMapper;
+import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.utils.QueryWrappers;
+import com.yuanchu.mom.utils.ServletUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
@@ -29,6 +40,8 @@
private GetLook getLook;
+ private DataReportingMapper dataReportingMapper;
+
@Override
public Map<String, Object> selectFansSubmitList(IPage<FansSubmit> page, FansSubmit fansSubmit) {
Map<String, Object> map = new HashMap<>();
@@ -39,20 +52,42 @@
return map;
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public int delFansSubmit(Integer id) {
+ FansSubmit fansSubmit = fansSubmitMapper.selectOne(Wrappers.<FansSubmit>lambdaQuery().eq(FansSubmit::getId, id).select(FansSubmit::getFansAdd, FansSubmit::getDataId));
+ DataReporting dataReporting = dataReportingMapper.selectById(fansSubmit.getDataId());
+ dataReporting.setFansAdd(dataReporting.getFansAdd() - fansSubmit.getFansAdd());
+ dataReportingMapper.updateById(dataReporting);
return fansSubmitMapper.deleteById(id);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public int updateFansSubmit(FansSubmit fansSubmit) {
+ DataReporting dataReporting = dataReportingMapper.selectById(fansSubmit.getDataId());
+ dataReporting.setFansAdd(dataReporting.getFansAdd() + fansSubmit.getFansAdd() - fansSubmitMapper.selectOne(Wrappers.<FansSubmit>lambdaQuery().eq(FansSubmit::getId, fansSubmit.getId()).select(FansSubmit::getFansAdd)).getFansAdd());
+ dataReportingMapper.updateById(dataReporting);
return fansSubmitMapper.updateById(fansSubmit);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
- public int addFansSubmit(FansSubmit fansSubmit) {
+ public int addFansSubmit(FansSubmit fansSubmit, String date) {
+ if(date == null) date = getYesterday();
+ DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getName, fansSubmit.getCustom()).eq(DataReporting::getProduct, fansSubmit.getProduct()).like(DataReporting::getCreateTime, date));
+ if(ObjectUtil.isEmpty(dataReporting)){
+ throw new ErrorException(date+" 瀹㈡埛锛�"+fansSubmit.getCustom()+" 骞舵湭涓婃姤杩� "+fansSubmit.getProduct()+" 椤圭洰");
+ }
+ dataReporting.setFansAdd((dataReporting.getFansAdd()==null?0:dataReporting.getFansAdd()) + fansSubmit.getFansAdd());
+ dataReportingMapper.updateById(dataReporting);
+ fansSubmit.setDataId(dataReporting.getId());
return fansSubmitMapper.insert(fansSubmit);
}
+
+ public String getYesterday(){
+ return LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ }
}
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java
index e526b6c..3c4bd95 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java
@@ -1,9 +1,14 @@
package com.yuanchu.mom.service.impl;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.DataReportingMapper;
+import com.yuanchu.mom.pojo.DataReporting;
import com.yuanchu.mom.pojo.FansSubmit;
import com.yuanchu.mom.pojo.FinanceSubmit;
import com.yuanchu.mom.service.FinanceSubmitService;
@@ -12,6 +17,8 @@
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
@@ -28,6 +35,8 @@
private FinanceSubmitMapper financeSubmitMapper;
private GetLook getLook;
+
+ private DataReportingMapper dataReportingMapper;
@Override
public Map<String, Object> selectFinanceSubmitList(IPage<FinanceSubmit> page, FinanceSubmit financeSubmit) {
@@ -50,9 +59,21 @@
}
@Override
- public int addFinanceSubmit(FinanceSubmit financeSubmit) {
+ public int addFinanceSubmit(FinanceSubmit financeSubmit, String date) {
+ if(date == null) date = getYesterday();
+ DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getAgent, financeSubmit.getCompany()).eq(DataReporting::getName, financeSubmit.getName()).like(DataReporting::getCreateTime, date));
+ if(ObjectUtil.isEmpty(dataReporting)){
+ throw new ErrorException(date+" 璐︽埛锛�"+financeSubmit.getName()+" 鐨勪唬鐞嗗晢锛�"+financeSubmit.getCompany()+" 骞舵湭涓婃姤杩�");
+ }
+ dataReporting.setAgentRebate(financeSubmit.getEmployeeRebate());
+ dataReportingMapper.updateById(dataReporting);
+ financeSubmit.setDataId(dataReporting.getId());
return financeSubmitMapper.insert(financeSubmit);
}
+
+ public String getYesterday(){
+ return LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ }
}
diff --git a/data-server/src/main/resources/mapper/DataReportingMapper.xml b/data-server/src/main/resources/mapper/DataReportingMapper.xml
index 506ae97..9a931e2 100644
--- a/data-server/src/main/resources/mapper/DataReportingMapper.xml
+++ b/data-server/src/main/resources/mapper/DataReportingMapper.xml
@@ -45,7 +45,7 @@
select * from (
select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, sum(customer_costs) customer_costs, create_user
from data_reporting
- group by product
+ group by product,date_format(create_time, '%Y-%m-%d')
) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
@@ -55,7 +55,7 @@
select * from (
select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user
from data_reporting
- group by registrant
+ group by registrant,date_format(create_time, '%Y-%m-%d')
) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
diff --git a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
index ac70f96..3c7a631 100644
--- a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
+++ b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
@@ -183,7 +183,7 @@
public Result<?> requestNotReadable(HttpMessageNotReadableException e) {
e.printStackTrace();
response.setStatus(201);
- return Result.fail("Http娑堟伅涓嶅彲璇�");
+ return Result.fail("鍙傛暟浼犻�掗敊璇�");
}
/**
--
Gitblit v1.9.3