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

Merge branch 'order_fee_update' into release

parents 7774c515 4bb44379
...@@ -3479,4 +3479,6 @@ public interface OrderMapper extends AbstractMapper<OrderDO> { ...@@ -3479,4 +3479,6 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
StatisticsOrderVO statisticsPickUp(@Param("query") OrderQueryVO query); StatisticsOrderVO statisticsPickUp(@Param("query") OrderQueryVO query);
List<OrderBackPageVO> containerOrderSummaryList(@Param("query") ContainerReportOrderQueryVO query); List<OrderBackPageVO> containerOrderSummaryList(@Param("query") ContainerReportOrderQueryVO query);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(@Param("query") OrderQueryVO query);
} }
...@@ -435,8 +435,9 @@ public interface ErrorCodeConstants { ...@@ -435,8 +435,9 @@ public interface ErrorCodeConstants {
ErrorCode GUAN_LIAN_ORDER_IS_APPROVAL_IN_PROCESS = new ErrorCode(1004001173, "guan.lian.order.is.approval.in.process"); ErrorCode GUAN_LIAN_ORDER_IS_APPROVAL_IN_PROCESS = new ErrorCode(1004001173, "guan.lian.order.is.approval.in.process");
ErrorCode ORDER_UPDATE_BOX_EXCEPTION = new ErrorCode(1004001174, "warehouse.in.box.exception"); ErrorCode ORDER_UPDATE_BOX_EXCEPTION = new ErrorCode(1004001174, "warehouse.in.box.exception");
ErrorCode BATCH_ORDER_FEE_APPLY_NOT_EXISTS = new ErrorCode(1004001175, "批量费用申请不存在"); ErrorCode BATCH_ORDER_FEE_APPLY_NOT_EXISTS = new ErrorCode(1004001175, "batch.order.fee.apply.not.exists");
ErrorCode BATCH_ORDER_FEE_APPLY_INFO_NOT_EXISTS = new ErrorCode(1004001176, "批量费用申请详情数据不存在"); ErrorCode BATCH_ORDER_FEE_APPLY_INFO_NOT_EXISTS = new ErrorCode(1004001176, "batch.order.fee.apply.info.not.exists");
ErrorCode PARAM_SHIPMENT_NOT_NULL = new ErrorCode(1004001177, "param.shipment.not.null");
//订单不是已装柜/已出货,不可操作 //订单不是已装柜/已出货,不可操作
......
...@@ -154,6 +154,8 @@ public interface OrderQueryService { ...@@ -154,6 +154,8 @@ public interface OrderQueryService {
*/ */
List<OrderDO> getOrderList(OrderQueryVO query); List<OrderDO> getOrderList(OrderQueryVO query);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query);
PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page); PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page);
PageResult<OrderBackPageVO> myOrderPage(OrderQueryVO query, PageVO page); PageResult<OrderBackPageVO> myOrderPage(OrderQueryVO query, PageVO page);
...@@ -418,4 +420,6 @@ public interface OrderQueryService { ...@@ -418,4 +420,6 @@ public interface OrderQueryService {
boolean isSplitOrderChildren(OrderDO orderDO); boolean isSplitOrderChildren(OrderDO orderDO);
ContainerReportOrderPageResult<OrderCostSummaryDto> containerOrderSummary(ContainerReportOrderQueryVO query, PageVO page); ContainerReportOrderPageResult<OrderCostSummaryDto> containerOrderSummary(ContainerReportOrderQueryVO query, PageVO page);
} }
...@@ -1061,6 +1061,29 @@ public class OrderQueryServiceImpl implements OrderQueryService { ...@@ -1061,6 +1061,29 @@ public class OrderQueryServiceImpl implements OrderQueryService {
return orderMapper.selectList(query); return orderMapper.selectList(query);
} }
@Override
public List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query) {
if (Objects.isNull(query.getLang())) {
query.setLang(I18nMessage.getLang());
}
log.warn(I18nMessage.getLang().toString());
List<OrderMarkupVO> list = orderMapper.shipmentBatchMarkupOrderList(query);
if (CollectionUtil.isNotEmpty(list)) {
// 需要将商品信息中的特价状态做判断处理,保存到订单信息中
for (OrderMarkupVO orderMarkupVO : list) {
if (CollectionUtil.isNotEmpty(orderMarkupVO.getOrderItemBackVOList())) {
// 为订单添加最早入仓时间和最后入仓时间值
orderMarkupVO.setFirstInTime(orderMarkupVO.getOrderItemBackVOList().stream().min(Comparator.comparing(OrderItemBackVO::getFirstInTime)).get().getFirstInTime());
orderMarkupVO.setLastInTime(orderMarkupVO.getOrderItemBackVOList().stream().max(Comparator.comparing(OrderItemBackVO::getLastInTime)).get().getLastInTime());
// 当订单项产品有任何一个有特价标记时,那么订单标记为特价
orderMarkupVO.setSpecialPriceType(orderMarkupVO.getOrderItemBackVOList().stream().anyMatch(item -> item.getSpecialPriceType() || item.getSplitCustomPriceType() || item.getSpecialCommission() || item.getChannelManualPricing()));
}
}
}
return list;
}
@Override @Override
public PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page) { public PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page) {
if (Objects.isNull(query.getLang())) { if (Objects.isNull(query.getLang())) {
......
...@@ -661,6 +661,9 @@ public class OrderQueryVO { ...@@ -661,6 +661,9 @@ public class OrderQueryVO {
@ApiModelProperty(value = "付款人: 1 发货人 2 收货人 3 自定义") @ApiModelProperty(value = "付款人: 1 发货人 2 收货人 3 自定义")
private List<Integer> draweeList; private List<Integer> draweeList;
@ApiModelProperty(value = "是否特价")
private Boolean specialPriceType;
// @ApiModelProperty(value = "动态查询订单异常状态(字典 order_abnormal_state)") // @ApiModelProperty(value = "动态查询订单异常状态(字典 order_abnormal_state)")
// private List<Integer> dynamicAbnormalStateList; // private List<Integer> dynamicAbnormalStateList;
// //
...@@ -689,6 +692,9 @@ public class OrderQueryVO { ...@@ -689,6 +692,9 @@ public class OrderQueryVO {
@ApiModelProperty(value = "是否有收货人") @ApiModelProperty(value = "是否有收货人")
private Boolean hasConsignee; private Boolean hasConsignee;
@ApiModelProperty(value = "出货id")
private Long shipmentId;
public void setStatus(Integer status) { public void setStatus(Integer status) {
this.status = status; this.status = status;
this.asStatus = status; this.asStatus = status;
......
...@@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelIgnore; ...@@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -476,6 +477,14 @@ public class OrderItemBackVO { ...@@ -476,6 +477,14 @@ public class OrderItemBackVO {
@ApiModelProperty(value = "最后清关费单价变更时间") @ApiModelProperty(value = "最后清关费单价变更时间")
private Date lastClearanceChargePriceTime; private Date lastClearanceChargePriceTime;
@ApiModelProperty(value = "最早入仓时间")
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date firstInTime;
@ApiModelProperty(value = "最后入仓时间")
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date lastInTime;
/** /**
* 到仓信息json * 到仓信息json
*/ */
......
...@@ -13,6 +13,8 @@ import cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum; ...@@ -13,6 +13,8 @@ import cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum;
import cn.iocoder.yudao.module.order.enums.OrderSeaTimeEnum; import cn.iocoder.yudao.module.order.enums.OrderSeaTimeEnum;
import cn.iocoder.yudao.module.order.enums.TargetLogEnum; import cn.iocoder.yudao.module.order.enums.TargetLogEnum;
import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO; import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO;
import cn.iocoder.yudao.module.order.vo.order.OrderMarkupVO;
import cn.iocoder.yudao.module.order.vo.order.OrderQueryVO;
import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitApplyDetailDto; import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitApplyDetailDto;
import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO; import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO;
import cn.iocoder.yudao.module.product.dal.dataobject.product.ProductPriceDO; import cn.iocoder.yudao.module.product.dal.dataobject.product.ProductPriceDO;
...@@ -817,4 +819,6 @@ public interface BoxService extends IService<BoxDO> { ...@@ -817,4 +819,6 @@ public interface BoxService extends IService<BoxDO> {
* @param shipmentId 出货单ID * @param shipmentId 出货单ID
*/ */
void clearUnloadCabinet(Long shipmentId); void clearUnloadCabinet(Long shipmentId);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query);
} }
...@@ -77,6 +77,7 @@ import cn.iocoder.yudao.module.order.service.orderSplit.OrderSplitService; ...@@ -77,6 +77,7 @@ import cn.iocoder.yudao.module.order.service.orderSplit.OrderSplitService;
import cn.iocoder.yudao.module.order.service.targetLog.TargetLogService; import cn.iocoder.yudao.module.order.service.targetLog.TargetLogService;
import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO; import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO;
import cn.iocoder.yudao.module.order.vo.order.OrderBackVO; import cn.iocoder.yudao.module.order.vo.order.OrderBackVO;
import cn.iocoder.yudao.module.order.vo.order.OrderMarkupVO;
import cn.iocoder.yudao.module.order.vo.order.OrderQueryVO; import cn.iocoder.yudao.module.order.vo.order.OrderQueryVO;
import cn.iocoder.yudao.module.order.vo.orderConsignee.OrderConsigneeBackVO; import cn.iocoder.yudao.module.order.vo.orderConsignee.OrderConsigneeBackVO;
import cn.iocoder.yudao.module.order.vo.orderConsignor.OrderConsignorBackVO; import cn.iocoder.yudao.module.order.vo.orderConsignor.OrderConsignorBackVO;
...@@ -5593,4 +5594,10 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements ...@@ -5593,4 +5594,10 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements
.set(BoxLoadInfoDO::getIsUnload, 0) .set(BoxLoadInfoDO::getIsUnload, 0)
); );
} }
@Override
public List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query) {
return orderQueryService.shipmentBatchMarkupOrderList(query);
}
} }
...@@ -10,6 +10,8 @@ import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO; ...@@ -10,6 +10,8 @@ import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.framework.redis.helper.RedisHelper; import cn.iocoder.yudao.framework.redis.helper.RedisHelper;
import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO; import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO;
import cn.iocoder.yudao.module.order.vo.order.OrderMarkupVO;
import cn.iocoder.yudao.module.order.vo.order.OrderQueryVO;
import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO; import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO;
import cn.iocoder.yudao.module.shipment.convert.BoxConvert; import cn.iocoder.yudao.module.shipment.convert.BoxConvert;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO; import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO;
...@@ -28,6 +30,7 @@ import io.swagger.annotations.Api; ...@@ -28,6 +30,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -40,11 +43,13 @@ import java.io.IOException; ...@@ -40,11 +43,13 @@ import java.io.IOException;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.PARAM_SHIPMENT_NOT_NULL;
import static cn.iocoder.yudao.module.shipment.controller.admin.constant.Constant.BOX_UPDATE_KEY; import static cn.iocoder.yudao.module.shipment.controller.admin.constant.Constant.BOX_UPDATE_KEY;
import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.BOX_UPDATE_REPEAT_COMMIT; import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.BOX_UPDATE_REPEAT_COMMIT;
...@@ -282,6 +287,25 @@ public class BoxController { ...@@ -282,6 +287,25 @@ public class BoxController {
return success(orderList); return success(orderList);
} }
@GetMapping("/shipment/batch/markup/order/list")
@ApiOperation("获得批量加价页面出货单订单列表")
public CommonResult<List<OrderMarkupVO>> shipmentBatchMarkupOrderList(OrderQueryVO query) {
if ((query.getShipmentId() == null || query.getShipmentId() == 0L) && StringUtils.isBlank(query.getContainerNumber())) {
return error(PARAM_SHIPMENT_NOT_NULL);
}
if (StringUtils.isBlank(query.getContainerNumber())){
BoxDO boxDO = boxService.getBox(query.getShipmentId());
if (Objects.isNull(boxDO)){
return error(PARAM_SHIPMENT_NOT_NULL);
}
query.setContainerNumber(boxDO.getSelfNo());
}
List<OrderMarkupVO> list = boxService.shipmentBatchMarkupOrderList(query);
return success(list);
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@ApiOperation("导出出货 Excel") @ApiOperation("导出出货 Excel")
@PreAuthorize("@ss.hasPermission('shipment:box:export')") @PreAuthorize("@ss.hasPermission('shipment:box:export')")
......
...@@ -662,6 +662,9 @@ prod.brand.not.null=brand is not null or zero ...@@ -662,6 +662,9 @@ prod.brand.not.null=brand is not null or zero
preload.not.exist=Goods are not pre-loaded in the shipment order preload.not.exist=Goods are not pre-loaded in the shipment order
warehouse.in.property.not.null.and.zero=goods [{}] {} cannot be empty and zero. warehouse.in.property.not.null.and.zero=goods [{}] {} cannot be empty and zero.
warehouse.in.box.exception=The order has already been scheduled and warehouse data cannot be manipulated warehouse.in.box.exception=The order has already been scheduled and warehouse data cannot be manipulated
batch.order.fee.apply.not.exists=Batch order fee application does not exist
batch.order.fee.apply.info.not.exists=Batch order fee application details data does not exist
param.shipment.not.null=Please select the shipping order
order.update.box.exception=The order has been scheduled order.update.box.exception=The order has been scheduled
split.order.can.not.change.carton.num=Unmodifiable box count for split order split.order.can.not.change.carton.num=Unmodifiable box count for split order
split.order.can.not.change.order.label=Split order cannot change label box number split.order.can.not.change.order.label=Split order cannot change label box number
......
...@@ -662,6 +662,9 @@ prod.brand.not.null=La marque ne peut \u00EAtre vide ou z\u00E9ro ...@@ -662,6 +662,9 @@ prod.brand.not.null=La marque ne peut \u00EAtre vide ou z\u00E9ro
preload.not.exist=Bon de sortie sans marchandise pr\u00E9charg\u00E9e preload.not.exist=Bon de sortie sans marchandise pr\u00E9charg\u00E9e
warehouse.in.property.not.null.and.zero=La valeur de {} pour le produit [{}] ne peut \u00EAtre vide ou \u00E9gale \u00E0 0 warehouse.in.property.not.null.and.zero=La valeur de {} pour le produit [{}] ne peut \u00EAtre vide ou \u00E9gale \u00E0 0
warehouse.in.box.exception=Les commandes d\u00E9j\u00E0 planifi\u00E9es ne peuvent pas \u00EAtre modifi\u00E9es dans le syst\u00E8me de stockage warehouse.in.box.exception=Les commandes d\u00E9j\u00E0 planifi\u00E9es ne peuvent pas \u00EAtre modifi\u00E9es dans le syst\u00E8me de stockage
batch.order.fee.apply.not.exists=Demande de frais de commande en gros n'existe pas
batch.order.fee.apply.info.not.exists=Frais de commande en gros détails de la demande données non existantes
param.shipment.not.null=Veuillez sélectionner le bon de sortie
order.update.box.exception=Les commandes sont d\u00E9j\u00E0 list\u00E9es order.update.box.exception=Les commandes sont d\u00E9j\u00E0 list\u00E9es
split.order.can.not.change.carton.num=Le nombre de colis dans une sous-commande ne peut \u00EAtre modifi\u00E9 split.order.can.not.change.carton.num=Le nombre de colis dans une sous-commande ne peut \u00EAtre modifi\u00E9
split.order.can.not.change.order.label=Le num\u00E9ro d'\u00E9tiquette des colis d'une sous-commande ne peut \u00EAtre modifi\u00E9 split.order.can.not.change.order.label=Le num\u00E9ro d'\u00E9tiquette des colis d'une sous-commande ne peut \u00EAtre modifi\u00E9
......
...@@ -671,6 +671,9 @@ prod.brand.not.null=\u54C1\u724C\u4E0D\u80FD\u4E3A\u7A7A\u62160 ...@@ -671,6 +671,9 @@ prod.brand.not.null=\u54C1\u724C\u4E0D\u80FD\u4E3A\u7A7A\u62160
preload.not.exist=\u51FA\u8D27\u5355\u672A\u9884\u88C5\u8D27\u7269 preload.not.exist=\u51FA\u8D27\u5355\u672A\u9884\u88C5\u8D27\u7269
warehouse.in.property.not.null.and.zero=\u5546\u54C1[{}]\u7684{}\u4E0D\u80FD\u4E3A\u7A7A\u62160 warehouse.in.property.not.null.and.zero=\u5546\u54C1[{}]\u7684{}\u4E0D\u80FD\u4E3A\u7A7A\u62160
warehouse.in.box.exception=\u8BA2\u5355\u5DF2\u7ECF\u6392\u5355\u4E0D\u80FD\u64CD\u4F5C\u4ED3\u5E93\u6570\u636E warehouse.in.box.exception=\u8BA2\u5355\u5DF2\u7ECF\u6392\u5355\u4E0D\u80FD\u64CD\u4F5C\u4ED3\u5E93\u6570\u636E
batch.order.fee.apply.not.exists=\u6279\u91cf\u8ba2\u5355\u8d39\u7528\u7533\u8bf7\u4e0d\u5b58\u5728
batch.order.fee.apply.info.not.exists=\u6279\u91cf\u8ba2\u5355\u8d39\u7528\u7533\u8bf7\u8be6\u60c5\u6570\u636e\u4e0d\u5b58\u5728
param.shipment.not.null=\u8bf7\u9009\u62e9\u51fa\u8d27\u5355
order.update.box.exception=\u8BA2\u5355\u5DF2\u7ECF\u6392\u5355 order.update.box.exception=\u8BA2\u5355\u5DF2\u7ECF\u6392\u5355
split.order.can.not.change.carton.num=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u7BB1\u6570 split.order.can.not.change.carton.num=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u7BB1\u6570
split.order.can.not.change.order.label=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u6807\u7B7E\u7BB1\u53F7 split.order.can.not.change.order.label=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u6807\u7B7E\u7BB1\u53F7
......
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