From 723edfdd07208ec27409d1cffb70b9a4eac69446 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 18 三月 2024 16:13:22 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                |   26 +++++++-
 north-glass-erp/target/classes/mapper/sd/OrderGlassDetailMapper.xml              |   23 +++++++
 north-glass-erp/northglass-erp/src/lang/en.js                                    |    5 +
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue                |   23 +++++++
 north-glass-erp/target/classes/mapper/sd/OrderMapper.xml                         |   12 ++++
 north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml          |   23 +++++++
 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml                     |   12 ++++
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java |    7 ++
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java         |    2 
 north-glass-erp/northglass-erp/src/lang/zh.js                                    |    5 +
 north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue           |   16 ++--
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java       |    5 +
 12 files changed, 141 insertions(+), 18 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index e7fa3ae..269dd66 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -23,6 +23,8 @@
         add:'Add',
         delete:'Delete',
         edit:'Edit',
+        cancel:'cancel',
+        restore:'restore',
         selectSame:'Select same',
         sameAfterwards:'Same afterwards',
         clearSelection:'Clear selection',
@@ -102,7 +104,8 @@
             importMaxCheckFailFirst:'Import ',
             importMaxCheckFailMid:' the data can not exceed ',
             importMaxCheckFailLast:' pieces, please import in multiple orders',
-            updateAmountSuccessfully:'Updated amount successfully'
+            updateAmountSuccessfully:'Updated amount successfully',
+            updateOrderState:'Order status update succeeded',
         }
 
     },
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index 335dfce..7a47d90 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -23,6 +23,8 @@
         add:'娣诲姞',
         delete:'鍒犻櫎',
         edit:'缂栬緫',
+        cancel:'浣滃簾',
+        restore:'杩樺師',
         selectSame:'閫変腑鐩稿悓',
         sameAfterwards:'涔嬪悗鐩稿悓',
         clearSelection:'娓呴櫎閫変腑',
@@ -102,7 +104,8 @@
             importMaxCheckFailFirst:'瀵煎叆',
             importMaxCheckFailMid:'鏉�,$鏁版嵁涓嶈兘瓒呰繃',
             importMaxCheckFailLast:'鏉�,璇峰垎璁㈠崟瀵煎叆',
-            updateAmountSuccessfully:'鏇存柊閲戦鎴愬姛'
+            updateAmountSuccessfully:'鏇存柊閲戦鎴愬姛',
+            updateOrderState:'鏇存柊璁㈠崟鐘舵�佹垚鍔�',
         }
 
     },
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index 5b27678..9f25879 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -248,6 +248,10 @@
           reviewOrder(0)
           break
         }
+        case 'cancelOrder':{
+          cancelOrder()
+          break
+        }
         case 'saveOrder': {
           if ($grid.getTableData().tableData.length === 0){
             ElMessage.error( t('order.msg.tableLengthNot'))
@@ -426,14 +430,19 @@
       }
 
       //鎸夐挳瀹℃牳杩囧悗鍙樹负鍙嶅
-      if(res.data.order.orderReview === 2){
+      if(Math.abs(res.data.order.orderReview) === 2){
         gridOptions.toolbarConfig.buttons[2].disabled = false
         gridOptions.toolbarConfig.buttons[2].code='reviews'
         gridOptions.toolbarConfig.buttons[2].name=t('basicData.cancelReview')
         gridOptions.toolbarConfig.buttons[3].disabled = false
+        const button = {'code': 'cancelOrder',
+          status: 'primary',
+          'name': (res.data.order.orderReview>0?t('basicData.cancel'):t('basicData.restore'))}
+        gridOptions.toolbarConfig.buttons.push(button)
       }
       if(res.data.order.productionOrder !==0 ){
         gridOptions.toolbarConfig.buttons[2].disabled = true
+
       }
 
       //鍔犺浇鍓〃鏁版嵁
@@ -444,6 +453,18 @@
   })
 })
 
