Commit ab7852be authored by 332784038@qq.com's avatar 332784038@qq.com

订单业绩月度汇总bug修改

parent 02381b03
...@@ -16,10 +16,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; ...@@ -16,10 +16,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
*/ */
public interface TargetLogService extends IService<TargetLogDO> { public interface TargetLogService extends IService<TargetLogDO> {
//批量处理业绩归属问题
void dealTargetLogTask(Long orderId, Date achievementTime, long targetId);
void dealTargetLogTask2(Long orderId, Date achievementTime, long targetId);
/** /**
* 创建部门业绩日志 * 创建部门业绩日志
* @param createReqVO 创建信息 * @param createReqVO 创建信息
...@@ -39,8 +35,6 @@ public interface TargetLogService extends IService<TargetLogDO> { ...@@ -39,8 +35,6 @@ public interface TargetLogService extends IService<TargetLogDO> {
*/ */
void deleteTargetLog(Long id); void deleteTargetLog(Long id);
List<TargetLogDO> selectList2(String sDate);
/** /**
* 获得部门业绩日志 * 获得部门业绩日志
* @param id 编号 * @param id 编号
......
package cn.iocoder.yudao.module.order.service.targetLog; package cn.iocoder.yudao.module.order.service.targetLog;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.customer.service.customer.CustomerService; import cn.iocoder.yudao.module.customer.service.customer.CustomerService;
import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO; import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO;
import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignee.OrderConsigneeDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignor.OrderConsignorDO;
import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2;
import cn.iocoder.yudao.module.order.dto.OrderBackInfoDto; import cn.iocoder.yudao.module.order.dto.OrderBackInfoDto;
import cn.iocoder.yudao.module.order.service.order.OrderConsigneeService;
import cn.iocoder.yudao.module.order.service.order.OrderConsignorService;
import cn.iocoder.yudao.module.order.service.order.OrderQueryService; import cn.iocoder.yudao.module.order.service.order.OrderQueryService;
import cn.iocoder.yudao.module.order.service.order.OrderService; import cn.iocoder.yudao.module.order.service.order.OrderService;
import cn.iocoder.yudao.module.order.enums.TargetLogEnum; import cn.iocoder.yudao.module.order.enums.TargetLogEnum;
import cn.iocoder.yudao.module.order.service.order.impl.OrderTimeServiceImpl;
import cn.iocoder.yudao.module.order.vo.order.CustomDraweeVO;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -44,8 +31,7 @@ import cn.iocoder.yudao.module.order.dal.mysql.targetLog.TargetLogMapper; ...@@ -44,8 +31,7 @@ import cn.iocoder.yudao.module.order.dal.mysql.targetLog.TargetLogMapper;
*/ */
@Service @Service
@Validated @Validated
public class TargetLogServiceImpl extends public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, TargetLogDO> implements TargetLogService {
AbstractService<TargetLogMapper, TargetLogDO> implements TargetLogService {
@Resource @Resource
private TargetLogMapper targetLogMapper; private TargetLogMapper targetLogMapper;
...@@ -59,21 +45,6 @@ public class TargetLogServiceImpl extends ...@@ -59,21 +45,6 @@ public class TargetLogServiceImpl extends
@Resource @Resource
private CustomerService customerService; private CustomerService customerService;
@Resource
private OrderConsigneeService orderConsigneeService;
@Resource
private OrderConsignorService orderConsignorService;
@Resource
ZTestMapper2 zTestMapper2;
@Resource
OrderTimeServiceImpl orderTimeService;
public List<TargetLogDO> selectList2(String sDate) {
return targetLogMapper.selectList2(sDate);
}
@Override @Override
public Long createTargetLog(TargetLogCreateReqVO createReqVO) { public Long createTargetLog(TargetLogCreateReqVO createReqVO) {
...@@ -132,7 +103,7 @@ public class TargetLogServiceImpl extends ...@@ -132,7 +103,7 @@ public class TargetLogServiceImpl extends
public void addTargetLog(Long orderId, Date achievementTime, TargetLogEnum targetLogEnum) { public void addTargetLog(Long orderId, Date achievementTime, TargetLogEnum targetLogEnum) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
if (targetLogEnum.getType() == 1 || targetLogEnum.getType() == 3) {//装柜和合单 if (targetLogEnum.getType() == 1 || targetLogEnum.getType() == 3) {//装柜和合单
dealTargetLog(orderId, achievementTime, targetLogEnum.getType()); dealTargetLog(orderId, achievementTime,targetLogEnum.getType());
} else if (targetLogEnum.getType() == 2 || targetLogEnum.getType() == 4) {//退仓和拆单 } else if (targetLogEnum.getType() == 2 || targetLogEnum.getType() == 4) {//退仓和拆单
targetLogMapper.delete(new LambdaQueryWrapperX<TargetLogDO>() targetLogMapper.delete(new LambdaQueryWrapperX<TargetLogDO>()
.eq(TargetLogDO::getOrderId, orderId)); .eq(TargetLogDO::getOrderId, orderId));
...@@ -141,18 +112,16 @@ public class TargetLogServiceImpl extends ...@@ -141,18 +112,16 @@ public class TargetLogServiceImpl extends
@Override @Override
public void addTargetLogs(List<Long> orderIds, Date achievementTime, TargetLogEnum targetLogEnum) { public void addTargetLogs(List<Long> orderIds, Date achievementTime, TargetLogEnum targetLogEnum) {
if (targetLogEnum.getType() == 3) { if (targetLogEnum.getType() == 3) {//合单,合单前的所有订单业绩归0
//合单,合单前的所有订单业绩归0
orderIds.stream().forEach(item -> targetLogMapper.delete(new LambdaQueryWrapperX<TargetLogDO>() orderIds.stream().forEach(item -> targetLogMapper.delete(new LambdaQueryWrapperX<TargetLogDO>()
.eq(TargetLogDO::getOrderId, item))); .eq(TargetLogDO::getOrderId, item)));
} else if (targetLogEnum.getType() == 4) { } else if (targetLogEnum.getType() == 4) {//拆单,分别计算每个订单的业绩归属
//拆单,分别计算每个订单的业绩归属 orderIds.stream().forEach(item -> dealTargetLog(item, achievementTime,targetLogEnum.getType()));
orderIds.stream().forEach(item -> dealTargetLog(item, achievementTime, targetLogEnum.getType()));
} }
} }
@Override @Override
public List<TargetLogDO> getTargetLogListByUserIds(List<Long> collect, Date startTime, Date endTime) { public List<TargetLogDO> getTargetLogListByUserIds(List<Long> collect, Date startTime,Date endTime) {
List<TargetLogDO> targetLogDOS = targetLogMapper.selectList(new LambdaQueryWrapperX<TargetLogDO>() List<TargetLogDO> targetLogDOS = targetLogMapper.selectList(new LambdaQueryWrapperX<TargetLogDO>()
.betweenIfPresent(TargetLogDO::getAchievementTime, startTime, endTime) .betweenIfPresent(TargetLogDO::getAchievementTime, startTime, endTime)
.in(TargetLogDO::getUserId, collect)); .in(TargetLogDO::getUserId, collect));
...@@ -165,157 +134,35 @@ public class TargetLogServiceImpl extends ...@@ -165,157 +134,35 @@ public class TargetLogServiceImpl extends
OrderDO orderDO = orderService.selectOne(OrderDO::getOrderNo, item); OrderDO orderDO = orderService.selectOne(OrderDO::getOrderNo, item);
TargetLogDO targetLogDO = targetLogMapper.selectOne(TargetLogDO::getOrderId, orderDO.getOrderId()); TargetLogDO targetLogDO = targetLogMapper.selectOne(TargetLogDO::getOrderId, orderDO.getOrderId());
if (targetLogDO == null) { if (targetLogDO == null) {
//获取装柜时间 Date time = targetLogMapper.selectCabinetSealingTime(orderDO.getOrderId());
Date time =
targetLogMapper.selectCabinetSealingTime(orderDO.getOrderId());
if (time != null) { if (time != null) {
dealTargetLog(orderDO.getOrderId(), dealTargetLog(orderDO.getOrderId(),time,TargetLogEnum.LOADING.getType());
time,
TargetLogEnum.LOADING.getType());
} }
} }
}); });
} }
private void dealTargetLog(Long orderId, private void dealTargetLog(Long orderId, Date achievementTime,Integer type) {
Date achievementTime, long selectCount = targetLogMapper.selectCount(TargetLogDO::getOrderId, orderId);
Integer type) {
long selectCount = targetLogMapper.selectCount(TargetLogDO::getOrderId,
orderId);
if (selectCount > 0L) { if (selectCount > 0L) {
return; return;
} }
OrderBackInfoDto info = orderQueryService.info(orderId); OrderBackInfoDto info = orderQueryService.info(orderId);
if (info != null && info.getSalesmanId() != null if (info != null && info.getSalesmanId()!=null && info.getSalesmanId()>0L) {//客户经理
&& info.getSalesmanId() > 0L) {
//客户经理
Long customerId = 0L; Long customerId = 0L;
Long saleManid = info.getSalesmanId(); if (info.getType().contains("2")) {//海外仓归属发货人
CustomerDO consignorDO = customerId = info.getConsignorVO().getCustomerId();
customerService.getCustomer(info.getConsignorVO().getCustomerId());
//收货人
CustomerDO consigneeDO =
customerService.getCustomer(info.getConsigneeVO().getCustomerId());
if (info.getType().contains("2")) {
//海外仓归属发货人
//customerId = info.getConsignorVO().getCustomerId(); //二期需求修改
customerId = consignorDO.getId();
//客户的客户经理为空,就把业绩归属设为0
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
}
} else { } else {
OrderConsigneeDO orderConsigneeDO = if (info.getIsCargoControl()) {//非海外控货归属发货人
orderConsigneeService.getOne( customerId = info.getConsignorVO().getCustomerId();
new LambdaQueryWrapper<OrderConsigneeDO>().eq(OrderConsigneeDO::getOrderId, info.getOrderId()).orderByDesc(OrderConsigneeDO::getId).last("limit 1"));
OrderConsignorDO orderConsignorDO =
orderConsignorService.getOne(
new LambdaQueryWrapper<OrderConsignorDO>().eq(OrderConsignorDO::getOrderId, info.getOrderId()).orderByDesc(OrderConsignorDO::getId).last("limit 1"));
if (consignorDO != null && !consignorDO.getNoConsignee()
&& !info.getHasConsignee()) {
//getHasConsignee 是否有收货人
//发货人档案设置控货无收货人且订单无收获人,归属发货人业绩 -- 层级2
if (consignorDO != null) {
customerId = consignorDO.getId();
}
} else { } else {
List<TargetOfferBackVO> offerBackVOList = if (info.getDrawee() == 1) {//非海外非控货 付款人为发货人 归属发货人
targetLogMapper.getTargetOfferBackByOrerId(orderId); customerId = info.getConsignorVO().getCustomerId();
if (info.getDrawee() == 1) { } else { //非海外非控货 付款人为其他 归属收货人
//发货人付款 customerId = info.getConsigneeVO().getCustomerId();
/*
if (info.getDrawee() == 1 &&
CollectionUtil.isNotEmpty(offerBackVOList)) {
//如果是发货人付款且关联报价单,业绩归属发货人 --层级3 第一个
customerId = consignorDO.getId();
}else if(info.getDrawee() == 1 &&
consignorDO.getDefaultPay() ){
// 如果是发货人付款且档案设置默认付运费 --层级4 第一个
customerId = consignorDO.getId();
}else{
//业绩归属方是收货人
customerId = orderConsigneeDO.getCustomerId() ;
}*/
if (CollectionUtil.isNotEmpty(offerBackVOList)) {
//如果是发货人付款且关联报价单,业绩归属发货人 --层级3 第一个
customerId = consignorDO.getId();
} else {
if (consignorDO.getDefaultPay()) {
// 如果是发货人付款且档案设置默认付运费 --层级4 第一个
customerId = consignorDO.getId();
} else {
//业绩归属方是收货人
customerId = orderConsigneeDO.getCustomerId();
}
}
} else if (info.getDrawee() == 2) {
//收货人付款 层级5 第一个
customerId = orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : consigneeDO.getId();
} else if (info.getDrawee() == 3) {
//自定义付款
List<CustomDraweeVO> list =
JSONObject.parseArray(info.getCustomDrawee(), CustomDraweeVO.class);
if (CollectionUtil.isNotEmpty(list)) {
List<CustomDraweeVO> freightList = list.stream().filter(s -> s.getName().equals("freight")).collect(Collectors.toList());
List<CustomDraweeVO> clearanceFeeList = list.stream().filter(s -> s.getName().equals("clearanceFee")).collect(Collectors.toList());
int freight = freightList.get(0).getValue();//运费
int clearanceFee = clearanceFeeList.get(0).getValue();//清关费
if (CollectionUtil.isNotEmpty(offerBackVOList) &&
(info.getDrawee() == 3 && freight == 1)) {
//层级3 第二个 订单关联报价单 && 自定义付款 且发货人付运费
customerId = orderConsignorDO.getCustomerId();
} else if (CollectionUtil.isNotEmpty(offerBackVOList) &&
(info.getDrawee() == 3 && clearanceFee == 1)) {
//层级3 第三个 订单关联报价单 && 自定义付款 且发货人付清关费
customerId = orderConsignorDO.getCustomerId();
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3 && freight == 1)) {
//层级4 第二个 发货人档案设置默认付运费 且发货人付运费 业绩归属 发货人
customerId = orderConsignorDO.getCustomerId();
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3 && clearanceFee == 1)) {
// 层级4 第三个 发货人档案设置默认付运费 且发货人付清关费
// 业绩归属发货人
customerId = orderConsignorDO.getCustomerId();
} else {
customerId = orderConsigneeDO.getCustomerId();
}
// if(!consignorDO.getDefaultPay() && (info.getDrawee()==3 && freight==2 ) || (info.getDrawee()==3 && clearanceFee==2)){//层级5 第二、第三点 自定义付款且收款人付运费 或自定义付款且收款人付清关费 ,业绩归属收货人
// customerId = orderConsigneeDO.getCustomerId() ;
//
// }
}
} else {
//业绩归属收货人
if (orderConsigneeDO != null) {
customerId =
orderConsigneeDO.getCustomerId() != null ? orderConsigneeDO.getCustomerId() : 0;
}
} }
} }
} }
TargetLogDO targetLogDO = new TargetLogDO(); TargetLogDO targetLogDO = new TargetLogDO();
targetLogDO.setOrderId(orderId); targetLogDO.setOrderId(orderId);
targetLogDO.setCustomerId(customerId); targetLogDO.setCustomerId(customerId);
...@@ -330,568 +177,7 @@ public class TargetLogServiceImpl extends ...@@ -330,568 +177,7 @@ public class TargetLogServiceImpl extends
targetLogDO.setCompleteWeight(info.getVWeight()); targetLogDO.setCompleteWeight(info.getVWeight());
targetLogDO.setType(type); targetLogDO.setType(type);
targetLogMapper.insert(targetLogDO); targetLogMapper.insert(targetLogDO);
//customerService.updateCustomerIsNewToOld(customerId); // customerService.updateCustomerIsNewToOld(customerId);
} }
} }
public void dealTargetLogTask2(Long orderId,
Date achievementTime,
long targetId) {
}
//按照新的业务规则计算业绩归属
public void dealTargetLogTask(Long orderId,
Date achievementTime,
long targetId) {
long selectCount =
targetLogMapper.selectCount(TargetLogDO::getOrderId,
orderId);
if (selectCount == 0L) {
return;
}
//获取订单信息
OrderBackInfoDto info = orderQueryService.info(orderId);
if (info == null) {
return;
}
if (info.getSalesmanId() == null) {
info.setSalesmanId(0L);
}
try {
//客户经理
Long customerId = 0L;
Long saleManid = info.getSalesmanId();
Date d0 = info.getRucangTime();
int loglev = 0;
String s_gsf = "n";
int n_gstype = 0;
CustomerDO consignorDO =
customerService.getCustomer(info.getConsignorVO().getCustomerId());
//收货人
CustomerDO consigneeDO =
customerService.getCustomer(info.getConsigneeVO().getCustomerId());
if (info.getType().contains("2")) {
//层级1: 订单为海外仓订单,业绩归属发货人+
//发货人归属客户经理(判断优先级最高,只要是海外仓,不需要判断其他条件)
//海外仓归属发货人
//customerId = info.getConsignorVO().getCustomerId();
//二期需求修改
customerId = consignorDO.getId();
loglev = 1;
s_gsf = "归发货客户";
n_gstype = 1;
//客户的客户经理为空,就把业绩归属设为0
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 11;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 11;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
OrderConsigneeDO orderConsigneeDO =
orderConsigneeService.getOne(
new LambdaQueryWrapper<OrderConsigneeDO>().
eq(OrderConsigneeDO::getOrderId,
info.getOrderId()).orderByDesc(
OrderConsigneeDO::getId).last("limit 1"));
OrderConsignorDO orderConsignorDO =
orderConsignorService.getOne(
new LambdaQueryWrapper<OrderConsignorDO>().
eq(OrderConsignorDO::getOrderId,
info.getOrderId()).orderByDesc(
OrderConsignorDO::getId).last("limit 1"));
if (consignorDO != null && !consignorDO.getNoConsignee()
&& !info.getHasConsignee()) {
//getHasConsignee 是否有收货人
//控货无收货人,1-是,0-否
//发货人档案设置控货无收货人且订单无收获人,归属发货人业绩 -- 层级2
customerId = consignorDO.getId();
loglev = 2;
n_gstype = 1;
s_gsf = "发货人档案设置控货无收货人且订单无收获人,归发货客户";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 21;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 21;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
List<TargetOfferBackVO> offerBackVOList =
targetLogMapper.getTargetOfferBackByOrerId(orderId);
if (info.getDrawee() == 1) {
if (CollectionUtil.isNotEmpty(offerBackVOList)) {
//如果是发货人付款且关联报价单,业绩归属发货人 --层级3 第一个
customerId = consignorDO.getId();
loglev = 3;
n_gstype = 1;
s_gsf = "发货人付运费,有报价单,归发货客户";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 31;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 31;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else {
if (consignorDO.getDefaultPay()) {
//如果是发货人付款且档案设置默认付运费 --层级4 第一个
customerId = consignorDO.getId();
loglev = 4;
n_gstype = 1;
s_gsf = "发货人付运费,无报价单,默认付运费,归发货客户";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 41;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 41;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else {
//业绩归属方是收货人
loglev = 5;
customerId = orderConsigneeDO.getCustomerId();
n_gstype = 2;
s_gsf = "发货人付运费,无报价单,不默认付运费,归收货客户";
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 51;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 51;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
}
} else if (info.getDrawee() == 2) {
//收货人付款 层级5 第一个
customerId = orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : consigneeDO.getId();
loglev = 5;
n_gstype = 2;
s_gsf = "收货人付运费,归收货客户";
if (consigneeDO == null) {
s_gsf += ",收货客户为空。";
saleManid = 0L;
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0||
consigneeDO.getIsInOpenSea() == true) {
//if(consigneeDO.getSource() == 12)
//收货人客户经理为空时不算业绩
//客户来源是发货人推荐,不保留业绩记录 customer_source
//2024-06-03 添加的逻辑
s_gsf += ",收货人客户经理为空,货在公海池,发货人推荐,不算奖金。";
saleManid = 0L;
//删除业绩记录
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
s_gsf += ",发货人带来的收货人,有客户经理,归收货人客户经理。";
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
saleManid = consigneeDO.getCustomerService();
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else if (info.getDrawee() == 3) {
//自定义付款
List<CustomDraweeVO> list =
JSONObject.parseArray(info.getCustomDrawee(),
CustomDraweeVO.class);
if (CollectionUtil.isNotEmpty(list)) {
s_gsf = "自定义付款,付款人不为空";
List<CustomDraweeVO> freightList =
list.stream().filter(s -> s.getName().equals("freight")).collect(Collectors.toList());
List<CustomDraweeVO> clearanceFeeList =
list.stream().filter(s -> s.getName().equals("clearanceFee")).collect(Collectors.toList());
int freight = freightList.get(0).getValue();//运费
int clearanceFee = clearanceFeeList.get(0).getValue();
//清关费
if (CollectionUtil.isNotEmpty(offerBackVOList) &&
(info.getDrawee() == 3 && freight == 1)) {
//层级3 第二个 订单关联报价单 && 自定义付款 且发货人付运费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf += "有报价单,发货人付运费,归发货客户";
n_gstype = 1;
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 31;
s_gsf += ",客户经理为空,不算奖金。";
}
if (consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 31;
s_gsf += ",客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else if (CollectionUtil.isNotEmpty(offerBackVOList)
&& (info.getDrawee() == 3 && clearanceFee == 1)) {
//层级3 第三个 订单关联报价单 && 自定义付款 且发货人付清关费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf += "有报价单,发货人付清关费,归发货客户";
n_gstype = 1;
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 32;
s_gsf += ",客户经理为空,或客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3 && freight == 1)) {
//层级4 第二个 发货人档案设置默认付运费 且发货人付运费 业绩归属 发货人
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
n_gstype = 1;
s_gsf += "无报价单,发货人档案设置默认付运费 且发货人付运费,归发货客户";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 33;
s_gsf += ",客户经理为空,或客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3 && clearanceFee == 1)) {
//层级4 第三个 发货人档案设置默认付运费 且发货人付清关费 业绩归属发货人
loglev = 4;
customerId = orderConsignorDO.getCustomerId();
s_gsf += "无报价单,发货人档案设置默认付运费 且发货人付清关费,归发货客户";
n_gstype = 1;
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 1;
s_gsf += ",客户经理为空,客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
} else {
customerId = orderConsigneeDO.getCustomerId();
loglev = 5;
s_gsf += ",不满足自定义付款人前面的条件,归收货人";
n_gstype = 2;
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 51;
s_gsf += ",客户经理为空,客户在公海池,不算奖金。";
}
TargetLogDO targetLogDO =
targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
}
}
//业绩归属收货人
if (orderConsigneeDO == null) {
s_gsf = "前4级都不满足,归收货人,收货人为空,不算奖金";
saleManid = 0L;
n_gstype = 2;
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
customerId = orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : 0;
loglev = 5;
s_gsf = "前4级都不满足,归收货人";
n_gstype = 2;
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0) {
saleManid = 0L;
s_gsf += ",收货人客户经理为空,不算奖金。";
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 52;
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
if (consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
s_gsf += ",收货人客户在公海池,不算奖金。";
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 52;
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setGstype(n_gstype);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
return;
}
} catch (Exception e) {
zTest m2 = new zTest();
m2.setTestname(e.getMessage() + "发生异常," + info.getOrderNo());
m2.setCreatedate(new Date());
zTestMapper2.insert(m2);
}
}
} }
package cn.iocoder.yudao.module.order.task; //package cn.iocoder.yudao.module.order.task;
//
import cn.hutool.core.collection.CollectionUtil; //import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; //import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; //import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.framework.tenant.core.job.TenantJob; //import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest; //import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest;
import cn.iocoder.yudao.module.order.dal.dataobject.targetLog.TargetLogDO; //import cn.iocoder.yudao.module.order.dal.dataobject.targetLog.TargetLogDO;
import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2; //import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2;
import cn.iocoder.yudao.module.order.service.targetLog.TargetLogServiceImpl; //import cn.iocoder.yudao.module.order.service.targetLog.TargetLogServiceImpl;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.util.Date; //import java.util.Date;
import java.util.List; //import java.util.List;
//
@Component //@Component
@TenantJob //@TenantJob
@Slf4j //@Slf4j
public class TargetLogJob implements JobHandler { //public class TargetLogJob implements JobHandler {
@Resource // @Resource
ZTestMapper2 zTestMapper2; // ZTestMapper2 zTestMapper2;
//
@Resource // @Resource
TargetLogServiceImpl targetLogService; // TargetLogServiceImpl targetLogService;
//
@Override // @Override
public String execute(String param) throws Exception { // public String execute(String param) throws Exception {
int var1 = 30; // int var1 = 30;
int var2 = 3; // int var2 = 3;
int var3 = 6; // int var3 = 6;
String sDate = ""; // String sDate = "";
//
if (StringUtils.isNotBlank(param)) { // if (StringUtils.isNotBlank(param)) {
String[] vars = param.split(StrUtil.COMMA); // String[] vars = param.split(StrUtil.COMMA);
if (vars.length > 0) { // if (vars.length > 0) {
var1 = Integer.parseInt(vars[0]); // var1 = Integer.parseInt(vars[0]);
} // }
if (vars.length > 1) { // if (vars.length > 1) {
var2 = Integer.parseInt(vars[1]); // var2 = Integer.parseInt(vars[1]);
} // }
if (vars.length > 2) { // if (vars.length > 2) {
var3 = Integer.parseInt(vars[2]); // var3 = Integer.parseInt(vars[2]);
} // }
sDate = vars[0] + "-" + vars[1]; // sDate = vars[0] + "-" + vars[1];
} // }
//
zTest m = new zTest(); // zTest m = new zTest();
if (sDate == null || sDate.length() == 0) { // if (sDate == null || sDate.length() == 0) {
m.setTestname("日期参数为空。"); // m.setTestname("日期参数为空。");
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
return ""; // return "";
} // }
//
//System.out.println("定时任务参数:" + param); // //System.out.println("定时任务参数:" + param);
List<TargetLogDO> list = targetLogService.selectList2(sDate); // List<TargetLogDO> list = targetLogService.selectList2(sDate);
if (CollectionUtil.isEmpty(list)) { // if (CollectionUtil.isEmpty(list)) {
m.setTestname(sDate+"获取业绩归属数据为空"); // m.setTestname(sDate+"获取业绩归属数据为空");
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
} // }
//
m.setTestname(sDate+"开始处理业绩归属数据:"+list.size()); // m.setTestname(sDate+"开始处理业绩归属数据:"+list.size());
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
//
for (TargetLogDO t : list) { // for (TargetLogDO t : list) {
targetLogService.dealTargetLogTask(t.getOrderId(), // targetLogService.dealTargetLogTask(t.getOrderId(),
null, t.getId()); // null, t.getId());
} // }
zTest m2 = new zTest(); // zTest m2 = new zTest();
m2.setTestname("业绩归属计算完毕"); // m2.setTestname("业绩归属计算完毕");
m2.setCreatedate(new Date()); // m2.setCreatedate(new Date());
zTestMapper2.insert(m2); // zTestMapper2.insert(m2);
return ""; // return "";
} // }
} //}
package cn.iocoder.yudao.module.order.task; //package cn.iocoder.yudao.module.order.task;
//
import cn.hutool.core.collection.CollectionUtil; //import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; //import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; //import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.framework.tenant.core.job.TenantJob; //import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest; //import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest;
import cn.iocoder.yudao.module.order.dal.dataobject.targetLog.TargetLogDO; //import cn.iocoder.yudao.module.order.dal.dataobject.targetLog.TargetLogDO;
import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2; //import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2;
import cn.iocoder.yudao.module.order.service.targetLog.TargetLogServiceImpl; //import cn.iocoder.yudao.module.order.service.targetLog.TargetLogServiceImpl;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.util.Date; //import java.util.Date;
import java.util.List; //import java.util.List;
//
@Component //@Component
@TenantJob //@TenantJob
@Slf4j //@Slf4j
public class TestTargetLogJob implements JobHandler { //public class TestTargetLogJob implements JobHandler {
//
@Resource // @Resource
ZTestMapper2 zTestMapper2; // ZTestMapper2 zTestMapper2;
//
@Resource // @Resource
TargetLogServiceImpl targetLogService; // TargetLogServiceImpl targetLogService;
//
@Override // @Override
public String execute(String param) throws Exception { // public String execute(String param) throws Exception {
int var1 = 30; // int var1 = 30;
int var2 = 3; // int var2 = 3;
int var3 = 6; // int var3 = 6;
String sDate = ""; // String sDate = "";
//
if (StringUtils.isNotBlank(param)) { // if (StringUtils.isNotBlank(param)) {
String[] vars = param.split(StrUtil.COMMA); // String[] vars = param.split(StrUtil.COMMA);
if (vars.length > 0) { // if (vars.length > 0) {
var1 = Integer.parseInt(vars[0]); // var1 = Integer.parseInt(vars[0]);
} // }
if (vars.length > 1) { // if (vars.length > 1) {
var2 = Integer.parseInt(vars[1]); // var2 = Integer.parseInt(vars[1]);
} // }
if (vars.length > 2) { // if (vars.length > 2) {
var3 = Integer.parseInt(vars[2]); // var3 = Integer.parseInt(vars[2]);
} // }
sDate = vars[0] + "-" + vars[1]; // sDate = vars[0] + "-" + vars[1];
} // }
//
zTest m = new zTest(); // zTest m = new zTest();
if (sDate == null || sDate.length() == 0) { // if (sDate == null || sDate.length() == 0) {
m.setTestname("日期参数为空。"); // m.setTestname("日期参数为空。");
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
return ""; // return "";
} // }
//
//System.out.println("定时任务参数:" + param); // //System.out.println("定时任务参数:" + param);
List<TargetLogDO> list = targetLogService.selectList2(sDate); // List<TargetLogDO> list = targetLogService.selectList2(sDate);
//
if (CollectionUtil.isEmpty(list)) { // if (CollectionUtil.isEmpty(list)) {
m.setTestname(sDate+"获取业绩归属数据为空"); // m.setTestname(sDate+"获取业绩归属数据为空");
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
} // }
//
m.setTestname(sDate+"开始处理业绩归属数据:"+list.size()); // m.setTestname(sDate+"开始处理业绩归属数据:"+list.size());
m.setCreatedate(new Date()); // m.setCreatedate(new Date());
zTestMapper2.insert(m); // zTestMapper2.insert(m);
//
for (TargetLogDO t : list) { // for (TargetLogDO t : list) {
targetLogService.dealTargetLogTask2(t.getOrderId(), // targetLogService.dealTargetLogTask2(t.getOrderId(),
null, t.getId()); // null, t.getId());
} // }
zTest m2 = new zTest(); // zTest m2 = new zTest();
m2.setTestname("业绩归属计算完毕"); // m2.setTestname("业绩归属计算完毕");
m2.setCreatedate(new Date()); // m2.setCreatedate(new Date());
zTestMapper2.insert(m2); // zTestMapper2.insert(m2);
return ""; // return "";
} // }
} //}
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