|
@@ -59,9 +59,11 @@ import com.zhongzheng.modules.top.goods.service.*;
|
|
import com.zhongzheng.modules.top.goods.vo.*;
|
|
import com.zhongzheng.modules.top.goods.vo.*;
|
|
import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
|
|
import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
|
|
import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsBo;
|
|
import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsBo;
|
|
|
|
+import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsViewBo;
|
|
import com.zhongzheng.modules.top.order.domain.TopOrderBankPay;
|
|
import com.zhongzheng.modules.top.order.domain.TopOrderBankPay;
|
|
import com.zhongzheng.modules.top.order.service.ITopOrderBankPayService;
|
|
import com.zhongzheng.modules.top.order.service.ITopOrderBankPayService;
|
|
import com.zhongzheng.modules.top.order.vo.*;
|
|
import com.zhongzheng.modules.top.order.vo.*;
|
|
|
|
+import com.zhongzheng.modules.top.order.vo.TopOrderStatisticsTwoVo;
|
|
import com.zhongzheng.modules.top.settle.domian.TopInstSettle;
|
|
import com.zhongzheng.modules.top.settle.domian.TopInstSettle;
|
|
import com.zhongzheng.modules.top.settle.domian.TopInstSettleRelaiton;
|
|
import com.zhongzheng.modules.top.settle.domian.TopInstSettleRelaiton;
|
|
import com.zhongzheng.modules.top.settle.service.ITopInstSettleRelationService;
|
|
import com.zhongzheng.modules.top.settle.service.ITopInstSettleRelationService;
|
|
@@ -73,15 +75,6 @@ import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserService;
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserService;
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
-import org.apache.http.HttpEntity;
|
|
|
|
-import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
|
-import org.apache.http.client.methods.HttpPost;
|
|
|
|
-import org.apache.http.entity.ContentType;
|
|
|
|
-import org.apache.http.entity.mime.MultipartEntityBuilder;
|
|
|
|
-import org.apache.http.entity.mime.content.StringBody;
|
|
|
|
-import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
|
-import org.apache.http.impl.client.HttpClients;
|
|
|
|
-import org.apache.http.util.EntityUtils;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -90,6 +83,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -2285,7 +2279,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
Long subtract = item.getOrderNum() - num;
|
|
Long subtract = item.getOrderNum() - num;
|
|
BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
|
|
BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
|
|
String s = divide.multiply(new BigDecimal("100")).toString();
|
|
String s = divide.multiply(new BigDecimal("100")).toString();
|
|
- item.setWeekRate(s+"%");
|
|
|
|
|
|
+ item.setYearRate(s+"%");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2642,6 +2636,321 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
return baseMapper.getBusinessList(bo);
|
|
return baseMapper.getBusinessList(bo);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public TopOrderStatisticsViewVo orderStatisticsView(TopOrderStatisticsViewBo bo) {
|
|
|
|
+ //筛选时间处理
|
|
|
|
+ if (ObjectUtils.isNull(bo.getTimeSign()) && ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
|
|
|
|
+ //没有选择时间范围,默认为当前时间向前推30天
|
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
|
+ Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
|
|
|
|
+ bo.setStartTime(dayBefore);
|
|
|
|
+ bo.setEndTime(nowTime);
|
|
|
|
+ }else if (ObjectUtils.isNotNull(bo.getTimeSign())){
|
|
|
|
+ switch (bo.getTimeSign()){
|
|
|
|
+ case 1://本周
|
|
|
|
+ Map<String, Long> timeInterval = DateUtils.getTimeInterval(new Date());
|
|
|
|
+ bo.setStartTime(timeInterval.get("start"));
|
|
|
|
+ bo.setEndTime(timeInterval.get("end"));
|
|
|
|
+ break;
|
|
|
|
+ case 2://本月
|
|
|
|
+ Long toMonthZeroTime = DateUtils.getToMonthZeroTime();
|
|
|
|
+ bo.setStartTime(toMonthZeroTime);
|
|
|
|
+ bo.setEndTime(DateUtils.getNowTime());
|
|
|
|
+ break;
|
|
|
|
+ case 3://本年
|
|
|
|
+ Long toYearZeroTime = DateUtils.getToYearZeroTime();
|
|
|
|
+ bo.setStartTime(toYearZeroTime);
|
|
|
|
+ bo.setEndTime(DateUtils.getNowTime());
|
|
|
|
+ break;
|
|
|
|
+ default :
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ TopOrderStatisticsViewVo viewVo = new TopOrderStatisticsViewVo();
|
|
|
|
+ //天
|
|
|
|
+ bo.setViewSign(1);
|
|
|
|
+ List<TopOrderStatisticsTwoVo> voList = baseMapper.getStatisticsView(bo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(voList)){
|
|
|
|
+ String customerName = "";
|
|
|
|
+ Long customerId = 0L;
|
|
|
|
+ if (ObjectUtils.isNotNull(bo.getCustomerId())){
|
|
|
|
+ TopOldOrder oldOrder = topOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
|
|
|
|
+ .eq(TopOldOrder::getOldCustomerId, bo.getCustomerId())
|
|
|
|
+ .eq(TopOldOrder::getCheckStatus,1)
|
|
|
|
+ .eq(TopOldOrder::getStatus,1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNull(oldOrder)){
|
|
|
|
+ Order one = orderService.getOne(new LambdaQueryWrapper<Order>()
|
|
|
|
+ .eq(Order::getTenantId, bo.getCustomerId())
|
|
|
|
+ .eq(Order::getOrderStatus, 1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNotNull(one)){
|
|
|
|
+ SysTenant tenant = sysTenantService.getById(bo.getCustomerId());
|
|
|
|
+ customerName = tenant.getTenantName();
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ customerName = oldOrder.getPurchaseOrg();
|
|
|
|
+ }
|
|
|
|
+ customerId = bo.getCustomerId();
|
|
|
|
+ }
|
|
|
|
+ List<Long> dayTime = getDayTime(bo.getStartTime(), bo.getEndTime());
|
|
|
|
+ List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
|
|
|
|
+ for (Long day : dayTime) {
|
|
|
|
+ TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
|
|
|
|
+ twoVo.setCustomerId(customerId);
|
|
|
|
+ twoVo.setCustomerName(customerName);
|
|
|
|
+ twoVo.setTime(day);
|
|
|
|
+ if (voList.stream().anyMatch(x -> DateUtils.getScheduleTimeStrZeroTime(x.getTimeStr(), "yyyy-MM-dd").equals(day))){
|
|
|
|
+ TopOrderStatisticsTwoVo statisticsTwoVo = voList.stream()
|
|
|
|
+ .filter(x -> DateUtils.getScheduleTimeStrZeroTime(x.getTimeStr(), "yyyy-MM-dd").equals(day)).findFirst().get();
|
|
|
|
+ twoVo.setMoney(statisticsTwoVo.getMoney());
|
|
|
|
+ twoVo.setOrderNum(statisticsTwoVo.getOrderNum());
|
|
|
|
+ }
|
|
|
|
+ vos.add(twoVo);
|
|
|
|
+ }
|
|
|
|
+ viewVo.setDayView(vos);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //周
|
|
|
|
+ bo.setViewSign(2);
|
|
|
|
+ List<TopOrderStatisticsTwoVo> voList2 = baseMapper.getStatisticsView(bo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(voList2)){
|
|
|
|
+ String customerName = "";
|
|
|
|
+ Long customerId = 0L;
|
|
|
|
+ if (ObjectUtils.isNotNull(bo.getCustomerId())){
|
|
|
|
+ TopOldOrder oldOrder = topOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
|
|
|
|
+ .eq(TopOldOrder::getOldCustomerId, bo.getCustomerId())
|
|
|
|
+ .eq(TopOldOrder::getCheckStatus,1)
|
|
|
|
+ .eq(TopOldOrder::getStatus,1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNull(oldOrder)){
|
|
|
|
+ Order one = orderService.getOne(new LambdaQueryWrapper<Order>()
|
|
|
|
+ .eq(Order::getTenantId, bo.getCustomerId())
|
|
|
|
+ .eq(Order::getOrderStatus, 1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNotNull(one)){
|
|
|
|
+ SysTenant tenant = sysTenantService.getById(bo.getCustomerId());
|
|
|
|
+ customerName = tenant.getTenantName();
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ customerName = oldOrder.getPurchaseOrg();
|
|
|
|
+ }
|
|
|
|
+ customerId = bo.getCustomerId();
|
|
|
|
+ }
|
|
|
|
+ Map<Long, Long> weekTime = getWeekTime(bo.getStartTime(), bo.getEndTime());
|
|
|
|
+ List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
|
|
|
|
+ for (Long time : weekTime.keySet()) {
|
|
|
|
+ TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
|
|
|
|
+ twoVo.setCustomerId(customerId);
|
|
|
|
+ twoVo.setCustomerName(customerName);
|
|
|
|
+ twoVo.setTime(time);
|
|
|
|
+ if (voList2.stream().anyMatch(x ->
|
|
|
|
+ DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
|
|
|
|
+ && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= weekTime.get(time))){
|
|
|
|
+ TopOrderStatisticsTwoVo statisticsTwoVo = voList2.stream()
|
|
|
|
+ .filter(x ->
|
|
|
|
+ DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
|
|
|
|
+ && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= weekTime.get(time)).findFirst().get();
|
|
|
|
+ twoVo.setMoney(statisticsTwoVo.getMoney());
|
|
|
|
+ twoVo.setOrderNum(statisticsTwoVo.getOrderNum());
|
|
|
|
+ }
|
|
|
|
+ vos.add(twoVo);
|
|
|
|
+ }
|
|
|
|
+ viewVo.setWeekView(vos);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //月
|
|
|
|
+ bo.setViewSign(3);
|
|
|
|
+ List<TopOrderStatisticsTwoVo> voList3 = baseMapper.getStatisticsView(bo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(voList3)){
|
|
|
|
+ String customerName = "";
|
|
|
|
+ Long customerId = 0L;
|
|
|
|
+ if (ObjectUtils.isNotNull(bo.getCustomerId())){
|
|
|
|
+ TopOldOrder oldOrder = topOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
|
|
|
|
+ .eq(TopOldOrder::getOldCustomerId, bo.getCustomerId())
|
|
|
|
+ .eq(TopOldOrder::getCheckStatus,1)
|
|
|
|
+ .eq(TopOldOrder::getStatus,1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNull(oldOrder)){
|
|
|
|
+ Order one = orderService.getOne(new LambdaQueryWrapper<Order>()
|
|
|
|
+ .eq(Order::getTenantId, bo.getCustomerId())
|
|
|
|
+ .eq(Order::getOrderStatus, 1)
|
|
|
|
+ .last("limit 1"));
|
|
|
|
+ if (ObjectUtils.isNotNull(one)){
|
|
|
|
+ SysTenant tenant = sysTenantService.getById(bo.getCustomerId());
|
|
|
|
+ customerName = tenant.getTenantName();
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ customerName = oldOrder.getPurchaseOrg();
|
|
|
|
+ }
|
|
|
|
+ customerId = bo.getCustomerId();
|
|
|
|
+ }
|
|
|
|
+ Map<Long, Long> monthTime = DateUtils.getMonthTime(bo.getStartTime(), bo.getEndTime());
|
|
|
|
+ List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
|
|
|
|
+ for (Long time : monthTime.keySet()) {
|
|
|
|
+ TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
|
|
|
|
+ twoVo.setCustomerId(customerId);
|
|
|
|
+ twoVo.setCustomerName(customerName);
|
|
|
|
+ twoVo.setTime(time);
|
|
|
|
+ if (voList2.stream().anyMatch(x ->
|
|
|
|
+ DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
|
|
|
|
+ && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= monthTime.get(time))){
|
|
|
|
+ TopOrderStatisticsTwoVo statisticsTwoVo = voList2.stream()
|
|
|
|
+ .filter(x ->
|
|
|
|
+ DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
|
|
|
|
+ && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= monthTime.get(time)).findFirst().get();
|
|
|
|
+ twoVo.setMoney(statisticsTwoVo.getMoney());
|
|
|
|
+ twoVo.setOrderNum(statisticsTwoVo.getOrderNum());
|
|
|
|
+ }
|
|
|
|
+ vos.add(twoVo);
|
|
|
|
+ }
|
|
|
|
+ viewVo.setMonthView(vos);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return viewVo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<TopOrderStatisticsDetailVo> orderStatisticsDetail(TopOrderStatisticsBo bo) {
|
|
|
|
+ //筛选时间处理
|
|
|
|
+ if (ObjectUtils.isNull(bo.getTimeSign()) && ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
|
|
|
|
+ //没有选择时间范围,默认为当前时间向前推30天
|
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
|
+ Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
|
|
|
|
+ bo.setStartTime(dayBefore);
|
|
|
|
+ bo.setEndTime(nowTime);
|
|
|
|
+ }else if (ObjectUtils.isNotNull(bo.getTimeSign())){
|
|
|
|
+ switch (bo.getTimeSign()){
|
|
|
|
+ case 1://本周
|
|
|
|
+ Map<String, Long> timeInterval = DateUtils.getTimeInterval(new Date());
|
|
|
|
+ bo.setStartTime(timeInterval.get("start"));
|
|
|
|
+ bo.setEndTime(timeInterval.get("end"));
|
|
|
|
+ break;
|
|
|
|
+ case 2://本月
|
|
|
|
+ Long toMonthZeroTime = DateUtils.getToMonthZeroTime();
|
|
|
|
+ bo.setStartTime(toMonthZeroTime);
|
|
|
|
+ bo.setEndTime(DateUtils.getNowTime());
|
|
|
|
+ break;
|
|
|
|
+ case 3://本年
|
|
|
|
+ Long toYearZeroTime = DateUtils.getToYearZeroTime();
|
|
|
|
+ bo.setStartTime(toYearZeroTime);
|
|
|
|
+ bo.setEndTime(DateUtils.getNowTime());
|
|
|
|
+ break;
|
|
|
|
+ default :
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<TopOrderStatisticsDetailVo> detailVos = baseMapper.getDetailStatistics(bo);
|
|
|
|
+ if (CollectionUtils.isEmpty(detailVos)){
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ TopOrderStatisticsDetailTotalVo totalVo = baseMapper.getDetailStatisticsTotal(bo.getStartTime(),bo.getEndTime());
|
|
|
|
+ detailVos.forEach(item -> {
|
|
|
|
+ //订单客户机构ID
|
|
|
|
+ if (item.getOrderType() == 1){
|
|
|
|
+ Long tenantId = baseMapper.getOrderTenant(item.getCustomerId());
|
|
|
|
+ item.setTenantId(tenantId);
|
|
|
|
+ }else {
|
|
|
|
+ item.setTenantId(item.getCustomerId());
|
|
|
|
+ }
|
|
|
|
+ if (item.getMoney().compareTo(BigDecimal.ZERO) == 0){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ //订单金额
|
|
|
|
+ //环比
|
|
|
|
+ item.setWeekRate("100%");
|
|
|
|
+ Long startTime = bo.getStartTime();
|
|
|
|
+ Long endTime = bo.getEndTime();
|
|
|
|
+ Long time = endTime - startTime;
|
|
|
|
+ TopOrderStatisticsBo topOrderStatisticsBo = new TopOrderStatisticsBo();
|
|
|
|
+ topOrderStatisticsBo.setStartTime(startTime - time);
|
|
|
|
+ topOrderStatisticsBo.setEndTime(startTime);
|
|
|
|
+ topOrderStatisticsBo.setCustomerId(item.getCustomerId());
|
|
|
|
+ List<TopOrderStatisticsMoneyVo> moneyStatistics = baseMapper.getMoneyStatistics(topOrderStatisticsBo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(moneyStatistics)){
|
|
|
|
+ BigDecimal money = moneyStatistics.stream().findFirst().get().getMoney();
|
|
|
|
+ if (money.compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
+ BigDecimal subtract = item.getMoney().subtract(money);
|
|
|
|
+ BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
|
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setMoneyWeekRate(s+"%");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<TopOrderStatisticsNumVo> numStatistics = baseMapper.getNumStatistics(topOrderStatisticsBo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(numStatistics)){
|
|
|
|
+ Long num = numStatistics.stream().findFirst().get().getOrderNum();
|
|
|
|
+ if (num > 0){
|
|
|
|
+ Long subtract = item.getOrderNum() - num;
|
|
|
|
+ BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
|
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setWeekRate(s+"%");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //同比
|
|
|
|
+ item.setYearRate("100%");
|
|
|
|
+ Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
|
|
|
|
+ Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
|
|
|
|
+ topOrderStatisticsBo.setStartTime(startBefore);
|
|
|
|
+ topOrderStatisticsBo.setEndTime(endBefore);
|
|
|
|
+ List<TopOrderStatisticsMoneyVo> moneyStatistics2 = baseMapper.getMoneyStatistics(topOrderStatisticsBo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(moneyStatistics2)){
|
|
|
|
+ BigDecimal money = moneyStatistics2.stream().findFirst().get().getMoney();
|
|
|
|
+ if (money.compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
+ BigDecimal subtract = item.getMoney().subtract(money);
|
|
|
|
+ BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
|
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setMoneyYearRate(s+"%");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<TopOrderStatisticsNumVo> numStatistics2 = baseMapper.getNumStatistics(topOrderStatisticsBo);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(numStatistics2)){
|
|
|
|
+ Long num = numStatistics2.stream().findFirst().get().getOrderNum();
|
|
|
|
+ if (num > 0){
|
|
|
|
+ Long subtract = item.getOrderNum() - num;
|
|
|
|
+ BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
|
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setYearRate(s+"%");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //金额占比
|
|
|
|
+ BigDecimal divide = item.getMoney().divide(totalVo.getMoneyTotal(), 2, RoundingMode.HALF_UP);
|
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setMoneyOccupationRate(s+"%");
|
|
|
|
+ //数量占比
|
|
|
|
+ BigDecimal divide2 = new BigDecimal(item.getOrderNum()).divide(new BigDecimal(totalVo.getOrderNumTotal()), 2, RoundingMode.HALF_UP);
|
|
|
|
+ String s2 = divide2.multiply(new BigDecimal("100")).toString();
|
|
|
|
+ item.setOccupationRate(s2+"%");
|
|
|
|
+ });
|
|
|
|
+ return detailVos;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private List<Long> getDayTime(Long startTime,Long endTime){
|
|
|
|
+ List<Long> tiemList = new ArrayList<>();
|
|
|
|
+ Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);
|
|
|
|
+ //一天的时间戳
|
|
|
|
+ Long time = 86400L;
|
|
|
|
+ for (Long i = zeroTime; i <= endTime; i = i+time) {
|
|
|
|
+ tiemList.add(i);
|
|
|
|
+ }
|
|
|
|
+ return tiemList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private Map<Long,Long> getWeekTime(Long startTime,Long endTime){
|
|
|
|
+ Map<Long,Long> mapList = new HashMap<>();
|
|
|
|
+ Map<Long, Long> weekTime = DateUtils.getWeekTime(startTime,endTime);
|
|
|
|
+ List<Long> aa = new ArrayList<>();
|
|
|
|
+ aa.addAll(weekTime.keySet());
|
|
|
|
+ List<Long> collect = aa.stream().sorted().collect(Collectors.toList());
|
|
|
|
+ for (Long aLong : collect) {
|
|
|
|
+ mapList.put(aLong,weekTime.get(aLong));
|
|
|
|
+ }
|
|
|
|
+ return mapList;
|
|
|
|
+ }
|
|
|
|
|
|
private TopOrderGoodsUpVo getGoodsUp(TopOldOrderGoods orderGoods,List<TopOldOrderStudyVo> studyVos){
|
|
private TopOrderGoodsUpVo getGoodsUp(TopOldOrderGoods orderGoods,List<TopOldOrderStudyVo> studyVos){
|
|
TopOrderGoodsUpVo vo = BeanUtil.toBean(orderGoods, TopOrderGoodsUpVo.class);
|
|
TopOrderGoodsUpVo vo = BeanUtil.toBean(orderGoods, TopOrderGoodsUpVo.class);
|