|
@ -41,8 +41,10 @@ import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|
|
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; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
|
|
|
import java.math.RoundingMode; |
|
|
import java.time.LocalDateTime; |
|
|
import java.time.LocalDateTime; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.HashMap; |
|
|
import java.util.HashMap; |
|
@ -81,6 +83,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
private final SeeYonRequestService seeYonService; |
|
|
private final SeeYonRequestService seeYonService; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public Object submitExpiredOrder(String orderId) { |
|
|
public Object submitExpiredOrder(String orderId) { |
|
|
OmsOrder omsOrder = omsOrderService.getById(orderId); |
|
|
OmsOrder omsOrder = omsOrderService.getById(orderId); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
@ -99,7 +102,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
Assert.throwEx("该功能只针对临期品订单"); |
|
|
Assert.throwEx("该功能只针对临期品订单"); |
|
|
} |
|
|
} |
|
|
omsOrderService.checkMsOrderStatus(omsOrder); |
|
|
omsOrderService.checkMsOrderStatus(omsOrder); |
|
|
if (!omsOrder.getStatus().equals(0) && !omsOrder.getStatus().equals(6)) { |
|
|
if (!omsOrder.getOrderCheckState().equals(OmsOrderCheckState.UnPublish.getCode()) |
|
|
|
|
|
&& !omsOrder.getOrderCheckState().equals(OmsOrderCheckState.Rollback.getCode())) { |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
|
} |
|
|
} |
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(Long.parseLong(orderId)); |
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(Long.parseLong(orderId)); |
|
@ -171,15 +175,39 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId); |
|
|
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId); |
|
|
String bizBizNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入"; |
|
|
String bizBizNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入"; |
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> newWayData = new HashMap<>(); |
|
|
|
|
|
|
|
|
// 构建DATA
|
|
|
// 构建DATA
|
|
|
Map<String, Object> data = this.buildSeeyonData(omsOrder, sysUser, orderItemList, supplierAddress, supplier, |
|
|
Map<String, Object> mainTableData = this.buildSeeyonData(omsOrder, sysUser, supplierAddress, supplier, |
|
|
totalOrderAmt, templateCode, saleBizNames, bizBizNames); |
|
|
totalOrderAmt, templateCode, saleBizNames, bizBizNames); |
|
|
|
|
|
newWayData.put("formmain_2206",mainTableData); |
|
|
|
|
|
|
|
|
|
|
|
List<SeeYonOrderItemDTO> itemDTOList = orderItemList.stream().map(item->{ |
|
|
|
|
|
SeeYonOrderItemDTO dto = new SeeYonOrderItemDTO(); |
|
|
|
|
|
dto.setSpuCode(item.getSpuCode()); |
|
|
|
|
|
dto.setSkuTitle(item.getSkuTitle()); |
|
|
|
|
|
GoodsSpu goodsSpu = goodsSpuMapper.selectById(item.getSpuId()); |
|
|
|
|
|
GoodsSku goodsSku = goodsSkuMapper.selectById(item.getSkuId()); |
|
|
|
|
|
GoodsCategory goodsCategory = goodsCategoryMapper.selectById(goodsSpu.getCategoryLast()); |
|
|
|
|
|
dto.setSkuAddCode(goodsSku.getSkuAddCode()); |
|
|
|
|
|
dto.setSkuCode(item.getSkuCode()); |
|
|
|
|
|
dto.setBatchCode(item.getSkuBatchCode()); |
|
|
|
|
|
dto.setSkuCategories(goodsCategory.getLevelPathNames()); |
|
|
|
|
|
dto.setSpecVal(item.getSpecValues()); |
|
|
|
|
|
dto.setRemark(item.getRemark()); |
|
|
|
|
|
dto.setWeight(item.getWeight()); |
|
|
|
|
|
dto.setVolume(item.getVolume()); |
|
|
|
|
|
dto.setSalesPrice(item.getSalesPrice()); |
|
|
|
|
|
dto.setTotalPrice(item.getSalesPrice().multiply(new BigDecimal(item.getQuantity()))); |
|
|
|
|
|
return dto; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
newWayData.put("formson_2210",itemDTOList); |
|
|
|
|
|
|
|
|
OaFormMainProcess mainProcess = new OaFormMainProcess(); |
|
|
OaFormMainProcess mainProcess = new OaFormMainProcess(); |
|
|
mainProcess.setTargetId(orderId); |
|
|
mainProcess.setTargetId(orderId); |
|
|
mainProcess.setUploadFiles(new ArrayList<>()); |
|
|
mainProcess.setUploadFiles(new ArrayList<>()); |
|
|
mainProcess.setTableName("formmain_2206"); |
|
|
mainProcess.setTableName("formmain_2206"); |
|
|
mainProcess.setData(data); |
|
|
mainProcess.setData(newWayData); |
|
|
mainProcess.setTemplateCode(templateCode); |
|
|
mainProcess.setTemplateCode(templateCode); |
|
|
mainProcess.setUserId(sysUser.getId()); |
|
|
mainProcess.setUserId(sysUser.getId()); |
|
|
mainProcess.setSenderLoginName(sysUser.getAccount()); |
|
|
mainProcess.setSenderLoginName(sysUser.getAccount()); |
|
@ -203,6 +231,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
} |
|
|
} |
|
|
omsOrder.setSyFormId(formId); |
|
|
omsOrder.setSyFormId(formId); |
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode()); |
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode()); |
|
|
|
|
|
omsOrder.setOrderCheckSubmitTime(LocalDateTime.now()); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
return R.ok(); |
|
|
return R.ok(); |
|
|
} |
|
|
} |
|
@ -225,7 +254,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds); |
|
|
List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds); |
|
|
List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList()); |
|
|
List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList()); |
|
|
cateIds.add("0"); |
|
|
|
|
|
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds); |
|
|
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds); |
|
|
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(",")); |
|
|
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(",")); |
|
|
//写入到ERP中间表
|
|
|
//写入到ERP中间表
|
|
@ -237,7 +265,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
* 构建DATA |
|
|
* 构建DATA |
|
|
* @param omsOrder |
|
|
* @param omsOrder |
|
|
* @param sysUser |
|
|
* @param sysUser |
|
|
* @param orderItemList |
|
|
|
|
|
* @param supplierAddress |
|
|
* @param supplierAddress |
|
|
* @param supplier |
|
|
* @param supplier |
|
|
* @param totalOrderAmt |
|
|
* @param totalOrderAmt |
|
@ -246,9 +273,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
* @param bizBizNames |
|
|
* @param bizBizNames |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
private Map<String, Object> buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, List<OmsOrderItem> orderItemList, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) { |
|
|
private Map<String, Object> buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) { |
|
|
Map<String, Object> data = new HashMap<>(); |
|
|
Map<String, Object> data = new HashMap<>(); |
|
|
data.put("title", omsOrder.getOrderSn()); |
|
|
|
|
|
data.put("orgId", omsOrder.getId()); |
|
|
data.put("orgId", omsOrder.getId()); |
|
|
data.put("targetId", omsOrder.getId()); |
|
|
data.put("targetId", omsOrder.getId()); |
|
|
data.put("targetCode", omsOrder.getOrderSn()); |
|
|
data.put("targetCode", omsOrder.getOrderSn()); |
|
@ -257,15 +283,17 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
data.put("supplierName", supplier.getName()); |
|
|
data.put("supplierName", supplier.getName()); |
|
|
data.put("supplierCode", supplier.getCode()); |
|
|
data.put("supplierCode", supplier.getCode()); |
|
|
data.put("exsp1", templateCode); |
|
|
data.put("exsp1", templateCode); |
|
|
data.put("exsp2", saleBizNames); |
|
|
data.put("exsp2", bizBizNames); |
|
|
data.put("biz_region", bizBizNames); |
|
|
data.put("exsp3", saleBizNames); |
|
|
|
|
|
// title
|
|
|
|
|
|
data.put("exsp4", "临期订单-"+omsOrder.getOrderSn()); |
|
|
//添加跳转地址业务
|
|
|
//添加跳转地址业务
|
|
|
String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/"; |
|
|
String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/"; |
|
|
data.put("cmsLink",baseJumpUrl); |
|
|
data.put("cmsLink",baseJumpUrl); |
|
|
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); |
|
|
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); |
|
|
data.put("rowState","00"); |
|
|
data.put("rowState","00"); |
|
|
data.put("templateId", ""); |
|
|
//data.put("templateId", "");
|
|
|
data.put("templateName", ""); |
|
|
//data.put("templateName", "");
|
|
|
//添加客户标签
|
|
|
//添加客户标签
|
|
|
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode()); |
|
|
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode()); |
|
|
data.put("tags",tags); |
|
|
data.put("tags",tags); |
|
@ -275,27 +303,13 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
data.put("cdNumber", omsOrder.getCdOrderRemark()); |
|
|
data.put("cdNumber", omsOrder.getCdOrderRemark()); |
|
|
data.put("remark", omsOrder.getRemark()); |
|
|
data.put("remark", omsOrder.getRemark()); |
|
|
data.put("mainRemark", omsOrder.getRemark()); |
|
|
data.put("mainRemark", omsOrder.getRemark()); |
|
|
|
|
|
// 折扣率
|
|
|
List<SeeYonOrderItemDTO> itemDTOList = orderItemList.stream().map(item->{ |
|
|
data.put("ext1", omsOrder.getDiscountRate()); |
|
|
SeeYonOrderItemDTO dto = new SeeYonOrderItemDTO(); |
|
|
// 折扣最终金额
|
|
|
dto.setSpuCode(item.getSpuCode()); |
|
|
data.put("ext2", |
|
|
dto.setSkuTitle(item.getSkuTitle()); |
|
|
totalOrderAmt.multiply(omsOrder.getDiscountRate()) |
|
|
GoodsSpu goodsSpu = goodsSpuMapper.selectById(item.getSpuId()); |
|
|
.divide(new BigDecimal("100"),2, RoundingMode.DOWN) |
|
|
GoodsSku goodsSku = goodsSkuMapper.selectById(item.getSkuId()); |
|
|
); |
|
|
GoodsCategory goodsCategory = goodsCategoryMapper.selectById(goodsSpu.getCategoryLast()); |
|
|
|
|
|
dto.setSkuAddCode(goodsSku.getSkuAddCode()); |
|
|
|
|
|
dto.setSkuCode(item.getSkuCode()); |
|
|
|
|
|
dto.setBatchCode(item.getSkuBatchCode()); |
|
|
|
|
|
dto.setSkuCategories(goodsCategory.getLevelPathNames()); |
|
|
|
|
|
dto.setSpecVal(item.getSpecValues()); |
|
|
|
|
|
dto.setRemark(item.getRemark()); |
|
|
|
|
|
dto.setWeight(item.getWeight()); |
|
|
|
|
|
dto.setVolume(item.getVolume()); |
|
|
|
|
|
dto.setSalesPrice(item.getSalesPrice()); |
|
|
|
|
|
dto.setTotalPrice(item.getSalesPrice().multiply(new BigDecimal(item.getQuantity()))); |
|
|
|
|
|
return dto; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
data.put("formson_2210",itemDTOList); |
|
|
|
|
|
return data; |
|
|
return data; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -319,6 +333,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { |
|
|
public Object doFinished(TbsAffairCommitBo param) { |
|
|
public Object doFinished(TbsAffairCommitBo param) { |
|
|
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); |
|
|
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); |
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode()); |
|
|
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode()); |
|
|
|
|
|
omsOrder.setOrderCheckFinishedTime(LocalDateTime.now()); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
omsOrderService.updateById(omsOrder); |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|