提成加上合计、Excel导出;打卡记录加上姓名、营养师;体征调查加上备注项
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| package com.stdiet.custom.domain; | ||||
|  | ||||
| import com.stdiet.common.annotation.Excel; | ||||
| import com.stdiet.common.core.domain.BaseEntity; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| @@ -14,6 +15,7 @@ public class SysCommissionDayDetail extends BaseEntity { | ||||
|     private Long userId; | ||||
|  | ||||
|     //用户姓名 | ||||
|     @Excel(name = "业务员") | ||||
|     private String nickName; | ||||
|  | ||||
|     //用户账户 | ||||
| @@ -23,38 +25,20 @@ public class SysCommissionDayDetail extends BaseEntity { | ||||
|     private Long postId; | ||||
|  | ||||
|     //岗位名称 | ||||
|     @Excel(name = "岗位名称") | ||||
|     private String postName; | ||||
|  | ||||
|     @Excel(name = "总提成") | ||||
|     private BigDecimal totalCommissionAmount; | ||||
|  | ||||
|     @Excel(name = "已发放提成") | ||||
|     private BigDecimal totalHasSentCommissionAmount; | ||||
|  | ||||
|     @Excel(name = "未发放提成") | ||||
|     private BigDecimal totalNotSentCommissionAmount; | ||||
|  | ||||
|     private List<Map<String, Object>> sendDetailList; | ||||
|  | ||||
|  | ||||
|     //提成比例 | ||||
|     private Float rate; | ||||
|  | ||||
|     //订单成交总额 | ||||
|     private BigDecimal orderTotalAmount; | ||||
|  | ||||
|     //服务总天数 | ||||
|     private Integer serverTotalDay; | ||||
|  | ||||
|     //服务总额(每笔订单的服务天数 * 每天金额,相加) | ||||
|     private BigDecimal serverTotalAmount; | ||||
|  | ||||
|     //服务订单总数量 | ||||
|     private Integer serverOrderTotalCount; | ||||
|  | ||||
|     //服务暂停总天数 | ||||
|     private Integer serverOrderPauseTotalDay; | ||||
|  | ||||
|     //服务提成金额 | ||||
|     private BigDecimal commissionTotalAmount; | ||||
|  | ||||
|     public Long getUserId() { | ||||
|         return userId; | ||||
|     } | ||||
| @@ -71,68 +55,12 @@ public class SysCommissionDayDetail extends BaseEntity { | ||||
|         this.nickName = nickName; | ||||
|     } | ||||
|  | ||||
|     public String getPostName() { | ||||
|         return postName; | ||||
|     public String getUserName() { | ||||
|         return userName; | ||||
|     } | ||||
|  | ||||
|     public void setPostName(String postName) { | ||||
|         this.postName = postName; | ||||
|     } | ||||
|  | ||||
|     public Float getRate() { | ||||
|         return rate; | ||||
|     } | ||||
|  | ||||
|     public void setRate(Float rate) { | ||||
|         this.rate = rate; | ||||
|     } | ||||
|  | ||||
|     public BigDecimal getOrderTotalAmount() { | ||||
|         return orderTotalAmount; | ||||
|     } | ||||
|  | ||||
|     public void setOrderTotalAmount(BigDecimal orderTotalAmount) { | ||||
|         this.orderTotalAmount = orderTotalAmount; | ||||
|     } | ||||
|  | ||||
|     public Integer getServerTotalDay() { | ||||
|         return serverTotalDay; | ||||
|     } | ||||
|  | ||||
|     public void setServerTotalDay(Integer serverTotalDay) { | ||||
|         this.serverTotalDay = serverTotalDay; | ||||
|     } | ||||
|  | ||||
|     public BigDecimal getServerTotalAmount() { | ||||
|         return serverTotalAmount; | ||||
|     } | ||||
|  | ||||
|     public void setServerTotalAmount(BigDecimal serverTotalAmount) { | ||||
|         this.serverTotalAmount = serverTotalAmount; | ||||
|     } | ||||
|  | ||||
|     public Integer getServerOrderTotalCount() { | ||||
|         return serverOrderTotalCount; | ||||
|     } | ||||
|  | ||||
|     public void setServerOrderTotalCount(Integer serverOrderTotalCount) { | ||||
|         this.serverOrderTotalCount = serverOrderTotalCount; | ||||
|     } | ||||
|  | ||||
|     public Integer getServerOrderPauseTotalDay() { | ||||
|         return serverOrderPauseTotalDay; | ||||
|     } | ||||
|  | ||||
|     public void setServerOrderPauseTotalDay(Integer serverOrderPauseTotalDay) { | ||||
|         this.serverOrderPauseTotalDay = serverOrderPauseTotalDay; | ||||
|     } | ||||
|  | ||||
|     public BigDecimal getCommissionTotalAmount() { | ||||
|         return commissionTotalAmount; | ||||
|     } | ||||
|  | ||||
|     public void setCommissionTotalAmount(BigDecimal commissionTotalAmount) { | ||||
|         this.commissionTotalAmount = commissionTotalAmount; | ||||
|     public void setUserName(String userName) { | ||||
|         this.userName = userName; | ||||
|     } | ||||
|  | ||||
|     public Long getPostId() { | ||||
| @@ -143,12 +71,12 @@ public class SysCommissionDayDetail extends BaseEntity { | ||||
|         this.postId = postId; | ||||
|     } | ||||
|  | ||||
|     public String getUserName() { | ||||
|         return userName; | ||||
|     public String getPostName() { | ||||
|         return postName; | ||||
|     } | ||||
|  | ||||
|     public void setUserName(String userName) { | ||||
|         this.userName = userName; | ||||
|     public void setPostName(String postName) { | ||||
|         this.postName = postName; | ||||
|     } | ||||
|  | ||||
|     public BigDecimal getTotalCommissionAmount() { | ||||
|   | ||||
| @@ -68,6 +68,21 @@ public class SysWxUserLog extends BaseEntity | ||||
|     @JsonFormat(pattern = "yyyy-MM-dd") | ||||
|     private Date logTime; | ||||
|  | ||||
|     /** 非持久字段,客户姓名 + 营养师姓名,使用 , 隔开,用于接收sql查询返回字段 */ | ||||
|     private String customerMessage; | ||||
|  | ||||
|     /** | ||||
|      * 非持久化字段,营养师 | ||||
|      */ | ||||
|     @Excel(name = "姓名") | ||||
|     private String customer; | ||||
|  | ||||
|     /** | ||||
|      * 非持久化字段,营养师 | ||||
|      */ | ||||
|     @Excel(name = "营养师") | ||||
|     private String nutritionist; | ||||
|  | ||||
|     public void setLogTime(Date logTime) { | ||||
|         this.logTime = logTime; | ||||
|     } | ||||
| @@ -185,6 +200,30 @@ public class SysWxUserLog extends BaseEntity | ||||
|         return water; | ||||
|     } | ||||
|  | ||||
|     public String getCustomerMessage() { | ||||
|         return customerMessage; | ||||
|     } | ||||
|  | ||||
|     public void setCustomerMessage(String customerMessage) { | ||||
|         this.customerMessage = customerMessage; | ||||
|     } | ||||
|  | ||||
|     public String getCustomer() { | ||||
|         return customer; | ||||
|     } | ||||
|  | ||||
|     public void setCustomer(String customer) { | ||||
|         this.customer = customer; | ||||
|     } | ||||
|  | ||||
|     public String getNutritionist() { | ||||
|         return nutritionist; | ||||
|     } | ||||
|  | ||||
|     public void setNutritionist(String nutritionist) { | ||||
|         this.nutritionist = nutritionist; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | ||||
|   | ||||
| @@ -144,6 +144,10 @@ public class CustomerInvestigateRequest extends BaseEntity | ||||
|     @Excel(name = "减脂经历") | ||||
|     private String experience; | ||||
|  | ||||
|     /** 备注 */ | ||||
|     @Excel(name = "备注") | ||||
|     private String comments; | ||||
|  | ||||
|     public Long getId() { | ||||
|         return id; | ||||
|     } | ||||
| @@ -399,4 +403,12 @@ public class CustomerInvestigateRequest extends BaseEntity | ||||
|     public void setExperience(String experience) { | ||||
|         this.experience = experience; | ||||
|     } | ||||
|  | ||||
|     public String getComments() { | ||||
|         return comments; | ||||
|     } | ||||
|  | ||||
|     public void setComments(String comments) { | ||||
|         this.comments = comments; | ||||
|     } | ||||
| } | ||||
| @@ -136,6 +136,10 @@ public class CustomerListResponse extends BaseEntity | ||||
|     @Excel(name = "减脂遇到的困难") | ||||
|     private String difficulty; | ||||
|  | ||||
|     /** 备注 */ | ||||
|     @Excel(name = "备注") | ||||
|     private String comments; | ||||
|  | ||||
|     public Long getId() { | ||||
|         return id; | ||||
|     } | ||||
| @@ -377,4 +381,12 @@ public class CustomerListResponse extends BaseEntity | ||||
|     public void setCreateTime(Date createTime) { | ||||
|         this.createTime = createTime; | ||||
|     } | ||||
|  | ||||
|     public String getComments() { | ||||
|         return comments; | ||||
|     } | ||||
|  | ||||
|     public void setComments(String comments) { | ||||
|         this.comments = comments; | ||||
|     } | ||||
| } | ||||
| @@ -5,6 +5,7 @@ import com.stdiet.custom.domain.SysCommissionDayDetail; | ||||
| import com.stdiet.custom.domain.SysOrder; | ||||
| import com.stdiet.custom.domain.SysOrderCommisionDayDetail; | ||||
|  | ||||
| import java.time.LocalDate; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| @@ -17,6 +18,18 @@ import java.util.Map; | ||||
|  */ | ||||
| public interface ISysCommissionDayService { | ||||
|  | ||||
|     /** | ||||
|      * 根据订单列表按天计算营养师、售后提成 | ||||
|      * @param sysCommision | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysCommissionDayDetail> calculateCommissionByDay(SysCommision sysCommision); | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID计算该笔订单的服务到期时间 | ||||
|      * @param orderId | ||||
|      * @return | ||||
|      */ | ||||
|     LocalDate getServerEndDate(Long orderId); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -32,6 +32,11 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         List<SysCommissionDayDetail> result = new ArrayList<>(); | ||||
|         //查询用户 | ||||
|         List<SysCommision> list = sysCommisionMapper.selectSysCommisionDayDetail(sysCommision); | ||||
|         //合计 | ||||
|         SysCommissionDayDetail total = new SysCommissionDayDetail(); | ||||
|         total.setTotalCommissionAmount(new BigDecimal(0)); | ||||
|         total.setTotalHasSentCommissionAmount(new BigDecimal(0)); | ||||
|         total.setTotalNotSentCommissionAmount(new BigDecimal(0)); | ||||
|         if(list != null && list.size() > 0){ | ||||
|             Map<Long, List<SysOrderCommisionDayDetail>> orderDetailMap = getOrderByList(sysCommision.getUserId()); | ||||
|             SysCommissionDayDetail sysCommissionDayDetail = null; | ||||
| @@ -41,16 +46,37 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|                 sysCommissionDayDetail.setNickName(commision.getUserName()); | ||||
|                 sysCommissionDayDetail.setPostId(commision.getPostId()); | ||||
|                 sysCommissionDayDetail.setPostName(commision.getPostName()); | ||||
|                 sysCommissionDayDetail.setOrderTotalAmount(commision.getAmount()); | ||||
|                 //获取查询时间 | ||||
|                 //LocalDate localDate = StringUtils.isEmpty(sysCommision.getBeginTime()) ? LocalDate.now() : LocalDate.parse(sysCommision.getBeginTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); | ||||
|                 dealServerOrderCommissionDetail(orderDetailMap.get(sysCommissionDayDetail.getUserId()), sysCommissionDayDetail); | ||||
|                 result.add(sysCommissionDayDetail); | ||||
|                 //统计所以用户总提成、已发放提成、未发放提成 | ||||
|                 total.setTotalCommissionAmount(total.getTotalCommissionAmount().add(sysCommissionDayDetail.getTotalCommissionAmount())); | ||||
|                 total.setTotalHasSentCommissionAmount(total.getTotalHasSentCommissionAmount().add(sysCommissionDayDetail.getTotalHasSentCommissionAmount())); | ||||
|                 total.setTotalNotSentCommissionAmount(total.getTotalNotSentCommissionAmount().add(sysCommissionDayDetail.getTotalNotSentCommissionAmount())); | ||||
|             } | ||||
|         } | ||||
|         total.setPostName("胜唐体控"); | ||||
|         total.setNickName("合计"); | ||||
|         result.add(total); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public LocalDate getServerEndDate(Long orderId){ | ||||
|         SysOrder sysOrder = sysOrderMapper.selectSysOrderById(orderId); | ||||
|         if(sysOrder != null){ | ||||
|             SysOrderPause sysOrderPause = new SysOrderPause(); | ||||
|             sysOrderPause.setOrderId(orderId); | ||||
|             List<SysOrderPause> pausesList = sysOrderPauseMapper.selectSysOrderPauseList(sysOrderPause); | ||||
|             //每年每月暂停天数,key为年份加月份,如:2021年1月=20211 | ||||
|             Map<String, Integer> everyYearMonthPauseDay = getEveryYearMonthPauseDay(pausesList); | ||||
|             //该笔订单暂停总天数 | ||||
|             int pauseTotalDay = getTotalByMap(everyYearMonthPauseDay); | ||||
|  | ||||
|             return getServerEndDate(DateUtils.dateToLocalDate(sysOrder.getStartTime()), sysOrder.getServeTimeId().intValue()/30, sysOrder.getGiveServeDay(), pauseTotalDay); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 根据用户ID统计出该用户在该月所有订单的服务数量、服务总天数、服务订单总额、暂停总天数 | ||||
| @@ -60,8 +86,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         BigDecimal totalCommissionAmount = new BigDecimal(0); | ||||
|         //已发放提成 | ||||
|         BigDecimal totalHasSentCommissionAmount = new BigDecimal(0); | ||||
|         //未发放提成 | ||||
|         BigDecimal totalNotSentCommissionAmount = new BigDecimal(0); | ||||
|         //未发放提成记录 | ||||
|         List<Map<String, Object>> sendDetailList = new ArrayList<>(); | ||||
|         if(orderDetailList != null){ | ||||
| @@ -116,6 +140,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         } | ||||
|         sysCommissionDayDetail.setTotalCommissionAmount(totalCommissionAmount); | ||||
|         sysCommissionDayDetail.setTotalHasSentCommissionAmount(totalHasSentCommissionAmount); | ||||
|         //未发放提成 = 总提成 - 已发放提成 | ||||
|         sysCommissionDayDetail.setTotalNotSentCommissionAmount(totalCommissionAmount.subtract(totalHasSentCommissionAmount)); | ||||
|         sysCommissionDayDetail.setSendDetailList(sendDetailList); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user