Sfoglia il codice sorgente

feat:sap订单明细更新接口修改

fangxinjian 3 anni fa
parent
commit
5fb19e6480

+ 6 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchImportPackageSapOrderItemReq.java

@@ -33,6 +33,9 @@ public class BatchImportPackageSapOrderItemReq implements Serializable {
         @ApiModelProperty(value = "sap订单号")
         private String sapOrderNo;
 
+        @ApiModelProperty(value = "原sap物料id")
+        private String oriSapMaterialId;
+
         @ApiModelProperty(value = "sap物料id")
         private String sapMaterialId;
 
@@ -45,6 +48,9 @@ public class BatchImportPackageSapOrderItemReq implements Serializable {
         @ApiModelProperty(value = "sap啤酒厂id")
         private String sapBeerFactoryId;
 
+        @ApiModelProperty(value = "原采购数量")
+        private Long oriPurchaseCount;
+
         @ApiModelProperty(value = "采购数量")
         private Long purchaseCount;
 

+ 25 - 13
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageSapOrderItemServiceImpl.java

@@ -58,15 +58,8 @@ public class QrPackageSapOrderItemServiceImpl implements QrPackageSapOrderItemSe
         for (BatchImportPackageSapOrderItemReq.BatchImportSapOrderItem item : sapOrderItemList) {
 
             try {
-                QrPackageSapOrderItem sapOrderItem = new QrPackageSapOrderItem();
-                sapOrderItem.setSapOrderNo(item.getSapOrderNo());
-                sapOrderItem.setSapMaterialId(item.getSapMaterialId());
-                sapOrderItem.setSapCoverFactoryId(item.getSapCoverFactoryId());
-                sapOrderItem.setSapBeerFactoryId(item.getSapBeerFactoryId());
-                sapOrderItem.setSapMaterialName(item.getSapMaterialName());
-                sapOrderItem.setPurchaseCount(item.getPurchaseCount());
 
-                updateQrPackageSapOrderItem(sapOrderItem);
+                updateQrPackageSapOrderItem(item);
             } catch (Exception e) {
 
                 log.error("修改Sap订单明细数据失败",e);
@@ -89,18 +82,37 @@ public class QrPackageSapOrderItemServiceImpl implements QrPackageSapOrderItemSe
 
     }
 
-    private void updateQrPackageSapOrderItem(QrPackageSapOrderItem sapOrderItem) {
+    private void updateQrPackageSapOrderItem(BatchImportPackageSapOrderItemReq.BatchImportSapOrderItem item) {
 
-        //根据sap订单号查询物料订单明细信息
-        QrPackageSapOrderItem qrPackageSapOrderItem = getQrPackageSapOrderItemInfo(sapOrderItem.getSapOrderNo(),sapOrderItem.getSapMaterialId());
+        //根据sap订单号和物料ID查询物料订单明细信息
+        QrPackageSapOrderItem qrPackageSapOrderItem = getQrPackageSapOrderItemInfo(item.getSapOrderNo(),item.getSapMaterialId());
 
         if (ObjectUtil.isNull(qrPackageSapOrderItem)) {
-            log.info("Sap物料订单明细订单号:{}sap物料id:{}不存在",sapOrderItem.getSapOrderNo(),sapOrderItem.getSapMaterialId());
+            log.info("Sap物料订单明细订单号:{}sap物料id:{}不存在",item.getSapOrderNo(),item.getSapMaterialId());
             return;
         }
 
+        QrPackageSapOrderItem sapOrderItem = new QrPackageSapOrderItem();
+        sapOrderItem.setSapOrderNo(item.getSapOrderNo());
+        sapOrderItem.setSapMaterialId(item.getSapMaterialId());
+        sapOrderItem.setSapCoverFactoryId(item.getSapCoverFactoryId());
+        sapOrderItem.setSapBeerFactoryId(item.getSapBeerFactoryId());
+        sapOrderItem.setSapMaterialName(item.getSapMaterialName());
         sapOrderItem.setId(qrPackageSapOrderItem.getId());
-        sapOrderItem.setUpdateTime(LocalDateTime.now());
+
+        //判断物料ID是否修改 如果没有修改 采购数量=(新的采购数量-老的采购数量)+当前的采购数量
+        if (qrPackageSapOrderItem.getSapMaterialId().equals(item.getOriSapMaterialId())) {
+            sapOrderItem.setPurchaseCount((item.getPurchaseCount() - item.getOriPurchaseCount()) + qrPackageSapOrderItem.getPurchaseCount());
+        } else {
+            //如果物料ID修改 采购数量等于当前采购数量减去老的采购数量再加上新的采购数量
+            long purchaseCount = (qrPackageSapOrderItem.getPurchaseCount() - item.getOriPurchaseCount()) + item.getPurchaseCount();
+            //如果采购数量为0就删除此订单号数据
+            if (purchaseCount == 0) {
+                qrPackageSapOrderItemMapper.deleteById(qrPackageSapOrderItem.getId());
+                return;
+            }
+            sapOrderItem.setPurchaseCount(purchaseCount);
+        }
         qrPackageSapOrderItemMapper.updateById(sapOrderItem);
     }