ソースを参照

Merge remote-tracking branch 'origin/master'

fubin 1 年間 前
コミット
c48c5c784c
1 ファイル変更16 行追加12 行削除
  1. 16 12
      src/main/java/com/dk/mdm/service/sale/OrderService.java

+ 16 - 12
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -525,6 +525,14 @@ public class OrderService extends BaseService<Order> {
 //        if (orderForUpdate.getSumQuantity().compareTo(orderForUpdate.getOutQty()) == 0) {
 //            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_IS_OUT.getMessage());
 //        }
+        // 商户产品版本
+        String gradeCode = "PRO";
+        Map<String, Object> paramCompany = new HashMap<>();
+        paramCompany.put("cpId", orderVO.getCpId());
+        List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
+        if (listCompany.size() > 0) {
+            gradeCode = listCompany.get(0).get("gradeCode").toString();
+        }
 
         // 明细实体(避免并发,需要再查一遍)
         OrderItem orderItemForUpdate;
@@ -536,23 +544,16 @@ public class OrderService extends BaseService<Order> {
             if (deleteOrderItemVOList.size() > 0) {
                 for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
                     orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
-                    // 非待出库单据不能删除
-                    if (!Constant.OutStatus.DAICHUKU.getName().equals(orderItemForUpdate.getOutStatus())) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
-                    } else {
+                    //当gradeCode为"STD"时,无论outStatus是什么,都直接删除;而当gradeCode不是"STD"时,只有outStatus为DAICHUKU时才允许删除
+                    if ("STD".equals(gradeCode) ||
+                            (Constant.OutStatus.DAICHUKU.getName().equals(orderItemForUpdate.getOutStatus()))) {
                         orderItemMapper.deleteById(orderItemVO.getItemId());
+                    } else {
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
                     }
                 }
             }
         }
-        // 商户产品版本
-        String gradeCode = "PRO";
-        Map<String, Object> paramCompany = new HashMap<>();
-        paramCompany.put("cpId", orderVO.getCpId());
-        List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
-        if (listCompany.size() > 0) {
-            gradeCode = listCompany.get(0).get("gradeCode").toString();
-        }
 
         // 编辑的
         List<OrderItemVO> editOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
@@ -844,6 +845,9 @@ public class OrderService extends BaseService<Order> {
                         if (orderVO.getDeleteItemList() != null) { //删除list
                             List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
                             if (deleteOrderItemVOList.size() > 0) {
+                                for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
+                                    orderItemVO.setOutId(outboundResponsejson.getOutId());
+                                }
                                 orderVO.setDeleteItemList(deleteOrderItemVOList);
                             }
                         }