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

添加批量加价页面出货单订单列表查询业务

parent 3696380f
......@@ -3479,4 +3479,6 @@ public interface OrderMapper extends AbstractMapper<OrderDO> {
StatisticsOrderVO statisticsPickUp(@Param("query") OrderQueryVO query);
List<OrderBackPageVO> containerOrderSummaryList(@Param("query") ContainerReportOrderQueryVO query);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(@Param("query") OrderQueryVO query);
}
......@@ -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 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_INFO_NOT_EXISTS = new ErrorCode(1004001176, "批量费用申请详情数据不存在");
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, "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 {
*/
List<OrderDO> getOrderList(OrderQueryVO query);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query);
PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page);
PageResult<OrderBackPageVO> myOrderPage(OrderQueryVO query, PageVO page);
......@@ -418,4 +420,6 @@ public interface OrderQueryService {
boolean isSplitOrderChildren(OrderDO orderDO);
ContainerReportOrderPageResult<OrderCostSummaryDto> containerOrderSummary(ContainerReportOrderQueryVO query, PageVO page);
}
......@@ -1061,6 +1061,29 @@ public class OrderQueryServiceImpl implements OrderQueryService {
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
public PageResult<OrderBackPageVO> orderPage(OrderQueryVO query, PageVO page) {
if (Objects.isNull(query.getLang())) {
......
......@@ -689,6 +689,9 @@ public class OrderQueryVO {
@ApiModelProperty(value = "是否有收货人")
private Boolean hasConsignee;
@ApiModelProperty(value = "出货id")
private Long shipmentId;
public void setStatus(Integer status) {
this.status = status;
this.asStatus = status;
......
......@@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -476,6 +477,14 @@ public class OrderItemBackVO {
@ApiModelProperty(value = "最后清关费单价变更时间")
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
*/
......
......@@ -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.TargetLogEnum;
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.OrderSplitBackVO;
import cn.iocoder.yudao.module.product.dal.dataobject.product.ProductPriceDO;
......@@ -817,4 +819,6 @@ public interface BoxService extends IService<BoxDO> {
* @param shipmentId 出货单ID
*/
void clearUnloadCabinet(Long shipmentId);
List<OrderMarkupVO> shipmentBatchMarkupOrderList(OrderQueryVO query);
}
......@@ -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.vo.order.OrderBackPageVO;
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.orderConsignee.OrderConsigneeBackVO;
import cn.iocoder.yudao.module.order.vo.orderConsignor.OrderConsignorBackVO;
......@@ -5593,4 +5594,10 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements
.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;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
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.OrderMarkupVO;
import cn.iocoder.yudao.module.order.vo.order.OrderQueryVO;
import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO;
import cn.iocoder.yudao.module.shipment.convert.BoxConvert;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO;
......@@ -28,6 +30,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
......@@ -40,11 +43,13 @@ import java.io.IOException;
import java.text.MessageFormat;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
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.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.enums.ErrorCodeConstants.BOX_UPDATE_REPEAT_COMMIT;
......@@ -282,6 +287,25 @@ public class BoxController {
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> pageResult = boxService.shipmentBatchMarkupOrderList(query);
return success(pageResult);
}
@GetMapping("/export-excel")
@ApiOperation("导出出货 Excel")
@PreAuthorize("@ss.hasPermission('shipment:box:export')")
......
......@@ -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
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
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
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
......
......@@ -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
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
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
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
......
......@@ -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
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
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
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
......
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