Browse Source

opt: 订单服务层拆分

checkBack
Yen 1 year ago
parent
commit
679449fa17
  1. 3
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  2. 15
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  3. 16
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsVerifySkuParam.java
  4. 30
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderPart1Service.java
  5. 6
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java
  6. 94
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java
  7. 85
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

3
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -582,6 +582,9 @@ public class BmsSupplierController {
bmsSupplier.setSupplierAttachInfoList(attachService.listByIds(Arrays.asList(bmsSupplier.getSupplierAttachIds())));
}
bmsSupplier.setUserVos(userVos);
initSupplierList(Arrays.asList(bmsSupplier));
return R.ok(bmsSupplier);
}

15
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -27,6 +27,7 @@ import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.*;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderPart1Service;
import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.sys.entity.SysUser;
@ -65,6 +66,7 @@ public class OmsOrderApi {
private SysPostUserService postUserService;
private SeeYonRequestBaseService seeYonRequestBaseService;
private GoodsImminentBatchMapper goodsImminentBatchMapper;
private OmsOrderPart1Service omsOrderPart1Service;
/**
* 确认订单
@ -340,6 +342,17 @@ public class OmsOrderApi {
return R.ok();
}
/**
* 校验sku合法性
* @param verifySkuParam
* @return
*/
@PostMapping("/verifySku")
public R<?> verifySku(OmsVerifySkuParam verifySkuParam){
return R.ok(omsOrderPart1Service.verifySku(verifySkuParam));
}
/**
* 复制订单
* @param orderId
@ -347,7 +360,7 @@ public class OmsOrderApi {
*/
@PostMapping("/copyOrder/{orderId}")
public R<OmsOrder> copyOrder(@PathVariable Long orderId){
return R.ok(omsOrderService.copyOrder(orderId));
return R.ok(omsOrderPart1Service.copyOrder(orderId));
}
}

16
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsVerifySkuParam.java

@ -0,0 +1,16 @@
package com.qs.serve.modules.oms.entity.bo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2024/6/21
*/
@Data
public class OmsVerifySkuParam {
private List<Long> skuIds;
}

30
src/main/java/com/qs/serve/modules/oms/service/OmsOrderPart1Service.java

@ -0,0 +1,30 @@
package com.qs.serve.modules.oms.service;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.bo.OmsVerifySkuParam;
import java.util.List;
/**
* @author YenHex
* @since 2024/6/21
*/
public interface OmsOrderPart1Service {
/**
* 复制订单
* @param orderId
* @return
*/
OmsOrder copyOrder(Long orderId);
/**
* 校验sku合法性
* @param param
* @return
*/
List<String> verifySku(OmsVerifySkuParam param);
}

6
src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java

@ -78,12 +78,6 @@ public interface OmsOrderService extends IService<OmsOrder> {
*/
OmsOrder modifyImminentOrder(OmsOrderImminentBo param);
/**
* 复制订单
* @param orderId
* @return
*/
OmsOrder copyOrder(Long orderId);
}

94
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java

@ -0,0 +1,94 @@
package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CodeGenUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.OmsVerifySkuParam;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderPart1Service;
import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author YenHex
* @since 2024/6/21
*/
@Slf4j
@Service
@AllArgsConstructor
public class OmsOrderPart1ServiceImpl implements OmsOrderPart1Service {
private SysUserService sysUserService;
private OmsOrderService omsOrderService;
private OmsOrderItemService omsOrderItemService;
@Override
public OmsOrder copyOrder(Long orderId) {
OmsOrder orgOrder = omsOrderService.getById(orderId);
List<OmsOrderItem> orderItems = omsOrderItemService.list(new LambdaQueryWrapper<OmsOrderItem>()
.eq(OmsOrderItem::getOrderId,orderId));
OmsOrder order = new OmsOrder();
order.setId(null);
order.setOrderType(orgOrder.getOrderType());
String orderPrefix = null;
if(order.getOrderType().equals(0)){
orderPrefix = "SN";
}else if(order.getOrderType().equals(1)){
orderPrefix = "ZP";
}else if(order.getOrderType().equals(2)){
orderPrefix = "SC";
}else if(order.getOrderType().equals(3)){
orderPrefix = "SP";
}else {
Assert.throwEx("订单类型错误");
}
order.setOrderSn(orderPrefix+ CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder));
SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId());
order.setUserId(user.getId());
order.setUserCode(user.getCode());
order.setUserName(user.getName());
order.setUserPhone(user.getMobile());
order.setCheckState(0);
order.setLatitudeFrom(orgOrder.getLatitudeFrom());
order.setOrderSource(orgOrder.getOrderSource());
order.setSupplierId(orgOrder.getSupplierId());
order.setSupplierCode(orgOrder.getSupplierCode());
order.setSupplierName(orgOrder.getSupplierName());
order.setSupplierAddrId(orgOrder.getSupplierAddrId());
order.setBrandRuleId(orgOrder.getBrandRuleId());
order.setBrandRuleName(orgOrder.getBrandRuleName());
order.setBillType(orgOrder.getBillType());
order.setCdOrderRemark(orgOrder.getCdOrderRemark());
order.setRemark(orgOrder.getRemark());
omsOrderService.save(order);
for (OmsOrderItem item : orderItems) {
item.setId(null);
item.setOrderId(order.getId());
}
omsOrderItemService.saveBatch(orderItems);
return order;
}
@Override
public List<String> verifySku(OmsVerifySkuParam param) {
return null;
}
}

