From d9aab59e3d4c8688eaf00c0d98f6926a218ff57f Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 28 四月 2025 15:28:11 +0800
Subject: [PATCH] 拣货单出库完成,但是库存没减,日志埋点

---
 src/main/java/com/zy/asrs/controller/OrderController.java |   82 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 72 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 7e97795..c73d459 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -10,6 +10,7 @@
 import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.DefinedExcelExportParam;
 import com.zy.asrs.entity.param.OrderDomainParam;
 import com.zy.asrs.entity.result.OrderDetlVo;
 import com.zy.asrs.mapper.OrderDetlMapper;
@@ -19,6 +20,7 @@
 import com.zy.common.web.BaseController;
 import com.zy.system.entity.User;
 import com.zy.system.service.UserService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -102,7 +104,7 @@
         // 璁㈠崟琛ㄥ彧瀛樹簡鎿嶄綔浜篿d,鎵�浠ユ搷浣滀汉濮撳悕鏌ヨ锛屽彧鑳戒粠濮撳悕鍏堝幓鎵緄d锛�
         Object userName = param.get("oper_memb");
         if (userName != null && user.getRoleId() != 21) {
-            List<User> users = userService.selectList(new EntityWrapper<User>().like("username", (String) param.get("oper_memb")));
+            List<User> users = userService.selectList(new EntityWrapper<User>().eq("username", param.get("oper_memb")));
             if (users.size() > 0) {
                 wrapper.in("create_by", users.stream().map(User::getId).collect(Collectors.toList()));
             }
@@ -322,7 +324,7 @@
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
             } else {
-                wrapper.like(entry.getKey(), val);
+                wrapper.eq(entry.getKey(), val);
             }
         }
     }
@@ -474,18 +476,78 @@
                 .doWrite(orderDetlVos);
     }
 
-    @PostMapping (value = "/order/exportAll/auth")
+    @PostMapping (value = "/order/definedExcelExport/auth")
     @ManagerAuth
-    public R export() {
+    public void export(HttpServletResponse response, @RequestBody DefinedExcelExportParam definedExcelExportParam) throws IOException {
 
-        User user = getUser();
-        Long userId = null;
-        if (user.getRoleId() != 2 && user.getRoleId() != 24) {
-            userId = user.getId();
+        EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
+
+        if ("all".equals(definedExcelExportParam.getType())) {
+            DefinedExcelExportParam.QueryWhere queryWhere = definedExcelExportParam.getQueryWhere();
+            EntityWrapper<Order> orderEntityWrapper = new EntityWrapper<>();
+
+            // 闄愬埗閿�鍞鑹插彧鑳界湅鑷繁鍒涘缓鐨勫崟瀛愶紙閿�鍞鑹瞚d鍥哄畾21锛屼笉鑳介殢鎰忎慨鏀癸級
+            User user = getUser();
+            if (user.getRoleId() != 2 && user.getRoleId() != 24) {
+                orderEntityWrapper.eq("create_by", user.getId());
+            }
+            // 鎿嶄綔浜猴細璁㈠崟琛ㄥ彧瀛樹簡鎿嶄綔浜篿d,鎵�浠ユ搷浣滀汉濮撳悕鏌ヨ锛屽彧鑳戒粠濮撳悕鍏堝幓鎵緄d锛�
+            Object userName = queryWhere.getOper_memb();
+            if (userName != null && user.getRoleId() != 21) {
+                List<User> users = userService.selectList(new EntityWrapper<User>().eq("username", queryWhere.getOper_memb()));
+                if (users.size() > 0) {
+                    orderEntityWrapper.in("create_by", users.stream().map(User::getId).collect(Collectors.toList()));
+                }
+            }
+            // 璁㈠崟缂栧彿
+            if (!Cools.isEmpty(queryWhere.getOrder_no())) {
+                orderEntityWrapper.eq("order_no", queryWhere.getOrder_no());
+            }
+            // 鍒涘缓鏃堕棿
+            if (queryWhere.getCreate_time().contains(RANGE_TIME_LINK)) {
+                String[] dates = queryWhere.getCreate_time().split(RANGE_TIME_LINK);
+                orderEntityWrapper.ge("create_time", DateUtils.convert(dates[0]));
+                orderEntityWrapper.le("create_time", DateUtils.convert(dates[1]));
+            }
+            // 鍗曟嵁绫诲瀷
+            if (!Cools.isEmpty(queryWhere.getDoc_type())) {
+                orderEntityWrapper.eq("doc_type", queryWhere.getDoc_type());
+            }
+            // 鍗曟嵁鐘舵��
+            if (!Cools.isEmpty(queryWhere.getSettle())) {
+                orderEntityWrapper.eq("settle", queryWhere.getSettle());
+            }
+            // 瀹㈡埛鍚嶇О
+            if (!Cools.isEmpty(queryWhere.getCstmr_name())) {
+                orderEntityWrapper.eq("cstmr_name", queryWhere.getCstmr_name());
+            }
+            // 鏈垹闄�
+            orderEntityWrapper.eq("status", 1);
+            orderEntityWrapper.setSqlSelect("order_no as orderNo");
+            List<Order> orderList = orderService.selectList(orderEntityWrapper);
+            orderDetlEntityWrapper.in("order_no", orderList.stream().map(Order::getOrderNo).collect(Collectors.toList()));
+
+        } else {
+            orderDetlEntityWrapper.in("order_no", definedExcelExportParam.getOrderNoList());
         }
-        List<OrderDetlExcelVo> orderDetlExcelVoList = orderDetlMapper.selectExportExcelAllDataList(userId);
 
-        return R.ok(orderDetlExcelVoList);
+        List<OrderDetl> list = orderDetlService.selectList(orderDetlEntityWrapper);
+        List<OrderDetlExcelVo> orderDetlExcelVoList = new ArrayList<>();
+
+        for (OrderDetl orderDetl : list) {
+            OrderDetlExcelVo orderDetlExcelVo = new OrderDetlExcelVo();
+            BeanUtils.copyProperties(orderDetl,orderDetlExcelVo);
+            orderDetlExcelVoList.add(orderDetlExcelVo);
+        }
+
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = URLEncoder.encode("鍗曟嵁", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        EasyExcel.write(response.getOutputStream(), OrderDetlExcelVo.class)
+                .sheet("琛�1")
+                .doWrite(orderDetlExcelVoList);
+
     }
 
     @RequestMapping(value = "/order/list/all")

--
Gitblit v1.9.1