|
|
@@ -13,15 +13,11 @@ import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.common.enums.StringConstant;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
-import com.sckw.core.model.enums.CarWaybillEnum;
|
|
|
-import com.sckw.core.model.enums.CooperateTypeEnum;
|
|
|
-import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
+import com.sckw.core.model.constant.Global;
|
|
|
+import com.sckw.core.model.enums.*;
|
|
|
import com.sckw.core.model.page.PageRes;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
-import com.sckw.core.utils.CollectionUtils;
|
|
|
-import com.sckw.core.utils.IdWorker;
|
|
|
-import com.sckw.core.utils.RegularUtils;
|
|
|
-import com.sckw.core.utils.StringUtils;
|
|
|
+import com.sckw.core.utils.*;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
@@ -66,8 +62,6 @@ import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.sckw.transport.utils.StringUtils.getLOrderNo;
|
|
|
-
|
|
|
/**
|
|
|
* @author lfdc
|
|
|
* @description 承运订单service
|
|
|
@@ -188,7 +182,12 @@ public class AcceptCarriageOrderService {
|
|
|
if (ignoreAmount.compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
throw new RuntimeException("剩余可分配量为0,不可进行分包操作!");
|
|
|
}
|
|
|
- String lOrderNo = getLOrderNo();
|
|
|
+ int level = logisticsLevel(logisticsOrder);
|
|
|
+ long number = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
+ .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
|
|
|
+ .apply(logisticsOrder.getId() != null, "FIND_IN_SET ('" + bo.getLOrderId() + "', pids)").ne(KwtLogisticsOrder::getId, bo.getLOrderId()))
|
|
|
+ .stream().count();
|
|
|
+ String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, logisticsOrder.getType(), String.valueOf(level), String.valueOf(number));
|
|
|
Long orderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
/**分包托运需要判断处于哪一级分包托运
|
|
|
* 需要记录当前分包数据-分包上游数据
|
|
|
@@ -1593,8 +1592,7 @@ public class AcceptCarriageOrderService {
|
|
|
/**保存新建数据*/
|
|
|
Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
/**生成订单编号*/
|
|
|
- String lOrderNo = getLOrderNo();
|
|
|
-// getLogisticsLOrderNo("T","0","0","1");
|
|
|
+ String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "1");
|
|
|
/**根据合同计算当前单据状态*/
|
|
|
/**判断生成物流订单应生成哪一种单据状态*/
|
|
|
List<Long> contractList = new ArrayList<>();
|
|
|
@@ -2133,4 +2131,16 @@ public class AcceptCarriageOrderService {
|
|
|
HttpResult httpResult = statisticsAcceptCarriage(query, type);
|
|
|
return httpResult;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param logisticsOrder 承运订单
|
|
|
+ * @description 当前承运订单所属分包层级
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/24
|
|
|
+ **/
|
|
|
+ public int logisticsLevel(KwtLogisticsOrder logisticsOrder) {
|
|
|
+ String pids = logisticsOrder.getPids();
|
|
|
+ String[] idArrays = StringUtils.isBlank(pids) ? new String[0] : pids.split(Global.COMMA);
|
|
|
+ return idArrays.length <= 1 ? Global.NUMERICAL_ONE : (idArrays.length - Global.NUMERICAL_ONE);
|
|
|
+ }
|
|
|
}
|