|
@@ -106,8 +106,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
// 作废订单时需要返还库存
|
|
|
if(salesOrder.getSalesStatus() != null && salesOrder.getSalesStatus() == 3){
|
|
|
// 如果已出库则返还库存
|
|
|
- if(salesOrderMapper.getSalesOrderById(salesOrder.getSalesId()).getSalesDeliver() == 2){
|
|
|
- returnInventory(salesOrder.getSalesId());
|
|
|
+ SalesOrder so = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
+ if(so.getSalesDeliver() == 2){
|
|
|
+ returnInventory(salesOrder.getSalesId(),so.getSalesWarehouseId());
|
|
|
}
|
|
|
}
|
|
|
return 1;
|
|
@@ -903,8 +904,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
@Transactional
|
|
|
public Integer delSalesOrder(Integer id) {
|
|
|
//查询出库状态判断是否需要返还库存
|
|
|
- if(salesOrderMapper.getSalesOrderById(id).getSalesDeliver() == 2){
|
|
|
- returnInventory(id);
|
|
|
+ SalesOrder so = salesOrderMapper.getSalesOrderById(id);
|
|
|
+ if(so.getSalesDeliver() == 2){
|
|
|
+ returnInventory(id,so.getSalesWarehouseId());
|
|
|
}
|
|
|
// 检查客诉是否使用订单,如果有使用订单,无法删除
|
|
|
salesOrderMapper.delOrderItem(id);
|
|
@@ -1062,31 +1064,41 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public Integer updateDeliver(SalesOrder salesOrder) {
|
|
|
- if(salesOrder.getSalesDeliver() == 2){//标记出库,修改库存
|
|
|
- if(!updateInventory(salesOrder.getSalesId())){
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ if(salesOrder.getSalesDeliver() == 2){//标记出库,修改库存
|
|
|
+ if(!salesOrderService.updateInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
+ return 0;
|
|
|
}
|
|
|
+ }
|
|
|
if(salesOrder.getSalesDeliver() == 1){//标记未出库,修改库存
|
|
|
- if(!returnInventory(salesOrder.getSalesId())){
|
|
|
+ if(!salesOrderService.returnInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
- return salesOrderMapper.updateDeliver(salesOrder);
|
|
|
+ Integer flag = salesOrderMapper.updateDeliver(salesOrder);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("出库失败,订单出库失败。");
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
}
|
|
|
+
|
|
|
//减少库存
|
|
|
- public boolean updateInventory(Integer salesId){
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public boolean updateInventory(Integer salesId,Integer salesWarehouseId){
|
|
|
SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
salesOrderItem.setItemOrderId(salesId);
|
|
|
List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
for(SalesOrderItem item : listOrderitem){
|
|
|
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
|
|
|
+ InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),salesWarehouseId);
|
|
|
if(info != null){
|
|
|
if(info.getInventoryGoodProductNum() >= item.getItemNum()){
|
|
|
info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - item.getItemNum());
|
|
|
info.setInventoryRecentRecord(sdf.format(new Date())+"出库:"+item.getItemNum()+"件");
|
|
|
- inventoryMapper.updateById(info);
|
|
|
+ Integer flag = inventoryMapper.updateById(info);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("【出库】更新库存失败,库存修改失败。");
|
|
|
+ }
|
|
|
//添加日志
|
|
|
InventoryLog inventoryLog = new InventoryLog();
|
|
|
inventoryLog.setLogProductName(info.getInventoryProductName());
|
|
@@ -1096,28 +1108,37 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
inventoryLog.setLogOperationType(2);
|
|
|
inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库:"+item.getItemNum()+"件");
|
|
|
inventoryLog.setLogQualityType(1);
|
|
|
- inventoryLog.setLogWarehouseId(1);
|
|
|
- inventoryLogMapper.insert(inventoryLog);
|
|
|
+ inventoryLog.setLogWarehouseId(salesWarehouseId);
|
|
|
+ flag = inventoryLogMapper.insert(inventoryLog);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("更新库存失败,增加库存记录失败。");
|
|
|
+ }
|
|
|
}else{
|
|
|
- return false;
|
|
|
+ throw new RuntimeException("更新库存失败,该产品库存不足。");
|
|
|
}
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("更新库存失败,未查询到库存信息,请确认该仓库是否有该产品库存信息。");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
//标记未出库时返还库存
|
|
|
- public boolean returnInventory(Integer salesId){
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public boolean returnInventory(Integer salesId,Integer salesWarehouseId){
|
|
|
SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
salesOrderItem.setItemOrderId(salesId);
|
|
|
List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
for(SalesOrderItem item : listOrderitem){
|
|
|
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
|
|
|
+ InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),salesWarehouseId);
|
|
|
if(info != null){
|
|
|
info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
|
|
|
info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件");
|
|
|
- inventoryMapper.updateById(info);
|
|
|
+ Integer flag = inventoryMapper.updateById(info);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("【返还库存】更新库存失败,库存修改失败。");
|
|
|
+ }
|
|
|
//添加日志
|
|
|
InventoryLog inventoryLog = new InventoryLog();
|
|
|
inventoryLog.setLogProductName(info.getInventoryProductName());
|
|
@@ -1127,8 +1148,13 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
inventoryLog.setLogOperationType(1);
|
|
|
inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件");
|
|
|
inventoryLog.setLogQualityType(1);
|
|
|
- inventoryLog.setLogWarehouseId(1);
|
|
|
- inventoryLogMapper.insert(inventoryLog);
|
|
|
+ inventoryLog.setLogWarehouseId(salesWarehouseId);
|
|
|
+ flag = inventoryLogMapper.insert(inventoryLog);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("更新库存失败,增加库存记录失败。");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("更新库存失败,未查询到库存信息,请确认该仓库是否有该产品库存信息。");
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -1186,10 +1212,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
orderCorrectItem.setOldNum(orderItem.getItemNum());
|
|
|
if(orderItem.getItemNum().intValue() != salesOrderItem.getItemNum().intValue()){
|
|
|
//查询订单判断是否已出库
|
|
|
- if(salesOrderMapper.getSalesOrderById(orderCorrectInfo.getItemOrderId()).getSalesDeliver() == 2){
|
|
|
+ SalesOrder so = salesOrderMapper.getSalesOrderById(orderCorrectInfo.getItemOrderId());
|
|
|
+ if(so.getSalesDeliver() == 2){
|
|
|
//返还库存
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- InventoryInfo info = inventoryMapper.getByInventoryByBar(orderItem.getItemColorBar());
|
|
|
+ InventoryInfo info = inventoryMapper.getByInventoryByBar(orderItem.getItemColorBar(),so.getSalesWarehouseId());
|
|
|
//添加日志
|
|
|
InventoryLog inventoryLog = new InventoryLog();
|
|
|
inventoryLog.setLogProductName(info.getInventoryProductName());
|
|
@@ -1237,7 +1264,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
for(SalesOrderItem item : listOrderitem){
|
|
|
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
|
|
|
+ SalesOrder so = salesOrderMapper.getSalesOrderById(item.getItemOrderId());
|
|
|
+ InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),so.getSalesWarehouseId());
|
|
|
if(info != null){
|
|
|
info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
|
|
|
info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
|