From ceb3f73c2e765c9e61fc1cd42cbfb3d866ba5854 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 24 Jun 2025 10:20:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=90=AD=E8=B5=A0=E9=80=9A?= =?UTF-8?q?=E6=A1=88=E5=AF=B9=E6=8E=A5=E8=AE=A2=E5=8D=95=EF=BC=9B=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=87=8D=E5=A4=A7bug=EF=BC=8C=E4=B8=B4=E6=9C=9F?= =?UTF-8?q?=E5=93=81=E9=A2=84=E7=AE=97=E5=8D=A0=E7=94=A8=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/oms/entity/OmsSaleOrderItem.java | 2 + .../oms/entity/OmsSaleOrderItemGift.java | 178 ++++++++++++++++++ .../service/impl/OmsSaleOrderServiceImpl.java | 32 ++-- .../modules/third/PortalOfCostController.java | 1 + .../service/PortalOfCostApplication.java | 4 +- 5 files changed, 202 insertions(+), 15 deletions(-) create mode 100644 cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItem.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItem.java index 388a5be..ffdf2c9 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItem.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItem.java @@ -8,6 +8,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; @@ -31,6 +32,7 @@ public class OmsSaleOrderItem implements Serializable { private Long id; /** 订单id */ + @NotNull(message = "") private Long orderId; /** 订单sn */ diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java new file mode 100644 index 0000000..5d12c2c --- /dev/null +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java @@ -0,0 +1,178 @@ +package com.qs.serve.modules.oms.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 订单明细 实体类 + * @author YenHex + * @since 2025-06-23 + */ +@Data +@TableName("oms_sale_order_item_gift") +public class OmsSaleOrderItemGift implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 订单id */ + private Long orderId; + + /** 订单sn */ + @Length(max = 32,message = "订单sn长度不能超过32字") + private String orderSn; + + /** erpId */ + @Length(max = 36,message = "erpId长度不能超过36字") + private String orderErpId; + + /** erp明细id */ + @Length(max = 36,message = "erp明细id长度不能超过36字") + private String orderErpItemId; + + /** 搭赠ItemId */ + private Long giftItemId; + + /** erp删除状态 */ + private Integer erpDelFlag; + + /** 商品id */ + private Long spuId; + + /** 商品编码 */ + @Length(max = 20,message = "商品编码长度不能超过20字") + private String spuCode; + + /** 商品名称 */ + @Length(max = 100,message = "商品名称长度不能超过100字") + private String spuTitle; + + /** */ + @Length(max = 255,message = "长度不能超过255字") + private String skuTitle; + + /** sku批次id */ + private Long skuBatchId; + + /** sku批次编码 */ + @Length(max = 255,message = "sku批次编码长度不能超过255字") + private String skuBatchCode; + + /** skuId */ + private Long skuId; + + /** sku编码 */ + @Length(max = 50,message = "sku编码长度不能超过50字") + private String skuCode; + + /** sku添加编码 */ + @Length(max = 50,message = "sku添加编码长度不能超过50字") + private String skuAddCode; + + /** sku单位 */ + @Length(max = 20,message = "sku单位长度不能超过20字") + private String skuUnit; + + /** sku图片 */ + @Length(max = 255,message = "sku图片长度不能超过255字") + private String skuImg; + + /** 产地 */ + @Length(max = 255,message = "产地长度不能超过255字") + private String skuBelong; + + /** 规格值 */ + @Length(max = 255,message = "规格值长度不能超过255字") + private String specValues; + + /** 数量 */ + private Integer quantity; + + /** 销售价 */ + private BigDecimal salesPrice; + + /** 客户价 */ + private BigDecimal cusPrice; + + /** 市场价 */ + private BigDecimal marketPrice; + + /** */ + private BigDecimal weight; + + /** */ + private BigDecimal volume; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** */ + @Length(max = 32,message = "长度不能超过32字") + private String grossWeight; + + /** */ + @Length(max = 255,message = "长度不能超过255字") + private String version; + + /** */ + private Integer erpDelStatus; + + /** 预估排产时间 */ + @Length(max = 0,message = "预估排产时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime preProductionDate; + + /** 生产备注 */ + @Length(max = 255,message = "生产备注长度不能超过255字") + private String productionRemark; + +} + diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java index 99e308e..8a751b6 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java @@ -1418,6 +1418,22 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl orderItemList) { // 校验订单的搭赠方案,并生成赠品列表 Map> itemMap = orderItemList.stream().filter(a->a.getGiftItemId() != null) .collect(Collectors.groupingBy(OmsSaleOrderItem::getGiftItemId)); @@ -1454,22 +1470,10 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl{}", JsonUtil.objectToJson(createBo)); + e.printStackTrace(); syncLog.setFailReason(e.getMessage()); sysSyncLogService.save(syncLog); return R.error(e.getMessage()); diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index caee0f7..6f73e6e 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -783,7 +783,8 @@ public class PortalOfCostApplication { centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); // 分配金额 - if (costCode.contains("YX06")){ + if (costCode.contains("YX06")||costCode.contains("DLHX")){ + // 赔偿金额或临期品,不根据明细的金额分配 if(i+1==activityGoodsList.size()){ centerGoods.setCenterGoodsAmount(yx06Surplus); centerGoods.setCenterGoodsRate(yx06SurplusRate); @@ -796,6 +797,7 @@ public class PortalOfCostApplication { centerGoods.setUsedAmount(yx06ItemAmt); } }else { + // 普通的费用,依据明细的金额分配 BigDecimal totalSkuAmt = BigDecimal.ZERO; for (ProcessGoodsItem goodsItem : processGoodsItems) { if(goodsItem.getInventoryCode().equals(activityGoods.getTargetCode())){