|
@@ -16,6 +16,7 @@ import com.iamberry.rst.core.sys.Admin;
|
|
|
import com.iamberry.rst.core.sys.SysConfig;
|
|
|
import com.iamberry.rst.core.tools.LogisticsInfo;
|
|
|
import com.iamberry.rst.faces.address.AddressService;
|
|
|
+import com.iamberry.rst.faces.cm.InventoryService;
|
|
|
import com.iamberry.rst.faces.cm.SalesOrderService;
|
|
|
import com.iamberry.rst.faces.cm.StoreInfoService;
|
|
|
import com.iamberry.rst.faces.order.EfastOrderService;
|
|
@@ -83,6 +84,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
private ComplaintDetectInfoMapper complaintDetectInfoMapper;
|
|
|
@Autowired
|
|
|
private OrderWarehouseService orderWarehouseService;
|
|
|
+ @Autowired
|
|
|
+ private InventoryService inventoryService;
|
|
|
|
|
|
@Override
|
|
|
public Integer addSalesOrder(SalesOrder salesOrder) {
|
|
@@ -451,6 +454,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
if(listSalesOrder.size() > 0){
|
|
|
for (int i = 0;i<listSalesOrder.size();i++){
|
|
|
listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
|
|
|
+ listSalesOrder.get(i).setSalesOrderId(listSalesOrder.get(i).getSalesOrderId()+"-"+(i+1));
|
|
|
listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
|
|
|
listSalesOrder.get(i).setSalesId(null);
|
|
|
orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
|
|
@@ -1103,15 +1107,39 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
throw new RuntimeException("出库失败,订单出库失败。");
|
|
|
}
|
|
|
|
|
|
- if(salesOrder.getSalesDeliver() == 2){
|
|
|
- if(!salesOrderService.updateInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
- throw new RuntimeException("出库失败,【出库】库存修改失败。");
|
|
|
+ boolean isMachineRetuen = false;
|
|
|
+ ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();
|
|
|
+ complaintDetectInfo.setSalesOrderId(salesOrder.getSalesOrderId());
|
|
|
+ List<ComplaintDetectInfo> complaintDetectInfoList = complaintDetectInfoMapper.listComplaintDetectByOrderId(complaintDetectInfo);
|
|
|
+ if(complaintDetectInfoList != null && complaintDetectInfoList.size() > 0) {
|
|
|
+ ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
|
|
|
+ if (5 == cdinfo.getDetectProcessingResults()) {
|
|
|
+ isMachineRetuen = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(salesOrder.getSalesDeliver() == 1){
|
|
|
- if(!salesOrderService.returnInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
- throw new RuntimeException("出库失败,【返还库存】库存修改失败。");
|
|
|
+ if(isMachineRetuen){
|
|
|
+
|
|
|
+ ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
|
|
|
+ InventoryInfo inventoryInfo1 = new InventoryInfo();
|
|
|
+ inventoryInfo1.setInventoryDefectiveProductNum(1);
|
|
|
+ inventoryInfo1.setInventoryProductColorId(cdinfo.getProductColorId());
|
|
|
+ inventoryInfo1.setWarehouseId(2);
|
|
|
+ inventoryInfo1.setInventoryRecentRecord("维修机器-原机返回(维修ID:" + cdinfo.getDetectNumber() + ")");
|
|
|
+ flag = inventoryService.minusInventory(inventoryInfo1);
|
|
|
+ if (flag < 1) {
|
|
|
+ throw new RuntimeException("出库失败。维修库存调整失败");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(salesOrder.getSalesDeliver() == 2){
|
|
|
+ if(!salesOrderService.updateInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
+ throw new RuntimeException("出库失败,【出库】库存修改失败。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(salesOrder.getSalesDeliver() == 1){
|
|
|
+ if(!salesOrderService.returnInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
|
|
|
+ throw new RuntimeException("出库失败,【返还库存】库存修改失败。");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
@@ -1136,7 +1164,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
if(info != null){
|
|
|
if(info.getInventoryGoodProductNum() >= item.getItemNum()){
|
|
|
info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - item.getItemNum());
|
|
|
- info.setInventoryRecentRecord(sdf.format(new Date())+"出库:"+item.getItemNum()+"件,订单号:"+item.getItemOrderId());
|
|
|
+ info.setInventoryRecentRecord(sdf.format(new Date())+"出库"+item.getItemNum()+"件,订单号:"+item.getSalesOrderId());
|
|
|
Integer flag = inventoryMapper.updateById(info);
|
|
|
if(flag < 1){
|
|
|
throw new RuntimeException("【出库】更新库存失败,库存修改失败。");
|
|
@@ -1148,7 +1176,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
inventoryLog.setLogRemainingNum(item.getItemNum());
|
|
|
inventoryLog.setLogType(2);
|
|
|
inventoryLog.setLogOperationType(2);
|
|
|
- inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库:"+item.getItemNum()+"件,订单号:"+item.getItemOrderId());
|
|
|
+ inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库"+item.getItemNum()+"件,订单号:"+item.getSalesOrderId());
|
|
|
inventoryLog.setLogQualityType(1);
|
|
|
inventoryLog.setLogWarehouseId(salesWarehouseId);
|
|
|
flag = inventoryLogMapper.insert(inventoryLog);
|
|
@@ -1182,7 +1210,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),salesWarehouseId);
|
|
|
if(info != null){
|
|
|
info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
|
|
|
- info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件,订单号:"+item.getItemOrderId());
|
|
|
+ info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存"+item.getItemNum()+"件,订单号:"+item.getSalesOrderId());
|
|
|
Integer flag = inventoryMapper.updateById(info);
|
|
|
if(flag < 1){
|
|
|
throw new RuntimeException("【返还库存】更新库存失败,库存修改失败。");
|
|
@@ -1194,7 +1222,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
inventoryLog.setLogRemainingNum(item.getItemNum());
|
|
|
inventoryLog.setLogType(1);
|
|
|
inventoryLog.setLogOperationType(1);
|
|
|
- inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件,订单号:"+item.getItemOrderId());
|
|
|
+ inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存"+item.getItemNum()+"件,订单号:"+item.getSalesOrderId());
|
|
|
inventoryLog.setLogQualityType(1);
|
|
|
inventoryLog.setLogWarehouseId(salesWarehouseId);
|
|
|
flag = inventoryLogMapper.insert(inventoryLog);
|