Browse Source

景聚庭-点菜订单逻辑调整

huangguoce 1 week ago
parent
commit
14adb8ba1d

+ 4 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/dishManage/domain/PsiDishOrder.java

@@ -46,6 +46,10 @@ public class PsiDishOrder extends BaseEntity {
 
     private Date settleTime;
 
+    private String tasteRemark;
+
+    private String specialRequirements;
+
     private String remarks;
 
     @TableField(exist = false)

+ 3 - 1
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/dishManage/domain/PsiDishOrderDetail.java

@@ -37,7 +37,7 @@ public class PsiDishOrderDetail extends BaseEntity {
     private BigDecimal salePrice;
 
     /**
-     * 数量,菜时允许为负数
+     * 数量,退菜时允许为负数
      */
     private Integer quantity;
 
@@ -50,6 +50,8 @@ public class PsiDishOrderDetail extends BaseEntity {
      */
     private String isAddDish;
 
+    private String reason;
+
     private String remarks;
 
     @TableField(exist = false)

+ 5 - 2
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/dishManage/mapper/xml/PsiDishOrderDetailMapper.xml

@@ -24,6 +24,7 @@
         <result property="amount" column="amount" jdbcType="DECIMAL"/>
         <result property="dishSort" column="dish_sort" jdbcType="INTEGER"/>
         <result property="isAddDish" column="is_add_dish" jdbcType="VARCHAR"/>
+        <result property="reason" column="reason" jdbcType="VARCHAR"/>
         <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
         <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
     </resultMap>
@@ -78,13 +79,14 @@
             a.amount,
             a.dish_sort,
             a.is_add_dish,
+            a.reason,
             a.remarks
         from psi_dish_order_detail a
         where a.del_flag = '0'
           and a.order_id = #{orderId}
           and a.is_add_dish = '1'
           and a.quantity > 0
-        order by case when ifnull(a.dish_sort, 0) > 0 then a.dish_sort else 999999 end asc, a.create_time asc
+        order by a.create_time desc
     </select>
 
     <select id="findReduceDishList" resultMap="BaseResultMap">
@@ -110,12 +112,13 @@
             a.amount,
             a.dish_sort,
             a.is_add_dish,
+            a.reason,
             a.remarks
         from psi_dish_order_detail a
         where a.del_flag = '0'
           and a.order_id = #{orderId}
           and a.quantity &lt; 0
-        order by case when ifnull(a.dish_sort, 0) > 0 then a.dish_sort else 999999 end asc, a.create_time asc
+        order by a.create_time desc
     </select>
 
     <update id="updateDishSort">

+ 4 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/dishManage/mapper/xml/PsiDishOrderMapper.xml

@@ -20,6 +20,8 @@
         <result property="discountAmount" column="discount_amount" jdbcType="DECIMAL"/>
         <result property="payableAmount" column="payable_amount" jdbcType="DECIMAL"/>
         <result property="settleTime" column="settle_time" jdbcType="TIMESTAMP"/>
+        <result property="tasteRemark" column="taste_remark" jdbcType="VARCHAR"/>
+        <result property="specialRequirements" column="special_requirements" jdbcType="VARCHAR"/>
         <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
         <result property="createName" column="create_name" jdbcType="VARCHAR"/>
     </resultMap>
@@ -42,6 +44,8 @@
         a.discount_amount,
         a.payable_amount,
         a.settle_time,
+        a.taste_remark,
+        a.special_requirements,
         a.remarks
     </sql>
 

+ 9 - 4
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/dishManage/service/PsiDishOrderService.java

@@ -179,6 +179,8 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
             return null;
         }
         order.setDetailList(dishOrderDetailMapper.findSummaryByOrderId(order.getId()));
+        order.setAddDishList(dishOrderDetailMapper.findAddDishList(order.getId()));
+        order.setReduceDishList(dishOrderDetailMapper.findReduceDishList(order.getId()));
         return order;
     }
 
@@ -220,7 +222,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
         }
         boolean addDish = order != null;
         if (order == null) {
-            order = createOrder(room, userDto, now);
+            order = createOrder(room, info, userDto, now);
             dishOrderMapper.insert(order);
             PsiDishRoom updateRoom = new PsiDishRoom();
             updateRoom.setId(room.getId());
@@ -237,13 +239,14 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
             }
             int currentQuantity = currentQuantityMap.getOrDefault(item.getDishId(), 0);
             if (currentQuantity + item.getQuantity() < 0) {
-                return item.getDishName() + "菜数量不能大于已点数量";
+                return item.getDishName() + "退菜数量不能大于已点数量";
             }
             PsiDishMenuDish dish = dishMenuService.findCurrentByDishId(item.getDishId());
             if (dish == null || !"0".equals(dish.getStatus())) {
                 return "菜品不存在或已停用";
             }
             PsiDishOrderDetail detail = buildDetail(order, dish, item.getQuantity(), addDish ? "1" : "0", item.getDishSort(), userDto, now);
+            detail.setReason(item.getReason());
             dishOrderDetailMapper.insert(detail);
             changeAmount = changeAmount.add(detail.getAmount());
             currentQuantityMap.put(item.getDishId(), currentQuantity + item.getQuantity());
@@ -253,7 +256,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
         }
         info.setRoomName(order.getRoomName());
         refreshOrderAmount(order.getId(), info, userDto, now);
-        return "1".equals(info.getSettleFlag()) ? "下单并结账成功" : (changeAmount.compareTo(BigDecimal.ZERO) < 0 ? "菜成功" : "下单成功");
+        return "1".equals(info.getSettleFlag()) ? "下单并结账成功" : (changeAmount.compareTo(BigDecimal.ZERO) < 0 ? "退菜成功" : "下单成功");
     }
 
     public String cancelOrder(String id) {
@@ -294,7 +297,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
         return "取消成功";
     }
 
-    private PsiDishOrder createOrder(PsiDishRoom room, UserDTO userDto, Date now) {
+    private PsiDishOrder createOrder(PsiDishRoom room, PsiDishOrder info, UserDTO userDto, Date now) {
         PsiDishOrder order = new PsiDishOrder();
         order.setId(UUID.randomUUID().toString().replace("-", ""));
         order.setOrderNo("DC" + new SimpleDateFormat("yyyyMMddHHmmss").format(now));
@@ -306,6 +309,8 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
         order.setDiscountRate(new BigDecimal("100"));
         order.setDiscountAmount(BigDecimal.ZERO);
         order.setPayableAmount(BigDecimal.ZERO);
+        order.setTasteRemark(info.getTasteRemark());
+        order.setSpecialRequirements(info.getSpecialRequirements());
         order.setCreateById(userDto.getId());
         order.setCreateTime(now);
         order.setUpdateById(userDto.getId());