From e711c834aec2293c53b07efe53e81e3573c289b6 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 01 四月 2026 11:42:44 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java |   72 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 1 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java
index c9058d5..67ea781 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.manager.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
@@ -10,13 +11,14 @@
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.entity.StockStatistic;
+import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.manager.service.StockStatisticService;
 import com.vincent.rsf.server.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 import java.util.*;
 
 @RestController
@@ -34,6 +36,74 @@
     }
 
     @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
+    @PostMapping("/outStatistic/page")
+    public R outStatisticPage(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class);
+        QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true);
+        wrapper.select("MIN(id) AS id, day_time, task_type, task_status, " +
+                "MAX(maktx) AS maktx, matnr_code, MAX(batch) AS batch, " +
+                "SUM(anfme) AS anfme, MAX(unit) AS unit");
+        wrapper.groupBy("day_time, task_type, task_status, matnr_code");
+        return R.ok().add(stockStatisticService.page(pageParam, wrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
+    @PostMapping("/inStatistic/page")
+    public R inStatisticPage(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class);
+        QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true);
+        wrapper.select("MIN(id) AS id, day_time, task_type, task_status, " +
+                "MAX(maktx) AS maktx, matnr_code, MAX(batch) AS batch, " +
+                "SUM(anfme) AS anfme, MAX(unit) AS unit");
+        wrapper.groupBy("day_time, task_type, task_status, matnr_code");
+        return R.ok().add(stockStatisticService.page(pageParam, wrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
+    @PostMapping("/inStatisticItem/page")
+    public R inStockItemPage(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class);
+        QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true);
+        wrapper.select("MIN(id) AS id, loc_code, day_time, task_type, task_status, barcode, " +
+                "MAX(maktx) AS maktx, matnr_code, MAX(batch) AS batch, SUM(anfme) AS anfme, " +
+                "MAX(unit) AS unit, create_by, update_by, create_time, update_time");
+        wrapper.groupBy("loc_code, day_time, task_type, task_status, barcode, matnr_code, create_by, update_by, create_time, update_time");
+        return R.ok().add(stockStatisticService.page(pageParam, wrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
+    @PostMapping("/outStatisticItem/page")
+    public R outStockItemPage(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class);
+        QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true);
+        wrapper.select("MIN(id) AS id, loc_code, day_time, task_type, task_status, barcode, " +
+                "MAX(maktx) AS maktx, matnr_code, MAX(batch) AS batch, SUM(anfme) AS anfme, " +
+                "MAX(unit) AS unit, create_by, update_by, create_time, update_time");
+        wrapper.groupBy("loc_code, day_time, task_type, task_status, barcode, matnr_code, create_by, update_by, create_time, update_time");
+        return R.ok().add(stockStatisticService.page(pageParam, wrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
+    @PostMapping("/statistic/num/page")
+    public R statisticNumPage(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class);
+        QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true);
+        wrapper.select("MIN(id) AS id, day_time, COUNT(barcode) AS `count`, " +
+                "SUM( anfme ) anfme," +
+                "COUNT(IF (task_type = 1, 0, NULL)) in_anfme_count, " +
+                "COUNT(IF ( task_type = 101, 0, NULL)) out_anfme_count, " +
+                "SUM( CASE WHEN task_type = 1 THEN anfme ELSE 0 END ) in_anfme," +
+                "SUM( CASE WHEN task_type = 101 THEN anfme ELSE 0 END ) out_anfme");
+        wrapper.in("task_type", Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type)).groupBy("day_time");
+        return R.ok().add(stockStatisticService.page(pageParam, wrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
     @PostMapping("/stockStatistic/list")
     public R list(@RequestBody Map<String, Object> map) {
         return R.ok().add(stockStatisticService.list());

--
Gitblit v1.9.1