|
@ -670,7 +670,7 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
OmsSaleOrder order = new OmsSaleOrder(); |
|
|
OmsSaleOrder order = new OmsSaleOrder(); |
|
|
String orderPrefix = null; |
|
|
String orderPrefix = null; |
|
|
if (order.getOrderType() == null || order.getOrderType().equals(0)) { |
|
|
if (order.getOrderType() == null || order.getOrderType().equals(0)) { |
|
|
orderPrefix = "SN"; |
|
|
orderPrefix = ""; |
|
|
} else if (order.getOrderType().equals(1)) { |
|
|
} else if (order.getOrderType().equals(1)) { |
|
|
orderPrefix = "ZP"; |
|
|
orderPrefix = "ZP"; |
|
|
} else if (order.getOrderType().equals(2)) { |
|
|
} else if (order.getOrderType().equals(2)) { |
|
@ -781,21 +781,21 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
String supplierCode = supplier.getCode(); |
|
|
String supplierCode = supplier.getCode(); |
|
|
List<String> skuCodes = orderItems.stream().map(OmsSaleOrderItem::getSkuCode).collect(Collectors.toList()); |
|
|
List<String> skuCodes = orderItems.stream().map(OmsSaleOrderItem::getSkuCode).collect(Collectors.toList()); |
|
|
if (skuCodes.size() > 0) { |
|
|
if (skuCodes.size() > 0) { |
|
|
List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode, skuCodes); |
|
|
// List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode, skuCodes);
|
|
|
inventoryCusPrices = customerPrices.stream().map(obj -> { |
|
|
// inventoryCusPrices = customerPrices.stream().map(obj -> {
|
|
|
InventoryCusPrice cusPrice = new InventoryCusPrice(); |
|
|
// InventoryCusPrice cusPrice = new InventoryCusPrice();
|
|
|
cusPrice.setCusCode(supplierCode); |
|
|
// cusPrice.setCusCode(supplierCode);
|
|
|
cusPrice.setInvCode(obj.getSkuCode()); |
|
|
// cusPrice.setInvCode(obj.getSkuCode());
|
|
|
cusPrice.setPrice(obj.getRealPrice()); |
|
|
// cusPrice.setPrice(obj.getRealPrice());
|
|
|
return cusPrice; |
|
|
// return cusPrice;
|
|
|
}).collect(Collectors.toList()); |
|
|
// }).collect(Collectors.toList());
|
|
|
// InventoryCusPriceQuery query = new InventoryCusPriceQuery();
|
|
|
InventoryCusPriceQuery query = new InventoryCusPriceQuery(); |
|
|
// query.setCusCode(supplierCode);
|
|
|
query.setCusCode(supplierCode); |
|
|
// query.setInvCodes(skuCodes);
|
|
|
query.setInvCodes(skuCodes); |
|
|
// R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
|
|
|
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); |
|
|
// if(res.getStatus().equals(200)){
|
|
|
if(res.getStatus().equals(200)){ |
|
|
// inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
|
|
|
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); |
|
|
// }
|
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
log.error("客户特殊价异常:{}", e.getMessage()); |
|
|
log.error("客户特殊价异常:{}", e.getMessage()); |
|
@ -1287,15 +1287,33 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void buildSkuSpecPrice(BmsSupplier supplier, List<OmsSaleOrderItem> orderItems, List<String> skuCodes) { |
|
|
private void buildSkuSpecPrice(BmsSupplier supplier, List<OmsSaleOrderItem> orderItems, List<String> skuCodes) { |
|
|
List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplier.getCode(), skuCodes); |
|
|
// List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplier.getCode(), skuCodes);
|
|
|
|
|
|
// for (OmsSaleOrderItem orderItem : orderItems) {
|
|
|
|
|
|
// for (GoodsCustomerPrice customerPrice : customerPrices) {
|
|
|
|
|
|
// if (orderItem.getSkuCode().equals(customerPrice.getSkuCode())) {
|
|
|
|
|
|
// orderItem.setSalesPrice(customerPrice.getRealPrice());
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
InventoryCusPriceQuery query = new InventoryCusPriceQuery(); |
|
|
|
|
|
query.setCusCode(supplier.getCode()); |
|
|
|
|
|
query.setInvCodes(skuCodes); |
|
|
|
|
|
try { |
|
|
|
|
|
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); |
|
|
|
|
|
if(res.getStatus().equals(200)){ |
|
|
|
|
|
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); |
|
|
|
|
|
for (InventoryCusPrice cusPrice : inventoryCusPrices) { |
|
|
for (OmsSaleOrderItem orderItem : orderItems) { |
|
|
for (OmsSaleOrderItem orderItem : orderItems) { |
|
|
for (GoodsCustomerPrice customerPrice : customerPrices) { |
|
|
if(cusPrice.getCusCode().equals(orderItem.getSkuCode())&&cusPrice.getPrice().compareTo(cusPrice.getPrice())!=0){ |
|
|
if (orderItem.getSkuCode().equals(customerPrice.getSkuCode())) { |
|
|
orderItem.setSalesPrice(cusPrice.getPrice()); |
|
|
orderItem.setSalesPrice(customerPrice.getRealPrice()); |
|
|
} |
|
|
break; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -1311,9 +1329,9 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
Assert.throwEx("非制单人无法下单"); |
|
|
Assert.throwEx("非制单人无法下单"); |
|
|
} |
|
|
} |
|
|
// 非临期品不走当前流程
|
|
|
// 非临期品不走当前流程
|
|
|
// if(omsOrder.getOrderType().equals(3)){
|
|
|
if(omsOrder.getOrderType().equals(3)){ |
|
|
// Assert.throwEx("临期品需要审批方式下单");
|
|
|
Assert.throwEx("临期品需要审批方式下单"); |
|
|
// }
|
|
|
} |
|
|
this.checkMsOrderStatus(omsOrder); |
|
|
this.checkMsOrderStatus(omsOrder); |
|
|
if (!omsOrder.getStatus().equals(0) && !omsOrder.getStatus().equals(6)) { |
|
|
if (!omsOrder.getStatus().equals(0) && !omsOrder.getStatus().equals(6)) { |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
@ -1379,9 +1397,8 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
omsOrder.setStatus(2); |
|
|
omsOrder.setStatus(2); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckUserId(omsOrder.getCreateBy()); |
|
|
omsOrder.setCheckUserId(omsOrder.getCreateBy()); |
|
|
if(omsOrder.getOrderSn().contains("SN")){ |
|
|
|
|
|
omsOrder.setBusinessType("普通销售"); |
|
|
omsOrder.setBusinessType("普通销售"); |
|
|
} |
|
|
|
|
|
omsOrder.setSaleDept("客户服务部"); |
|
|
omsOrder.setSaleDept("客户服务部"); |
|
|
omsOrder.setSaleType("常规销售"); |
|
|
omsOrder.setSaleType("常规销售"); |
|
|
if(!omsOrder.getOrderType().equals(3)){ |
|
|
if(!omsOrder.getOrderType().equals(3)){ |
|
@ -1401,6 +1418,23 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
|
|
|
|
|
|
this.flushPreDelivery(omsOrder.getId()+""); |
|
|
this.flushPreDelivery(omsOrder.getId()+""); |
|
|
|
|
|
|
|
|
|
|
|
// 统计产品数量、总金额、总体积和总重量
|
|
|
|
|
|
int totalQuantity = 0; |
|
|
|
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
|
|
|
double totalVolume = 0.0; |
|
|
|
|
|
double totalWeight = 0.0; |
|
|
|
|
|
|
|
|
|
|
|
for (OmsSaleOrderItem baseItem : orderItemList) { |
|
|
|
|
|
totalQuantity += baseItem.getQuantity(); |
|
|
|
|
|
totalAmount = totalAmount.add(baseItem.getSalesPrice().multiply(new BigDecimal(baseItem.getQuantity()))); |
|
|
|
|
|
if(baseItem.getVolume()!=null){ |
|
|
|
|
|
totalVolume += baseItem.getVolume().doubleValue() * baseItem.getQuantity(); |
|
|
|
|
|
} |
|
|
|
|
|
if(baseItem.getWeight()!=null){ |
|
|
|
|
|
totalWeight += baseItem.getWeight().doubleValue() * baseItem.getQuantity(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//保存版本变更
|
|
|
//保存版本变更
|
|
|
OmsVerSaleOrder verSaleOrder = new OmsVerSaleOrder(); |
|
|
OmsVerSaleOrder verSaleOrder = new OmsVerSaleOrder(); |
|
|
verSaleOrder.setOrderSn(omsOrder.getOrderSn()); |
|
|
verSaleOrder.setOrderSn(omsOrder.getOrderSn()); |
|
@ -1410,21 +1444,30 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
verSaleOrder.setCurrentVersion(omsOrder.getVersion()); |
|
|
verSaleOrder.setCurrentVersion(omsOrder.getVersion()); |
|
|
StringBuilder sb = new StringBuilder(); |
|
|
StringBuilder sb = new StringBuilder(); |
|
|
for (OmsSaleOrderItem baseItem : orderItemList) { |
|
|
for (OmsSaleOrderItem baseItem : orderItemList) { |
|
|
sb.append(String.format("商品[%s] 数量:%d,价格:%.2f\n", |
|
|
sb.append(String.format("商品[%s %s] 数量:%d,价格:%.2f,体积:%.2f,重量:%.2f\n", |
|
|
baseItem.getSkuCode(), |
|
|
baseItem.getSkuCode(), |
|
|
|
|
|
baseItem.getSkuTitle(), |
|
|
baseItem.getQuantity(), |
|
|
baseItem.getQuantity(), |
|
|
baseItem.getSalesPrice())); |
|
|
baseItem.getSalesPrice(), |
|
|
} |
|
|
baseItem.getVolume(), |
|
|
|
|
|
baseItem.getWeight() |
|
|
|
|
|
)); |
|
|
|
|
|
} |
|
|
|
|
|
sb.append(String.format("产品数量:%d,总金额:%.2f,总体积:%.2f,总重量:%.2f", |
|
|
|
|
|
totalQuantity, |
|
|
|
|
|
totalAmount, |
|
|
|
|
|
totalVolume, |
|
|
|
|
|
totalWeight)); |
|
|
verSaleOrder.setOperationContext(sb.toString()); |
|
|
verSaleOrder.setOperationContext(sb.toString()); |
|
|
if(omsOrder.getVersion().equals("cms")){ |
|
|
if(omsOrder.getVersion().equals("cms")){ |
|
|
verSaleOrder.setOperationType("提交"); |
|
|
verSaleOrder.setOperationType("提交"); |
|
|
verSaleOrder.setLastVersion(omsOrder.getVersion()); |
|
|
verSaleOrder.setLastVersion(omsOrder.getVersion()); |
|
|
verSaleOrder.setSort(0); |
|
|
verSaleOrder.setSort(0); |
|
|
}else { |
|
|
}else { |
|
|
|
|
|
OmsVerSaleOrder version = omsVerSaleOrderMapper.getLastVersionByOrderSn(omsOrder.getOrderSn()); |
|
|
verSaleOrder.setOperationType("重新提交"); |
|
|
verSaleOrder.setOperationType("重新提交"); |
|
|
//TODO 获取上一个版本号
|
|
|
verSaleOrder.setLastVersion(version.getCurrentVersion()); |
|
|
verSaleOrder.setLastVersion(""); |
|
|
verSaleOrder.setSort(version.getSort()+1); |
|
|
verSaleOrder.setSort(0); |
|
|
|
|
|
} |
|
|
} |
|
|
omsVerSaleOrderMapper.insert(verSaleOrder); |
|
|
omsVerSaleOrderMapper.insert(verSaleOrder); |
|
|
|
|
|
|
|
|