From a97c0e84c8d1f50aa65935643a580527f30b7ece Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 12 三月 2024 08:39:38 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java     |    8 
 north-glass-erp/src/main/resources/mapper/userInfo/SysMenuItem.xml                           |    1 
 north-glass-erp/northglass-erp/src/lang/en.js                                                |   21 +
 north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java             |    2 
 north-glass-erp/northglass-erp/src/main.js                                                   |    4 
 north-glass-erp/target/classes/mapper/pp/ReportingWork.xml                                   |   41 ++
 north-glass-erp/northglass-erp/src/lang/zh.js                                                |   22 +
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java                  |    3 
 north-glass-erp/src/main/resources/mapper/userInfo/SysMenu.xml                               |    1 
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuItemMapper.java         |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuMapper.java             |    4 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportWorkService.java              |    1 
 north-glass-erp/northglass-erp/package-lock.json                                             |   82 ++++++
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java     |   22 +
 north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java                           |    2 
 north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml                         |    7 
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue              |  206 ++++++++++++----
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuItemController.java |   14 
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuService.java           |    4 
 north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml                             |    7 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java       |    1 
 north-glass-erp/target/classes/mapper/userInfo/SysMenuItem.xml                               |    1 
 north-glass-erp/northglass-erp/src/lang/index.js                                             |   18 +
 north-glass-erp/.idea/dataSources.local.xml                                                  |    2 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java           |  107 ++++++--
 north-glass-erp/target/classes/mapper/userInfo/SysMenu.xml                                   |    1 
 north-glass-erp/northglass-erp/package.json                                                  |    1 
 north-glass-erp/northglass-erp/src/layout/MainErpView.vue                                    |   19 +
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuItemService.java       |    4 
 north-glass-erp/northglass-erp/src/views/LoginView.vue                                       |   25 +
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                               |   41 ++
 31 files changed, 533 insertions(+), 141 deletions(-)

diff --git a/north-glass-erp/.idea/dataSources.local.xml b/north-glass-erp/.idea/dataSources.local.xml
index 0c4acb4..3fa20a7 100644
--- a/north-glass-erp/.idea/dataSources.local.xml
+++ b/north-glass-erp/.idea/dataSources.local.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="dataSourceStorageLocal" created-in="IU-232.8660.185">
+  <component name="dataSourceStorageLocal" created-in="IU-232.9559.62">
     <data-source name="@localhost [2]" uuid="165c5447-d19a-4aaf-af5f-cee92ae696c2">
       <database-info product="MySQL" version="8.0.22" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.22" exact-driver-version="8.0">
         <extra-name-characters>#@</extra-name-characters>
diff --git a/north-glass-erp/northglass-erp/package-lock.json b/north-glass-erp/northglass-erp/package-lock.json
index dce25ad..fd36d91 100644
--- a/north-glass-erp/northglass-erp/package-lock.json
+++ b/north-glass-erp/northglass-erp/package-lock.json
@@ -17,6 +17,7 @@
         "pinia-plugin-persistedstate": "^3.2.0",
         "sortablejs": "^1.15.1",
         "vue": "^3.3.4",
+        "vue-i18n": "^9.10.1",
         "vue-router": "^4.2.4",
         "vxe-table": "^4.5.15",
         "xe-utils": "^3.5.14",
@@ -457,6 +458,38 @@
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "node_modules/@intlify/core-base": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.10.1.tgz",
+      "integrity": "sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ==",
+      "dependencies": {
+        "@intlify/message-compiler": "9.10.1",
+        "@intlify/shared": "9.10.1"
+      },
+      "engines": {
+        "node": ">= 16"
+      }
+    },
+    "node_modules/@intlify/message-compiler": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz",
+      "integrity": "sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA==",
+      "dependencies": {
+        "@intlify/shared": "9.10.1",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 16"
+      }
+    },
+    "node_modules/@intlify/shared": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.10.1.tgz",
+      "integrity": "sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw==",
+      "engines": {
+        "node": ">= 16"
+      }
     },
     "node_modules/@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
@@ -1502,6 +1535,22 @@
         "@vue/shared": "3.3.4"
       }
     },
+    "node_modules/vue-i18n": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz",
+      "integrity": "sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg==",
+      "dependencies": {
+        "@intlify/core-base": "9.10.1",
+        "@intlify/shared": "9.10.1",
+        "@vue/devtools-api": "^6.5.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
     "node_modules/vue-router": {
       "version": "4.2.5",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
@@ -1796,6 +1845,29 @@
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "@intlify/core-base": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.10.1.tgz",
+      "integrity": "sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ==",
+      "requires": {
+        "@intlify/message-compiler": "9.10.1",
+        "@intlify/shared": "9.10.1"
+      }
+    },
+    "@intlify/message-compiler": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz",
+      "integrity": "sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA==",
+      "requires": {
+        "@intlify/shared": "9.10.1",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "@intlify/shared": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.10.1.tgz",
+      "integrity": "sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw=="
     },
     "@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
@@ -2488,6 +2560,16 @@
         "@vue/shared": "3.3.4"
       }
     },
