|
@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl; |
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.oa.OaFormMainProcess; |
|
|
import com.qs.serve.common.model.oa.OaFormMainProcess; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
@ -20,9 +21,13 @@ import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; |
|
|
import com.qs.serve.modules.goods.service.GoodsImminentBatchService; |
|
|
import com.qs.serve.modules.goods.service.GoodsImminentBatchService; |
|
|
|
|
|
import com.qs.serve.modules.oms.common.OmsOrderCheckState; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrder; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrder; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrderItem; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrderItem; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.OmsXltOrder; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.OmsXltOrderItem; |
|
|
import com.qs.serve.modules.oms.entity.dto.SeeYonOrderItemDTO; |
|
|
import com.qs.serve.modules.oms.entity.dto.SeeYonOrderItemDTO; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.dto.XltOrderDTO; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderOptionsService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderOptionsService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
@ -33,7 +38,6 @@ import com.qs.serve.modules.sys.service.SysUserService; |
|
|
import com.qs.serve.modules.tag.mapper.TagInfoMapper; |
|
|
import com.qs.serve.modules.tag.mapper.TagInfoMapper; |
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|
|
import com.qs.serve.modules.vtb.common.VtbVerificationState; |
|
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
@ -46,6 +50,8 @@ import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_ORDER_CREATE; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 订单审批操作类 |
|
|
* 订单审批操作类 |
|
|
* @author YenHex |
|
|
* @author YenHex |
|
@ -133,6 +139,12 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
if (supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(omsOrder.getCdOrderRemark())) { |
|
|
if (supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(omsOrder.getCdOrderRemark())) { |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//补充:调度系统写报价单给ERP时,要把地址ID写过去
|
|
|
|
|
|
if (supplierAddress.getTmsSysId() == null) { |
|
|
|
|
|
Assert.throwEx("地址缺失TmsSysId关联"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
if (bmsRegion == null) { |
|
|
if (bmsRegion == null) { |
|
@ -149,7 +161,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
goodsImminentBatchService.updateBatchById(imminentBatches); |
|
|
goodsImminentBatchService.updateBatchById(imminentBatches); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
String templateCode = TbsSeeYonConst.ExpiredOrderConf.Code(); |
|
|
String templateCode = this.getTemplateCode(); |
|
|
|
|
|
|
|
|
//加载大区信息
|
|
|
//加载大区信息
|
|
|
String saleRegionId = supplier.handleSaleRegionId(); |
|
|
String saleRegionId = supplier.handleSaleRegionId(); |
|
@ -190,11 +202,37 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
formId = formIdResult.getData(); |
|
|
formId = formIdResult.getData(); |
|
|
} |
|
|
} |
|
|
omsOrder.setSyFormId(formId); |
|
|
omsOrder.setSyFormId(formId); |
|
|
omsOrder.setOrderCheckState(VtbVerificationState.Commiting.getCode()); |
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode()); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
return R.ok(); |
|
|
return R.ok(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void syncToErp() { |
|
|
|
|
|
AuthContextUtils.setTenant("001"); |
|
|
|
|
|
List<OmsOrder> omsOrders = omsOrderService.list(new LambdaQueryWrapper<OmsOrder>() |
|
|
|
|
|
//临期品
|
|
|
|
|
|
.eq(OmsOrder::getOrderType,3) |
|
|
|
|
|
.in(OmsOrder::getStatus,0,1) |
|
|
|
|
|
.eq(OmsOrder::getOrderCheckState,OmsOrderCheckState.Finished.getCode()) |
|
|
|
|
|
); |
|
|
|
|
|
for (OmsOrder omsOrder : omsOrders) { |
|
|
|
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); |
|
|
|
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(omsOrder.getId()); |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId()); |
|
|
|
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
|
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
|
|
|
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
|
|
|
List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds); |
|
|
|
|
|
List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList()); |
|
|
|
|
|
cateIds.add("0"); |
|
|
|
|
|
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds); |
|
|
|
|
|
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(",")); |
|
|
|
|
|
//写入到ERP中间表
|
|
|
|
|
|
omsOrderService.saveToErpOrder(omsOrder,orderItemList,bs,supplierAddress,bmsRegion); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 构建DATA |
|
|
* 构建DATA |
|
|
* @param omsOrder |
|
|
* @param omsOrder |
|
@ -263,27 +301,42 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { |
|
|
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { |
|
|
return null; |
|
|
OmsOrder omsOrder = omsOrderService.getOne(new LambdaQueryWrapper<OmsOrder>() |
|
|
|
|
|
.select(OmsOrder::getSyFormId) |
|
|
|
|
|
.eq(OmsOrder::getId,affairCommit.getTargetId())); |
|
|
|
|
|
return omsOrder!=null?omsOrder.getSyFormId():null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Object doBacked(TbsAffairCommitBo param) { |
|
|
public Object doBacked(TbsAffairCommitBo param) { |
|
|
|
|
|
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); |
|
|
|
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Rollback.getCode()); |
|
|
|
|
|
omsOrderService.updateById(omsOrder); |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Object doFinished(TbsAffairCommitBo param) { |
|
|
public Object doFinished(TbsAffairCommitBo param) { |
|
|
|
|
|
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); |
|
|
|
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode()); |
|
|
|
|
|
omsOrderService.updateById(omsOrder); |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Object doRefuse(TbsAffairCommitBo param) { |
|
|
public Object doRefuse(TbsAffairCommitBo param) { |
|
|
|
|
|
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); |
|
|
|
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode()); |
|
|
|
|
|
omsOrderService.updateById(omsOrder); |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public boolean checkSyFormIdIsNotNull(String targetId) { |
|
|
public boolean checkSyFormIdIsNotNull(String targetId) { |
|
|
return false; |
|
|
OmsOrder omsOrder = omsOrderService.getOne(new LambdaQueryWrapper<OmsOrder>() |
|
|
|
|
|
.select(OmsOrder::getSyFormId) |
|
|
|
|
|
.eq(OmsOrder::getId,targetId)); |
|
|
|
|
|
return omsOrder!=null&&omsOrder.getSyFormId()!=null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -293,6 +346,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public String getTemplateCode() { |
|
|
public String getTemplateCode() { |
|
|
return null; |
|
|
return TbsSeeYonConst.ExpiredOrderConf.Code(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|