|
@@ -5,6 +5,7 @@ import com.iamberry.redis.RedisUtils;
|
|
|
import com.iamberry.rst.core.cm.SalesOrder;
|
|
|
import com.iamberry.rst.core.cm.SalesOrderItem;
|
|
|
import com.iamberry.rst.core.cm.StoreInfo;
|
|
|
+import com.iamberry.rst.core.dm.SupplierProduct;
|
|
|
import com.iamberry.rst.core.fm.ComplaintDetectInfo;
|
|
|
import com.iamberry.rst.core.fm.InventoryInfo;
|
|
|
import com.iamberry.rst.core.fm.InventoryLog;
|
|
@@ -21,6 +22,7 @@ import com.iamberry.rst.faces.order.EfastOrderService;
|
|
|
import com.iamberry.rst.faces.order.OrderWarehouseService;
|
|
|
import com.iamberry.rst.faces.product.ProductService;
|
|
|
import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
|
|
|
+import com.iamberry.rst.service.dm.mapper.SupplierProductMapper;
|
|
|
import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
|
|
|
import com.iamberry.rst.service.fm.mapper.InventoryLogMapper;
|
|
|
import com.iamberry.rst.service.fm.mapper.InventoryMapper;
|
|
@@ -78,6 +80,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
private OrderWarehouseService orderWarehouseService;
|
|
|
@Autowired
|
|
|
private InventoryService inventoryService;
|
|
|
+ @Autowired
|
|
|
+ private SupplierProductMapper supplierProductMapper;
|
|
|
|
|
|
@Override
|
|
|
public Integer addSalesOrder(SalesOrder salesOrder) {
|
|
@@ -104,6 +108,33 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
if (res == null || res <= 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+ //确认订单需要填入产品成本价格
|
|
|
+ if(salesOrder.getSalesStatus() != null && salesOrder.getSalesStatus() == 1){
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
+ salesOrderItem.setItemOrderId(salesOrder.getSalesId());
|
|
|
+ List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
+ List<SalesOrderItem> newSalesOrderItem = new ArrayList<>();
|
|
|
+ for (SalesOrderItem soi:salesOrderItemList) {
|
|
|
+ SupplierProduct supplierProduct = supplierProductMapper.getSupplierProductByColorId(soi.getItemColorId());
|
|
|
+ if(supplierProduct != null){
|
|
|
+ SalesOrderItem newSalesOrder = new SalesOrderItem();
|
|
|
+ newSalesOrder.setItemCost(supplierProduct.getSpCost());
|
|
|
+ newSalesOrder.setItemCostTotal(supplierProduct.getSpCost() * soi.getItemNum());
|
|
|
+ newSalesOrder.setItemId(soi.getItemId());
|
|
|
+ newSalesOrderItem.add(newSalesOrder);
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("确认订单失败-未查询到该产品("+ soi.getItemProductName() +"-"+ soi.getItemProductColor() +")的成本价格");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (SalesOrderItem soi : newSalesOrderItem) {
|
|
|
+ Integer flag = salesOrderMapper.updateOrderItemObj(soi);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("确认订单失败-修改产品项的成本价格失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 作废订单时需要返还库存
|
|
|
if(salesOrder.getSalesStatus() != null && salesOrder.getSalesStatus() == 3){
|
|
|
// 如果已出库则返还库存
|
|
@@ -1060,12 +1091,12 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
* 添加订单
|
|
|
*/
|
|
|
if(saleId == null ){
|
|
|
- throw new RuntimeException("确认订单-订单id异常!");
|
|
|
+ throw new RuntimeException("确认订单失败-订单id异常!");
|
|
|
}
|
|
|
|
|
|
SalesOrder salesOrder = salesOrderMapper.getSalesOrderById(saleId);
|
|
|
if(salesOrder == null){
|
|
|
- throw new RuntimeException("确认订单-订单异常!");
|
|
|
+ throw new RuntimeException("确认订单失败-订单异常!");
|
|
|
}
|
|
|
|
|
|
Integer flag = 0;
|
|
@@ -1073,25 +1104,35 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
salesOrderItem.setItemOrderId(salesOrder.getSalesId());
|
|
|
List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
if(salesOrderItemList == null || salesOrderItemList.size()<1){
|
|
|
- throw new RuntimeException("确认订单-查询订单项失败!");
|
|
|
+ throw new RuntimeException("确认订单失败-查询订单项失败!");
|
|
|
}
|
|
|
salesOrder.setSalesOrderItemList(salesOrderItemList);
|
|
|
|
|
|
flag = salesOrderMapper.delOrderById(salesOrder.getSalesId());
|
|
|
if(flag < 1){
|
|
|
- throw new RuntimeException("确认订单-删除订单失败!");
|
|
|
+ throw new RuntimeException("确认订单失败-删除订单失败!");
|
|
|
}
|
|
|
|
|
|
flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
|
|
|
if(flag < 1){
|
|
|
- throw new RuntimeException("确认订单-删除订单项失败!");
|
|
|
+ throw new RuntimeException("确认订单失败-删除订单项失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ for (SalesOrderItem soi:salesOrder.getSalesOrderItemList()) {
|
|
|
+ SupplierProduct supplierProduct = supplierProductMapper.getSupplierProductByColorId(soi.getItemColorId());
|
|
|
+ if(supplierProduct != null){
|
|
|
+ soi.setItemCost(supplierProduct.getSpCost());
|
|
|
+ soi.setItemCostTotal(supplierProduct.getSpCost() * soi.getItemNum());
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("确认订单失败-未查询到该产品("+ soi.getItemProductName() +"-"+ soi.getItemProductColor() +")的成本价格");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//1:确认 状态
|
|
|
salesOrder.setSalesStatus(1);
|
|
|
boolean fl = salesOrderService.addRstOrderAndIteminfo(salesOrder);
|
|
|
if(!fl){
|
|
|
- throw new RuntimeException("确认订单-添加订单失败!");
|
|
|
+ throw new RuntimeException("确认订单失败-添加订单失败!");
|
|
|
}
|
|
|
return flag;
|
|
|
}
|