+    "vue-i18n": {
+      "version": "9.10.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz",
+      "integrity": "sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg==",
+      "requires": {
+        "@intlify/core-base": "9.10.1",
+        "@intlify/shared": "9.10.1",
+        "@vue/devtools-api": "^6.5.0"
+      }
+    },
     "vue-router": {
       "version": "4.2.5",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
diff --git a/north-glass-erp/northglass-erp/package.json b/north-glass-erp/northglass-erp/package.json
index 7a8a0c3..585a399 100644
--- a/north-glass-erp/northglass-erp/package.json
+++ b/north-glass-erp/northglass-erp/package.json
@@ -17,6 +17,7 @@
     "pinia-plugin-persistedstate": "^3.2.0",
     "sortablejs": "^1.15.1",
     "vue": "^3.3.4",
+    "vue-i18n": "^9.10.1",
     "vue-router": "^4.2.4",
     "vxe-table": "^4.5.15",
     "xe-utils": "^3.5.14",
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
new file mode 100644
index 0000000..40d012c
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -0,0 +1,21 @@
+export  default {
+    login:{
+        userErr:'Please enter your user id',
+        pwErr:'Please enter your password',
+        loginSuccessful:'User login successful',
+        connectErr:'server connection failed',
+        user:'user',
+        password:'pass',
+
+
+        SysName:'North Glass ERP System',
+        login:'login',
+        register:'register',
+    },
+    main:{
+        connectErr:'The server connection is abnormal. Please try again later',
+        titleFirst:"Welcome ",
+        titleLast:' to use North Glass ERP system锛�'
+    }
+
+}
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/lang/index.js b/north-glass-erp/northglass-erp/src/lang/index.js
new file mode 100644
index 0000000..4b4c72b
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/lang/index.js
@@ -0,0 +1,18 @@
+
+import { createI18n}  from 'vue-i18n'
+import zh from "./zh"
+import en from "./en"
+
+let messages = {
+    zh:zh,
+    en: en
+}
+
+const i18n = createI18n({
+    locale: localStorage.getItem('lang') || 'en', // 璁剧疆褰撳墠璇█绫诲瀷
+    legacy: false, // 濡傛灉瑕佹敮鎸乧ompositionAPI锛屾椤瑰繀椤昏缃负false;
+    globalInjection: true, // 鍏ㄥ眬娉ㄥ唽$t鏂规硶
+    messages
+})
+
+export default i18n
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
new file mode 100644
index 0000000..79e13ce
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -0,0 +1,22 @@
+export  default {
+    login:{
+        userErr:'璇疯緭鍏ヤ綘鐨勮处鍙�',
+        pwErr:'璇疯緭鍏ヤ綘鐨勫瘑鐮�',
+        loginSuccessful:'鐧婚檰鎴愬姛',
+        connectErr:'鏈嶅姟鍣ㄨ繛鎺ュけ璐�',
+        user:'鐢ㄦ埛',
+        password:'瀵嗙爜',
+        SysName:'鍖楃幓鑷姩鍖朎RP绠$悊绯荤粺',
+        login:'鐧婚檰',
+        register:'娉ㄥ唽',
+    },
+    main:{
+        connectErr:'鏈嶅姟鍣ㄨ繛鎺ュ紓甯革紝璇风◢鍚庡啀璇�',
+        titleFirst:"娆㈣繋 ",
+        titleLast:' 浣跨敤鍖楃幓ERP绯荤粺锛�'
+    },
+    order:{
+
+    }
+
+}
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/layout/MainErpView.vue b/north-glass-erp/northglass-erp/src/layout/MainErpView.vue
index 7c492b9..7072d2d 100644
--- a/north-glass-erp/northglass-erp/src/layout/MainErpView.vue
+++ b/north-glass-erp/northglass-erp/src/layout/MainErpView.vue
@@ -1,12 +1,17 @@
 <script setup>
 import { RouterLink,useRouter} from 'vue-router'
 import  useUserInfoStore from '@/stores/userInfo'
-import request from "@/utils/request";
-import {ElMessage} from "element-plus";
+import request from "@/utils/request"
+import {ElMessage} from "element-plus"
 import {onMounted, reactive, ref, watch} from "vue"
 import deepClone from "@/utils/deepClone"
 import userInfo from '@/stores/userInfo'
-import {Close, Grid, Histogram, MessageBox, SwitchButton} from "@element-plus/icons-vue";
+import {Close, Grid, Histogram, MessageBox, SwitchButton} from "@element-plus/icons-vue"
+import { useI18n } from 'vue-i18n'
+import i18n from "@/lang/index"
+const lang = i18n.global.locale.value
+//璇█鑾峰彇
+const { t } = useI18n()
 const store=userInfo()
 
 const router = useRouter()
@@ -23,7 +28,7 @@
 
 //鎻愬彇妯″潡鍒楄〃
 let menuList=$ref([])
-request.get("/menu").then((res) => {
+request.get(`/menu/getMenu/${lang}`).then((res) => {
   if(res.code==200){
     menuList= deepClone(res.data)
   }else{
@@ -31,13 +36,13 @@
     router.push("/login")
   }
 }).catch((e)=>{
-  ElMessage.warning("鏈嶅姟鍣ㄨ繛鎺ュ紓甯革紝璇风◢鍚庡啀璇�")
+  ElMessage.warning(t('main.connectErr'))
   router.push("/login")
 })
 
 //鑾峰彇鑿滃崟鍒楄〃
 let menuItemList=$ref([])
-request.get("/menuItem").then((res) => {
+request.get(`/menuItem/getMenuItem/${lang}`).then((res) => {
   if(res.code==200){
     menuItemList= deepClone(res.data)
   }else{
@@ -83,7 +88,7 @@
       <el-header >
         <div style="height: 100%;width: 100%;display: flex">
           <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%">
-          <h3 style="margin: 1rem  ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓ERP绯荤粺锛�</h3>
+          <h3 style="margin: 1rem  ;font-weight: bold;width: 40vw;"> {{$t('main.titleFirst') + user + $t('main.titleLast')}}</h3>
           <span style="height: 70%;width: 78vw;margin-top: 1rem;" >
 
             <el-button  class="sys-quit" @click="quit"  type="info" round>
diff --git a/north-glass-erp/northglass-erp/src/main.js b/north-glass-erp/northglass-erp/src/main.js
index d366da6..779d678 100644
--- a/north-glass-erp/northglass-erp/src/main.js
+++ b/north-glass-erp/northglass-erp/src/main.js
@@ -10,6 +10,9 @@
 import 'element-plus/dist/index.css'
 import VXETable from 'vxe-table'
 import 'vxe-table/lib/style.css'
+import i18n from "@/lang"
+
+
 
 const app = createApp(App)
 const pinia = createPinia()
@@ -20,5 +23,6 @@
 app.use(ElementPlus,{
     locale: zhCn,
 })
+app.use(i18n)
 
 app.mount('#app')
diff --git a/north-glass-erp/northglass-erp/src/views/LoginView.vue b/north-glass-erp/northglass-erp/src/views/LoginView.vue
index 154d12b..fd328cc 100644
--- a/north-glass-erp/northglass-erp/src/views/LoginView.vue
+++ b/north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -7,6 +7,9 @@
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
 import { sendSock, createWebSocket, closeSock,global_callback1 } from "@/utils/webSocket"
+import { useI18n } from 'vue-i18n'
+//璇█鑾峰彇
+const { t } = useI18n()
 
 const store=userInfo()
 let ruleFormRef  = ref<FormInstance>()
@@ -24,7 +27,7 @@
 
 const validateUser = (rule: any, value: any, callback: any) => {
   if (value === '') {
-    callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�'))
+    callback(new Error(t('login.userErr')))
   } else {
     callback()
   }
@@ -32,7 +35,7 @@
 
 const validatePass = (rule: any, value: any, callback: any) => {
   if (value === '') {
-    callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�'))
+    callback(new Error(t('login.psErr')))
   } else {
     callback()
   }
@@ -55,14 +58,14 @@
           store.$patch({user:res.data})
 
           router.push('/main')
-          ElMessage.success(`鐧诲綍鎴愬姛`)
+          ElMessage.success(t('login.loginSuccessful'))
         } else {
           ElMessage.error(res['msg'])
           loginLoadings.value=false
           return false
         }
       }).catch(error => {
-        ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
+        ElMessage.error(t('login.connectErr'))
         loginLoadings.value=false
         return false
       })
@@ -102,7 +105,7 @@
         <img id="img-pic" src="@/assets/img.png" alt="">
       </div>
       <div id="div-login">
-        <h2>鍖楃幓鑷姩鍖朎RP绠$悊绯荤粺</h2>
+        <h2>{{$t('login.SysName')}}</h2>
         <el-form
             @submit.native.prevent
             ref="ruleFormRef"
@@ -110,22 +113,22 @@
             status-icon
             :rules="rules"
         >
-          <el-form-item label="鐢ㄦ埛锛�" prop="userId">
+          <el-form-item :label="$t('login.user')+':'" prop="userId">
             <el-input
                 v-model="userForm.userId"
                 type="text"
                 autocomplete="off"
                 :prefix-icon="Avatar"
-                placeholder="璇疯緭鍏ヤ綘鐨勮处鍙�"
+                :placeholder="$t('login.userErr')"
             />
           </el-form-item>
-          <el-form-item label="瀵嗙爜锛�" prop="pass">
+          <el-form-item :label="$t('login.password')+':'" prop="pass">
             <el-input
                 v-model="userForm.pass"
                 type="password"
                 autocomplete="off"
                 :prefix-icon="Lock"
-                placeholder="璇疯緭鍏ヤ綘鐨勫瘑鐮�"
+                :placeholder="$t('login.pwErr')"
             />
           </el-form-item>
           <el-form-item id="submitForm">
@@ -133,7 +136,7 @@
                 :loading="registerLoadings"
                 type="primary"
                 @click="register"
-            >娉ㄥ唽
+            >{{$t('login.register')}}
             </el-button>
             <el-button
                 :loading="loginLoadings"
@@ -141,7 +144,7 @@
                 native-type="submit"
                 @click="submitForm(ruleFormRef)"
                 @keyup.enter.native="keyDown(e)"
-            >鐧诲綍
+            >{{$t('login.login')}}
             </el-button>
 
           </el-form-item>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index f4fbfe0..2a58df2 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -1,6 +1,6 @@
 <script setup>
 import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue";
-import {useRouter} from 'vue-router'
+import {useRouter,useRoute} from 'vue-router'
 import request from "@/utils/request";
 import {ElMessage} from "element-plus";
 import {changeFilterEvent, filterChanged} from "@/hook"
@@ -10,15 +10,16 @@
 let brokenVisible = ref(false)
 const xGrid = ref()
 const brokenGrid =ref()
-let router = useRouter()
+const router = useRouter()
+const route = useRoute()
 const user=userInfo()
-
 //瀹氫箟琛ㄥご鏁版嵁
 const titleUploadData = ref({
   //娴佺▼鍗″彿
-  processId: 'NG24030701B01/1',
+  processId: 'NG24030804A02/1',
   //閿�鍞崟鍙�
   orderId: '',
+  reviewedState:0,
   //鐢熶骇鍗曞彿
   productionId: '',
   //璁惧绫诲瀷
@@ -75,6 +76,24 @@
 
 })
 
+
+onMounted(() =>{
+  if(route.query.processId !== undefined && route.query.processId!=='' && route.query.processId!=null ){
+    titleUploadData.value.processId = route.query.processId
+  }
+  //鍒ゆ柇鏄惁浼犲叆鎶ュ伐缂栧彿
+  if(route.query.reportingWorkId!== undefined && route.query.reportingWorkId!=='' && route.query.reportingWorkId!=null){
+    request.post(`reportingWork/selectUpdateReportingWork/${route.query.reportingWorkId}`).then(res=>{
+      if(res.code === '200'){
+        titleUploadData.value = res.data.reportingWork
+        console.log(res.data)
+        xGrid.value.reloadData(res.data.reportingWorkDetails)
+      }
+    })
+  }
+})
+
+
 //琛ㄥ熬姹傚拰
 const sumNum = (list, field) => {
   let count = 0
@@ -87,20 +106,6 @@
 
 
 const optionVal = ref('')
-const options = [
-  {
-    value: '鍒囧壊',
-    label: '鍒囧壊',
-  },
-  {
-    value: '纾ㄨ竟',
-    label: '纾ㄨ竟',
-  },
-  {
-    value: '閽㈠寲',
-    label: '閽㈠寲',
-  },
-]
 
 //鐝
 const classesVal = ref('鏃╃彮')
@@ -205,12 +210,12 @@
       showOverflow: "ellipsis",
       filterMethod: filterChanged
     },
-    {field: 'quantity', title: '涓婂伐瀹屽伐鏁伴噺',},
+    {field: 'quantity', title: '鍙姤鏁伴噺',},
     {
-      field: 'completedQuantity', title: '瀹屽伐鏁伴噺',
+      field: 'completedQuantity', title: '瀹屽伐鏁伴噺',width: 120,
       editRender: {
         name: 'input',
-        attrs: {placeholder: ''},
+        attrs: {placeholder: ''}
       },
 
     },
@@ -246,8 +251,8 @@
       // {code: 'sameDamage', name: '娆$牬鐩稿悓'},
       // {code: 'sameOneCompletion', name: '瀹屽伐涓�鍒楃浉鍚�'},
       // {code: 'sameOneDamage', name: '娆$牬涓�鍒楃浉鍚�'},
-      {code: 'saveReportingWork', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save'},
-      {code: 'print_lck', name: '淇濆瓨骞跺鏍�', status: 'primary', icon: 'vxe-icon-save'},
+      {code: 'saveReportingWork', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save',disabled:true},
+      {code: 'saveReportingWorkReview', name: '淇濆瓨骞跺鏍�', status: 'primary', icon: 'vxe-icon-save',disabled:true},
     ],
     // import: false,
     // export: true,
@@ -277,26 +282,21 @@
     if ($grid) {
       switch (code) {
         case 'saveReportingWork':  {
-          if($grid.getTableData().fullData.length===0){
-            ElMessage.warning(`璇烽�夋嫨娴佺▼鍗℃暟鎹甡)
-            return false
-          }
-          const device = titleUploadData.value.deviceName
-          if(device === null || device === undefined || device === ''){
-            ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
-            return
-          }
-          const teamsGroupsName = titleUploadData.value.teamsGroupsName
-          if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
-            ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
-            return
-          }
           const errMap = await $grid.validate(true)
           if (errMap) {
             ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
             return
           }
-          saveReportingWork()
+          saveReportingWork(0)
+          break
+        }
+        case 'saveReportingWorkReview':  {
+          const errMap = await $grid.validate(true)
+          if (errMap) {
+            ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
+            return
+          }
+          saveReportingWork(1)
           break
         }
       }
@@ -481,6 +481,10 @@
 
 
 const checkClose = async (done) => {
+  if(brokenGrid.value.getTableData().fullData.length===0){
+    done()
+    return true
+  }
   const errMap = await brokenGrid.value.validate(true)
   if (errMap) {
     ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
@@ -493,7 +497,7 @@
   })
 
   let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1
-  if(breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1){
+  if((breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1) ){
     ElMessage.warning(`鎹熻�楁暟:'${breakageQuantityCount}'
                                瀹屽伐鏁�:'${reportingWorkNum}'涔嬪拰${breakageQuantityCount+reportingWorkNum}
                                涓嶈兘澶т簬${brokenRow.value.quantity*1}`)
@@ -507,7 +511,6 @@
 }
 
 
-
 //绗竴娆″姞杞芥暟鎹�
 
 request.post(`/reportingWork/selectProcess`).then((res) => {
@@ -518,7 +521,22 @@
   }
 })
 
-const saveReportingWork = () => {
+const saveReportingWork = (type) => {
+
+  if(xGrid.value.getTableData().fullData.length===0){
+    ElMessage.warning(`璇烽�夋嫨娴佺▼鍗℃暟鎹甡)
+    return false
+  }
+  const device = titleUploadData.value.deviceName
+  if(device === null || device === undefined || device === ''){
+    ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
+    return
+  }
+  const teamsGroupsName = titleUploadData.value.teamsGroupsName
+  if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
+    ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
+    return
+  }
 
   titleUploadData.value.creator = user.user.userName
   titleUploadData.value.creatorId = user.user.userId
@@ -534,17 +552,30 @@
 
   const requestData = {
     title:titleUploadData.value,
-    detail:xGrid.value.getTableData().fullData
+    detail:xGrid.value.getTableData().fullData,
+    type:type//瀹℃牳鐘舵��
   }
+  gridOptions.toolbarConfig.buttons[0].disabled=true
+  gridOptions.toolbarConfig.buttons[1].disabled=true
   request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{
     if (res.code == 200){
       ElMessage.success("鎶ュ伐鎴愬姛")
-      router.push({path:'/main/reportingWorks/AddReportingWork',query:{random:Math.random()}})
+      router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
     }else{
-      ElMessage.error(res.msg)
+      const errorObj = JSON.parse(res.msg)
+      const msg = "搴忓彿锛�"+errorObj.orderNumber+'\n'
+                +'灏忕墖椤哄簭锛�'+errorObj.technologyNumber+'\n'
+                +"瀹為檯鍙姤宸ユ暟閲忥細"+errorObj.processNum+'<'+
+                "鎶ュ伐鏁伴噺锛�"+errorObj.sumNum+'\n'
+                +"璇峰埛鏂扮晫闈㈤噸鏂版姤宸�"
+
+      ElMessage.error(msg)
     }
   }).catch(err =>{
     ElMessage.error(err.message)
+  }).finally(()=>{
+    gridOptions.toolbarConfig.buttons[0].disabled=false
+    gridOptions.toolbarConfig.buttons[1].disabled=false
   })
 }
 
@@ -575,6 +606,51 @@
   }
 })
 
+let loadingFlag = ref(false)
+let disabledFlag = ref(true)
+const reviewReportingWork = () => {
+  const processId = titleUploadData.value.processId
+  if (processId.indexOf("/") < 0) {
+    ElMessage.warning("璇疯緭鍏ユ纭牸寮忔祦绋嬪崱")
+    return
+  }
+  let indexOfChar = processId.indexOf("/")
+  let leftString = processId.slice(0, indexOfChar)
+  if (leftString.length !== 13) {
+    ElMessage.warning("璇疯緭鍏ユ纭綅鏁扮殑娴佺▼鍗�")
+    return
+  }
+//宸ュ簭
+  let process = titleUploadData.value.thisProcess
+  if (process === "" || process == null) {
+    ElMessage.warning("璇烽�夋嫨宸ュ簭")
+    return
+  }
+  if(titleUploadData.value.previousProcess===''){
+    ElMessage.warning("绗竴閬撳伐搴忎笉闇�瑕佸鏍�")
+    return
+  }
+  const reportWork = {
+    process: titleUploadData.value.previousProcess,
+    processId:processId
+  }
+  loadingFlag.value= true
+  request.post("/reportingWork/reviewReportingWork",reportWork).then((res) =>{
+    if(res.code === '200'){
+      ElMessage.success("瀹℃牳鎴愬姛")
+      router.push({path:'/main/reportingWorks/AddReportingWork',
+        query:{
+          processId:titleUploadData.value.processId,
+          random:Math.random()
+        }
+      })
+    }
+  }).finally(
+      loadingFlag.value= false
+  )
+
+}
+
 
 //涓嬫媺娆鹃�夋嫨宸ュ簭鏃舵煡璇�
 const getWork = () => {
@@ -594,7 +670,6 @@
 //宸ュ簭
   let process = titleUploadData.value.thisProcess
   if (process == "" || process == null) {
-
     ElMessage.warning("璇烽�夋嫨宸ュ簭")
     return
   }
@@ -610,6 +685,10 @@
 
   request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}`).then((res) => {
     if (res.code == 200) {
+      if(res.data.data===null){
+        ElMessage.error("鏈煡璇㈠埌姝ゆ祦绋嬪崱鏁版嵁")
+        return
+      }
       //琛ㄥご璧嬪��
       titleUploadData.value = res.data.data
       titleUploadData.value.processId = processId
@@ -629,10 +708,18 @@
       titleSelectJson.value.breakageType =  res.data.breakageType
       //娆$牬鍘熷洜
       titleSelectJson.value.breakageReason =  res.data.breakageReason
-      //console.log(res.data)
+      if(titleUploadData.value.reviewedState==1){
+        gridOptions.toolbarConfig.buttons[0].disabled=false
+        gridOptions.toolbarConfig.buttons[1].disabled=false
+        disabledFlag.value=true
+      }else {
+        gridOptions.toolbarConfig.buttons[0].disabled=true
+        gridOptions.toolbarConfig.buttons[1].disabled=true
+        disabledFlag.value=false
+      }
+
+      //鍒ゆ柇鏃╂櫄鐝�
       titleUploadData.value.classes='鏃╃彮'
-
-
       titleUploadData.value.reportingWorkTime = formatCurrentTime()
       //缁戝畾涓嬫柟琛ㄦ牸
       detail.value = res.data.Detail
@@ -683,16 +770,20 @@
   let hours = dateObj.getHours().toString().padStart(2, '0'); // 灏忔椂
   let minutes = dateObj.getMinutes().toString().padStart(2, '0'); // 鍒嗛挓
   let seconds = dateObj.getSeconds().toString().padStart(2, '0'); // 绉掓暟
-  if(parseInt(hours)>=17)titleUploadData.value.classes='鏅氱彮'
+  if(parseInt(hours)>=17 && parseInt(hours)<8)titleUploadData.value.classes='鏅氱彮'
   return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂村瓧绗︿覆
 }
 
-const ptypeChangeEvent = (row) => {
-  // for (let i = 0; i < row.length; i++){
-  //
-  //  let process=row[i].responsibleProcess
-  // }
+const editClosedEvent = ({ row, column }) => {
+  if (column.property==='completedQuantity') {
+    xGrid.value.getTableData().fullData.forEach((item, index) =>{
+      if(item.order_number===row.order_number){
+        item.completedQuantity=row.completedQuantity
+      }
+    })
+  }
 }
+
 </script>
 
 <template>
@@ -710,8 +801,8 @@
         />
       </el-select>
       &nbsp;
-      <el-button type="primary">瀹℃牳閫氳繃</el-button>
-      <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>
+      <el-button :disabled="disabledFlag" :loading="loadingFlag" @click="reviewReportingWork" type="primary">瀹℃牳閫氳繃</el-button>
+<!--      <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>-->
       &nbsp;
       <label>娴佺▼鍗¢潰绉細xxx骞虫柟绫�</label>
     </div>
@@ -774,7 +865,7 @@
           <el-text>鍙姤宸ユ暟閲忥細</el-text>
         </el-col>
         <el-col :span="2">
-          <el-text>{{ titleUploadData.flowCard.quantity }}</el-text>
+          <el-text>{{ titleUploadData.previousProcessQuantity }}</el-text>
 
         </el-col>
         <el-col :span="2">
@@ -856,6 +947,7 @@
           v-bind="gridOptions"
           v-on="gridEvents"
           @filter-change="filterChanged"
+          @edit-closed="editClosedEvent"
 
       >
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
index d2efb21..b1653b4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -5,6 +5,8 @@
 import com.example.erp.entity.pp.ReportingWork;
 import com.example.erp.exception.ServiceException;
 import com.example.erp.service.pp.ReportingWorkService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -12,9 +14,14 @@
 import java.sql.Date;
 @RestController
 @RequestMapping("/reportingWork")
+@Api(value="鎶ュ伐controller",tags={"鎶ュ伐鎺у埗鍣�"})
 public class ReportingWorkController {
-    @Autowired
+    final
     ReportingWorkService reportingWorkService;
+
+    public ReportingWorkController(ReportingWorkService reportingWorkService) {
+        this.reportingWorkService = reportingWorkService;
+    }
 
 
     @PostMapping  ("/addSelectLastWork/{processIdStr}/{technologyStr}/{process}")
@@ -29,10 +36,23 @@
         return  Result.seccess(reportingWorkService.SelectProcessSv());
     }
 
+    @ApiOperation("鎶ュ伐鏂板")
     @PostMapping  ("/saveReportingWork")
     public Result SaveReportingWork(@RequestBody Map<String,Object> reportingWork)  {
         return  Result.seccess(reportingWorkService.SaveReportingWorkSv(reportingWork));
     }
 
+    @ApiOperation("鎶ュ伐瀹℃牳")
+    @PostMapping  ("/reviewReportingWork")
+    public Result ReviewReportingWork(@RequestBody Map<String,String> reportingWork)  {
+        return  Result.seccess(reportingWorkService.ReviewReportingWorkSv(reportingWork));
+    }
+
+    @ApiOperation("鎶ュ伐淇敼鏌ヨ")
+    @PostMapping  ("/selectUpdateReportingWork/{reportingWorkId}")
+    public Result SelectUpdateReportingWork(@PathVariable String reportingWorkId)  {
+        return  Result.seccess(reportingWorkService.selectUpdateReportingWorkSv(reportingWorkId));
+    }
+
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
index c4f7e29..e77246f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
@@ -6,6 +6,7 @@
 import com.example.erp.tools.netty.MyChannelHandlerPool;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -18,12 +19,13 @@
     private CacheUtil cacheUtil;
     @Autowired
     private SysMenuService sysMenuService;
-    @GetMapping
-    public Result getMenu(){
+    @GetMapping("/getMenu/{lang}")
+    public Result getMenu(@PathVariable String lang){
+        System.out.println(lang);
         MyChannelHandlerPool myChannelHandlerPool = new MyChannelHandlerPool();
         //myChannelHandlerPool.sendMsg("123");
         //MyChannelHandlerPool.channelGroup.writeAndFlush( new TextWebSocketFrame("123123"));
-        return Result.seccess(sysMenuService.getMenu());
+        return Result.seccess(sysMenuService.getMenu(lang));
 
     }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuItemController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuItemController.java
index a2bae8e..6ea6989 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuItemController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuItemController.java
@@ -4,16 +4,22 @@
 import com.example.erp.service.userInfo.SysMenuItemService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/menuItem")
 public class SysMenuItemController {
-    @Autowired
+    final
     SysMenuItemService sysMenuItemService;
-    @GetMapping
-    public Result getMenuItem(){
-        return Result.seccess(sysMenuItemService.getMenuItem());
+
+    public SysMenuItemController(SysMenuItemService sysMenuItemService) {
+        this.sysMenuItemService = sysMenuItemService;
+    }
+
+    @GetMapping("/getMenuItem/{lang}")
+    public Result getMenuItem(@PathVariable String lang){
+        return Result.seccess(sysMenuItemService.getMenuItem(lang));
     }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
index 6cac444..4268c23 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
@@ -59,7 +59,7 @@
     //寰呰繑宸ユ暟閲�
     private Integer waitReworkQuantity;
     //杩斿伐瀹℃牳鐘舵��
-    private Integer reviewerState;
+    private Integer reviewStatus;
     //杩斿伐瀹℃牳浜�
     private String reviewer;
     //杩斿伐鏃堕棿
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java
index 28c5ed8..1f73f53 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java
@@ -10,7 +10,7 @@
 import java.time.LocalDate;
 
 @Data
-@TableName("`order`")
+@TableName("sd.`order`")
 public class Order {
     @TableId(type = IdType.AUTO)
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index 8f10826..1925556 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -1,5 +1,6 @@
 package com.example.erp.mapper.pp;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.example.erp.entity.pp.FlowCard;
 import com.example.erp.entity.sd.Order;
 import com.example.erp.entity.sd.OrderDetail;
@@ -11,7 +12,7 @@
 import java.util.Map;
 
 @Mapper
-public interface FlowCardMapper {
+public interface FlowCardMapper extends BaseMapper<FlowCard> {
     //娴佺▼鍗$鐞嗘煡璇�
     List<FlowCard> selectFlowCard(Integer offset, Integer pageSize, Date selectTime1, Date selectTime2, FlowCard flowCard);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
index b7671f2..b872c80 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
@@ -26,4 +26,5 @@
                                                @Param("sDate") String startTime,@Param("eDate") String endTime,ReportingWorkDetail reportingWorkDetail);
 
 
+    List<ReportingWorkDetail> selectByreportingWorkId(String reportingWorkId);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuItemMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuItemMapper.java
index bf5c74a..474fd6a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuItemMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuItemMapper.java
@@ -8,5 +8,5 @@
 @Mapper
 public interface SysMenuItemMapper {
 
-     List<SysMenuItem> findAll() ;
+     List<SysMenuItem> findAll(String lang) ;
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuMapper.java
index 4a965fa..9d0fa67 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/SysMenuMapper.java
@@ -9,6 +9,6 @@
 @Mapper
 
 public interface SysMenuMapper {
-    @Select("select  a.id, a.menuName from sys_menu as a where a.state=1 order by a.listSort")
-    List<SysMenu> findAll();
+
+    List<SysMenu> findAll(String lang);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportWorkService.java
index a3d3e44..41a1fdf 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportWorkService.java
@@ -19,7 +19,6 @@
     /*鑾峰彇杩斿伐鏂板鍔熻兘鏁版嵁*/
     public Map<String,Object> queryRework (Integer pageNum, Integer pageSize,ReportingWorkDetail reportingWorkDetail ) {
         Integer offset = (pageNum-1)*pageSize;
-
         Map<String,Object> map = new HashMap<>();
         map.put("data",reportingWorkDetailMapper.queryReworkAdd(offset,pageSize, reportingWorkDetail));
         return map;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index eb184ae..9e5daf6 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -1,22 +1,23 @@
 package com.example.erp.service.pp;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.example.erp.common.Constants;
 import com.example.erp.entity.pp.DamageDetails;
+import com.example.erp.entity.pp.FlowCard;
 import com.example.erp.entity.pp.ReportingWork;
 import com.example.erp.entity.pp.ReportingWorkDetail;
 import com.example.erp.entity.sd.Order;
 import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.OrderProcessDetail;
 import com.example.erp.exception.ServiceException;
-import com.example.erp.mapper.pp.BasicDateProduceMapper;
-import com.example.erp.mapper.pp.DamageDetailsMapper;
-import com.example.erp.mapper.pp.ReportingWorkDetailMapper;
-import com.example.erp.mapper.pp.ReportingWorkMapper;
+import com.example.erp.mapper.pp.*;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.OrderMapper;
 import com.example.erp.mapper.sd.OrderProcessDetailMapper;
 import com.example.erp.service.sd.OrderProcessDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +25,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 @DS("pp")
@@ -43,19 +41,26 @@
     final
     ReportingWorkDetailMapper
     reportingWorkDetailMapper;
+    final OrderMapper
+    orderMapper;
+
+    final
+    FlowCardMapper flowCardMapper;
 
     final
     OrderProcessDetailService orderProcessDetailService;
 
 
 
-    public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService) {
+    public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper) {
         this.reportingWorkMapper = reportingWorkMapper;
         this.basicDateProduceMapper = basicDateProduceMapper;
         this.damageDetailsMapper = damageDetailsMapper;
         this.reportingWorkDetailMapper = reportingWorkDetailMapper;
         this.orderProcessDetailMapper = orderProcessDetailMapper;
         this.orderProcessDetailService = orderProcessDetailService;
+        this.orderMapper = orderMapper;
+        this.flowCardMapper = flowCardMapper;
     }
 
     public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
@@ -91,7 +96,7 @@
                 }
                 //System.out.println("褰撳墠宸ュ簭锛�" + process + " 涓婁竴閬撳伐搴忥細" + previousProcess + " 涓嬩竴閬撳伐搴忥細" + nextProcess);
                 //鏌ヨ褰撳墠宸ュ簭鐨勮〃澶存暟鎹�
-               // System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
+               //System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
                 map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
                 map.put("thisProcess", processList);
                 break;
@@ -159,6 +164,14 @@
         String reportingWorkId =  "BG"+formattedDate+formattedNumber;
         reportingWork.setReportingWorkId(reportingWorkId);
         reportingWork.setProcessId(reportingWork.getProcessId().substring(0,13));
+
+        int reviewState = (int) reportingWorkJson.get("type");
+        if(reviewState==1){
+            reportingWork.setReviewed(reportingWork.getCreator());
+            reportingWork.setReviewedState(1);
+        }else{
+            reportingWork.setReviewedState(0);
+        }
         //涓昏〃鎻掑叆
         reportingWorkMapper.insert(reportingWork);
 
@@ -203,25 +216,19 @@
 
             //鍒ゆ柇鏄惁澶т簬褰撳墠鏁伴噺骞朵笖鎶涘嚭寮傚父
             if(processNum<(reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity())){
-//                System.out.println(processNum);
-//                System.out.println(reportingWorkDetail.getBreakageQuantity());
-//                System.out.println(reportingWorkDetail.getCompletedQuantity());
-                throw new ServiceException(Constants.Code_600,"褰撳墠宸ュ簭鏁伴噺澶т簬娴佺▼鍗¤〃鏁伴噺");
+                Map<String,Object> map = new HashMap<>();
+                map.put("orderNumber",reportingWorkDetail.getOrderNumber());
+                map.put("technologyNumber",reportingWorkDetail.getOrderNumber());
+                map.put("processNum",processNum);
+                map.put("sumNum",reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity());
+                String msg = JSON.toJSONString(map);
+                throw new ServiceException(Constants.Code_600,msg);
             }
-
-
-
-
 
             OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
             orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
             orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
             orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
-
-
-
-
-
 
             //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
             LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
@@ -230,13 +237,61 @@
                     .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId())
                     .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
                     .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
-                    .setSql("reporting_work_num_count =reporting_work_num_count +"+orderProcessDetail.getReportingWorkNum())
+                    .setSql("reporting_work_num_count = reporting_work_num_count +"+orderProcessDetail.getReportingWorkNum())
                     .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum())
                     .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum());
-
             orderProcessDetailMapper.update(null,updateWrapper);
             reportingWorkDetailMapper.insert(reportingWorkDetail);
+            //鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
+            if(Objects.equals(reportingWork.getNextProcess(), "")){
+                LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
+                        new LambdaUpdateWrapper<>();
+                flowCardLambdaUpdateWrapper
+                        .eq(FlowCard::getProcessId, reportingWork.getProcessId())
+                        .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                        .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                        .setSql("inventory_quantity = inventory_quantity +"+orderProcessDetail.getReportingWorkNum());
+                flowCardMapper.update(null,flowCardLambdaUpdateWrapper);
+            }
+
+
         });
-        return  false;
+        return  true;
+    }
+
+    //涓嬪伐搴忓鏍告柟娉�
+    public boolean ReviewReportingWorkSv(Map<String, String> reportingWork) {
+
+       String processId = reportingWork.get("processId");
+
+        LambdaUpdateWrapper
+                <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper
+                .eq(ReportingWork::getProcessId, processId.substring(0,13))
+                .eq(ReportingWork::getThisProcess,reportingWork.get("process"))
+                .eq(ReportingWork::getReviewedState,0)
+                .setSql("reviewed_state =1");
+        reportingWorkMapper.update(null,updateWrapper);
+
+
+        return  true;
+    }
+
+    public Map<String,Object> selectUpdateReportingWorkSv(String reportingWorkId) {
+        ReportingWork reportingWork =reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>()
+                                        .eq(ReportingWork::getReportingWorkId,reportingWorkId));
+        reportingWork.setOrder(
+            orderMapper.selectOne(new LambdaQueryWrapper<Order>()
+                                        .eq(Order::getOrderId,reportingWork.getOrderId())));
+        reportingWork.setFlowCard(new FlowCard());
+
+        List<ReportingWorkDetail> reportingWorkDetails = reportingWorkDetailMapper.selectByreportingWorkId(reportingWorkId);
+
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("reportingWork",reportingWork);
+        map.put("reportingWorkDetails",reportingWorkDetails);
+        return map;
+
     }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuItemService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuItemService.java
index bbaefc9..307466b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuItemService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuItemService.java
@@ -13,7 +13,7 @@
 public class SysMenuItemService {
     @Autowired
     SysMenuItemMapper sysMenuItemMapper;
-    public List<SysMenuItem> getMenuItem() {
-        return sysMenuItemMapper.findAll();
+    public List<SysMenuItem> getMenuItem(String lang) {
+        return sysMenuItemMapper.findAll(lang);
     }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuService.java
index 28e2499..a38906f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/SysMenuService.java
@@ -14,8 +14,8 @@
     @Autowired
     private SysMenuMapper sysMenuMapper;
 
-    public List<SysMenu> getMenu(){
+    public List<SysMenu> getMenu(String lang){
 
-        return sysMenuMapper.findAll();
+        return sysMenuMapper.findAll(lang);
     }
 }
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 2ce4438..333af58 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -9,6 +9,8 @@
         <result property="previousProcess" column="previous_process"/>
         <result property="nextProcess" column="next_process"/>
         <result property="thisProcess" column="this_process"/>
+        <result property="reviewedState" column="reviewed_state"/>
+        <result property="previousProcessQuantity" column="previous_process_quantity"/>
         <association property="order" javaType="com.example.erp.entity.sd.Order">
             <result property="customerId" column="customer_id"/>
             <result property="customerName" column="customer_name"/>
@@ -17,7 +19,6 @@
         <association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard">
             <result property="orderId" column="order_id"/>
             <result property="productionId" column="production_id"/>
-            <result property="quantity" column="quantity"/>
         </association>
         <association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail">
             <result property="completedQuantity" column="completed_quantity"/>
@@ -31,14 +32,20 @@
                o.customer_id,
                o.customer_name,
                o.project,
-               SUM(fc.quantity)   as quantity,
+               SUM(fc.quantity)   as previous_process_quantity,
                #{previousProcess} as previous_process,
                #{nextProcess}     as next_process,
-               #{process} as  this_process
+               #{process} as  this_process,
+               ifnull((rw.reviewed_state),1) as reviewed_state  -- 涓嬪伐搴忓鏍哥姸鎬�
         from sd.order as o
-                 left join flow_card as fc on fc.order_id = o.order_id
+        left join flow_card as fc on fc.order_id = o.order_id
+        left join (select if(count(reviewed_state)>0 and process_id=null,1,0) as reviewed_state ,
+                          process_id
+                   from reporting_work
+                   where this_process=#{previousProcess} and reviewed_state=0 and process_id=#{processIdStr}) as rw
+        on rw.process_id = fc.process_id
         where fc.process_id = #{processIdStr}
-          and position(fc.technology_number in #{technologyStr})
+          and fc.technology_number = #{technologyStr}
         GROUP BY fc.process_id
     </select>
 
@@ -80,7 +87,7 @@
             ogd.child_width,
             ogd.child_height,
             od.shape,
-            fc.quantity -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
+            fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity,
             odpd.reporting_work_num_count as completed,
             odpd.broken_num as onceBroken
         FROM
@@ -123,14 +130,26 @@
             ogd.child_width,
             ogd.child_height,
             od.shape,
-            odpds.reporting_work_num -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
+            odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity,
             odpd.reporting_work_num_count as completed,
-            odpd.broken_num as onceBroken
+            odpd.broken_num as onceBroken,
+            ogd.`group`
+
+
         FROM
             sd.order_detail AS od
         LEFT JOIN sd.order_glass_detail AS ogd
                 ON od.order_id = ogd.order_id
                 AND od.order_number = ogd.order_number
+        <if test="process == '澶硅兌'">
+            AND ogd.`group` = (select `group`
+                               from sd.order_glass_detail
+                               where order_id = ogd.order_id
+                               and order_number = ogd.order_number
+                               and technology_number =#{technologyStr}
+                               limit 1)
+        </if>
+
         LEFT JOIN flow_card AS fc
                 ON fc.order_id = ogd.order_id
                 and fc.production_id=ogd.production_id
@@ -152,8 +171,10 @@
             and c.technology_number = fc.technology_number
         WHERE
             fc.process_id = #{processIdStr}
-          AND fc.technology_number = #{technologyStr}
-          AND odpd.process = #{process}
+        <if test="process != '涓┖' and process != '澶硅兌' and process != '鍖呰'">
+           AND fc.technology_number = #{technologyStr}
+        </if>
+        AND odpd.process = #{process}
         order by fc.order_number
     </select>
 
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
index f826223..d022876 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
@@ -154,6 +154,13 @@
     </select>
 
 
+    <!--鏌ヨdetail鏄庣粏-->
+    <select id="reportingWorkId">
+        select * from reporting_work_detail
+        where reporting_work_id =  #{reportingWorkId}
+    </select>
+
+
     <!--<where>
 
             create_time <![CDATA[>=]]> #{startTime} and create_time <![CDATA[<=]]> #{endTime}}
diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/SysMenu.xml b/north-glass-erp/src/main/resources/mapper/userInfo/SysMenu.xml
index 896626b..df037a3 100644
--- a/north-glass-erp/src/main/resources/mapper/userInfo/SysMenu.xml
+++ b/north-glass-erp/src/main/resources/mapper/userInfo/SysMenu.xml
@@ -9,6 +9,7 @@
         from sys_menu as a
         where
             a.state=1
+            and a.languageType = #{lang}
         order by a.listSort
         ;
     </select>
diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/SysMenuItem.xml b/north-glass-erp/src/main/resources/mapper/userInfo/SysMenuItem.xml
index c27acd2..fed0668 100644
--- a/north-glass-erp/src/main/resources/mapper/userInfo/SysMenuItem.xml
+++ b/north-glass-erp/src/main/resources/mapper/userInfo/SysMenuItem.xml
@@ -9,6 +9,7 @@
         from `sys_menu_item` as a
         where
             a.state=1
+           and a.languageType = #{lang}
         order by
             a.menuId,a.listSort
         ;
diff --git a/north-glass-erp/target/classes/mapper/pp/ReportingWork.xml b/north-glass-erp/target/classes/mapper/pp/ReportingWork.xml
index 2ce4438..333af58 100644
--- a/north-glass-erp/target/classes/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/target/classes/mapper/pp/ReportingWork.xml
@@ -9,6 +9,8 @@
         <result property="previousProcess" column="previous_process"/>
         <result property="nextProcess" column="next_process"/>
         <result property="thisProcess" column="this_process"/>
+        <result property="reviewedState" column="reviewed_state"/>
+        <result property="previousProcessQuantity" column="previous_process_quantity"/>
         <association property="order" javaType="com.example.erp.entity.sd.Order">
             <result property="customerId" column="customer_id"/>
             <result property="customerName" column="customer_name"/>
@@ -17,7 +19,6 @@
         <association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard">
             <result property="orderId" column="order_id"/>
             <result property="productionId" column="production_id"/>
-            <result property="quantity" column="quantity"/>
         </association>
         <association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail">
             <result property="completedQuantity" column="completed_quantity"/>
@@ -31,14 +32,20 @@
                o.customer_id,
                o.customer_name,
                o.project,
-               SUM(fc.quantity)   as quantity,
+               SUM(fc.quantity)   as previous_process_quantity,
                #{previousProcess} as previous_process,
                #{nextProcess}     as next_process,
-               #{process} as  this_process
+               #{process} as  this_process,
+               ifnull((rw.reviewed_state),1) as reviewed_state  -- 涓嬪伐搴忓鏍哥姸鎬�
         from sd.order as o
-                 left join flow_card as fc on fc.order_id = o.order_id
+        left join flow_card as fc on fc.order_id = o.order_id
+        left join (select if(count(reviewed_state)>0 and process_id=null,1,0) as reviewed_state ,
+                          process_id
+                   from reporting_work
+                   where this_process=#{previousProcess} and reviewed_state=0 and process_id=#{processIdStr}) as rw
+        on rw.process_id = fc.process_id
         where fc.process_id = #{processIdStr}
-          and position(fc.technology_number in #{technologyStr})
+          and fc.technology_number = #{technologyStr}
         GROUP BY fc.process_id
     </select>
 
@@ -80,7 +87,7 @@
             ogd.child_width,
             ogd.child_height,
             od.shape,
-            fc.quantity -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
+            fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity,
             odpd.reporting_work_num_count as completed,
             odpd.broken_num as onceBroken
         FROM
@@ -123,14 +130,26 @@
             ogd.child_width,
             ogd.child_height,
             od.shape,
-            odpds.reporting_work_num -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
+            odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity,
             odpd.reporting_work_num_count as completed,
-            odpd.broken_num as onceBroken
+            odpd.broken_num as onceBroken,
+            ogd.`group`
+
+
         FROM
             sd.order_detail AS od
         LEFT JOIN sd.order_glass_detail AS ogd
                 ON od.order_id = ogd.order_id
                 AND od.order_number = ogd.order_number
+        <if test="process == '澶硅兌'">
+            AND ogd.`group` = (select `group`
+                               from sd.order_glass_detail
+                               where order_id = ogd.order_id
+                               and order_number = ogd.order_number
+                               and technology_number =#{technologyStr}
+                               limit 1)
+        </if>
+
         LEFT JOIN flow_card AS fc
                 ON fc.order_id = ogd.order_id
                 and fc.production_id=ogd.production_id
@@ -152,8 +171,10 @@
             and c.technology_number = fc.technology_number
         WHERE
             fc.process_id = #{processIdStr}
-          AND fc.technology_number = #{technologyStr}
-          AND odpd.process = #{process}
+        <if test="process != '涓┖' and process != '澶硅兌' and process != '鍖呰'">
+           AND fc.technology_number = #{technologyStr}
+        </if>
+        AND odpd.process = #{process}
         order by fc.order_number
     </select>
 
diff --git a/north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml b/north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml
index f826223..d022876 100644
--- a/north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml
+++ b/north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml
@@ -154,6 +154,13 @@
     </select>
 
 
+    <!--鏌ヨdetail鏄庣粏-->
+    <select id="reportingWorkId">
+        select * from reporting_work_detail
+        where reporting_work_id =  #{reportingWorkId}
+    </select>
+
+
     <!--<where>
 
             create_time <![CDATA[>=]]> #{startTime} and create_time <![CDATA[<=]]> #{endTime}}
diff --git a/north-glass-erp/target/classes/mapper/userInfo/SysMenu.xml b/north-glass-erp/target/classes/mapper/userInfo/SysMenu.xml
index 896626b..df037a3 100644
--- a/north-glass-erp/target/classes/mapper/userInfo/SysMenu.xml
+++ b/north-glass-erp/target/classes/mapper/userInfo/SysMenu.xml
@@ -9,6 +9,7 @@
         from sys_menu as a
         where
             a.state=1
+            and a.languageType = #{lang}
         order by a.listSort
         ;
     </select>
diff --git a/north-glass-erp/target/classes/mapper/userInfo/SysMenuItem.xml b/north-glass-erp/target/classes/mapper/userInfo/SysMenuItem.xml
index c27acd2..fed0668 100644
--- a/north-glass-erp/target/classes/mapper/userInfo/SysMenuItem.xml
+++ b/north-glass-erp/target/classes/mapper/userInfo/SysMenuItem.xml
@@ -9,6 +9,7 @@
         from `sys_menu_item` as a
         where
             a.state=1
+           and a.languageType = #{lang}
         order by
             a.menuId,a.listSort
         ;

--
Gitblit v1.8.0