Commit b987c129 authored by Administrator's avatar Administrator

Merge branch 'release' into 'jd_dev'

Release最新代码合并入捷道研发分支20241123

See merge request !38
parents 7485fdb0 62f240ff
......@@ -18,4 +18,4 @@ alter table `ecw_order`
-- 批量刷新订单放货数量、放货率
update ecw_order t LEFT JOIN (select ccp.order_id , ifnull(sum(ccp.pick_num),0) as releaseNum from ecw_order_cargo_control_pick ccp where
ccp.status in(1,2,3,4,5,6) group by ccp.order_id) t1 on t.order_id=t1.order_id set t.release_num=t1.releaseNum, t.release_ratio=ROUND(t1.releaseNum/t.sum_num,2)*100;
\ No newline at end of file
ccp.status in(1,2,3,4,5,6) group by ccp.order_id) t1 on t.order_id=t1.order_id set t.release_num=IFNULL(t1.releaseNum,0), t.release_ratio=IFNULL(ROUND(t1.releaseNum/t.sum_num,2)*100, 0);
\ No newline at end of file
-- 判断控货订单的限制属性设置
update ecw_order set is_limit_update_consignee = has_consignee, lock_consignee_day = IF(lock_consignee_day is not null,lock_consignee_day,30), lock_consignee_time = IF(unload_time is not null, CONCAT(DATE_FORMAT(DATE_ADD(unload_time, INTERVAL lock_consignee_day DAY),'%Y-%m-%d'), ' 23:59:59'), NULL) WHERE is_cargo_control = 1;
-- 进口城市的仓库设置免租期默认30天,
update ecw_warehouse w left join ecw_region r on w.shi = r.id set rent_free_days = 30, lock_recipient_days = 30 WHERE r.type in(1,3);
\ No newline at end of file
......@@ -1566,6 +1566,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......
......@@ -223,6 +223,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.guan_lian_order_status, ",
......@@ -707,6 +708,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.guan_lian_order_status, ",
......@@ -1135,6 +1137,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -1506,6 +1509,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -1737,6 +1741,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -1953,6 +1958,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -2160,6 +2166,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -2240,6 +2247,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......@@ -2445,6 +2453,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"rs.abnormal_state, ",
"rs.in_warehouse_state, ",
"rs.shipment_state, ",
"rs.pick_state, ",
"rs.audit_type, ",
"rs.audit_result, ",
"rs.exception_reason, ",
......@@ -2829,6 +2838,7 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.transport_id, ",
......
......@@ -89,6 +89,7 @@ public interface OrderCargoControlMapper extends AbstractMapper<OrderCargoContro
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.to_warehouse_state, ",
"o.transport_id, ",
"o.is_cargo_control, ",
......
......@@ -102,6 +102,7 @@ public interface OrderCargoControlPickMapper extends AbstractMapper<OrderCargoCo
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.to_warehouse_state, ",
"o.transport_id, ",
"o.is_cargo_control, ",
......
......@@ -117,6 +117,7 @@ public interface OrderExceptionMapper extends AbstractMapper<OrderExceptionDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.audit_type, ",
"o.audit_result, ",
"o.guan_lian_order_status, ",
......
......@@ -593,6 +593,15 @@ public class OrderBackInfoDto {
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAbnormalState(Integer abnormalState) {
this.abnormalState = abnormalState;
this.getOrderDesc();
......@@ -693,7 +702,7 @@ public class OrderBackInfoDto {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
// this.statusKey = OrderStatusMsgEnum.getStatusKey(this.status, this.inWarehouseState, this.shipmentState);
}
}
......
......@@ -31,7 +31,7 @@ public enum OrderStatusMsgEnum {
ADJUST_WAREHOUSE_PRE_INSTALLED(5, 10113, 215, 304, "调仓已到仓", "order.status.adjust.arrived.warehouse", "order.status.adjust.arrived.warehouse"),
EXIT_WAREHOUSE(5, 10114, 216, 0, "报关退场已入仓", "order.status.adjust.demobilized.warehoused", "order.status.warehousing"),
PRE_INSTALLED_PROGRESS(5, 10115, 202, 304, "已入仓", "order.status.warehousing", "order.status.warehousing"),
// PRE_INSTALLED_PROGRESS(5, 10115, 202, 304, "预装中", "order.status.pre.install", "order.status.pre.install"),
// PRE_INSTALLED_PROGRESS(5, 10115, 202, 304, "预装中", "order.status.pre.install", "order.status.pre.install"),
PREINSTALL_EXAMINE(5, 10116, 0, 305, "预装审核中", "order.status.pre.install.review", "order.status.pre.install.review"),
WAREHOUSE_ADJUSTMENT_PRE_INSTALLED(8, 10203, 214, 304, "调仓待入仓", "order.status.adjust.wait.in.warehouse", "order.status.adjust"),
......@@ -147,27 +147,31 @@ public enum OrderStatusMsgEnum {
private final String customerSourceName;
public static String getMsg(Integer status, Integer inWarehouseState, Integer shipmentState, Integer airShipment,
public static String getMsg(Integer pickState, Integer status, Integer inWarehouseState, Integer shipmentState, Integer airShipment,
Integer transportId, Integer userType, Integer lang) {
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
status = pickState == 1 ? 21 : 20;
}
for (OrderStatusMsgEnum value : OrderStatusMsgEnum.values()) {
String message = userType == 2 ? value.adminSourceName : value.customerSourceName;
if (Objects.equals(value.status, status) && shipmentState != 0 && Objects.equals(value.shipmentState, shipmentState)) {
if (inWarehouseState != 0){
if (Objects.equals(value.inWarehouseState, inWarehouseState)){
if (inWarehouseState != 0) {
if (Objects.equals(value.inWarehouseState, inWarehouseState)) {
// 返回定义出货状态
return lang == 0 ? I18nMessage.getZhMessage(message) : I18nMessage.getEnMessage(message);
}
}else {
} else {
// 返回定义出货状态
return lang == 0 ? I18nMessage.getZhMessage(message) : I18nMessage.getEnMessage(message);
}
} else if (Objects.equals(value.status, status) && inWarehouseState != 0 && Objects.equals(value.inWarehouseState, inWarehouseState)) {
if (shipmentState != 0){
if (Objects.equals(value.shipmentState, shipmentState)){
if (shipmentState != 0) {
if (Objects.equals(value.shipmentState, shipmentState)) {
// 返回定义出货状态
return lang == 0 ? I18nMessage.getZhMessage(message) : I18nMessage.getEnMessage(message);
}
}else {
} else {
// 空运订单,且不是入仓中订单,需要判断订单备货状态
if ((Objects.equals(TransportTypeShortEnum.AIR_FREIGHT_LINE.getValue(), transportId)
|| Objects.equals(TransportTypeShortEnum.AIR_SEA_COMBINED_TRANSPORT.getValue(), transportId))
......
......@@ -612,7 +612,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
// 当订单为控货订单,且发货人客户档案未设置控货无收货人,则需要校验收货人信息
if (!order.getIsCargoControl() || hasConsignee) {
// 控货订单有收货人则限制修改收货人
if (order.getIsCargoControl()) {
if (order.getIsCargoControl() && hasConsignee) {
order.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
order.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -706,7 +706,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
orderConsigneeService.save(orderConsigneeDO);
} else {
// 控货订单没有收货人则不限制修改收货人
if (order.getIsCargoControl() && !hasConsignee) {
if (order.getIsCargoControl() && hasConsignee) {
order.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
order.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -840,7 +840,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
OrderConsigneeDO orderConsigneeDO = null;
if (!order.getIsCargoControl() || hasConsignee) {
// 控货订单有收货人则限制修改收货人
if (order.getIsCargoControl()) {
if (order.getIsCargoControl() && hasConsignee) {
order.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
order.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -960,7 +960,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
}
} else {
// 控货订单没有收货人则不限制修改收货人
if (order.getIsCargoControl() && !hasConsignee) {
if (order.getIsCargoControl() && hasConsignee) {
order.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
order.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -1798,10 +1798,10 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
if (Objects.isNull(vo)) {
throw exception(ORDER_NOT_EXISTS);
}
if (Objects.nonNull(vo.getParentOrderId()) && vo.getParentOrderId() > 0 && !vo.getSplitSeparateOrder()) {
// 如果是拆单订单,且未标记为独立订单,则不允许修改
throw exception(SPLIT_ORDER_REVOKE_CAN_UPDATE);
}
// if (Objects.nonNull(vo.getParentOrderId()) && vo.getParentOrderId() > 0 && !vo.getSplitSeparateOrder()) {
// // 如果是拆单订单,且未标记为独立订单,则不允许修改
// throw exception(SPLIT_ORDER_REVOKE_CAN_UPDATE);
// }
OrderApprovalDO orderApprovalDO = orderApprovalMapper.newItemInfo(null, vo.getOrderId(), ORDER_UPDATE.getValue());
if (Objects.nonNull(orderApprovalDO) && orderApprovalDO.getStatus() == 1) {
throw exception(YOUR_APPLY_PENDING);
......@@ -1853,10 +1853,10 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
if (Objects.isNull(vo)) {
throw exception(ORDER_NOT_EXISTS);
}
if (Objects.nonNull(vo.getParentOrderId()) && vo.getParentOrderId() > 0 && !vo.getSplitSeparateOrder()) {
// 如果是拆单订单,且未标记为独立订单,则不允许修改
throw exception(SPLIT_ORDER_REVOKE_CAN_UPDATE);
}
// if (Objects.nonNull(vo.getParentOrderId()) && vo.getParentOrderId() > 0 && !vo.getSplitSeparateOrder()) {
// // 如果是拆单订单,且未标记为独立订单,则不允许修改
// throw exception(SPLIT_ORDER_REVOKE_CAN_UPDATE);
// }
OrderApprovalDO orderApprovalDO = orderApprovalMapper.newItemInfo(null, vo.getOrderId(), ORDER_UPDATE.getValue());
if (Objects.nonNull(orderApprovalDO) && orderApprovalDO.getStatus() == 1) {
throw exception(YOUR_APPLY_PENDING);
......@@ -3253,7 +3253,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
OrderConsigneeDO orderConsigneeDO = orderConsigneeService.getOne(new LambdaQueryWrapper<OrderConsigneeDO>().eq(OrderConsigneeDO::getOrderId, updateObj.getOrderId()).orderByDesc(OrderConsigneeDO::getId).last("limit 1"));
if (!updateObj.getIsCargoControl() || hasConsignee) {
// 控货订单有收货人则限制修改收货人
if (updateObj.getIsCargoControl()) {
if (updateObj.getIsCargoControl() && hasConsignee) {
updateObj.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
updateObj.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -3342,7 +3342,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
orderConsigneeDO = null;
}
// 控货订单没有收货人则不限制修改收货人
if (updateObj.getIsCargoControl() && !hasConsignee) {
if (updateObj.getIsCargoControl() && hasConsignee) {
updateObj.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
updateObj.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -3495,7 +3495,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
if (!updateObj.getIsCargoControl() || hasConsignee) {
// 控货订单有收货人则限制修改收货人
if (updateObj.getIsCargoControl()) {
if (updateObj.getIsCargoControl() && hasConsignee) {
updateObj.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
updateObj.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -3610,7 +3610,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
}
consigneeDO = null;
// 控货订单没有收货人则不限制修改收货人
if (updateObj.getIsCargoControl() && !hasConsignee) {
if (updateObj.getIsCargoControl() && hasConsignee) {
updateObj.setIsLimitUpdateConsignee(Boolean.TRUE);
} else {
updateObj.setIsLimitUpdateConsignee(Boolean.FALSE);
......@@ -6773,7 +6773,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
newOrder.setWeightAfterPack(null);
newOrder.setStockOverWeightLimit(null);
newOrder.setFirstStockedTime(null);
newOrder.setHasConsignee(null);
// newOrder.setHasConsignee(null);
newOrder.setIsLimitUpdateConsignee(null);
newOrder.setLockConsigneeDay(null);
newOrder.setLockConsigneeTime(null);
......
......@@ -170,11 +170,12 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
throw exception(ORDER_CARGO_CONTROL_NUM_GO_BEYOND);
}
// 如果控货订单限制修改收货人,则需要判断控货收货人限制修改时间是否到期,且当前放货操作的收货人电话是否有变动
if (orderDO.getIsLimitUpdateConsignee() && Objects.isNull(orderDO.getLockConsigneeTime())) {
// 当前控货订单限制修改收货人,但是未到仓/卸柜,未查询到限制时间
throw exception(ORDER_CARGO_CONTROL_LIMIT_UPDATE_CONSIGNEE_ERROR);
}
if (orderDO.getIsLimitUpdateConsignee() && Objects.nonNull(orderDO.getLockConsigneeTime()) && orderDO.getLockConsigneeTime().compareTo(new Date()) >= 0) {
// if (orderDO.getIsLimitUpdateConsignee() && Objects.isNull(orderDO.getLockConsigneeTime())) {
// // 当前控货订单限制修改收货人,但是未到仓/卸柜,未查询到限制时间
// throw exception(ORDER_CARGO_CONTROL_LIMIT_UPDATE_CONSIGNEE_ERROR);
// }
// 当前控货订单限制修改收货人,但是未到仓/卸柜(没有限制时间),或者限制时间未到期
if (orderDO.getIsLimitUpdateConsignee() && (Objects.isNull(orderDO.getLockConsigneeTime()) || (Objects.nonNull(orderDO.getLockConsigneeTime()) && orderDO.getLockConsigneeTime().compareTo(new Date()) >= 0))) {
// 控货收货人限制修改时间未到期,需要判断当前放货操作的收货人电话是否有变动
OrderCargoControlReleaseInfoDto releaseInfoDto = orderCargoControlMapper.getOrderCargoControlReleaseInfo(orderDO.getOrderId());
if (StringUtils.isBlank(releaseInfoDto.getConsigneeCountryCode()) || StringUtils.isBlank(releaseInfoDto.getConsigneePhone())) {
......@@ -326,8 +327,11 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
orderCargoControlPick.getConsigneeName() + "/" + (StringUtils.isNotBlank(orderCargoControlPick.getConsigneeNameEn()) ? orderCargoControlPick.getConsigneeNameEn() : "空"),
orderCargoControlPick.getConsigneeCountryCode() + orderCargoControlPick.getConsigneePhone());
}
if (Objects.isNull(orderDO.getReleaseNum())) orderDO.setReleaseNum(0);
orderDO.setReleaseNum(orderDO.getReleaseNum() + orderCargoControlPick.getPickNum());
if (Objects.nonNull(orderDO.getSumNum()) && orderDO.getSumNum() > 0) {
orderDO.setReleaseRatio(new BigDecimal(orderDO.getReleaseNum()).divide(new BigDecimal(orderDO.getSumNum()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
}
orderService.updateById(orderDO);
// 订单控货信息日志补充
orderBusinessService.createOrderControlLog(orderCargoControlPick.getOrderId(), 4, "订单放货", msg, 0L);
......
......@@ -761,7 +761,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
pickedNum = orderPickupDOS.stream().mapToInt(item -> item.getPickNum()).sum();
if (orderDO.getStatus() != 16 && orderDO.getStatus() != 21) {
// DictDataRespDTO orderStatusDict = DictFrameworkUtils.getDictDataFromCache("order_status", String.valueOf(orderDO.getStatus()));
String statusMsg = OrderStatusMsgEnum.getMsg(orderDO.getStatus(), orderDO.getInWarehouseState(), orderDO.getShipmentState(), orderDO.getAirShipment(), orderDO.getTransportId(), 2, 0);
String statusMsg = OrderStatusMsgEnum.getMsg(orderDO.getPickState(), orderDO.getStatus(), orderDO.getInWarehouseState(), orderDO.getShipmentState(), orderDO.getAirShipment(), orderDO.getTransportId(), 2, 0);
stringBuffer2.append(orderDO.getOrderNo());
if (StringUtils.isNotBlank(orderDO.getTidanNo())) {
stringBuffer2.append("(").append(orderDO.getTidanNo()).append(")");
......
......@@ -1003,6 +1003,7 @@ public class OrderSplitServiceImpl extends AbstractService<OrderSplitMapper, Ord
orderDO.setTidanNo(null);
}
orderDO.setAuditType(0);
orderDO.setAuditResult("");
// 执行拆单流程,调用订单接口
orderService.splitOrder(orderDO, splitMessage);
orderChildren.add(orderDO);
......
......@@ -606,6 +606,17 @@ public class OrderBackPageVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
Integer lang = Objects.nonNull(this.lang) ? this.lang : I18nMessage.getLang();
this.statusText = lang == 0 ? OrderStatusEnum.valueOf(this.status).getNameZh() : OrderStatusEnum.valueOf(this.status).getNameEn();
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -686,7 +697,7 @@ public class OrderBackPageVO {
} else if (null != this.status && null != this.inWarehouseState &&
null != this.shipmentState && null != this.airShipment &&
null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status,
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status,
this.inWarehouseState, this.shipmentState,
this.airShipment, this.transportId,
this.userType, lang);
......
......@@ -719,6 +719,15 @@ public class OrderBackVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -802,7 +811,7 @@ public class OrderBackVO {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
// this.statusKey = OrderStatusMsgEnum.getStatusKey(this.status, this.inWarehouseState, this.shipmentState);
}
}
......
......@@ -229,6 +229,10 @@ public class OrderExcelVO {
@ApiModelProperty(value = "空运可出货状态: 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
private Integer airShipment;
@ExcelIgnore
@ApiModelProperty(value = "提货状态: 0 未提货 1 部分提货 2 已提货")
private Integer pickState;
@ExcelIgnore
@ApiModelProperty(value = "订单出货状态(字典 order_shipment_state)")
private Integer shipmentState;
......@@ -407,6 +411,15 @@ public class OrderExcelVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -471,7 +484,7 @@ public class OrderExcelVO {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
}
}
......
......@@ -162,6 +162,11 @@ public class OrderBackVO {
@ApiModelProperty(value = "订单入仓状态(字典 order_warehouse_in_status)")
private Integer inWarehouseState;
@ExcelProperty("提货状态")
@ApiModelProperty(value = "提货状态:0 未提货 1 部分提货 2 已提货")
private Integer pickState;
@ExcelProperty("订单出货状态")
@ApiModelProperty(value = "订单出货状态(字典 order_shipment_state)")
private Integer shipmentState;
......@@ -206,6 +211,15 @@ public class OrderBackVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -264,11 +278,6 @@ public class OrderBackVO {
}
private void getOrderDesc() {
log.error("status:{}",this.status);
log.error("inWarehouseState:{}",this.inWarehouseState);
log.error("shipmentState:{}",this.shipmentState);
log.error("airShipment:{}",this.airShipment);
log.error("transportId:{}",this.transportId);
// TODO 这里的文案国际化现在只支持两种语言,如果需要支持更多的语言,需要优化
Integer lang = Objects.nonNull(this.lang) ? this.lang : I18nMessage.getLang();
if (null != this.status && this.status.equals(OrderStatusEnum.CANCEL.getValue()) && this.userType != null) {
......@@ -317,7 +326,7 @@ public class OrderBackVO {
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
// this.statusKey = OrderStatusMsgEnum.getStatusKey(this.status, this.inWarehouseState, this.shipmentState);
}
......
......@@ -1507,6 +1507,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -1653,6 +1654,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -2895,11 +2897,11 @@
</if>
</if>
<if test="query.warningOrder != null and query.warningOrder == 1 ">
AND (o.type is null or o.type = '' or NOT FIND_IN_SET(2, o.type))
<!-- AND (o.type is null or o.type = '' or NOT FIND_IN_SET(2, o.type))-->
AND o.`is_cargo_control` = 1
AND o.unload_time is not null
AND ((select IFNULL(sum(p.pick_num), 0) from `ecw_order_cargo_control_pick` p where p.order_id = o.order_id and p.status = 3) &lt; o.`sum_num`
or
AND (select IFNULL(sum(p.pick_num), 0) from `ecw_order_cargo_control_pick` p where p.order_id = o.order_id and p.status = 3 and p.deleted = 0) &lt; o.`sum_num`
AND ((select count(1) from `ecw_order_cargo_control_pick` p where p.order_id = o.order_id and p.status = 3 and p.deleted = 0) &lt;= 3 or
DATE_ADD(o.unload_time, INTERVAL (
SELECT
IFNULL(ew_dest.rent_free_days, 0)
......@@ -4469,6 +4471,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -4596,6 +4599,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -4749,6 +4753,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -4884,6 +4889,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -4993,6 +4999,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.guan_lian_order_status,
......@@ -5129,6 +5136,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.transport_id,
......@@ -6071,6 +6079,7 @@
rs.abnormal_state,
rs.in_warehouse_state,
rs.shipment_state,
rs.pick_state,
rs.audit_type,
rs.audit_result,
rs.exception_reason,
......@@ -7080,6 +7089,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.transport_id,
......@@ -7179,6 +7189,7 @@
o.abnormal_state,
o.in_warehouse_state,
o.shipment_state,
o.pick_state,
o.audit_type,
o.audit_result,
o.transport_id,
......
......@@ -14,6 +14,7 @@
a.is_cargo_control AS is_cargo_control,
a.in_warehouse_state as in_warehouse_state,
a.shipment_state as shipment_state,
a.pick_state as pick_state,
a.air_shipment as air_shipment,
a.exception_reason as exception_reason,
a.audit_type as audit_type,
......
package cn.iocoder.yudao.module.order.controller.admin.orderExceptionResult.orderException;
package cn.iocoder.yudao.module.order.controller.admin.orderException;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
......
......@@ -306,24 +306,42 @@ public interface CouponMapper extends BaseMapperX<CouponDO> {
"<when test = 'reqVO.status != null'>",
"AND c.status = #{reqVO.status}",
"</when>",
"<when test=\"reqVO.statusList != null and reqVO.statusList.size()>0\">" +
" <when test=\"reqVO.statusList != null and reqVO.statusList.size()==1 \">" +
" AND c.`status` =\n" +
" <foreach item='statusId' index='index' collection='reqVO.statusList' >\n" +
" #{statusId}" +
" </foreach>" +
" </when>" +
" <when test=\"reqVO.types != null and reqVO.statusList.size()>1 \">" +
" AND c.`status` in " +
" <foreach item='statusId' index='index' collection='reqVO.statusList' open='(' separator=',' close=')'>" +
" #{statusId}" +
" </foreach>" +
" </when>" +
"<when test='reqVO.statusList != null and reqVO.statusList.size()>0 and reqVO.isIncludeExpiredStatus == false' >",
"<when test='reqVO.statusList.size()==1'>",
" AND c.`status` = ",
" <foreach item='statusId' index='index' collection='reqVO.statusList' >",
" #{statusId}",
" </foreach>" ,
" </when>",
" <when test='reqVO.statusList != null and reqVO.statusList.size()>1'>",
" AND c.`status` in ",
" <foreach item='statusId' index='index' collection='reqVO.statusList' open='(' separator=',' close=')'>",
" #{statusId}",
" </foreach>",
" </when>",
"</when>",
"<when test='reqVO.statusList != null and reqVO.statusList.size()>0 and reqVO.isIncludeExpiredStatus == true' >",
"AND ( 1 != 1",
"<when test = 'reqVO.overdueStatus != null'>",
"AND c.overdue_status = #{reqVO.overdueStatus}",
"or (c.overdue_status = #{reqVO.overdueStatus} and c.`puton_status` = 1)",
"</when>",
"<when test='reqVO.statusList.size()==1'>",
" or c.`status` = ",
" <foreach item='statusId' index='index' collection='reqVO.statusList' >",
" #{statusId}",
" </foreach>" ,
" </when>",
" <when test='reqVO.statusList != null and reqVO.statusList.size()>1'>",
" AND c.`status` in ",
" <foreach item='statusId' index='index' collection='reqVO.statusList' open='(' separator=',' close=')'>",
" #{statusId}",
" </foreach>",
" </when>",
" )",
"</when>",
"<when test = 'reqVO.overdueStatus != null and reqVO.isIncludeExpiredStatus == false'>",
"AND c.overdue_status = #{reqVO.overdueStatus} and c.`puton_status` = 1",
"</when>",
"<when test = 'reqVO.putonStatus != null'>",
"AND c.puton_status = #{reqVO.putonStatus}",
......
......@@ -1265,6 +1265,21 @@ public class CouponServiceImpl extends AbstractService<CouponMapper, CouponDO> i
@Override
public PageResult<CouponDO> getCouponPage(CouponPageReqVO pageReqVO) {
pageReqVO.setIncludeExpiredStatus(false);
if (CollectionUtil.isNotEmpty(pageReqVO.getStatusList())){
if (pageReqVO.getStatusList().contains(2)){
// 包含已过期状态
pageReqVO.setOverdueStatus(false);
if (pageReqVO.getStatusList().size() == 1){
pageReqVO.setStatusList(null);
}else {
// 这里调用的方法需要传包装类型,传常量2是另一种执行逻辑,所以需要将状态2重新定义为包装类型
Integer status = 2;
pageReqVO.getStatusList().remove(status);
pageReqVO.setIncludeExpiredStatus(true);
}
}
}
PageVO page = new PageVO();
page.setField("c.coupon_id DESC");
page.setRows(pageReqVO.getPageSize());
......
......@@ -135,4 +135,7 @@ public class CouponPageReqVO extends PageParam {
@ApiModelProperty(value = "关键字")
private String searchKey;
@ApiModelProperty(value = "是否组合状态")
private boolean isIncludeExpiredStatus = false;
}
......@@ -129,6 +129,9 @@ public class MyAchievementDto {
@ApiModelProperty(value = "空运可出货状态: 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
private Integer airShipment;
@ApiModelProperty(value = "提货状态: 0 未提货 1 部分提货 2 已提货")
private Integer pickState;
@ApiModelProperty(value = "不阻塞流程的异常说明(支持多个异常说明)")
private String exceptionReason;
......@@ -198,6 +201,15 @@ public class MyAchievementDto {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -280,7 +292,7 @@ public class MyAchievementDto {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
}
}
}
......@@ -56,6 +56,7 @@
t1.abnormal_state,
t1.in_warehouse_state,
t1.shipment_state,
t1.pick_state,
t1.audit_type,
t1.audit_result,
t1.guan_lian_order_status,
......@@ -143,6 +144,7 @@
t1.abnormal_state,
t1.in_warehouse_state,
t1.shipment_state,
t1.pick_state,
t1.audit_type,
t1.audit_result,
t1.guan_lian_order_status,
......@@ -235,6 +237,7 @@
t1.abnormal_state,
t1.in_warehouse_state,
t1.shipment_state,
t1.pick_state,
t1.audit_type,
t1.audit_result,
t1.guan_lian_order_status,
......@@ -323,6 +326,7 @@
t1.abnormal_state,
t1.in_warehouse_state,
t1.shipment_state,
t1.pick_state,
t1.audit_type,
t1.audit_result,
t1.guan_lian_order_status,
......
......@@ -81,6 +81,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
"eo.abnormal_state, ",
"eo.in_warehouse_state, ",
"eo.shipment_state, ",
"eo.pick_state, ",
"eo.audit_type, ",
"eo.audit_result, ",
"eo.guan_lian_order_status, ",
......@@ -208,6 +209,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
"eo.abnormal_state, ",
"eo.in_warehouse_state, ",
"eo.shipment_state, ",
"eo.pick_state, ",
"eo.audit_type, ",
"eo.audit_result, ",
"eo.guan_lian_order_status, ",
......
......@@ -169,6 +169,9 @@ public class BoxLoadOrderVO {
@ApiModelProperty(value = "空运可出货状态: 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
private Integer airShipment;
@ApiModelProperty(value = "提货状态: 0 未提货 1 部分提货 2 已提货")
private Integer pickState;
@ApiModelProperty(value = "不阻塞流程的异常说明(支持多个异常说明)")
private String exceptionReason;
......@@ -248,6 +251,15 @@ public class BoxLoadOrderVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -324,7 +336,7 @@ public class BoxLoadOrderVO {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
}
}
......
......@@ -293,6 +293,9 @@ public class BoxPreloadGoodsBackVO {
@ApiModelProperty(value = "空运可出货状态: 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
private Integer airShipment;
@ApiModelProperty(value = "提货状态: 0 未提货 1 部分提货 2 已提货")
private Integer pickState;
@ApiModelProperty(value = "不阻塞流程的异常说明(支持多个异常说明)")
private String exceptionReason;
......@@ -371,6 +374,15 @@ public class BoxPreloadGoodsBackVO {
this.getOrderDesc();
}
public void setPickState(Integer pickState) {
this.pickState = pickState;
if (Objects.nonNull(pickState) && pickState > 0) {
// 当提货状态不未空时,判断提货状态是否需要转化为对应的原有主状态中的提货状态
this.status = pickState == 1 ? 21 : 20;
}
this.getOrderDesc();
}
public void setAuditType(Integer auditType) {
this.auditType = auditType;
this.getOrderDesc();
......@@ -447,7 +459,7 @@ public class BoxPreloadGoodsBackVO {
this.statusMsg = lang == 0 ? I18nMessage.getZhMessage(guanlianOrderStatusVO.getStatusMsg()) : I18nMessage.getEnMessage(guanlianOrderStatusVO.getStatusMsg());
}
} else if (null != this.status && null != this.inWarehouseState && null != this.shipmentState && null != this.airShipment && null != this.transportId) {
this.statusMsg = OrderStatusMsgEnum.getMsg(this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
this.statusMsg = OrderStatusMsgEnum.getMsg(this.pickState, this.status, this.inWarehouseState, this.shipmentState, this.airShipment, this.transportId, this.userType, lang);
}
}
......
......@@ -96,6 +96,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.to_warehouse_state, ",
"o.tidan_no, ",
"o.container_number as container_number, ",
......@@ -180,6 +181,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.to_warehouse_state, ",
"o.tidan_no, ",
"o.container_number as container_number, ",
......@@ -208,6 +210,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.to_warehouse_state, ",
"o.tidan_no, ",
"nor.name as consignor_name, ",
......@@ -240,6 +243,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.transport_id, ",
"o.channel_id, ",
"de.departure_id, ",
......@@ -273,6 +277,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.transport_id, ",
"o.channel_id, ",
"de.departure_id, ",
......@@ -307,6 +312,7 @@ public interface ReceivableMapper extends AbstractMapper<ReceivableDO> {
"o.abnormal_state, ",
"o.in_warehouse_state, ",
"o.shipment_state, ",
"o.pick_state, ",
"o.transport_id, ",
"o.channel_id, ",
"de.departure_id, ",
......
......@@ -204,7 +204,7 @@ yudao:
refund-notify-url: http://niubi.natapp1.cc/api/pay/refund/notify
demo: false # 开启演示模式
business: # 业务运行配置
debug: false # 开启debug模式
debug: true # 开启debug模式
sms-code: # 短信验证码相关的配置项
expire-times: 10m
send-frequency: 1m
......
......@@ -205,7 +205,7 @@ yudao:
refund-notify-url: http://niubi.natapp1.cc/api/pay/refund/notify
demo: false # 开启演示模式
business: # 业务运行配置
debug: false # 开启debug模式
debug: true # 开启debug模式
sms-code: # 短信验证码相关的配置项
expire-times: 10m
send-frequency: 1m
......
......@@ -664,7 +664,7 @@ param.customer.service.not=The customer or account manager is empty
order.warehouse.adjustment.status.not.allowed.warehouse.in=Non warehouse adjustment operations are not allowed during order warehouse adjustment
modify.approval.not.add.prod=Cannot add a new product after modification approval
modify.approval.not.update.warehouse.in=Cannot update or delete warehouse in after modification approval
consignee.phone.is.external=The receiver's mobile phone number must be foreign
consignee.phone.is.external=For control orders, the recipient's mobile phone number must be from overseas
already.picked.up=The order has picked up
lading.not.make=bill of lading have not make yet
file.not.upload=The file has not uploaded
......
......@@ -672,7 +672,7 @@ already.picked.up=\u8BE5\u8BA2\u5355\u5DF2\u63D0\u8D27
lading.not.make=\u63D0\u5355\u672A\u5236\u4F5C
modify.approval.not.add.prod=\u4FEE\u6539\u5BA1\u6279\u4E0D\u80FD\u6DFB\u52A0\u65B0\u7684\u5546\u54C1
modify.approval.not.update.warehouse.in=\u5165\u4ED3\u4FEE\u6539\u5BA1\u6279\u4E2D\u4E0D\u80FD\u4FEE\u6539\u6216\u5220\u9664\u5165\u4ED3\u7EAA\u5F55
consignee.phone.is.external=\u6536\u8D27\u4EBA\u624B\u673A\u53F7\u5FC5\u987B\u662F\u56FD\u5916\u7684
consignee.phone.is.external=\u63a7\u8d27\u8ba2\u5355\uff0c\u6536\u8d27\u4eba\u624b\u673a\u53f7\u7801\u5fc5\u987b\u662f\u56fd\u5916\u7684
file.not.upload=\u8BE5\u6587\u4EF6\u672A\u4E0A\u4F20
your.customer.information.is.incomplete=\u60A8\u7684\u5BA2\u6237\u4FE1\u606F\u672A\u5B8C\u5584\uFF01\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\uFF01
open.sea.customer.cannot.set.air=\u5BA2\u6237\u3010{}\u3011\u5728\u516C\u6D77\u4E2D\u4E0D\u53EF\u8BBE\u7F6E\u662F\u5426\u7A7A\u8FD0\u5BA2\u6237
......
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