Commit b5acb1a9 authored by lanbaoming's avatar lanbaoming

2024-07-04-4提交

parent 603bd59b
......@@ -17,7 +17,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
public interface TargetLogService extends IService<TargetLogDO> {
//批量处理业绩归属问题
public void dealTargetLogTask(Long orderId, Date achievementTime, long targetId);
void dealTargetLogTask(Long orderId, Date achievementTime, long targetId);
void dealTargetLogTask2(Long orderId, Date achievementTime, long targetId);
/**
* 创建部门业绩日志
......
......@@ -43,7 +43,8 @@ import cn.iocoder.yudao.module.order.dal.mysql.targetLog.TargetLogMapper;
*/
@Service
@Validated
public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, TargetLogDO> implements TargetLogService {
public class TargetLogServiceImpl extends
AbstractService<TargetLogMapper, TargetLogDO> implements TargetLogService {
@Resource
private TargetLogMapper targetLogMapper;
......@@ -357,7 +358,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
Long customerId = 0L;
Long saleManid = info.getSalesmanId();
int loglev = 0;
String s_gsf="n";
String s_gsf = "n";
CustomerDO consignorDO =
customerService.getCustomer(info.getConsignorVO().getCustomerId());
......@@ -373,7 +374,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//二期需求修改
customerId = consignorDO.getId();
loglev = 1;
s_gsf="f";
s_gsf = "f";
//客户的客户经理为空,就把业绩归属设为0
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -406,7 +407,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
if (consignorDO != null) {
customerId = consignorDO.getId();
loglev = 2;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -427,7 +428,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//如果是发货人付款且关联报价单,业绩归属发货人 --层级3 第一个
customerId = consignorDO.getId();
loglev = 3;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -442,7 +443,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//如果是发货人付款且档案设置默认付运费 --层级4 第一个
customerId = consignorDO.getId();
loglev = 4;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -456,7 +457,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//业绩归属方是收货人
loglev = 5;
customerId = orderConsigneeDO.getCustomerId();
s_gsf="s";
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
......@@ -474,7 +475,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
customerId = orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : consigneeDO.getId();
loglev = 5;
s_gsf="s";
s_gsf = "s";
if (consigneeDO != null &&
(consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0)) {
......@@ -510,7 +511,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//层级3 第二个 订单关联报价单 && 自定义付款 且发货人付运费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -527,7 +528,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//层级3 第三个 订单关联报价单 && 自定义付款 且发货人付清关费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -543,7 +544,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
//层级4 第二个 发货人档案设置默认付运费 且发货人付运费 业绩归属 发货人
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -560,7 +561,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
// 层级4 第三个 发货人档案设置默认付运费 且发货人付清关费 业绩归属发货人
loglev = 4;
customerId = orderConsignorDO.getCustomerId();
s_gsf="f";
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
......@@ -574,7 +575,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
} else {
customerId = orderConsigneeDO.getCustomerId();
loglev = 5;
s_gsf="s";
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
......@@ -595,7 +596,7 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
orderConsigneeDO.getCustomerId() : 0;
loglev = 5;
s_gsf="s";
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO != null) {
if (consigneeDO.getCustomerService() == null ||
......@@ -617,17 +618,14 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
if(loglev==0)
{
loglev=-1;
if (loglev == 0) {
loglev = -1;
}
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf( s_gsf);
targetLogDO.setGsf(s_gsf);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
}
catch (Exception e)
{
} catch (Exception e) {
zTest m2 = new zTest();
m2.setTestname(e.getMessage());
m2.setCreatedate(new Date());
......@@ -635,4 +633,285 @@ public class TargetLogServiceImpl extends AbstractService<TargetLogMapper, Targe
}
}
public void dealTargetLogTask2(Long orderId,
Date achievementTime,
long targetId) {
try {
long selectCount =
targetLogMapper.selectCount(TargetLogDO::getOrderId,
orderId);
if (selectCount == 0L) {
return;
}
//获取订单信息
OrderBackInfoDto info = orderQueryService.info(orderId);
if (info == null) {
return;
}
if (info.getSalesmanId() == null) {
return;
}
if (info.getSalesmanId() == 0l) {
return;
}
//客户经理
Long customerId = 0L;
Long saleManid = info.getSalesmanId();
int loglev = 0;
String s_gsf = "n";
CustomerDO consignorDO =
customerService.getCustomer(info.getConsignorVO().getCustomerId());
//收货人
CustomerDO consigneeDO =
customerService.getCustomer(info.getConsigneeVO().getCustomerId());
if (info.getType().contains("2")) {
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"));
//getHasConsignee 是否有收货人
//发货人档案设置控货无收货人且订单无收获人,归属发货人业绩 -- 层级2
if (consignorDO != null) {
customerId = consignorDO.getId();
loglev = 2;
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 21;
}
}
if (info.getDrawee() == 1) {
if (consignorDO.getDefaultPay()) {
//如果是发货人付款且档案设置默认付运费 --层级4 第一个
customerId = consignorDO.getId();
loglev = 4;
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 41;
}
} else {
//业绩归属方是收货人
loglev = 5;
customerId = orderConsigneeDO.getCustomerId();
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 51;
}
}
} else if (info.getDrawee() == 2) {
//收货人付款 层级5 第一个
customerId = orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : consigneeDO.getId();
loglev = 5;
s_gsf = "s";
if (consigneeDO != null &&
(consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0)) {
//收货人客户经理为空时不算业绩
//客户来源是发货人推荐,不保留业绩记录 customer_source
//2024-06-03 添加的逻辑
if (consigneeDO.getSource() == 12) {
//删除业绩记录
targetLogMapper.deleteById(targetId);
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
return;
}
}
} 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 ((info.getDrawee() == 3 && freight == 1)) {
//层级3 第二个 订单关联报价单 && 自定义付款 且发货人付运费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 31;
}
} else if ((info.getDrawee() == 3 && clearanceFee == 1)) {
//层级3 第三个 订单关联报价单 && 自定义付款 且发货人付清关费
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 32;
}
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3 && freight == 1)) {
//层级4 第二个 发货人档案设置默认付运费 且发货人付运费 业绩归属 发货人
customerId = orderConsignorDO.getCustomerId();
loglev = 3;
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 33;
}
} else if (consignorDO.getDefaultPay() &&
(info.getDrawee() == 3
&& clearanceFee == 1)) {
// 层级4 第三个 发货人档案设置默认付运费 且发货人付清关费 业绩归属发货人
loglev = 4;
customerId = orderConsignorDO.getCustomerId();
s_gsf = "f";
//校验客户的客户经理
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 1;
}
} else {
customerId = orderConsigneeDO.getCustomerId();
loglev = 5;
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 51;
}
}
}
} else {
//业绩归属收货人
if (orderConsigneeDO != null) {
customerId =
orderConsigneeDO.getCustomerId() != null ?
orderConsigneeDO.getCustomerId() : 0;
loglev = 5;
s_gsf = "s";
//校验客户的客户经理
if (consigneeDO != null) {
if (consigneeDO.getCustomerService() == null ||
consigneeDO.getCustomerService() == 0 ||
consigneeDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 52;
}
}
}
}
} else {
//层级1: 订单为海外仓订单,业绩归属发货人+
//发货人归属客户经理(判断优先级最高,只要是海外仓,不需要判断其他条件)
//海外仓归属发货人
//customerId = info.getConsignorVO().getCustomerId();
//二期需求修改
customerId = consignorDO.getId();
loglev = 1;
s_gsf = "f";
//客户的客户经理为空,就把业绩归属设为0
if (consignorDO.getCustomerService() == null ||
consignorDO.getCustomerService() == 0 ||
consignorDO.getIsInOpenSea() == true) {
saleManid = 0L;
orderService.updateOrderSalesmanId(info.getOrderId(),
0L);
loglev = 11;
}
}
TargetLogDO targetLogDO = targetLogMapper.selectById(targetId);
//客户ID
targetLogDO.setCustomerId(customerId);
//客户经理ID
targetLogDO.setUserId(saleManid);
if (loglev == 0) {
loglev = -1;
}
targetLogDO.setLoglev(loglev);
targetLogDO.setGsf(s_gsf);
targetLogDO.setUpdateTime(new Date());
targetLogMapper.updateById(targetLogDO);
} catch (Exception e) {
zTest m2 = new zTest();
m2.setTestname(e.getMessage());
m2.setCreatedate(new Date());
zTestMapper2.insert(m2);
}
}
}
package cn.iocoder.yudao.module.order.task;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
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.targetLog.TargetLogDO;
import cn.iocoder.yudao.module.order.dal.mysql.order.ZTestMapper2;
import cn.iocoder.yudao.module.order.service.targetLog.TargetLogServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Component
@TenantJob
@Slf4j
public class TestTargetLogJob implements JobHandler {
@Resource
ZTestMapper2 zTestMapper2;
@Resource
TargetLogServiceImpl targetLogService;
@Override
public String execute(String param) throws Exception {
int var1 = 30;
int var2 = 3;
int var3 = 6;
String sDate = "";
if (StringUtils.isNotBlank(param)) {
String[] vars = param.split(StrUtil.COMMA);
if (vars.length > 0) {
var1 = Integer.parseInt(vars[0]);
}
if (vars.length > 1) {
var2 = Integer.parseInt(vars[1]);
}
if (vars.length > 2) {
var3 = Integer.parseInt(vars[2]);
}
sDate = vars[0] + "-" + vars[1];
}
zTest m = new zTest();
if (sDate == null || sDate.length() == 0) {
m.setTestname("日期参数为空。");
m.setCreatedate(new Date());
zTestMapper2.insert(m);
return "";
}
//System.out.println("定时任务参数:" + param);
List<TargetLogDO> list = targetLogService.selectList2(sDate);
if (CollectionUtil.isEmpty(list)) {
m.setTestname(sDate+"获取业绩归属数据为空");
m.setCreatedate(new Date());
zTestMapper2.insert(m);
}
m.setTestname(sDate+"开始处理业绩归属数据:"+list.size());
m.setCreatedate(new Date());
zTestMapper2.insert(m);
for (TargetLogDO t : list) {
targetLogService.dealTargetLogTask2(t.getOrderId(),
null, t.getId());
}
zTest m2 = new zTest();
m2.setTestname("业绩归属计算完毕");
m2.setCreatedate(new Date());
zTestMapper2.insert(m2);
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