|
|
@@ -140,6 +140,7 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.time.format.DateTimeParseException;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.fs.his.utils.PhoneUtil.*;
|
|
|
@@ -742,6 +743,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
Boolean isIntegral = false;
|
|
|
//组合数据
|
|
|
FsStoreOrderScrm storeOrder = new FsStoreOrderScrm();
|
|
|
+ //订单类型
|
|
|
+ storeOrder.setErpType(carts.get(0).getErpType());
|
|
|
storeOrder.setStoreHouseCode("CK01");
|
|
|
storeOrder.setCompanyId(param.getCompanyId());
|
|
|
storeOrder.setCompanyUserId(param.getCompanyUserId());
|
|
|
@@ -1261,7 +1264,15 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
@Override
|
|
|
public void deliveryOrder(String orderCode, String deliveryId, String deliverCode, String deliverName) {
|
|
|
FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderCode);
|
|
|
- if (order != null && order.getStatus() == OrderInfoEnum.STATUS_1.getValue()) {
|
|
|
+ boolean flag = false;
|
|
|
+ if (order != null){
|
|
|
+ if (Objects.equals(order.getStatus(), OrderInfoEnum.STATUS_1.getValue()) && order.getErpType() == 1) {
|
|
|
+ flag = true;
|
|
|
+ } else if (order.getErpType() == 2 && (order.getStatus() == OrderInfoEnum.STATUS_1.getValue() || order.getStatus() == OrderInfoEnum.STATUS_2.getValue())) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (flag) {
|
|
|
FsExpressScrm express = expressService.selectFsExpressByOmsCode(deliverCode);
|
|
|
if (express != null) {
|
|
|
order.setDeliveryName(deliverName);
|
|
|
@@ -1938,6 +1949,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
return R.error("订单:" + order.getOrderCode() + ",已推送erp/订单状态不正确");
|
|
|
}
|
|
|
ErpOrder erpOrder = getErpOrder(order);
|
|
|
+ //获取ERP类型 1-聚水潭 2-兔灵
|
|
|
+ erpOrder.setErpType(order.getErpType());
|
|
|
if (erpOrderService == jSTOrderService) {
|
|
|
erpOrder.setShop_code(erpConfig.getErpJstShopCode());
|
|
|
}
|
|
|
@@ -1947,9 +1960,17 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
//写入日志
|
|
|
logger.info("ErpCreate:" + order.getOrderCode() + ":" + JSONUtil.toJsonStr(response));
|
|
|
//支付成功后 将订单号写入待发货的REDIS中
|
|
|
- redisCache.setCacheObject(DELIVERY + ":" + response.getCode(), order.getOrderCode());
|
|
|
+ //redisCache.setCacheObject(DELIVERY + ":" + response.getCode(), order.getOrderCode());
|
|
|
+ ////写入外部订单号
|
|
|
+ //order.setExtendOrderId(response.getCode());
|
|
|
//写入外部订单号
|
|
|
- order.setExtendOrderId(response.getCode());
|
|
|
+ if (order.getErpType() == 2) {
|
|
|
+ order.setExtendOrderId(response.getCode());
|
|
|
+ } else {
|
|
|
+ //支付成功后 将订单号写入待发货的REDIS中
|
|
|
+ redisCache.setCacheObject(DELIVERY + ":" + response.getCode(), order.getOrderCode());
|
|
|
+ order.setExtendOrderId(response.getCode());
|
|
|
+ }
|
|
|
fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
return R.ok("订单:" + order.getOrderCode() + ",创建erp订单成功");
|
|
|
}
|
|
|
@@ -2518,6 +2539,15 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
@Override
|
|
|
public R createSalesOrder(CompanyUser companyUser, String cateIds, Integer orderType, Integer orderMedium) {
|
|
|
List<FsStoreCartQueryVO> carts = cartMapper.selectFsStoreCartListByIds(cateIds);
|
|
|
+ logger.info("carts:{}",carts);
|
|
|
+ if (CollectionUtils.isNotEmpty(carts) && carts.size() > 1) {
|
|
|
+ List<FsStoreCartQueryVO> collect = new ArrayList<>(carts.stream().collect(Collectors.toMap(FsStoreCartQueryVO::getErpType, Function.identity(), (v1, v2) -> v1))
|
|
|
+ .values());
|
|
|
+ logger.info("collect:{}",collect);
|
|
|
+ if (collect.size() > 1) {
|
|
|
+ return R.error("ERP类型不一致,不能合并制单");
|
|
|
+ }
|
|
|
+ }
|
|
|
String uuid = IdUtil.randomUUID();
|
|
|
redisCache.setCacheObject("createOrderKey:" + uuid, companyUser.getCompanyId() + "-" + companyUser.getUserId(), 120, TimeUnit.DAYS);
|
|
|
redisCache.setCacheObject("orderCarts:" + uuid, carts, 120, TimeUnit.DAYS);
|