浏览代码

收银端增加餐别筛选

QuYueTing 6 小时之前
父节点
当前提交
d9ef1bebf0

+ 19 - 6
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/TabletController.java

@@ -1,9 +1,12 @@
 package com.management.platform.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.MealTypes;
 import com.management.platform.mapper.DepartmentMapper;
 import com.management.platform.mapper.UserCustomMapper;
 import com.management.platform.service.FeishuInfoService;
 import com.management.platform.service.MealApplicationsService;
+import com.management.platform.service.MealTypesService;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +26,9 @@ public class TabletController {
 
     @Resource
     private MealApplicationsService mealApplicationsService;
+
+    @Resource
+    private MealTypesService mealTypesService;
     /**
      * 登录
      * username 用户名
@@ -33,9 +39,16 @@ public class TabletController {
         return userService.loginAdmin(username, password);
     }
 
-    @RequestMapping("/getDinnerBokingList")
-    public HttpRespMsg getDinnerBookingList(String date, @RequestParam(required = false, defaultValue = "-1" ) Integer status) {
-        return mealApplicationsService.getDinnerBookingList(date, status);
+    @RequestMapping("/getMealTypeList")
+    public HttpRespMsg getMealTypeList() {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.data = mealTypesService.list(new QueryWrapper<MealTypes>().eq("is_active", 1));
+        return msg;
+    }
+
+    @RequestMapping("/getDinnerBookingList")
+    public HttpRespMsg getDinnerBookingList(String date, @RequestParam(required = false, defaultValue = "-1" ) Integer status, Integer mealTypeId) {
+        return mealApplicationsService.getDinnerBookingList(date, status, mealTypeId);
     }
 
     @RequestMapping("/writeOffCode")
@@ -43,9 +56,9 @@ public class TabletController {
         return mealApplicationsService.writeOffCode(code);
     }
 
-    @RequestMapping("/getTodayStatistics")
-    public HttpRespMsg getTodayStatistics() {
-        return mealApplicationsService.getTodayStatistics();
+    @RequestMapping("/getStatistics")
+    public HttpRespMsg getStatistics(String date,Integer mealTypeId) {
+        return mealApplicationsService.getStatistics(date, mealTypeId);
     }
 
 

+ 2 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/MealApplicationsService.java

@@ -14,12 +14,11 @@ import com.management.platform.util.HttpRespMsg;
  */
 public interface MealApplicationsService extends IService<MealApplications> {
 
-    HttpRespMsg getDinnerBookingList(String date, Integer status);
+    HttpRespMsg getDinnerBookingList(String date, Integer status, Integer mealTypeId);
 
     HttpRespMsg writeOffCode(String code);
 
-    HttpRespMsg getTodayStatistics();
-    HttpRespMsg getDinnerBookingList(String date);
+    HttpRespMsg getStatistics(String date,Integer mealTypeId);
 
     HttpRespMsg getMealApplicationList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer mealTypeId);
 }

+ 20 - 26
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/MealApplicationsServiceImpl.java

@@ -48,15 +48,9 @@ public class MealApplicationsServiceImpl extends ServiceImpl<MealApplicationsMap
     private DepartmentMapper departmentMapper;
 
 
-    @Override
-    public HttpRespMsg getDinnerBookingList(String date) {
-        return null;
-    }
-
-
     //获取当天订餐列表
     @Override
