diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index bd378819..01abe494 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -14,8 +14,10 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsImminentBatch; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.mapper.GoodsImminentBatchMapper; import com.qs.serve.modules.goods.service.GoodsCategoryRuleService; import com.qs.serve.modules.goods.service.GoodsCategoryService; import com.qs.serve.modules.goods.service.GoodsSkuService; @@ -62,6 +64,7 @@ public class OmsOrderApi { private GoodsCategoryService goodsCategoryService; private SysPostUserService postUserService; private SeeYonRequestBaseService seeYonRequestBaseService; + private GoodsImminentBatchMapper goodsImminentBatchMapper; /** * 确认订单 @@ -258,6 +261,9 @@ public class OmsOrderApi { orderItem.setSkuBelong(goodsSku.getBelong()); orderItem.setSkuAddCode(goodsSku.getSkuAddCode()); } + if(orderItem.getSkuBatchId()!=null){ + orderItem.setBatchInfo(goodsImminentBatchMapper.selectById(orderItem.getSkuBatchId())); + } } omsOrder.setOrderItems(list); return R.ok(omsOrder); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java index 61200c96..61c83fbe 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java @@ -39,7 +39,7 @@ public class OmsOrder implements Serializable { @TableField(condition = SqlCondition.LIKE) private String orderSn; - /** 订单类型:0->普通订单;1->赠品;2->试吃品 */ + /** 订单类型:0->普通订单;1->赠品;2->试吃品;3->临期品 */ private Integer orderType; private String orderSource; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java index d36d49d9..d3b4249d 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java @@ -146,6 +146,10 @@ public class OmsOrderItem implements Serializable { @TableField(exist = false) private Object categoryInfo; + /** 分类 */ + @TableField(exist = false) + private Object batchInfo; + @TableField(exist = false) private Integer skuSpecialFlag; } diff --git a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java b/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java index ff1b33da..3ad495da 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java +++ b/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java @@ -76,7 +76,7 @@ public interface OmsOrderService extends IService { * @param param * @return */ - String modifyImminentOrder(OmsOrderImminentBo param); + OmsOrder modifyImminentOrder(OmsOrderImminentBo param); } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index fb658ab5..c8b8f64f 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -640,7 +640,8 @@ public class OmsOrderServiceImpl extends ServiceImpl im } @Override - public String modifyImminentOrder(OmsOrderImminentBo param) { + @Transactional(rollbackFor = Exception.class) + public OmsOrder modifyImminentOrder(OmsOrderImminentBo param) { SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(param.getBrandRuleId()); @@ -650,13 +651,16 @@ public class OmsOrderServiceImpl extends ServiceImpl im OmsOrder order; if(param.getId()!=null){ order = this.getById(param.getId()); + if(!order.getOrderType().equals(3)){ + Assert.throwEx("订单类型不支持混用"); + } }else { order = new OmsOrder(); order.setOrderSn("SP"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); } order.setLatitudeFrom("sp"); order.setCdOrderRemark(param.getCdOrderRemark()); - order.setOrderType(1); + order.setOrderType(3); order.setSupplierId(Long.parseLong(supplier.getId())); order.setSupplierCode(supplier.getCode()); order.setSupplierName(supplier.getName()); @@ -669,7 +673,13 @@ public class OmsOrderServiceImpl extends ServiceImpl im order.setBillType(param.getBillType()); order.setUrgentFlag(param.getUrgentFlag()); order.setRemark(param.getRemark()); - this.save(order); + this.saveOrUpdate(order); + + if(order.getStatus()==null||order.getStatus().equals(0)){ + if(CollectionUtil.isEmpty(param.getItemList())){ + return order; + } + } Set batchSkuIds = param.getItemList().stream().map(OmsOrderImminentBo.ItemParam::getBatchSkuId) .collect(Collectors.toSet()); @@ -741,25 +751,26 @@ public class OmsOrderServiceImpl extends ServiceImpl im this.buildPriceOrder(order.getId()+"",null); } - return order.getId().toString(); + return order; } @NotNull private OmsOrderItem createImminentOrderItem(OmsOrder order, List spuList, OmsOrderImminentBo.ItemParam item, GoodsImminentBatch batch, GoodsSku sku) { OmsOrderItem orderItem = new OmsOrderItem(); + orderItem.setRemark(item.getRemark()); + orderItem.setQuantity(item.getQty()); orderItem.setOrderId(order.getId()); orderItem.setOrderSn(order.getOrderSn()); - orderItem.setSpuId(sku.getId()); + orderItem.setSpuId(sku.getSpuId()); for (GoodsSpu spu : spuList) { if(sku.getSpuId().equals(spu.getId())){ orderItem.setSpuCode(spu.getSpuCode()); - orderItem.setSpuTitle(spu.getSpuCode()); + orderItem.setSpuTitle(spu.getName()); break; } } orderItem.setWeight(sku.getWeight()); orderItem.setVolume(sku.getVolume()); - orderItem.setRemark(sku.getRemark()); orderItem.setSkuBatchId(batch.getId()); orderItem.setSkuBatchCode(batch.getBatchCode()); orderItem.setSkuId(sku.getId()); @@ -771,7 +782,6 @@ public class OmsOrderServiceImpl extends ServiceImpl im orderItem.setSalesPrice(sku.getSalesPrice()); orderItem.setCusPrice(sku.getSalesPrice()); orderItem.setMarketPrice(sku.getMarketPrice()); - orderItem.setQuantity(item.getQty()); return orderItem; } @@ -802,6 +812,9 @@ public class OmsOrderServiceImpl extends ServiceImpl im if(!omsOrder.getStatus().equals(0)&&!omsOrder.getStatus().equals(6)){ Assert.throwEx("订单状态不支持下单"); } + if(omsOrder.getOrderType().equals(3)){ + Assert.throwEx("临期品订单不支持该接口修改"); + } LambdaQueryWrapper iteLqw = new LambdaQueryWrapper<>(); iteLqw.eq(OmsOrderItem::getOrderId,id); List orderItemList = omsOrderItemService.list(iteLqw);