|
@@ -1460,68 +1460,88 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
if(flag < 1){
|
|
if(flag < 1){
|
|
throw new RuntimeException("操作失败,订单出/入库失败,请联系技术人员核查。");
|
|
throw new RuntimeException("操作失败,订单出/入库失败,请联系技术人员核查。");
|
|
}
|
|
}
|
|
- //是否原机退回
|
|
|
|
|
|
+ SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
|
+ if (temp.getSalesQuality() == 2) {
|
|
|
|
+ // 指定发良品
|
|
|
|
+
|
|
|
|
+ } else if (temp.getSalesQuality() == 3) {
|
|
|
|
+ // 指定发不良品
|
|
|
|
+ } else {
|
|
|
|
+ // 系统自动判断
|
|
|
|
+ }
|
|
|
|
+ // 是否原机退回
|
|
boolean isMachineRetuen = false;
|
|
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);
|
|
|
|
- int state = cdinfo.getDetectState();
|
|
|
|
- if (state == 32 || state == 33 || state == 36 || state == 39) {
|
|
|
|
- isMachineRetuen = true;
|
|
|
|
|
|
+ if (temp.getSalesQuality() == 1) {
|
|
|
|
+ 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);
|
|
|
|
+ int state = cdinfo.getDetectState();
|
|
|
|
+ if (state == 33 || state == 39) {
|
|
|
|
+ isMachineRetuen = true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
- if(isMachineRetuen){
|
|
|
|
- // 减去售后仓库不良品
|
|
|
|
- ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
|
|
|
|
- InventoryInfo inventoryInfo1 = new InventoryInfo();
|
|
|
|
- inventoryInfo1.setInventoryDefectiveProductNum(1);
|
|
|
|
- inventoryInfo1.setInventoryProductColorId(cdinfo.getProductColorId());
|
|
|
|
- inventoryInfo1.setWarehouseId(salesOrder.getSalesWarehouseId());
|
|
|
|
- //产品质量类型 1良品 2 不良品
|
|
|
|
- inventoryInfo1.setQualityType(2);
|
|
|
|
- inventoryInfo1.setInventoryRecentRecord("维修机器-原机返回(维修ID:" + cdinfo.getDetectNumber() + ")");
|
|
|
|
- flag = inventoryService.minusInventory(inventoryInfo1);
|
|
|
|
- if (flag < 1) {
|
|
|
|
- throw new RuntimeException("出库失败。维修库存调整失败");
|
|
|
|
|
|
+ if (isMachineRetuen) {
|
|
|
|
+ // 减去售后仓库不良品
|
|
|
|
+ ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
|
|
|
|
+ InventoryInfo inventoryInfo1 = new InventoryInfo();
|
|
|
|
+ inventoryInfo1.setInventoryDefectiveProductNum(1);
|
|
|
|
+ inventoryInfo1.setInventoryProductColorId(cdinfo.getProductColorId());
|
|
|
|
+ inventoryInfo1.setWarehouseId(salesOrder.getSalesWarehouseId());
|
|
|
|
+ // 产品质量类型 1良品 2 不良品
|
|
|
|
+ inventoryInfo1.setQualityType(2);
|
|
|
|
+ inventoryInfo1.setInventoryRecentRecord("维修机器-原机返回(维修ID:" + cdinfo.getDetectNumber() + ")");
|
|
|
|
+ flag = inventoryService.minusInventory(inventoryInfo1);
|
|
|
|
+ if (flag < 1) {
|
|
|
|
+ throw new RuntimeException("出库失败。维修库存调整失败");
|
|
|
|
+ }
|
|
|
|
+ return flag;
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
- // 正常库存出库(包含正常销售与售后)
|
|
|
|
- SalesOrder so = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
|
- SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
|
- salesOrderItem.setItemOrderId(so.getSalesId());
|
|
|
|
- List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
|
|
|
|
- // 查询维修编号,并根据维修编号对应的处理结果判断是否从不良品中出库
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 正常库存出库(包含正常销售与售后)
|
|
|
|
+ SalesOrder so = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
|
+ salesOrderItem.setItemOrderId(so.getSalesId());
|
|
|
|
+ List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
|
|
|
|
+ // 查询维修编号,并根据维修编号对应的处理结果判断是否从不良品中出库
|
|
|
|
+ boolean isDefectiveProduct = false;
|
|
|
|
+ if (temp.getSalesQuality() == 1) {
|
|
|
|
+ // 凡是(付费维修-维修完成)、(免费维修-维修完成)、(机器无故障,原机退回)都走不良品
|
|
List<ComplaintDetectInfo> listDetect = complaintDetectInfoMapper.listComplaintDetectBySalesId(so.getSalesOrderId());
|
|
List<ComplaintDetectInfo> listDetect = complaintDetectInfoMapper.listComplaintDetectBySalesId(so.getSalesOrderId());
|
|
- boolean isDefectiveProduct = false;
|
|
|
|
if (listDetect != null && !listDetect.isEmpty()) {
|
|
if (listDetect != null && !listDetect.isEmpty()) {
|
|
int result = listDetect.get(0).getDetectState();
|
|
int result = listDetect.get(0).getDetectState();
|
|
- if (result == 32 || result == 36 || result == 37 || result == 39) {
|
|
|
|
- // 凡是(付费维修-维修完成)、(免费维修-维修完成)、(机器无故障,原机退回)都走不良品
|
|
|
|
|
|
+ if (result == 32 ||result == 33 || result == 36 || result == 37 || result == 39) {
|
|
isDefectiveProduct = true;
|
|
isDefectiveProduct = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(salesOrder.getSalesDeliver() == 2){
|
|
|
|
- // 标记出库,修改库存
|
|
|
|
- // 如果已出库则返还库存
|
|
|
|
- for (SalesOrderItem soi:listOrderitem) {
|
|
|
|
- InventoryInfo inventoryInfo2 = new InventoryInfo();
|
|
|
|
- inventoryInfo2.setInventoryProductBar(soi.getItemColorBar());
|
|
|
|
- inventoryInfo2.setWarehouseId(so.getSalesWarehouseId());
|
|
|
|
- //类型1.采购 2.发货 3.次品
|
|
|
|
- inventoryInfo2.setLogType(2);
|
|
|
|
- //产品质量类型 1良品 2 不良品
|
|
|
|
- if (isDefectiveProduct) {
|
|
|
|
- inventoryInfo2.setInventoryDefectiveProductNum(soi.getItemNum());
|
|
|
|
- inventoryInfo2.setQualityType(2);
|
|
|
|
- } else {
|
|
|
|
- inventoryInfo2.setInventoryGoodProductNum(soi.getItemNum());
|
|
|
|
- inventoryInfo2.setQualityType(1);
|
|
|
|
- }
|
|
|
|
- inventoryInfo2.setInventoryRecentRecord("出库-订单号:"+ so.getSalesDealCode());
|
|
|
|
- inventoryService.minusInventory(inventoryInfo2);
|
|
|
|
|
|
+ } else if (temp.getSalesQuality() == 2) {
|
|
|
|
+ // 良品
|
|
|
|
+ isDefectiveProduct = false;
|
|
|
|
+ } else if (temp.getSalesQuality() == 3) {
|
|
|
|
+ // 不良品
|
|
|
|
+ isDefectiveProduct = true;
|
|
|
|
+ }
|
|
|
|
+ if(salesOrder.getSalesDeliver() == 2){
|
|
|
|
+ // 标记出库,修改库存
|
|
|
|
+ // 如果已出库则返还库存
|
|
|
|
+ for (SalesOrderItem soi:listOrderitem) {
|
|
|
|
+ InventoryInfo inventoryInfo2 = new InventoryInfo();
|
|
|
|
+ inventoryInfo2.setInventoryProductBar(soi.getItemColorBar());
|
|
|
|
+ inventoryInfo2.setWarehouseId(so.getSalesWarehouseId());
|
|
|
|
+ //类型1.采购 2.发货 3.次品
|
|
|
|
+ inventoryInfo2.setLogType(2);
|
|
|
|
+ //产品质量类型 1良品 2 不良品
|
|
|
|
+ if (isDefectiveProduct) {
|
|
|
|
+ inventoryInfo2.setInventoryDefectiveProductNum(soi.getItemNum());
|
|
|
|
+ inventoryInfo2.setQualityType(2);
|
|
|
|
+ } else {
|
|
|
|
+ inventoryInfo2.setInventoryGoodProductNum(soi.getItemNum());
|
|
|
|
+ inventoryInfo2.setQualityType(1);
|
|
}
|
|
}
|
|
|
|
+ inventoryInfo2.setInventoryRecentRecord("出库-订单号:"+ so.getSalesDealCode());
|
|
|
|
+ inventoryService.minusInventory(inventoryInfo2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return flag;
|
|
return flag;
|