-    public HttpRespMsg getDinnerBookingList(String date, Integer status) {
+    public HttpRespMsg getDinnerBookingList(String date, Integer status, Integer mealTypeId) {
         HttpRespMsg msg = new HttpRespMsg();
         String factoryCode = request.getHeader("factoryCode");
         if (factoryCode == null) {
@@ -72,10 +66,11 @@ public class MealApplicationsServiceImpl extends ServiceImpl<MealApplicationsMap
         List<MealTypes> mealTypesList = mealTypesMapper.selectList(new QueryWrapper<MealTypes>());
         //按收银机所在厂区查看
         QueryWrapper<MealApplications> queryWrapper = new QueryWrapper<MealApplications>()
-                .eq("factory_id", factoryItem.getId()).eq("application_date", date).orderByDesc("id");
+                .eq("factory_id", factoryItem.getId()).eq("meal_type_id", mealTypeId).eq("application_date", date).orderByDesc("id");
         if (status != null && status != -1) {
             queryWrapper.eq("status", status);
         }
+        queryWrapper.orderByAsc("status");//让待使用的在上面,已核销的在下面
         List<MealApplications> mealApplicationsList = mealApplicationsMapper.selectList(queryWrapper);
         //绑定数据
         for (MealApplications mealApplications : mealApplicationsList) {
@@ -147,10 +142,10 @@ public class MealApplicationsServiceImpl extends ServiceImpl<MealApplicationsMap
     }
 
     @Override
-    public HttpRespMsg getTodayStatistics() {
+    public HttpRespMsg getStatistics(String date, Integer mealTypeId) {
         HttpRespMsg msg = new HttpRespMsg();
         String factoryCode = request.getHeader("factoryCode");
-        System.out.println("getTodayStatistics, factoryCode:"+factoryCode);
+        System.out.println("getStatistics, factoryCode:"+factoryCode);
         if (factoryCode == null) {
             msg.setError("factory is null");
             return msg;
@@ -160,23 +155,22 @@ public class MealApplicationsServiceImpl extends ServiceImpl<MealApplicationsMap
             msg.setError("factory not exists");
             return msg;
         }
-        //取今天的
-        String date = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-
-        QueryWrapper<MealApplications> queryWrapper = new QueryWrapper<MealApplications>().eq("factory_id", factoryItem.getId()).eq("application_date", date).ne("status", 2);
-        List<MealApplications> mealApplicationsList = mealApplicationsMapper.selectList(queryWrapper);
-        //按用餐类型统计人数
-        List<MealTypes> mealTypesList = mealTypesMapper.selectList(new QueryWrapper<MealTypes>().eq("is_active", 1));
-        for (MealTypes mealTypes : mealTypesList) {
-            int count = 0;
-            for (MealApplications mealApplications : mealApplicationsList) {
-                if (mealTypes.getId().equals(mealApplications.getMealTypeId())) {
-                    count++;
-                }
-            }
-            mealTypes.setCount(count);
+        //默认取今天的
+        if (StringUtils.isEmpty(date)) {
+            date = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         }
-        msg.setData(mealTypesList);
+        System.out.println("mealTypeId=="+mealTypeId+", date=" + date);
+        QueryWrapper<MealApplications> queryWrapper = new QueryWrapper<MealApplications>().eq("factory_id", factoryItem.getId()).eq("meal_type_id", mealTypeId).eq("application_date", date).ne("status", 2);
+        List<MealApplications> mealApplicationsList = mealApplicationsMapper.selectList(queryWrapper);
+        //按状态统计
+        HashMap map = new HashMap();
+        map.put("total", mealApplicationsList.size());
+        long used = mealApplicationsList.stream().filter(mealApplications -> mealApplications.getStatus().equals(1)).count();
+        map.put("used", used);
+        long expired = mealApplicationsList.stream().filter(mealApplications -> mealApplications.getStatus().equals(3)).count();
+        map.put("expired", expired);
+        map.put("left", mealApplicationsList.size() - expired - used);
+        msg.setData(map);
         return msg;
     }
 

+ 34 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/task/TimingTask.java

@@ -240,8 +240,41 @@ public class TimingTask {
         try {
             // 计算前一天的日期
             LocalDate yesterday = LocalDate.now().minusDays(1);
+            int dinnerMealTypeId = 1;
+            int secMealTypeId = 2;
+            int total = mealApplicationsService.count(new QueryWrapper<MealApplications>().ne("status", 2).eq("application_date", yesterday).eq("meal_type_id", dinnerMealTypeId));
+            if (total < 15) {
+                //直接更新为已核销
+                UpdateWrapper<MealApplications> updateWrapper = new UpdateWrapper<MealApplications>()
+                        .set("status", 1)
+                        .eq("status", 0)
+                        .eq("application_date", yesterday).eq("meal_type_id", dinnerMealTypeId);
+                //更新
+                boolean updated = mealApplicationsService.update(updateWrapper);
+                if (updated) {
+                    log.info("成功更新过期报餐记录状态");
+                } else {
+                    log.info("没有需要更新的过期报餐记录");
+                }
+            }
+            total = mealApplicationsService.count(new QueryWrapper<MealApplications>().ne("status", 2).eq("application_date", yesterday).eq("meal_type_id", secMealTypeId));
+            if (total < 15) {
+                //直接更新为已核销
+                UpdateWrapper<MealApplications> updateWrapper = new UpdateWrapper<MealApplications>()
+                        .set("status", 1)
+                        .eq("status", 0)
+                        .eq("application_date", yesterday).eq("meal_type_id", secMealTypeId);
+                //更新
+                boolean updated = mealApplicationsService.update(updateWrapper);
+                if (updated) {
+                    log.info("成功更新过期报餐记录状态");
+                } else {
+                    log.info("没有需要更新的过期报餐记录");
+                }
+            }
+            //其他正常情况下,还有未核销的,处理为已过期
             UpdateWrapper<MealApplications> updateWrapper = new UpdateWrapper<MealApplications>()
-                    .set("status", "3")
+                    .set("status", 3)
                     .eq("status", 0)
                     .eq("application_date", yesterday);
             //更新

二进制
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-11-19.log.gz


二进制
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-11-20.log.gz


二进制
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-11-22.log.gz


二进制
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-11-25.log.gz


二进制
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-12-06.log.gz