85
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -784,56 +784,6 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
return order;
}
@Override
public OmsOrder copyOrder(Long orderId) {
OmsOrder orgOrder = this.getById(orderId);
List<OmsOrderItem> orderItems = omsOrderItemService.list(new LambdaQueryWrapper<OmsOrderItem>()
.eq(OmsOrderItem::getOrderId,orderId));
OmsOrder order = new OmsOrder();
order.setId(null);
order.setOrderType(orgOrder.getOrderType());
String orderPrefix = null;
if(order.getOrderType().equals(0)){
orderPrefix = "SN";
}else if(order.getOrderType().equals(1)){
orderPrefix = "ZP";
}else if(order.getOrderType().equals(2)){
orderPrefix = "SC";
}else if(order.getOrderType().equals(3)){
orderPrefix = "SP";
}else {
Assert.throwEx("订单类型错误");
}
order.setOrderSn(orderPrefix+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder));
SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId());
order.setUserId(user.getId());
order.setUserCode(user.getCode());
order.setUserName(user.getName());
order.setUserPhone(user.getMobile());
order.setCheckState(0);
order.setLatitudeFrom(orgOrder.getLatitudeFrom());
order.setOrderSource(orgOrder.getOrderSource());
order.setSupplierId(orgOrder.getSupplierId());
order.setSupplierCode(orgOrder.getSupplierCode());
order.setSupplierName(orgOrder.getSupplierName());
order.setSupplierAddrId(orgOrder.getSupplierAddrId());
order.setBrandRuleId(orgOrder.getBrandRuleId());
order.setBrandRuleName(orgOrder.getBrandRuleName());
order.setBillType(orgOrder.getBillType());
order.setCdOrderRemark(orgOrder.getCdOrderRemark());
order.setRemark(orgOrder.getRemark());
this.save(order);
for (OmsOrderItem item : orderItems) {
item.setId(null);
item.setOrderId(order.getId());
}
omsOrderItemService.saveBatch(orderItems);
return order;
}
@NotNull
private OmsOrderItem createImminentOrderItem(OmsOrder order, List<GoodsSpu> spuList, OmsOrderImminentBo.ItemParam item, GoodsImminentBatch batch, GoodsSku sku) {
@ -1104,40 +1054,5 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
return r.getStatus()==200;
}
private void toU8Api(OmsOrder omsOrder, SysUser sysUser, SysDept dept, List<OmsOrderItem> list) {
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>();
for (OmsOrderItem orderItem : list) {
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem();
inventoryItem.setEmpItemId(orderItem.getId()+"");
inventoryItem.setEmpQty(orderItem.getQuantity().longValue());
inventoryItem.setInvCode(orderItem.getSpuCode());
inventoryItem.setQuantity(orderItem.getQuantity().longValue());
//设置客户特殊价
inventoryItem.setOfferPrice(orderItem.getSalesPrice());
inventoryItem.setHasRatePrice(orderItem.getSalesPrice());
inventoryItem.setHasRateSumPrice(orderItem.getSalesPrice().multiply(new BigDecimal(orderItem.getQuantity())));
inventoryItem.setRemark("CRM创建的报价单");
inventoryItemList.add(inventoryItem);
}
ErpOfferOrderParam offerOrder = new ErpOfferOrderParam();
offerOrder.setCode(omsOrder.getOrderSn());
offerOrder.setEmpOrderId(omsOrder.getId()+"");
offerOrder.setDate(new Date());
//offerOrder.setSaleTypeCode();
offerOrder.setCusCode(omsOrder.getSupplierCode());
offerOrder.setDepCode(dept.getCode());
// 普通13,赠品&试吃品0
//offerOrder.setTaxRate();
offerOrder.setRemark(omsOrder.getRemark());
//offerOrder.setRemark2();
//offerOrder.setCusPrice();
//offerOrder.setUnfinishedOrderCount();
offerOrder.setInventoryItemList(inventoryItemList);
offerOrder.setCusName(omsOrder.getSupplierName());
offerOrder.setMakerName(sysUser.getName());
}
}

Loading…
Cancel
Save