提交 4466e99e authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'refs/heads/v16.3_line_warn_20240528' into test

package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
public enum OrderEnum {
;
//订单状态: 0待报价 1客户确认中 2报价已确认 3平台已承接 4已取消 5暂停 6拒绝承运 7 挂单中 8运输中 9订单已完成 10 已失效
@Getter
@AllArgsConstructor
public enum Status {
WAIT_QUOTATION(0, "待报价"),
CUSTOMER_CONFIRMING(1, "客户确认中"),
QUOTATION_CONFIRMED(2, "报价已确认"),
PLATFORM_UNDERTAKING(3, "平台已承接"),
CANCELED(4, "已取消"),
SUSPEND(5, "暂停"),
REFUSAL_TO_CARRY(6, "拒绝承运"),
ON_ORDER(7, "挂单中"),
IN_TRANSIT(8, "运输中"),
SUCCESS(9, "订单已完成"),
EXPIRED(10, "已失效"),
POST_ORDER(11, "已挂单"),
COMPLETED(12,"已完结")
;
private final Integer code;
private final String name;
public static Status getByCode(int code) {
for(Status type: Status.values()){
if(type.code == code){
return type;
}
}
return null;
}
}
//申请状态 1.申请 2.驳回 3.同意 4.过期'
@Getter
@AllArgsConstructor
public enum CancelApplyStatus {
APPLY(1, "申请"),
REJECT(2, "驳回"),
AGREE(3, "同意"),
EXPIRED(4, "过期");
private final int code;
private final String name;
public static Status getByCode(int code) {
for(Status type: Status.values()){
if(type.code == code){
return type;
}
}
return null;
}
}
//报价状态 2.确认报价 3.驳回报价 4.报价过期'
@Getter
@AllArgsConstructor
public enum QuotationStatus{
CONFIRM(2, "确认报价"),
REJECT(3, "驳回报价"),
EXPIRE(4, "报价过期");
private final int code;
private final String name;
public static QuotationStatus getByCode(Integer code) {
for(QuotationStatus type: QuotationStatus.values()){
if(type.code == code){
return type;
}
}
return null;
}
}
@Getter
@AllArgsConstructor
public enum OverWeight{
NO(0, "否"),
YES(1, "是");
private final Integer code;
private final String name;
public static OverWeight getByCode(Integer code) {
for(OverWeight type: OverWeight.values()){
if(Objects.equals(type.code,code)){
return type;
}
}
return null;
}
}
@Getter
@AllArgsConstructor
public enum ReportFlag{
NO(0, "否"),
YES(1, "是");
private final int code;
private final String name;
public static String getNameByCode(int code) {
for(ReportFlag type: ReportFlag.values()){
if(type.code == code){
return type.getName();
}
}
return null;
}
}
//预付运费标识 1:部分预付 2:全额预付
@Getter
@AllArgsConstructor
public enum PrepayFreightFlag{
PART(1, "部分预付"),
ALL(2, "全额预付");
private final Integer code;
private final String name;
public static String getByCode(Integer code) {
for(PrepayFreightFlag type: PrepayFreightFlag.values()){
if(Objects.equals(type.code,code)){
return type.getName();
}
}
return null;
}
}
public static final List<Integer> BORROW_TIP_STATUS_lIST = Arrays.asList(
Status.PLATFORM_UNDERTAKING.getCode(),
Status.ON_ORDER.getCode(),
Status.POST_ORDER.getCode(),
Status.IN_TRANSIT.getCode()
);
//外部系统可以修改数据的状态
public static final List<Integer> SYNC_ORDER_UPDATE_lIST = Arrays.asList(
Status.CUSTOMER_CONFIRMING.getCode(),
Status.QUOTATION_CONFIRMED.getCode(),
Status.PLATFORM_UNDERTAKING.getCode(),
Status.ON_ORDER.getCode(),
Status.POST_ORDER.getCode(),
Status.IN_TRANSIT.getCode()
);
}
......@@ -118,13 +118,13 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
Integer sendSystemAddressId, Integer receiveSystemAddressId,
String beginTime);
@Select("select sum(if (unload_net>load_net, load_net, unload_net)) from order_child where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)")
@Select("select count(1) from order_child where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)")
BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo);
@Select("select sum(load_net) from order_child where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo);
@Select("select sum(unload_net) from order_child where order_goods_no=#{orderGoodsNo} and status in(80,90,100)")
@Select("select sum(if (unload_net>load_net, load_net, unload_net)) from order_child where order_goods_no=#{orderGoodsNo} and status in(80,90,100)")
BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo);
......
package com.clx.performance.service.impl.linewarn;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.linewarn.LineWarnConfigDao;
import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.enums.OrderEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.linewarn.LineWarnInfoEnum;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.linewarn.LineWarnConfig;
import com.clx.performance.model.linewarn.LineWarnInfo;
......@@ -29,6 +33,8 @@ import java.util.Objects;
public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService {
// 默认时间
private static final int DEFAULT_TIME = 60;
private static final BigDecimal OVER_WEIGHT = new BigDecimal(50);
private static final BigDecimal STANDARD_WEIGHT = new BigDecimal(33);
@Autowired
private LineWarnConfigDao lineWarnConfigDao;
@Autowired
......@@ -37,6 +43,8 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService {
private LineWarnCommonService lineWarnCommonService;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private OrderService orderService;
@Override
public void takeWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) {
......@@ -58,9 +66,17 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService {
// 任务完成率
BigDecimal taskCompleteRatio = BigDecimal.ZERO;
BigDecimal weight = orderChildDao.sumTakeWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo());
if (weight != null){
taskCompleteRatio = weight.divide(taskWeight, 4, RoundingMode.UP).movePointRight(2);
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
if (Objects.equals(orderInfo.getOverWeight(), OrderEnum.OverWeight.YES.getCode())){
weight = weight.multiply(OVER_WEIGHT);
}
else {
weight = weight.multiply(STANDARD_WEIGHT);
}
taskCompleteRatio = weight.divide(taskWeight, 4, RoundingMode.UP).movePointRight(2);
log.info("接单预警,任务量:{}, 完成量:{}, 任务完成率:{}, 总时间:{}, 需要时间:{}, 相差时间:{}", taskWeight, weight, taskCompleteRatio, totalTime, needTime, difTime);
List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论