|
@@ -14,12 +14,18 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
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.entity.CwjsPolicyInfo;
|
|
|
|
+import org.jeecg.ctop.finance.policy.entity.CwjsPolicyProduct;
|
|
|
|
+import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyProductMapper;
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
|
|
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSlettementReport;
|
|
import org.jeecg.ctop.finance.settlement.entity.vo.*;
|
|
import org.jeecg.ctop.finance.settlement.entity.vo.*;
|
|
|
|
+import org.jeecg.ctop.finance.settlement.mapper.CwjsProfitMapper;
|
|
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.SettlementUtil;
|
|
import org.jeecg.ctop.finance.utils.createExcelByTemplate;
|
|
import org.jeecg.ctop.finance.utils.createExcelByTemplate;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
@@ -48,6 +54,9 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
@Resource
|
|
@Resource
|
|
private MailLogMapper mailLogMapper;
|
|
private MailLogMapper mailLogMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private CwjsProfitMapper cwjsProfitMapper;
|
|
|
|
+
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<SettlementReportBytedanceVo> getAccountTransactionDayBytedance() {
|
|
public List<SettlementReportBytedanceVo> getAccountTransactionDayBytedance() {
|
|
@@ -193,7 +202,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
|
|
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
|
|
|
|
|
|
//查询 图片 url
|
|
//查询 图片 url
|
|
- List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId);
|
|
|
|
|
|
+ List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId,paramsVo.getUploadYears());
|
|
|
|
|
|
if (!Check.isNull(imageUrlList)){
|
|
if (!Check.isNull(imageUrlList)){
|
|
for (int j = 0; j < imageUrlList.size(); j++) {
|
|
for (int j = 0; j < imageUrlList.size(); j++) {
|
|
@@ -202,8 +211,9 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
InputStream is = createExcelByTemplate.getInputStreamByUrl(imagePath);
|
|
InputStream is = createExcelByTemplate.getInputStreamByUrl(imagePath);
|
|
BufferedImage bufferImg = ImageIO.read(is);
|
|
BufferedImage bufferImg = ImageIO.read(is);
|
|
ImageIO.write(bufferImg, imagePath.substring(imagePath.lastIndexOf(".") + 1), byteArrayOut);
|
|
ImageIO.write(bufferImg, imagePath.substring(imagePath.lastIndexOf(".") + 1), byteArrayOut);
|
|
|
|
+ int startIndex = settlementList.size() +6;
|
|
//anchor主要用于设置图片的属性
|
|
//anchor主要用于设置图片的属性
|
|
- HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 2, settlementList.size() + 6 +(j*40), (short) 10, 90*(j+1));
|
|
|
|
|
|
+ HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 2, startIndex+(5*j)+50*j, (short) 10, startIndex+(5*j)+50*(j+1));
|
|
//HSSFClientAnchor anchor2 = new HSSFClientAnchor(0, 0, 255, 255, (short) 5, settlementList.size() + 40, (short) 10, 40 * 2);
|
|
//HSSFClientAnchor anchor2 = new HSSFClientAnchor(0, 0, 255, 255, (short) 5, settlementList.size() + 40, (short) 10, 40 * 2);
|
|
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
|
|
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
|
|
//插入图片
|
|
//插入图片
|
|
@@ -214,7 +224,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
}
|
|
}
|
|
|
|
|
|
if(accountIdList.size() == num){
|
|
if(accountIdList.size() == num){
|
|
- return Result.errorMsg("暂无数据。");
|
|
|
|
|
|
+ return Result.errorMsg("暂无账户流水数据。");
|
|
}
|
|
}
|
|
|
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
response.setCharacterEncoding("UTF-8");
|
|
@@ -222,7 +232,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expires", 0);
|
|
response.setDateHeader("Expires", 0);
|
|
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"头条结算单.xlsx", "UTF-8"));
|
|
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"-头条结算单.xlsx", "UTF-8"));
|
|
OutputStream output = response.getOutputStream();
|
|
OutputStream output = response.getOutputStream();
|
|
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
|
|
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
|
|
wb.write(bufferedOutPut);
|
|
wb.write(bufferedOutPut);
|
|
@@ -378,7 +388,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
|
|
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
|
|
|
|
|
|
//查询 图片 url
|
|
//查询 图片 url
|
|
- List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId);
|
|
|
|
|
|
+ List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId,paramsVo.getUploadYears());
|
|
|
|
|
|
if (!Check.isNull(imageUrlList)){
|
|
if (!Check.isNull(imageUrlList)){
|
|
for (int j = 0; j < imageUrlList.size(); j++) {
|
|
for (int j = 0; j < imageUrlList.size(); j++) {
|
|
@@ -409,7 +419,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expires", 0);
|
|
response.setDateHeader("Expires", 0);
|
|
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"快手结算单.xlsx", "UTF-8"));
|
|
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"-快手结算单.xlsx", "UTF-8"));
|
|
OutputStream output = response.getOutputStream();
|
|
OutputStream output = response.getOutputStream();
|
|
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
|
|
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
|
|
wb.write(bufferedOutPut);
|
|
wb.write(bufferedOutPut);
|
|
@@ -451,19 +461,31 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
vo.setRewardCost(map.getOrDefault("rewardCost","")+"");//赠款消耗
|
|
vo.setRewardCost(map.getOrDefault("rewardCost","")+"");//赠款消耗
|
|
vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
- //查询 头条利润表 销售人员姓名 以及 返点类型和比列
|
|
|
|
- Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
|
|
|
|
- if (!Check.isNull(slaeMap)){
|
|
|
|
- vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
|
|
+
|
|
|
|
+ //查询销售
|
|
|
|
+ Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("accountId")+"");
|
|
|
|
+ vo.setSaleName(Check.isNull(slaeMap) ? "" : slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
+ //查询 头条利润表 返点类型和比列
|
|
|
|
+ List<Map<String,Object>> rateMap = reportSettlementMapper.getProfitBytedance(map.get("productName")+"","1",paramsVo.getStartTime(),paramsVo.getEndTime());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ if (!Check.isNull(rateMap)){
|
|
// 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
// 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
- if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
|
|
|
|
|
|
+ if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),rateMap.get("policyStart")+"",rateMap.get("policyEnd")+"")){
|
|
//销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
//销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
- if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
- vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
- vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
|
|
|
|
+ if (StringUtils.equals(rateMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
+ vo.setRebateType(rateMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
+ vo.setRebateRate(rateMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
Map<String,Object> operateMap = reportSettlementMapper.getProfitBytedanceOperate(map.get("accountId")+"");
|
|
Map<String,Object> operateMap = reportSettlementMapper.getProfitBytedanceOperate(map.get("accountId")+"");
|
|
if (!Check.isNull(operateMap)){
|
|
if (!Check.isNull(operateMap)){
|
|
@@ -479,7 +501,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
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("头条利润单.xls", "UTF-8"));
|
|
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("头条利润单.xlsx", "UTF-8"));
|
|
workbook.write(response.getOutputStream());
|
|
workbook.write(response.getOutputStream());
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
throw new RuntimeException(e);
|
|
@@ -519,19 +541,24 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
vo.setCost(map.getOrDefault("cost","")+"");//总消耗
|
|
vo.setCost(map.getOrDefault("cost","")+"");//总消耗
|
|
vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
|
|
vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
|
|
|
|
+
|
|
|
|
+ //查询销售
|
|
|
|
+ Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("accountId")+"");
|
|
|
|
+ vo.setSaleName(Check.isNull(slaeMap) ? "" : slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
+
|
|
//查询 销售人员姓名 以及 返点类型和比列
|
|
//查询 销售人员姓名 以及 返点类型和比列
|
|
- Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
|
|
|
|
- if (!Check.isNull(slaeMap)){
|
|
|
|
- vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
|
|
|
|
|
|
+ List<Map<String,Object>> rateMap = reportSettlementMapper.getProfitBytedance(map.get("productId")+"","2",paramsVo.getStartTime(),paramsVo.getEndTime());
|
|
|
|
+ /* if (!Check.isNull(slaeMap)){
|
|
|
|
+
|
|
// 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
// 当前查询时间 与 销售政策 开始 截至时间 是否匹配
|
|
- if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
|
|
|
|
|
|
+ if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),rateMap.get("policyStart")+"",rateMap.get("policyEnd")+"")){
|
|
//销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
//销售政策状态 为 通过 显示 返点类型 和 返点比列
|
|
- if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
- vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
- vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
|
|
|
|
+ if (StringUtils.equals(rateMap.getOrDefault("approvedStatus","")+"","3")){
|
|
|
|
+ vo.setRebateType(rateMap.getOrDefault("rebateType","")+"");//返点类型
|
|
|
|
+ vo.setRebateRate(rateMap.getOrDefault("rebateRate","")+"");//返点比列
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
Map<String,Object> operateMap = reportSettlementMapper.getProfitKuaiShouOperate(map.get("accountId")+"");
|
|
Map<String,Object> operateMap = reportSettlementMapper.getProfitKuaiShouOperate(map.get("accountId")+"");
|
|
if (!Check.isNull(operateMap)){
|
|
if (!Check.isNull(operateMap)){
|
|
@@ -603,11 +630,77 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private CwjsPolicyProductMapper cwjsPolicyProductMapper;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void cwjsPRofit(CwjsPolicyInfo cwjsPolicyInfo) {
|
|
|
|
+
|
|
|
|
+ // 获取两个日期之间 所有的 时间 年-月-日
|
|
|
|
+ List<String> betweenDaysList = SettlementUtil.getAllDatesOfTwoTimes(cwjsPolicyInfo.getPolicyStartDate(),cwjsPolicyInfo.getPolicyEndDate());
|
|
|
|
+ //查看 政策下的产品
|
|
|
|
+ List<CwjsPolicyProduct> productList = cwjsPolicyProductMapper.queryProductsByPolicyId(cwjsPolicyInfo.getId());
|
|
|
|
+ if (!Check.isNull(productList)){
|
|
|
|
+ if (!Check.isNull(betweenDaysList)){
|
|
|
|
+ List<CtopCwjsSlettementReport> reportList = new ArrayList<>();
|
|
|
|
+ for (CwjsPolicyProduct product : productList) {
|
|
|
|
+ for (String day : betweenDaysList) {
|
|
|
|
+ CtopCwjsSlettementReport report = new CtopCwjsSlettementReport();
|
|
|
|
+ report.setPolicyId(cwjsPolicyInfo.getId());
|
|
|
|
+ report.setAdvertiserName(cwjsPolicyInfo.getAdvertiserName());
|
|
|
|
+ report.setProductName(product.getPolicyProductName());
|
|
|
|
+ report.setMediaType(cwjsPolicyInfo.getMediaType());
|
|
|
|
+ report.setCreateUserId(cwjsPolicyInfo.getCreateUserId());
|
|
|
|
+ report.setPolicyDate(day);
|
|
|
|
+ reportList.add(report);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ cwjsProfitMapper.replaceCwjsSlettementProfit(reportList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
- String a = "woshiwoshi{1}woshi{2}111{3}===";
|
|
|
|
|
|
+ /* String a = "woshiwoshi{1}woshi{2}111{3}===";
|
|
String b = MessageFormat.format(a,"测试","我","你","结束");
|
|
String b = MessageFormat.format(a,"测试","我","你","结束");
|
|
System.out.println(a);
|
|
System.out.println(a);
|
|
- System.out.println(b);
|
|
|
|
|
|
+ System.out.println(b);*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List list = new ArrayList();
|
|
|
|
+
|
|
|
|
+ list.add("2021-07-01");
|
|
|
|
+ list.add("2021-07-05");
|
|
|
|
+ list.add("2021-07-10");
|
|
|
|
+ list.add("2021-07-15");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<Object> times = SettlementUtil.sortlistTest(list);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ System.out.println(times);
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|