From 28c2126249a35ded0b816a07d80c015caa45a4f3 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 11 二月 2025 09:40:27 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                |   52 ++++++++++++++++++++------
 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml                     |   30 +++++++++++++--
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java |    4 +-
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java         |    4 +-
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java       |   12 +++++-
 5 files changed, 80 insertions(+), 22 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index e9d678d..b7551cd 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -34,9 +34,13 @@
   let sheetIndex = ref(-1)
   let orderType = ref("2")
   let filterData = ref({})
+  let sortData = ref({
+    field:'id',
+    order:null
+  })
   let orderList = ref([])
   let pageNum=ref(1)
-  let total = reactive({
+  let total = ref({
     pageTotal : 0,
     dataTotal : 0,
     pageSize : 50
@@ -63,6 +67,9 @@
     },
     filterConfig: {   //绛涢�夐厤缃」
       remote: true
+    },
+    sortConfig: {   //鎺掑簭閰嶇疆椤�
+      remote: true//鏄惁鏈嶅姟绔帓搴�
     },
     customConfig: {
       storage: true
@@ -164,7 +171,8 @@
           }
           const List = ["quantity",'goodsQuantity','area','perimeter','money']
           if (List.includes(column.field)) {
-            return footSum(data, column.field)
+            //return footSum(data, column.field)
+            return total.value[column.field]
           }
           return ''
         })
@@ -308,15 +316,24 @@
     },
     cellClick({ row }){
       rowClickIndex.value = row
+    },
+    sortChange ({ field, order }) {
+      sortData.value = {field,order}
+      selectOrderList()
     }
   }
 
   const getOrderList = () => {
     //鍔犺浇璇锋眰
-    request.post(`/order/getOrderList/1/${total.pageSize}/${orderType.value}/${orderInfo.selectDate}`,filterData).then((res) => {
+    const config = {
+      filter: filterData.value,
+      sort: sortData.value
+    }
+    request.post(`/order/getOrderList/1/${total.value.pageSize}/${orderType.value}/${orderInfo.selectDate}`,config).then((res) => {
       if(res.code==200){
-        total.dataTotal = res.data.total.total*1
-        total.pageTotal= res.data.total.pageTotal
+        total.value = res.data.total
+        /*total.dataTotal = res.data.total.dataTotal*1
+        total.pageTotal= res.data.total.pageTotal*/
         orderInfo.selectDate = res.data.selectDate
         orderList.value = deepClone(res.data.data)
         xGrid.value.loadData(orderList.value)
@@ -349,10 +366,16 @@
     }else{
       filterData.value[column.property] = value
     }
-    request.post(`/order/getOrderList/${pageNum.value}/${total.pageSize}/${orderType.value}/${orderInfo.selectDate}`,filterData.value).then((res) => {
+
+    const config = {
+      filter: filterData.value,
+      sort: sortData.value
+    }
+    request.post(`/order/getOrderList/${pageNum.value}/${total.value.pageSize}/${orderType.value}/${orderInfo.selectDate}`,config).then((res) => {
       if(res.code==200){
-        total.dataTotal = res.data.total.total*1
-        total.pageTotal=parseInt(res.data.total)
+        total.value = res.data.total
+        /*total.dataTotal = res.data.total.total*1
+        total.pageTotal=parseInt(res.data.total)*/
         pageNum.value=1
         orderList.value = deepClone(res.data.data)
         xGrid.value.loadData(orderList.value)
@@ -366,11 +389,16 @@
   //鍙屽嚮琛ㄦ牸琛�
 
   const selectOrderList = ()=>{
-    request.post(`/order/getOrderList/${pageNum.value}/${total.pageSize}/${orderType.value}/${orderInfo.selectDate}`
-        ,filterData.value).then((res) => {
+    const config = {
+      filter: filterData.value,
+      sort: sortData.value
+    }
+    request.post(`/order/getOrderList/${pageNum.value}/${total.value.pageSize}/${orderType.value}/${orderInfo.selectDate}`
+        ,config).then((res) => {
       if(res.code==200){
-        total.dataTotal = res.data.total.total*1
-        total.pageTotal = res.data.total.pageTotal
+        total.value = res.data.total
+        /*total.dataTotal = res.data.total.total*1
+        total.pageTotal = res.data.total.pageTotal*/
         orderInfo.selectDate=res.data.selectDate
         orderList.value = deepClone(res.data.data)
         xGrid.value.loadData(orderList.value)
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
index a68b03b..06fc8bb 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -72,8 +72,8 @@
     @ApiOperation("璁㈠崟鍒嗛〉绛涢�夋煡璇�")
     @SaCheckPermission("selectOrder.search")
     @PostMapping("/getOrderList/{pageNum}/{pageSize}/{orderType}/{selectDate}")
-    public Result getOrderList(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable Integer orderType, @PathVariable List<String> selectDate, @RequestBody Order order)  {
-        return Result.seccess(orderService.getOrderList(pageNum, pageSize, selectDate, order,orderType));
+    public Result getOrderList(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable Integer orderType, @PathVariable List<String> selectDate, @RequestBody Map<String,Object> config)  {
+        return Result.seccess(orderService.getOrderList(pageNum, pageSize, selectDate, config,orderType));
     }
     @ApiOperation("鍒犻櫎璁㈠崟")
     @SaCheckPermission("selectOrder.delete")
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
index e559b99..fdd48f9 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
@@ -14,8 +14,8 @@
 
     boolean updateOrderParameter(@Param("orderId") String orderId);
 
-    List<Order> getOrderList(Integer offset, Integer pageSize, String startDate, String endDate, Order order, Integer orderType);
-    Map<String,Integer> getPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, Order order , Integer orderType);
+    List<Order> getOrderList(Integer offset, Integer pageSize, String startDate, String endDate, Order order, Integer orderType, String field, String orderBy);
+    Map<String,Float> getPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, Order order , Integer orderType);
 
     boolean reviewOrderById(String id, Integer status, String userId, String userName);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 1a9ad90..18b58f6 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -31,6 +31,8 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static org.apache.coyote.http11.Constants.a;
+
 @Service
 @DS("sd")
 @Transactional(rollbackFor = Exception.class)
@@ -316,7 +318,7 @@
     }
 
     //鏌ヨ鑾峰彇鍒楄〃
-    public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Order order,Integer orderType) {
+    public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Map<String,Object> config,Integer orderType) {
         Integer offset = (pageNum-1)*pageSize;
         String endDate = LocalDate.now().toString();
         String startDate = LocalDate.now().minusDays(15).toString();
@@ -328,9 +330,15 @@
                 endDate = selectDate.get(1);
             }
         }
+        JSONObject orderJson = new JSONObject(config);
+        Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("filter")), Order.class);
+        Map<String,String> sortDate = (Map<String, String>) config.get("sort");
+        String field = sortDate.get("field").replaceAll("(?<!^)([A-Z])", "_$1").toLowerCase();
+        String orderBy = sortDate.get("order");
+        System.out.println(field+"  "+orderBy);
 
         Map<String,Object> map = new HashMap<>();
-        map.put("data",orderMapper.getOrderList(offset, pageSize, startDate, endDate, order,orderType));
+        map.put("data",orderMapper.getOrderList(offset, pageSize, startDate, endDate, order,orderType, field, orderBy));
         map.put("total",orderMapper.getPageTotal(offset, pageSize, startDate, endDate, order,orderType));
         List<String> list = new ArrayList<>();
         list.add(startDate);
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
index 2d45565..e3855d1 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -102,8 +102,8 @@
     </update>
     
     <select id="getOrderList">
-        select
-            *,
+       select * from (select
+            o.*,
         ifnull(sum(fgi.quantity_available),0) as goodsQuantity
         from
             sd.`order` as o
@@ -196,16 +196,38 @@
             and o.processing_note REGEXP #{order.processingNote}
         </if>
         group by o.id
-        order by o.id desc
+        ) as acc
+        order by
+        <if test="orderBy == null ">
+            id desc
+        </if>
+        <if test="orderBy == 'desc'">
+            ${field} desc
+        </if>
+        <if test="orderBy == 'asc'">
+            ${field}
+        </if>
         limit #{offset},#{pageSize}
     </select>
 
     <select id="getPageTotal">
         select
             CEILING(count(o.id)/#{pageSize}) as 'pageTotal',
-            count(o.id) as 'total'
+            count(o.id) as 'dataTotal',
+            sum(o.quantity) as quantity,
+            sum(o.area) as area,
+            sum(o.money) as money,
+            ifnull(fgi.goodsQuantity ,0) as goodsQuantity ,
+            ROUND(sum(perimeter),2) as perimeter,
+            #{pageSize} as pageSize
         from
         `order` as o
+        left join(
+                    select order_id,
+                           ifnull(sum(quantity_available),0) as goodsQuantity
+                    from mm.finished_goods_inventory group by order_id
+                    )  as  fgi
+        on o.order_id = fgi.order_id
         where date (o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
             <if test="orderType!= null and orderType != 0">
                 and o.create_order = #{orderType}

--
Gitblit v1.8.0