+const cancelOrder = () => {
+  request.post(`/order/cancelOrder/${titleUploadData.value.orderId}`).then((res) =>{
+    if (res.code== 200){
+      ElMessage.success(t('order.msg.updateOrderState'))
+      router.push({path:'/main/order/createOrder',query:{orderId:titleUploadData.value.orderId,random:Math.random()}})
+    }else{
+      ElMessage.error(res.msg)
+    }
+  })
+}
+
+
 //椤甸潰绗竴娆″姞杞芥墽琛�
 request.get(`/basicData/orderBasicData`).then((res) => {
 
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 4fc0bc4..c009259 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
@@ -1,7 +1,7 @@
 <script setup>
   import {Search} from "@element-plus/icons-vue"
   import {useRouter} from "vue-router"
-  import {reactive, ref} from "vue"
+  import {computed, reactive, ref} from "vue"
   import ProcessCardProgress from '@/views/pp/report/ProcessCardProgress.vue'
   import request from "@/utils/request";
   import deepClone from "@/utils/deepClone"
@@ -166,6 +166,7 @@
     }
     request.post(`/order/getOrderList/1/${total.pageSize}/${orderType.value}/${selectDate.value}`,filterData.value).then((res) => {
       if(res.code==200){
+        total.dataTotal = res.data.total.total*1
         total.pageTotal=parseInt(res.data.total)
         pageNum.value=1
         orderList.value = deepClone(res.data.data)
@@ -186,10 +187,12 @@
     request.post(`/order/getOrderList/${pageNum.value}/${total.pageSize}/${orderType.value}/${selectDate.value}`
         ,filterData).then((res) => {
       if(res.code==200){
-        //total.pageTotal = res.data.total.pageTotal
+        total.dataTotal = res.data.total.total*1
+        total.pageTotal = res.data.total.pageTotal
         selectDate.value=res.data.selectDate
         orderList.value = deepClone(res.data.data)
         xGrid.value.loadData(orderList.value)
+        console.log(xGrid.value.getTableData().fullData)
       }else{
         ElMessage.warning(res.msg)
       }
@@ -238,6 +241,10 @@
     }
   }
 
+  const showCheckbox = computed(()=>(item)=>{ //璁$畻灞炴�т紶閫掑弬鏁�
+    return 2 === item
+  })
+
 
 </script>
 
@@ -265,7 +272,7 @@
       <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
       <template #content="{ row }">
         <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined && index>9">
+          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined && index>9">
             <span style="font-weight: bold">{{item.title+':  '}}</span>
             <span>{{ row[item.field] }}</span>
           </li>
@@ -273,13 +280,22 @@
       </template>
 
       <template #state="{ row,column}">
-        <el-checkbox @click.native.prevent  :indeterminate="row[column.field]===1" :checked="row[column.field]===2"/>
+        <el-checkbox
+            v-if="row[column.field] === 2"
+            @click.native.prevent
+            :indeterminate="row[column.field]===1"
+            :checked="true"/>
+        <el-checkbox
+            v-else
+            @click.native.prevent
+            :indeterminate="row[column.field]===1"
+            :checked="false"/>
       </template>
 
       <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
       <template #button_slot="{ row }">
         <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{ $t('basicData.edit') }}</el-button>
-        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('basicData.deleteConfirm')">
+        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
           <template #reference>
             <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
           </template>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
index 94a319d..2b67b21 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -58,17 +58,17 @@
     {field: 'process',width:120,  title: t('craft.process'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'icon',width:120,  title: t('order.icon'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'orderDetail.processingNote',width:120,  title: t('order.processingNote'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.remarks',width:120,  title: t('order.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.remarks',width:120,  title: t('basicData.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'orderDetail.edgingType',width:120,  title: t('order.edgingType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
   ],//琛ㄥご鎸夐挳
   mergeCells: [
-    /*{ row: 0, col: 1, rowspan: 4, colspan: 1 },
-    { row: 0, col: 2, rowspan: 4, colspan: 1 },
-    { row: 0, col: 4, rowspan: 4, colspan: 1 },
-    { row: 0, col: 5, rowspan: 4, colspan: 1 },
-    { row: 0, col: 6, rowspan: 4, colspan: 1 },
-    { row: 0, col: 7, rowspan: 4, colspan: 1 },
-    { row: 0, col: 8, rowspan: 4, colspan: 1 },*/
+    // { row: 0, col: 1, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 2, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 4, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 5, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 6, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 7, rowspan: 4, colspan: 1 },
+    // { row: 0, col: 8, rowspan: 4, colspan: 1 },
   ],
   toolbarConfig: {
     buttons: [
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 5dc7b7e..df74ba9 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
@@ -45,6 +45,13 @@
     public Result deleteOrder(@PathVariable String id)  {
         return Result.seccess(orderService.deleteOrder(id));
     }
+
+    @ApiOperation("璁㈠崟浣滃簾")
+    @PostMapping("/cancelOrder/{id}")
+    public Result cancelOrder(@PathVariable String id)  {
+        return Result.seccess(orderService.cancelOrder(id));
+    }
+
     @ApiOperation("鏍规嵁id鑾峰彇璁㈠崟淇℃伅")
     @PostMapping("/getOrderById/{id}")
     public Result getOrderById(@PathVariable String id)  {
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 08778b3..458bffc 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
@@ -24,4 +24,6 @@
     boolean reviewProcessById(String id, Integer status);
 
     boolean updateMoney(@Param("order") Order order);
+
+    Integer cancelOrder(String id);
 }
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 26a2178..16e1e34 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
@@ -243,4 +243,9 @@
     }
 
 
+    public Integer cancelOrder(String id) {
+        return orderMapper.cancelOrder(id);
+    }
+
+
 }
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
index bf7705b..fe328f7 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
@@ -24,7 +24,10 @@
             pd.glass_sort,
             if(pd.glass_sort=1,'(澶�)',if(pd2.glass_sort=pd.glass_sort,'(鍐�)','')),
             pd.detail,
-            od.width,
+            if( od.bend_radius!='',
+                round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,0),
+                od.width
+              ),
             od.height,
             od.area,
             od.gross_area,
@@ -35,8 +38,26 @@
             on od.product_id = pd.prod_id and pd.detail_type='glass'
         LEFT JOIN (SELECT max(id) as id ,max(glass_sort) as glass_sort  from product_detail GROUP BY prod_id)as pd2
             on pd2.id=pd.id
+        left join (
+            select
+                a.prod_id,
+                a.sort_num,
+                a.glass_sort,
+                (case
+                      when a.sort_num=1
+                          then left(detail,LOCATE('mm',detail)-1)/2
+                      else
+                          left(detail,LOCATE('mm',detail)-1)
+                end) as 'thicknessCount'
+
+            from product_detail as a
+            group  by prod_id,a.sort_num
+        ) as t
+        ON t.prod_id = od.product_id and t.sort_num &lt;=pd.sort_num
+
 
         where od.order_id = #{orderId}
+        group by od.order_number,pd.glass_sort
         ORDER BY od.order_number
     </insert>
 
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 d3ab571..b294546 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -174,4 +174,16 @@
         update `order` set money = #{order.money} where order_id = #{order.orderId}
     </update>
 
+    <update id="cancelOrder">
+        update `order` as a set
+            a.create_order = - a.create_order,
+            a.process_review = - a.process_review,
+            a.order_review = - a.order_review,
+            a.production_order = - a.production_order,
+            a.processing_card =  - a.processing_card,
+            a.warehousing = - a.warehousing,
+            a.delivery = - a.delivery
+        where order_id = #{order.orderId}
+    </update>
+
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/sd/OrderGlassDetailMapper.xml b/north-glass-erp/target/classes/mapper/sd/OrderGlassDetailMapper.xml
index bf7705b..fe328f7 100644
--- a/north-glass-erp/target/classes/mapper/sd/OrderGlassDetailMapper.xml
+++ b/north-glass-erp/target/classes/mapper/sd/OrderGlassDetailMapper.xml
@@ -24,7 +24,10 @@
             pd.glass_sort,
             if(pd.glass_sort=1,'(澶�)',if(pd2.glass_sort=pd.glass_sort,'(鍐�)','')),
             pd.detail,
-            od.width,
+            if( od.bend_radius!='',
+                round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,0),
+                od.width
+              ),
             od.height,
             od.area,
             od.gross_area,
@@ -35,8 +38,26 @@
             on od.product_id = pd.prod_id and pd.detail_type='glass'
         LEFT JOIN (SELECT max(id) as id ,max(glass_sort) as glass_sort  from product_detail GROUP BY prod_id)as pd2
             on pd2.id=pd.id
+        left join (
+            select
+                a.prod_id,
+                a.sort_num,
+                a.glass_sort,
+                (case
+                      when a.sort_num=1
+                          then left(detail,LOCATE('mm',detail)-1)/2
+                      else
+                          left(detail,LOCATE('mm',detail)-1)
+                end) as 'thicknessCount'
+
+            from product_detail as a
+            group  by prod_id,a.sort_num
+        ) as t
+        ON t.prod_id = od.product_id and t.sort_num &lt;=pd.sort_num
+
 
         where od.order_id = #{orderId}
+        group by od.order_number,pd.glass_sort
         ORDER BY od.order_number
     </insert>
 
diff --git a/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
index d3ab571..b294546 100644
--- a/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
@@ -174,4 +174,16 @@
         update `order` set money = #{order.money} where order_id = #{order.orderId}
     </update>
 
+    <update id="cancelOrder">
+        update `order` as a set
+            a.create_order = - a.create_order,
+            a.process_review = - a.process_review,
+            a.order_review = - a.order_review,
+            a.production_order = - a.production_order,
+            a.processing_card =  - a.processing_card,
+            a.warehousing = - a.warehousing,
+            a.delivery = - a.delivery
+        where order_id = #{order.orderId}
+    </update>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0