Commit bdf6b673 by huluobin

业绩查询结果过滤店铺

parent 1d916243
......@@ -485,10 +485,7 @@ public class MarketServiceImpl implements MarketService {
if (!total.setScale(2, BigDecimal.ROUND_HALF_UP).equals(BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP))) {
//卡券的总折扣金额
BigDecimal totalCouponDiscount = couponCustomerRelevance.getDiscountAmount();
// if (couponCustomerRelevance.getType() == 5) {
// totalCouponDiscount = canUserOrderServeList.stream().map(OrderServe::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add)
// .multiply(BigDecimal.ONE.subtract(couponCustomerRelevance.getDiscountPercent()));
// }
//卡券总支付金额
BigDecimal totalCouponPay = couponCustomerRelevance.getPayAmount();
//计算参数(最后一个订单服务的折扣金额要用总折扣金额减 防止除法计算精度问题)
......
......@@ -43,6 +43,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
//个人业绩
List<StoreTechnicianAchieve> storeTechnicianAchieveList = storeDataMapper.storeTechnicianAchieve(month)
.stream()
//根据店铺过滤
.filter(storeTechnicianAchieve -> storeTechnicianAchieve.getDepartmentId().equals(departmentId))
.collect(Collectors.toList());
......@@ -50,7 +51,8 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
storeData.setStoreTechnicianAchieveList(storeTechnicianAchieveList);
//总业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream().collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream()
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
......
......@@ -38,20 +38,25 @@ public class CustomerBalanceRecord {
public static final Integer SOURCE_OTHER = 3;
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("客户id")
private Integer customerId;
private Integer oldBalance;
@ApiModelProperty("钱去到哪里了:1:用户端微信支付,2:会员卡收款,3:其他(目前没用到)," +
"4:用户端微信支付充值,5:pos收款," +
"6:现金收款,7:大众点评收款,8:微信扫码支付,9:团购," +
"10:免单,11:")
@ApiModelProperty("钱去到哪里了:1:用户端微信支付,2:会员卡收款,3:其他(目前没用到),4:用户端微信支付充值,5:pos收款," +
"6:现金收款,7:大众点评收款,8:微信扫码支付,9:团购,10:免单,11:")
private Integer source;
@ApiModelProperty("这笔记录来自于哪里:1:充值,2:首次充值,3:商城订单扣款:,-1:预约订单扣款")
private Integer type;
@ApiModelProperty("充值时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date time;
@ApiModelProperty("当前余额")
private Integer currentBalance;
@ApiModelProperty("该笔记录金额")
private Integer orderAmount;
@ApiModelProperty("新版本订单id,原order_id没用了")
......
package com.gogirl.dto.admin;
import java.util.List;
public class AdminPage<T> {
List<T> items;
}
package com.gogirl.dto.admin;
import lombok.Data;
@Data
public class AdminResult<T> {
private Boolean success;
private T data;
}
package com.gogirl.dto.admin;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class AdminTechnicianScore {
private Integer technician_id;//:70
private BigDecimal avg_data_integrity;//:22.857143
//信息填写完整度
private Integer avg_data_integrity_str;//:"23.00 %"
private Integer service_criterion_proportion;//:0.2857
private Integer service_criterion_proportion_str;//:"29.00 %"
private Integer technician_name;//:"卢丹彤"
private Integer store_name;//:"gogirl天河南店"
private Integer entry_time;//:"2019-02-21T08:00:00"
private Integer grade;//:"中级美甲师"
private Integer jobs;//:"美甲师,美睫师,店长"
private Integer mobile;//:"13725950791"
private Integer status;//:1
private Integer total_service_count;//:11
private Integer total_client_count;//:8
private Integer total_repeat_purchase_client_count;//:5
private Integer repeat_purchase_client_roportion;//:0.625
private Integer repeat_purchase_client_roportion_str;//:"62.50 %"
private Integer average_amount;//:97.14
private Integer total_achievement;//:1370
private Integer card_count;//:null
private Integer card_roportion;//:0
private Integer card_roportion_str;//:"0.00 %"
private Integer card_amount;//:null
private Integer sch_count;//:15
private Integer sch_loss_count;//:4
private Integer complaint_count;//:null
private Integer praise_count;//:2
private Integer external_count;//:null
private Integer praise_proportion;//:0.1818
private Integer praise_proportion_str;//:"18.18 %"
private Integer complaint_proportion;//:null
private Integer complaint_proportion_str; //:""
}
......@@ -8,14 +8,34 @@ import java.util.List;
@Data
public class GetTechnicianPageRequest {
/**
* 状态
*/
private Integer status;
/**
* 标题
*/
private String title;
/**
* 页码
*/
private Integer page;
/**
* 行数
*/
private Integer rows;
/**
* grade
*/
private String sidx;
/**
* 排序 asc
*/
private String sort;
private List<Date> date_utc;
}
......@@ -31,7 +31,8 @@ public interface OrderServeMapper extends BaseMapper<OrderServe> {
*/
Page<TechnicianAchieve> queryPageChargeTechnicianAchieve(Page<OrderServe> page,
@Param("technicianId") Integer technicianId,
@Param("month") String month);
@Param("month") String month,
@Param("departmentId") Integer departmentId);
/**
* 分页查询美甲订单业绩
......@@ -45,7 +46,8 @@ public interface OrderServeMapper extends BaseMapper<OrderServe> {
Page<TechnicianAchieve> queryPageOrderTechnicianAchieve(Page<OrderServe> page,
@Param("technicianId") Integer technicianId,
@Param("type") String type,
@Param("month") String month);
@Param("month") String month,
@Param("departmentId") Integer departmentId);
void syncOrderServeTimes();
}
......@@ -91,7 +91,19 @@ public interface StoreDataMapper extends BaseMapper<StoreData> {
List<StoreTradeAmount> storeTradeAmount(@Param("month") String month, @Param("departmentId") Integer departmentId);
/**
* 个人业绩 包括开卡和其他
* @param month
* @return
*/
List<StoreTechnicianAchieve> storeTechnicianAchieve(String month);
/**
* 开卡业绩
*
* @param month
* @param departmentId
* @return
*/
BigDecimal chargeAchieve(@Param("month") String month, @Param("departmentId") Integer departmentId);
}
......@@ -156,6 +156,7 @@ public class Schedule {
if (cbrt != null && cbrt.getDepartmentId() != null) {
customerBalanceRecord.setDepartmentId(cbrt.getDepartmentId());
}
if (customerBalanceRecord.getId() != null
&& (customerBalanceRecord.getRefereeId() != null || customerBalanceRecord.getDepartmentId() != null)) {
balanceRecordDao.updateByPrimaryKeySelective(customerBalanceRecord);
......
......@@ -12,13 +12,13 @@ import com.gogirl.assembler.WorksAssembler;
import com.gogirl.domain.order.serve.OrderServe;
import com.gogirl.domain.store.career.Career;
import com.gogirl.domain.store.career.Works;
import com.gogirl.domain.store.store.*;
import com.gogirl.domain.store.store.StoreData;
import com.gogirl.domain.store.store.TechnicianAchieve;
import com.gogirl.domain.store.training.SkillSku;
import com.gogirl.domain.store.training.TechnicianScore;
import com.gogirl.domain.store.training.TrainingStartClass;
import com.gogirl.domain.store.training.TrainingStartClassLogTechnician;
import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
......@@ -38,15 +38,12 @@ import com.gogirl.shared.store.query.dto.TrainingStartClassDTO;
import com.gogirl.shared.store.query.dto.WorksDTO;
import com.gogirl.shared.store.query.qry.TrainingStartClassQuery;
import com.gogirl.shared.store.query.qry.WorksQuery;
import com.google.gson.internal.$Gson$Preconditions;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
......@@ -146,13 +143,14 @@ public class CareerController {
Career career = careerCmdService.career(SessionUtils.getTechnicianId());
return JsonResult.success(careerDTOAssembler.apply(career));
}
private final StoreDataService storeDataService;
@ApiOperation("门店数据")
@GetMapping("/technician/career/storeData")
public JsonResult<StoreData> storeData(@RequestHeader String token,
@RequestParam String month) {
StoreData storeData=storeDataService.storeData(month);
StoreData storeData = storeDataService.storeData(month);
return JsonResult.success(storeData);
}
......@@ -182,11 +180,12 @@ public class CareerController {
Page<OrderServe> page = new Page<>(pageNum, pageSize);
Integer departmentId = SessionUtils.getTechnicianToken().getDepartmentId();
if (type.equals("开卡")) {
Page<TechnicianAchieve> result = orderServeMapper.queryPageChargeTechnicianAchieve(page, technicianId, month);
Page<TechnicianAchieve> result = orderServeMapper.queryPageChargeTechnicianAchieve(page, technicianId, month, departmentId);
return JsonResult.success(result);
} else {
Page<TechnicianAchieve> result = orderServeMapper.queryPageOrderTechnicianAchieve(page, technicianId, type, month);
Page<TechnicianAchieve> result = orderServeMapper.queryPageOrderTechnicianAchieve(page, technicianId, type, month, departmentId);
return JsonResult.success(result);
}
}
......
spring:
profiles:
active: pre
active: prod
servlet:
#文件上传最大容量
multipart:
......
......@@ -186,6 +186,9 @@
<if test="technicianId != null">
and t2.id = #{technicianId}
</if>
<if test="departmentId != null">
and a.department_id = #{departmentId}
</if>
order by a.time desc
</select>
......@@ -228,6 +231,9 @@
<if test="type != null and month!= '' ">
and a.serve_type = #{type}
</if>
<if test="departmentId != null">
and c.department_id = #{departmentId}
</if>
order by a.start_time desc
</select>
</mapper>
......@@ -270,7 +270,7 @@ public class Test {
SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");
String day = "2020-03-12";
String day = "2020-04-04";
log.debug("设置推荐人:当天服务的技师为推荐人");
Map<String, String> mapTechnicianManage = new HashMap<>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment