|
@@ -11,12 +11,10 @@ import org.apache.poi.ss.usermodel.Workbook;
|
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
import org.jeecg.common.api.vo.Result;
|
|
import org.jeecg.common.api.vo.Result;
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
-import org.jeecg.ctop.finance.settlement.entity.vo.ProfitReportBytedanceVo;
|
|
|
|
-import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
|
|
|
|
-import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportBytedanceVo;
|
|
|
|
-import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportKuaiShouVo;
|
|
|
|
|
|
+import org.jeecg.ctop.finance.settlement.entity.vo.*;
|
|
import org.jeecg.ctop.finance.settlement.mapper.ReportSettlementMapper;
|
|
import org.jeecg.ctop.finance.settlement.mapper.ReportSettlementMapper;
|
|
import org.jeecg.ctop.finance.settlement.service.IReportSettlementService;
|
|
import org.jeecg.ctop.finance.settlement.service.IReportSettlementService;
|
|
|
|
+import org.jeecg.ctop.finance.utils.SettlementUtil;
|
|
import org.jeecg.ctop.finance.utils.createExcelByTemplate;
|
|
import org.jeecg.ctop.finance.utils.createExcelByTemplate;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -26,6 +24,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
import java.awt.image.BufferedImage;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -427,44 +426,116 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
public Result porfitReportBytedance(SettlementFileParamsVo paramsVo, HttpServletResponse response) {
|
|
public Result porfitReportBytedance(SettlementFileParamsVo paramsVo, HttpServletResponse response) {
|
|
|
|
|
|
try {
|
|
try {
|
|
-
|
|
|
|
//查询 头条利润表 总花费
|
|
//查询 头条利润表 总花费
|
|
- List<Map<String,String>> list = reportSettlementMapper.getProfitBytedanceCost(paramsVo.getStartTime(),paramsVo.getEndTime());
|
|
|
|
- for (Map<String, String> map : list) {
|
|
|
|
|
|
+ List<Map<String,Object>> list = reportSettlementMapper.getProfitBytedanceCost(paramsVo.getUploadYears());
|
|
|
|
+ if (Check.isNull(list)){
|
|
|
|
+ return Result.errorMsg("暂无数据。");
|
|
|
|
+ }
|
|
|
|
+ List<ProfitReportBytedanceVo> resultList = new ArrayList<>(list.size());
|
|
|
|
+ for (Map<String, Object> map : list) {
|
|
ProfitReportBytedanceVo vo = new ProfitReportBytedanceVo();
|
|
ProfitReportBytedanceVo vo = new ProfitReportBytedanceVo();
|
|
- vo.setCost(map.get("cost"));//总消耗
|
|
|
|
- vo.setCashCost(map.get("cashCost"));//现金消耗
|
|
|
|
- vo.setRewardCost(map.get("rewardCost"));//赠款消耗
|
|
|
|
- vo.setProductName(map.get("productName"));//产品名称
|
|
|
|
|
|
+ vo.setCost(map.getOrDefault("cost","")+"");//总消耗
|
|
|
|
+ vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
|
|
+ vo.setRewardCost(map.getOrDefault("rewardCost","")+"");//赠款消耗
|
|
|
|
+ vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
//查询 头条利润表 销售人员姓名 以及 返点类型和比列
|
|
//查询 头条利润表 销售人员姓名 以及 返点类型和比列
|
|
- Map<String,String> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId"));
|
|
|
|
-
|
|
|
|
- vo.setSaleName(slaeMap.get("saleName"));//销售
|
|
|
|
-
|
|
|
|
- ////销售政策状态
|
|
|
|
- if (StringUtils.equals(slaeMap.get("approvedStatus"),"3")){
|
|
|
|
- vo.setRebateType(slaeMap.get("rebateType"));//返点类型
|
|
|
|
- vo.setRebateRate(slaeMap.get("rebateRate"));//返点比列
|
|
|
|
-
|
|
|
|
|
|
+ Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
|
|
|
|
+ if (!Check.isNull(slaeMap)){
|
|
|
|
+ vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
+ // 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
|
|
+ if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
|
|
|
|
+ //销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
|
|
+ if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
+ vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
+ vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Map<String,Object> operateMap = reportSettlementMapper.getProfitBytedanceOperate(map.get("accountId")+"");
|
|
|
|
+ if (!Check.isNull(operateMap)){
|
|
|
|
+ vo.setAdvertiserName(operateMap.getOrDefault("advertiserName","")+"");//广告主名称
|
|
|
|
+ vo.setOperateName(operateMap.getOrDefault("operateName","")+"");//运营
|
|
|
|
+ vo.setOperateArea(operateMap.getOrDefault("operateArea","")+"");//运营所属区域
|
|
|
|
+ }
|
|
|
|
+ resultList.add(vo);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("头条利润单", "头条利润单"), ProfitReportBytedanceVo.class, resultList);
|
|
|
|
|
|
-
|
|
|
|
|
|
+ try {
|
|
|
|
+ response.setCharacterEncoding("UTF-8");
|
|
|
|
+ response.setHeader("content-Type", "application/vnd.ms-excel");
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("头条利润单.xls", "UTF-8"));
|
|
|
|
+ workbook.write(response.getOutputStream());
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.error("====>>>>", e.getMessage());
|
|
|
|
+ return Result.errorMsg(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @description: 财务结算 利润表导出 快手
|
|
|
|
+ * @param paramsVo
|
|
|
|
+ * @param response
|
|
|
|
+ * @return: org.jeecg.common.api.vo.Result
|
|
|
|
+ * @author: zianY
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public Result porfitReportKuaiShou(SettlementFileParamsVo paramsVo, HttpServletResponse response) {
|
|
|
|
|
|
|
|
+ try {
|
|
|
|
+ //查询 快手利润表 总花费
|
|
|
|
+ List<Map<String,Object>> list = reportSettlementMapper.getProfitKuaiShou(paramsVo.getUploadYears());
|
|
|
|
+ if (Check.isNull(list)){
|
|
|
|
+ return Result.errorMsg("暂无数据。");
|
|
|
|
+ }
|
|
|
|
+ List<ProfitReportKuaiShouVo> resultList = new ArrayList<>(list.size());
|
|
|
|
+ for (Map<String, Object> map : list) {
|
|
|
|
+ ProfitReportKuaiShouVo vo = new ProfitReportKuaiShouVo();
|
|
|
|
+ vo.setAccountId(map.getOrDefault("accountId","")+"");//账户id
|
|
|
|
+ vo.setCost(map.getOrDefault("cost","")+"");//总消耗
|
|
|
|
+ vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
|
|
+ vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
|
|
+ //查询 销售人员姓名 以及 返点类型和比列
|
|
|
|
+ Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
|
|
|
|
+ if (!Check.isNull(slaeMap)){
|
|
|
|
+ vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
+ // 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
|
|
+ if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
|
|
|
|
+ //销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
|
|
+ if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
+ vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
+ vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("这是表头", "这是sheet名称"), SettlementReportBytedanceVo.class, list);
|
|
|
|
|
|
+ Map<String,Object> operateMap = reportSettlementMapper.getProfitKuaiShouOperate(map.get("accountId")+"");
|
|
|
|
+ if (!Check.isNull(operateMap)){
|
|
|
|
+ vo.setKsId(operateMap.getOrDefault("ksId","")+"");//快手id
|
|
|
|
+ vo.setAdvertiserName(operateMap.getOrDefault("advertiserName","")+"");//广告主名称
|
|
|
|
+ vo.setOperateName(operateMap.getOrDefault("operateName","")+"");//运营
|
|
|
|
+ vo.setOperateArea(operateMap.getOrDefault("operateArea","")+"");//运营所属区域
|
|
|
|
+ }
|
|
|
|
+ resultList.add(vo);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("快手利润单", "快手利润单"), ProfitReportKuaiShouVo.class, resultList);
|
|
|
|
|
|
try {
|
|
try {
|
|
response.setCharacterEncoding("UTF-8");
|
|
response.setCharacterEncoding("UTF-8");
|
|
response.setHeader("content-Type", "application/vnd.ms-excel");
|
|
response.setHeader("content-Type", "application/vnd.ms-excel");
|
|
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("文件名称.xlsx", "UTF-8"));
|
|
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("快手利润单.xls", "UTF-8"));
|
|
workbook.write(response.getOutputStream());
|
|
workbook.write(response.getOutputStream());
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
throw new RuntimeException(e);
|