From 9a0cf79fa57427d7a38d55ad8b33622c1dcc18aa Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 26 一月 2024 16:06:31 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml | 39 +
north-glass-erp/target/classes/mapper/sd/BasicData.xml | 22
.gitignore | 2
north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java | 43 +
north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml | 15
north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java | 23
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java | 3
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java | 27
north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java | 8
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java | 10
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 72 ++
north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedOperateLog.java | 5
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java | 9
north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java | 2
north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java | 16
north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java | 11
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue | 313 +++++---
north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java | 44 +
north-glass-erp/src/main/resources/mapper/sd/BasicData.xml | 22
north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java | 6
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java | 34
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue | 258 +++---
north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java | 22
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 332 ++++++++-
north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml | 39 +
north-glass-erp/target/classes/mapper/sd/OrderMapper.xml | 15
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 91 ++
north-glass-erp/src/main/resources/application.yml | 20
north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java | 4
north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue | 3
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java | 14
north-glass-erp/pom.xml | 19
north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java | 9
north-glass-erp/src/main/resources/mapper/sd/OrderDetail.xml | 57 +
north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java | 16
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml | 398 +++++++++++
north-glass-erp/target/classes/application.yml | 20
north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java | 6
38 files changed, 1,695 insertions(+), 354 deletions(-)
diff --git a/.gitignore b/.gitignore
index efbaeef..0d98b3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,4 @@
hs_err_pid*
# Ignore .idea files
-**/.idea/
\ No newline at end of file
+**/.idea/
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
index 8a7f575..6cee0e5 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -2,7 +2,12 @@
import {reactive, ref} from "vue";
import {useRouter} from 'vue-router'
+import request from "@/utils/request";
+import deepClone from "@/utils/deepClone";
+import VXETable from "vxe-table";
let router=useRouter()
+let produceList = ref([])
+let tableRef = ref([])
const getTableRow = (row,type) =>{
switch (type) {
case 'edit' :{
@@ -21,6 +26,109 @@
}
}
}
+
+
+
+const hasDecimal=(value)=>{
+ const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
+ return regex.test(value) //杩斿洖true/false
+}
+
+const hasDecimalhtml=(item,row)=>{
+ let aa=item.split('.').length
+ if (aa===2){
+ return row[item.split('.')[0]][item.split('.')[1]]
+ }else if(aa===3){
+ return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]]
+ }
+
+
+}
+
+
+//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
+let filterData = ref({
+ orderDetail:{
+ orderNumber:'',
+ productName:'',
+ productId:'',
+ width:'',
+ height:'',
+ quantity:''
+ },
+ order:{
+ orderId:'',
+ creater:'',
+ project:'',
+ area:'',
+ batch:''
+
+ }
+})
+
+
+//绗竴娆¤皟鐢�
+request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
+
+ if(res.code==200){
+ console.log(res.data)
+ pageTotal.value=res.data.total
+ pageNum=1
+ produceList = deepClone(res.data.data)
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+})
+
+
+//瀹氫箟椤甸潰鎬婚〉鏁�
+let pageTotal=ref('')
+//瀹氫箟褰撳墠椤垫暟
+let pageNum=$ref(1)
+let pageState = null
+
+/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
+const changeFilterEvent = (event, option, $panel,) => {
+ // 鎵嬪姩瑙﹀彂绛涢��
+ $panel.changeOption(event, !!option.data, option)
+}
+function filterChanged(column){
+ gridOptions.loading=true
+ //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
+ let value = column.datas[0]!=undefined?column.datas[0]:''
+ value = value.trim()
+ //鍒ゆ柇鏄惁瀛樺湪澶栭敭
+ if (column.property.indexOf('.')>-1){
+ const columnArr = column.property.split('.')
+ filterData.value[columnArr[0]] = {
+ [columnArr[1]]:value
+ }
+ }else{
+ filterData.value[column.property] = value
+ }
+ request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
+
+ if(res.code==200){
+ console.log(res.data)
+ pageTotal.value=res.data.total
+ pageNum=1
+ produceList = deepClone(res.data.data)
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+}
+
+
+
+
+
@@ -55,34 +163,29 @@
showStatus: true
},//琛ㄥご鍙傛暟
columns:[
- {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
+ {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
{ type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
{ type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
// {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
- {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'floorNumber', width: '120',title: '妤煎眰缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'finishedProductNumber',width: '100', title: '鎴愬搧缂栧彿', sortable: true,showOverflow:"ellipsis"},
- {field: 'finishedProductName', width: '100',title: ' 鎴愬搧鍚嶇О', sortable: true},
- {field: 'productName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
- {field: 'length', width: '100',title: '闀垮害', sortable: true},
- {field: 'width',width: '100', title: '瀹藉害', sortable: true},
- {field: 'salesperson', width: '100',title: '涓氬姟鍛�', sortable: true},
- {field: 'customerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
- {field: 'projectName', width: '100',title: '椤圭洰鍚嶇О', sortable: true},
- {field: 'orderNumber',width: '140', title: '璁㈠簭', sortable: true},
- {field: 'totalOrders',width: '140', title: '璁㈠崟鎬绘暟', sortable: true},
- {field: 'quantity',width: '100', title: '鏁伴噺', sortable: true},
- {field: 'completion',width: '140', title: '瀹屽伐', sortable: true},
- {field: 'area',width: '140', title: '闈㈢Н', sortable: true},
- {field: 'processCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true},
- {field: 'quantityEntered',width: '100', title: '宸插叆鏁伴噺', sortable: true},
- {field: 'nextProcess',width: '100', title: ' 涓嬪伐搴�', sortable: true},
- {field: 'Batch',width: '100', title: '鎵规', sortable: true},
+ {field: 'order.orderId', width: '150',title: '閿�鍞崟鍙�', showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.buildingNumber', width: '120',title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.productId',width: '100', title: '浜у搧缂栧彿', filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.productName',width: '100', title: '浜у搧鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.width', width: '100',title: '瀹藉害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.height',width: '100', title: '楂樺害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.creater', width: '100',title: '涓氬姟鍛�', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.project', width: '100',title: '椤圭洰鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderNumber',width: '140', title: '璁㈠簭', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.quantity',width: '140', title: '璁㈠崟鎬绘暟', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'inventoryQuantity',width: '100', title: '瀹屽伐鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.area',width: '140', title: '闈㈢Н', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'processId',width: '100', title: '娴佺▼鍗″彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'receivedQuantity',width: '100', title: '宸插叆鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.batch',width: '100', title: '鎵规', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
],//琛ㄥご鎸夐挳
toolbarConfig: {
buttons: [{
'name': '纭鍏ュ簱',status: 'primary',
-
'code':'add'
}
],
@@ -91,103 +194,15 @@
print: true,
zoom: true,
custom: true
- },
- data: [
- {
- "SalesOrderNumber": "NG23072003",
- "floorNumber": "10059419",
- "finishedProductNumber": "0604000027",
- "finishedProductName": "NG23072003A01",
- "productName": '閽㈠寲鐜荤拑',
- "length": "1075.00",
- "width": "440.00",
- "salesperson": "灏忓渤",
- "customerName": "澶уご",
- "projectName": "Tempered Glass",
- "orderNumber": "1",
- "totalOrders": "3800",
- "quantity": "1140",
- "completion":'1140',
- "area": "505.270000",
- "processCardNumber": "NG23112311A01",
- "quantityEntered": "0",
- "nextProcess": "Finished Product",
- "Batch": "涓�",
- },
- {
- "SalesOrderNumber": "NG23072003",
- "floorNumber": "10059419",
- "finishedProductNumber": "0604000027",
- "finishedProductName": "NG23072003A01",
- "productName": '閽㈠寲鐜荤拑',
- "length": "1075.00",
- "width": "440.00",
- "salesperson": "灏忓渤",
- "customerName": "澶уご",
- "projectName": "Tempered Glass",
- "orderNumber": "1",
- "totalOrders": "3800",
- "quantity": "1140",
- "completion":'1140',
- "area": "505.270000",
- "processCardNumber": "NG23112311A01",
- "quantityEntered": "0",
- "nextProcess": "Finished Product",
- "Batch": "涓�",
- },
- {
- "SalesOrderNumber": "NG23072003",
- "floorNumber": "10059419",
- "finishedProductNumber": "0604000027",
- "finishedProductName": "NG23072003A01",
- "productName": '閽㈠寲鐜荤拑',
- "length": "1075.00",
- "width": "440.00",
- "salesperson": "灏忓渤",
- "customerName": "澶уご",
- "projectName": "Tempered Glass",
- "orderNumber": "1",
- "totalOrders": "3800",
- "quantity": "1140",
- "completion":'1140',
- "area": "505.270000",
- "processCardNumber": "NG23112311A01",
- "quantityEntered": "0",
- "nextProcess": "Finished Product",
- "Batch": "涓�",
- },
- {
- "SalesOrderNumber": "NG23072003",
- "floorNumber": "10059419",
- "finishedProductNumber": "0604000027",
- "finishedProductName": "NG23072003A01",
- "productName": '閽㈠寲鐜荤拑',
- "length": "1075.00",
- "width": "440.00",
- "salesperson": "灏忓渤",
- "customerName": "澶уご",
- "projectName": "Tempered Glass",
- "orderNumber": "1",
- "totalOrders": "3800",
- "quantity": "1140",
- "completion":'1140',
- "area": "505.270000",
- "processCardNumber": "NG23112311A01",
- "quantityEntered": "0",
- "nextProcess": "Finished Product",
- "Batch": "涓�",
- },
-
- ],//table body瀹為檯鏁版嵁
+ }
+ ,//table body瀹為檯鏁版嵁
footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
return[
columns.map((column, columnIndex) => {
if (columnIndex === 0) {
- return '鍚堣:'
+ return `椤垫暟:${pageNum}/${pageTotal.value}`
}
- // if (props.tableProp.footList.includes(column.field)) {
- // return sumNum(data, column.field)
- // }
+
return ''
})
]
@@ -195,14 +210,64 @@
})
const xGrid = ref();
+const storageRegion = ref(null);
+const remark = ref(null);
+const flowcard = ref(null);
const gridEvents = {
toolbarButtonClick ({ code }) {
const $grid = xGrid.value
if ($grid) {
switch (code) {
case 'add': {
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
- return;
+ //鍒ゆ柇杈撳叆妗嗗�间笉鑳戒负null
+ if(storageRegion.value!==null && storageRegion.value!=""){
+ const $table = xGrid.value
+ if ($table) {
+ const selectRecords = $table.getCheckboxRecords()
+ //寰幆鑾峰彇閫変腑鐨勫閫夋
+ for (let i=0;i<selectRecords.length;i++){
+ //瀹氫箟鍚庣闇�瑕佺殑鍙傛暟
+ let flowData = ref({
+ finishedGoodsInventory:{
+ storageRegion:storageRegion.value,
+ remark:remark.value
+ },
+
+ flowcard:selectRecords[0]
+ })
+ console.log(flowcard.value)
+ request.post("/FinishedGoodsInventory/addseletwarehousing",flowData.value).then((res) => {
+ /* request.post("/FinishedGoodsInventory/addseletwarehousing/"+storageRegion.value+"/"+remark.value,flowData.value).then((res) => {*/
+ if(res.code===200){
+ alert(`鍏ュ簱鎴愬姛`)
+ request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
+
+ if(res.code===200){
+ console.log(res.data)
+ pageTotal.value=res.data.total
+ pageNum=1
+ produceList = deepClone(res.data.data)
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+ }
+ }
+ return;
+
+
+ }else{
+ alert(`璇疯緭鍏ュ簱浣峘)
+ }
+
}
}
@@ -215,6 +280,17 @@
<template>
<div class="main-div-customer">
+ <div id="selectForm">
+ <el-input style="width: 200px" v-model="storageRegion" class="m-2" placeholder="璇疯緭鍏ュ簱浣�">
+ </el-input>
+ <el-input style="width: 200px" v-model="remark" class="m-2" placeholder="璇疯緭鍏ュ娉�">
+ </el-input>
+
+
+
+ </div>
+
+
<vxe-grid
max-height="100%"
@filter-change="filterChanged"
@@ -227,9 +303,10 @@
<!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
<template #content="{ row}">
<ul class="expand-wrapper">
- <li v-for="(item,key,index) in row">
- <span style="font-weight: bold">{{key+': '}}</span>
- <span>{{ item }}</span>
+ <li v-for="(item,key,index) in gridOptions.columns" v-show="item.field!=undefined ">
+ <span style="font-weight: bold">{{item.title+': '}}</span>
+ <span v-if="hasDecimal(item.field)">{{ hasDecimalhtml(item.field,row) }}</span>
+ <span v-else>{{ row[item.field] }}</span>
</li>
</ul>
</template>
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue
index 8cbee20..dc100ed 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue
@@ -2,7 +2,11 @@
import {reactive, ref} from "vue";
import {useRouter} from 'vue-router'
+import request from "@/utils/request";
+import deepClone from "@/utils/deepClone";
+import {ElMessage} from "element-plus";
let router=useRouter()
+let produceList = ref([])
const getTableRow = (row,type) =>{
switch (type) {
case 'edit' :{
@@ -20,6 +24,100 @@
break
}
}
+}
+
+const hasDecimal=(value)=>{
+ const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
+ return regex.test(value) //杩斿洖true/false
+}
+
+const hasDecimalhtml=(item,row)=>{
+ let aa=item.split('.').length
+ if (aa===2){
+ return row[item.split('.')[0]][item.split('.')[1]]
+ }else if(aa===3){
+ return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]]
+ }
+
+
+}
+
+
+
+
+//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
+let filterData = ref({
+ orderDetail:{
+ orderNumber:'',
+ productName:'',
+ productId:'',
+ width:'',
+ height:''
+ },
+ order:{
+ orderId:'',
+ orderType:'',
+ project:''
+ }
+})
+
+
+
+//绗竴娆¤皟鐢�
+request.post("/FinishedGoodsInventory/getselet/1/100",filterData.value).then((res) => {
+
+ if(res.code==200){
+ console.log(res.data)
+ pageTotal.value=res.data.total
+ pageNum=1
+ produceList = deepClone(res.data.data)
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+})
+
+
+//瀹氫箟椤甸潰鎬婚〉鏁�
+let pageTotal=ref('')
+//瀹氫箟褰撳墠椤垫暟
+let pageNum=$ref(1)
+let pageState = null
+
+/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
+const changeFilterEvent = (event, option, $panel,) => {
+ // 鎵嬪姩瑙﹀彂绛涢��
+ $panel.changeOption(event, !!option.data, option)
+}
+function filterChanged(column){
+ gridOptions.loading=true
+ //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
+ let value = column.datas[0]!=undefined?column.datas[0]:''
+ value = value.trim()
+ //鍒ゆ柇鏄惁瀛樺湪澶栭敭
+ if (column.property.indexOf('.')>-1){
+ const columnArr = column.property.split('.')
+ filterData.value[columnArr[0]] = {
+ [columnArr[1]]:value
+ }
+ }else{
+ filterData.value[column.property] = value
+ }
+ request.post("/FinishedGoodsInventory/getselet/1/100",filterData.value).then((res) => {
+
+ if(res.code==200){
+ console.log(res.data.data)
+ pageTotal.value=res.data.total
+ pageNum=1
+ produceList = deepClone(res.data.data)
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ }
+ })
}
@@ -55,40 +153,33 @@
showStatus: true
},//琛ㄥご鍙傛暟
columns:[
- {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
+ {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
// { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
{ type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
// {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
- {field: 'OrderNumber', width:'150', title: '璁㈠崟搴忓彿', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
- {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'OrderType', width: '100',title: '璁㈠崟绫诲瀷', sortable: true},
- {field: 'ProcessCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"},
- {field: 'ProductName', width: '100',title: '浜у搧鍚嶇О', sortable: true},
- {field: 'ProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true},
- {field: 'CustomerNumber', width: '100',title: '瀹㈡埛缂栧彿', sortable: true},
- {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
- {field: 'Length', width: '100',title: '闀垮害', sortable: true},
- {field: 'Width',width: '100', title: '瀹藉害', sortable: true},
- {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
- {field: 'InventoryCount',width: '140', title: '搴撳瓨鏁�', sortable: true},
- {field: 'ActualSingleArea',width: '140', title: '瀹為檯鍗曠墖闈㈢Н', sortable: true},
- {field: 'Area',width: '100', title: '闈㈢Н', sortable: true},
- {field: 'SettlementSingleArea',width: '140', title: '缁撶畻鍗曠墖闈㈢Н', sortable: true},
- {field: 'SettlementTotalArea',width: '140', title: '缁撶畻鎬婚潰绉�', sortable: true},
- {field: 'AvailableQuantity',width: '100', title: '鍙敤鏁伴噺', sortable: true},
- {field: 'FloorNumber',width: '100', title: '妤煎眰缂栧彿', sortable: true},
- {field: 'DeliveryAddress',width: '100', title: '閫佽揣鍦板潃', sortable: true},
- {field: 'Batch',width: '100', title: '鎵规', sortable: true},
- {field: 'Salesman',width: '100', title: '涓氬姟鍛�', sortable: true},
- {field: 'OrdinaryMillimeter',width: '100', title: '骞冲嚒姣背', sortable: true},
- {field: 'Weight',width: '100', title: '閲嶉噺', sortable: true},
- {field: 'LastWarehousingDate',width: '140', title: '鏈�鍚庡叆搴撴棩鏈�', sortable: true},
- {field: 'LocationNumber',width: '100', title: '搴撲綅缂栧彿', sortable: true},
- {field: 'StorageArea',width: '100', title: '瀛樺偍鍖哄煙', sortable: true},
- {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
- {field: 'DocumentStatus',width: '100', title: '鍗曟嵁鐘舵��', sortable: true},
- {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
+ {field: 'orderDetail.orderNumber', width:'150', title: '璁㈠崟搴忓彿', filters:[{ data: '' }],editRender: { name: 'input', attrs: { placeholder: '' } } },
+ {field: 'order.orderId', width: '150',title: '閿�鍞崟鍙�',showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.project', width: '120',title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.orderType', width: '100',title: '璁㈠崟绫诲瀷', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.productName', width: '100',title: '浜у搧鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.productId',width: '100', title: '浜у搧缂栧彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+ {field: 'orderDetail.width', width: '100',title: '瀹藉害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'orderDetail.height',width: '100', title: '楂樺害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'inventory',width: '140', title: '搴撳瓨鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'quantityAvailable',width: '140', title: '鍙敤鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+ {field: 'actualSignalArea',width: '140', title: '瀹為檯鍗曠墖闈㈢Н', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'area',width: '100', title: '鎬婚潰绉�', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+ /*{field: 'warehouseNumber',width: '100', title: '浠撳簱缂栧彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},*/
+ {field: 'storageRegion',width: '100', title: '搴撳瓨鍖哄煙', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'status',width: '100', title: '鐘舵��', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+ {field: 'enterStorageTime',width: '140', title: '鍏ュ簱鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'updateTime',width: '140', title: '淇敼鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'endTime',width: '100', title: '鍑哄簱鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'remark',width: '80', title: '澶囨敞', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
],//琛ㄥご鎸夐挳
toolbarConfig: {
buttons: [
@@ -103,109 +194,13 @@
zoom: true,
custom: true
},
- data: [
- {
- "OrderNumber": "1",
- "SalesOrderNumber": "NG23072003",
- "ProjectName": "閽㈠寲鐜荤拑",
- "OrderType": "鏅�氳鍗�",
- "ProcessCardNumber": "NG23072003A01",
- "ProductName": '',
- "ProductNumber": "06040000022",
- "CustomerNumber": "KD0071",
- "CustomerName": "浠�",
- "Length": "1075.00",
- "Width": "440.00",
- "Thickness": "3.00",
- "InventoryCount": "360",
- "ActualSingleArea": "0.473000",
- "Area": "170.28",
- "SettlementSingleArea": "0.47",
- "SettlementTotalArea": "170.28",
- "AvailableQuantity": "360",
- "FloorNumber": "10927769",
- "DeliveryAddress": "涓婃捣",
- "Batch": "娴嬭瘯",
- "OrdinaryMillimeter": "闄堝畻鍑�",
- "Weight": "1915.6500",
- "LastWarehousingDate": "2023-09-22 08:31:17",
- "LocationNumber": "鎴愬搧搴�",
- "StorageArea": "娴嬭瘯",
- "Location": "2",
- "DocumentStatus": "1",
- "Remarks": "娴嬭瘯",
- },
- {
- "OrderNumber": "1",
- "SalesOrderNumber": "NG23072003",
- "ProjectName": "閽㈠寲鐜荤拑",
- "OrderType": "鏅�氳鍗�",
- "ProcessCardNumber": "NG23072003A01",
- "ProductName": '',
- "ProductNumber": "06040000022",
- "CustomerNumber": "KD0071",
- "CustomerName": "浠�",
- "Length": "1075.00",
- "Width": "440.00",
- "Thickness": "3.00",
- "InventoryCount": "360",
- "ActualSingleArea": "0.473000",
- "Area": "170.28",
- "SettlementSingleArea": "0.47",
- "SettlementTotalArea": "170.28",
- "AvailableQuantity": "360",
- "FloorNumber": "10927769",
- "DeliveryAddress": "涓婃捣",
- "Batch": "娴嬭瘯",
- "OrdinaryMillimeter": "闄堝畻鍑�",
- "Weight": "1915.6500",
- "LastWarehousingDate": "2023-09-22 08:31:17",
- "LocationNumber": "鎴愬搧搴�",
- "StorageArea": "娴嬭瘯",
- "Location": "2",
- "DocumentStatus": "1",
- "Remarks": "娴嬭瘯",
- },{
- "OrderNumber": "1",
- "SalesOrderNumber": "NG23072003",
- "ProjectName": "閽㈠寲鐜荤拑",
- "OrderType": "鏅�氳鍗�",
- "ProcessCardNumber": "NG23072003A01",
- "ProductName": '',
- "ProductNumber": "06040000022",
- "CustomerNumber": "KD0071",
- "CustomerName": "浠�",
- "Length": "1075.00",
- "Width": "440.00",
- "Thickness": "3.00",
- "InventoryCount": "360",
- "ActualSingleArea": "0.473000",
- "Area": "170.28",
- "SettlementSingleArea": "0.47",
- "SettlementTotalArea": "170.28",
- "AvailableQuantity": "360",
- "FloorNumber": "10927769",
- "DeliveryAddress": "涓婃捣",
- "Batch": "娴嬭瘯",
- "OrdinaryMillimeter": "闄堝畻鍑�",
- "Weight": "1915.6500",
- "LastWarehousingDate": "2023-09-22 08:31:17",
- "LocationNumber": "鎴愬搧搴�",
- "StorageArea": "娴嬭瘯",
- "Location": "2",
- "DocumentStatus": "1",
- "Remarks": "娴嬭瘯",
- },
- ],//table body瀹為檯鏁版嵁
footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
return[
columns.map((column, columnIndex) => {
if (columnIndex === 0) {
- return '鍚堣:'
+ return `椤垫暟:${pageNum}/${pageTotal.value}`
}
- // if (props.tableProp.footList.includes(column.field)) {
- // return sumNum(data, column.field)
- // }
+
return ''
})
]
@@ -240,6 +235,8 @@
}
+
+
</script>
<template>
@@ -259,7 +256,8 @@
<ul class="expand-wrapper">
<li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
<span style="font-weight: bold">{{item.title+': '}}</span>
- <span>{{ row[item.field] }}</span>
+ <span v-if="hasDecimal(item.field)">{{ hasDecimalhtml(item.field,row) }}</span>
+ <span v-else>{{ row[item.field] }}</span>
</li>
</ul>
</template>
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 545b2f5..cb2a9b7 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
@@ -1,9 +1,12 @@
-<script setup>
+<script lang="ts" setup>
import {reactive, ref} from "vue"
-import {VXETable} from "vxe-table"
import {useRouter} from "vue-router"
-const router = useRouter()
+import * as XLXS from "xlsx"
+import {ElMessage} from "element-plus"
+import request from "@/utils/request"
+import deepClone from "@/utils/deepClone"
+const router = useRouter()
const xGrid = ref()
const gridOptions = reactive({
border: "full",//琛ㄦ牸鍔犺竟妗�
@@ -18,6 +21,15 @@
exportConfig: {},
scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
showOverflow:true,
+ menuConfig: {
+ body: {
+ options: [
+ [
+ { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false }
+ ]
+ ]
+ }
+ },
columnConfig: {
resizable: true,
useKey: true
@@ -30,45 +42,103 @@
},
editConfig: {
trigger: 'click',
- mode: 'row',
+ mode: 'cell',
showStatus: true
},//琛ㄥご鍙傛暟
columns:[
+ // {title: '鎿嶄綔', width: 110,fixed:"left",slots: { default: 'openProductList' }},
{type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
- {field: 'orderID',width:120, title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '缁撶畻鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'orderID',width:120, title: '澶栬喘',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
+ {field: 'buildingNumber',width:120, title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'productId',width:140, title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'productName',width:120, title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'price',width:140, title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'quantity',width:120, title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'grossAmount',width:120, title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'width',width:120, title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'height',width:120, title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'area',width:150, title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
+ {field: 'grossArea',width:140, title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
+ {field: 'computeArea',width:180, title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'computeGrossArea',width:140, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'shape',width:120, title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'bendRadius',width:140, title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'edgingType',width:140, title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'processingNote',width:140, title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'remarks',width:120, title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
- ],//琛ㄥご鎸夐挳
+ ],
+ //琛ㄥ崟楠岃瘉
+ editRules: {
+ buildingNumber: [
+ { required: false},
+ { min: 0, max: 255, message: '鍚嶇О闀垮害鍦� 0 鍒� 255 涓瓧绗�' }
+ ],
+ productId: [
+ { required: true, message: '璇烽�夋嫨浜у搧' }
+ ],
+ price: [
+ {
+ validator ({ cellValue }) {
+ const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
+ if (cellValue && !regex.test(cellValue)) {
+ return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+ }
+ }
+ }
+ ],
+ computeArea: [
+ {
+ validator ({ cellValue }) {
+ const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
+ if (cellValue && !regex.test(cellValue)) {
+ return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+ }
+ }
+ }
+ ],
+ quantity: [
+ { type: 'number', min: 0, message: '璇疯緭鍏ュぇ浜庣瓑浜�0鐨勬暟鍊�' }
+ ],
+ width:[
+ {
+ validator ({ cellValue }) {
+ const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
+ if (cellValue && !regex.test(cellValue)) {
+ return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+ }
+ }
+ }
+ ],
+ height:[
+ {
+ validator ({ cellValue }) {
+ const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
+ if (cellValue && !regex.test(cellValue)) {
+ return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+ }
+ }
+ }
+ ]
+ },
toolbarConfig: {
buttons: [
{'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
{'code': 'Craft', 'name': '宸ヨ壓',status: 'primary'},
{'code': 'add', 'name': '瀹℃牳',status: 'primary',disabled: true},
- {'code': 'add', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
+ {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
],
- import: false,
- export: true,
- print: true,
+ slots: {
+ tools: 'toolbar_buttons'
+ },
+ // import: false,
+ // export: true,
+ // print: true,
zoom: true,
custom: true
- },
- data: [
- ],//table body瀹為檯鏁版嵁
+ }
+ ,
+ //table body瀹為檯鏁版嵁
footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
return[
columns.map((column, columnIndex) => {
@@ -84,26 +154,172 @@
}
})
-
const gridEvents = {
- toolbarButtonClick ({ code }) {
+ async toolbarButtonClick({code}) {
const $grid = xGrid.value
if ($grid) {
switch (code) {
case 'Craft': {
- router.push({path: '/main/order/updateOrderCraft', query: { orderID: 12123 }})
+ await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}})
+ break
+ }
+ case 'saveOrder': {
+ if ($grid.getTableData().tableData.length === 0){
+ ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�')
+ return
+ }
+ console.log($grid.getTableData().tableData)
+ if ($grid) {
+ const errMap = await $grid.validate(true)
+ if (errMap) {
+ ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
+ return
+ }
+ let order ={
+ title:titleUploadData.value,
+ detail:$grid.getTableData().tableData
+ }
+ saveOrder(order)
+ }
break
}
}
}
+ },//澶撮儴鎸夐挳浜嬩欢
+ menuClick ({ menu, row, column }) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (menu.code) {
+ case 'deleteList': {
+ $grid.removeCheckboxRow()
+ break
+ }
+ case 'addRow': {
+ if ($grid.getTableData().tableData.length >=240){
+ ElMessage.error('琛ㄦ牸鏁版嵁宸茶揪鍒版渶澶у�硷紒')
+ return
+ }
+ $grid.insert({})
+ //console.log($grid.getRecordset().insertRecords)
+ break
+ }
+ }
+ }
+ },
+ cellDblclick (params) {//琛ㄦ牸鍐呭鍙屽嚮鎵撳紑浜у搧鐣岄潰
+ const { row } = params
+ //alert("鎴戞墦寮�浜嗕骇鍝佺晫闈�")
}
}
+// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
+const titleUploadData = ref({
+ orderType:'',
+ alType:'',
+ icon:'',
+ orderClassify:'',
+ packType:'',
+ deliveryDate:''
+})
+
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+ orderType:[],
+ alType:[],
+ icon:[],
+ orderClassify:[],
+ packType:[],
+})
+//椤甸潰绗竴娆″姞杞芥墽琛�
+request.get(`/basicData/orderBasicData`).then((res) => {
+ if(res.code==200){
+ titleSelectJson.value=deepClone(res.data)
+ titleUploadData.value.orderType = titleSelectJson.value.orderType[0].id
+ titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].id
+ titleUploadData.value.icon = titleSelectJson.value.icon[0].id
+ titleUploadData.value.packType = titleSelectJson.value.packType[0].id
+ titleUploadData.value.alType = titleSelectJson.value.alType[0].id
+ const today = new Date
+ today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
+ titleUploadData.value.deliveryDate = today.getFullYear() +
+ '-' + ("0" + (today.getMonth() + 1)).slice(-2)
+ + '-' + ("0" + today.getDate()).slice(-2)
+ }else{
+ ElMessage.warning(res.msg)
+ }
+})
+
+const saveOrder = (order) => {
+ request.post(`/order/saveOrder`,order).then((res) => {
+ if(res.code==200){
+ ElMessage.success('淇濆瓨鎴愬姛')
+ }else {
+ ElMessage.warning(res.msg)
+ }
+ })
+}
+
+
+
+
+const countAmount = (row) => {
+ return
+}
+const area = (row) => {
+ return parseFloat((row.width * row.height/1000000).toFixed(2))
+}
+const countArea = (row) => {
+ return parseFloat((row.width * row.height/1000000).toFixed(2))*row.quantity
+}
+
+
+//瀵煎叆鍔熻兘
+const impotEvent = async () => {
+ const $grid = xGrid.value
+ const { files } = await $grid.readFile({
+ types: ['xls', 'xlsx']
+ })
+ const fileReader = new FileReader()
+ fileReader.onload = (event) => {
+ const data = event.target ? event.target.result : ''
+ const workbook = XLXS.read(data, { type: 'binary' })
+ let jsonData = XLXS.utils.sheet_to_json(workbook.Sheets.Sheet1).slice(1)
+ if(jsonData.length>240){
+ ElMessage.error('瀵煎叆鏁版嵁涓嶈兘瓒呰繃240鏉�,璇峰垎璁㈠崟瀵煎叆')
+ return
+ }
+ jsonData.forEach((item,index) => {
+ //item.computeArea
+ //console.log()
+ if(item.computeArea === undefined){
+ item.computeArea = area(item)
+ }
+ item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toString())
+ })
+
+ xGrid.value.loadData(jsonData)
+ }
+ fileReader.readAsBinaryString(files[0])
+}
+
+//琛屽崟鍏冩牸淇敼淇敼瑙﹀彂姝や簨浠�
+const editClosedEvent = ({ row, column }) => {
+ //鍒ゆ柇淇敼鐩稿簲鐨勬暟鍊间慨鏀归潰绉笌閲戦
+ if (['width', 'height', 'quantity', 'price'].includes(column.property)) {
+ row.area = area(row)
+ row.grossArea = countArea(row)
+ row.computeArea = row.area
+ row.computeGrossArea = row.grossArea
+ row.grossAmount=row.price * row.computeGrossArea
+ }else if(column.property === 'computeArea'){
+ row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toString())
+ row.grossAmount=row.price * row.computeGrossArea
+ }
+}
</script>
<template>
<div class="main-div">
-
<div class="order-primary" style="background-color: white">
<el-row>
<el-col :span="2"><el-text>*椤圭洰鍚嶇О锛�</el-text></el-col>
@@ -116,26 +332,42 @@
</el-col>
<el-col :span="2"><el-text>*璁㈠崟绫诲瀷锛�</el-text></el-col>
<el-col :span="2">
- <el-select clearable placeholder=" " >
- <el-option />
+ <el-select v-model="titleUploadData.orderType" clearable placeholder="" >
+ <el-option
+ v-for="item in titleSelectJson['orderType']"
+ :key="item.id"
+ :label="item.basicName"
+ :value="item.id"
+ />
</el-select>
</el-col>
<el-col :span="2"><el-text>璁㈠崟鍒嗙被锛�</el-text></el-col>
<el-col :span="2">
- <el-select clearable placeholder=" " >
- <el-option/>
+ <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " >
+ <el-option
+ v-for="item in titleSelectJson['orderClassify']"
+ :key="item.id"
+ :label="item.basicName"
+ :value="item.id"
+ />
</el-select>
</el-col>
<el-col :span="2"><el-text>鍟嗘爣閫夐」锛�</el-text></el-col>
<el-col :span="2">
- <el-select clearable placeholder=" " >
- <el-option/>
+ <el-select v-model="titleUploadData.icon" clearable placeholder=" " >
+ <el-option v-for="item in titleSelectJson['icon']"
+ :key="item.id"
+ :label="item.basicName"
+ :value="item.id"/>
</el-select>
</el-col>
<el-col :span="2"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
<el-col :span="2">
- <el-select clearable placeholder=" " >
- <el-option/>
+ <el-select v-model="titleUploadData.packType" clearable placeholder=" " >
+ <el-option v-for="item in titleSelectJson['packType']"
+ :key="item.id"
+ :label="item.basicName"
+ :value="item.id"/>
</el-select>
</el-col>
<!-- <el-col :span="2"><el-text /></el-col>-->
@@ -146,9 +378,10 @@
<el-col :span="2"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
<el-col :span="2">
<el-date-picker
- type="week"
- format="[Week] ww"
- placeholder="閫夋嫨鏃ユ湡"/>
+ v-model="titleUploadData.deliveryDate"
+ type="date"
+ placeholder="Pick a day"
+ />
</el-col>
<el-col :span="2"><el-text>鎵规锛�</el-text></el-col>
<el-col :span="2"><el-input/></el-col>
@@ -166,8 +399,11 @@
</el-col>
<el-col :span="2"><el-text>閾濇潯鏂瑰紡锛�</el-text></el-col>
<el-col :span="2">
- <el-select clearable placeholder=" " >
- <el-option/>
+ <el-select v-model="titleUploadData.alType" clearable placeholder=" " >
+ <el-option v-for="item in titleSelectJson['alType']"
+ :key="item.id"
+ :label="item.basicName"
+ :value="item.id"/>
</el-select>
</el-col>
</el-row>
@@ -201,6 +437,7 @@
ref="xGrid"
v-bind="gridOptions"
v-on="gridEvents"
+ @edit-closed="editClosedEvent"
>
<template #num1_filter="{ column, $panel }">
<div>
@@ -209,6 +446,11 @@
</div>
</div>
</template>
+ <template #toolbar_buttons>
+ <vxe-button @click="impotEvent">瀵煎叆</vxe-button>
+ </template>
+
+
</vxe-grid>
</div>
</div>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue b/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
index a1358c4..06789e7 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
@@ -134,9 +134,8 @@
//绗竴娆″姞杞芥暟鎹�
-request.post("/product/1/100/"+productGlassTypeStore.GlassType,filterData.value).then((res) => {
+request.post(`/product/1/100/${productGlassTypeStore.GlassType}`,filterData.value).then((res) => {
if(res.code==200){
- console.log(res.data.data)
pageTotal.value=res.data.total
produceList = produceList.value.concat(deepClone(res.data.data))
xGrid.value.reloadData(produceList)
diff --git a/north-glass-erp/pom.xml b/north-glass-erp/pom.xml
index 7d7140c..5123162 100644
--- a/north-glass-erp/pom.xml
+++ b/north-glass-erp/pom.xml
@@ -78,7 +78,7 @@
<version>3.5.1</version>
</dependency>
-<!-- SwaggerUi-->
+ <!-- SwaggerUi-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
@@ -102,11 +102,11 @@
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
-<!--websocket-->
-<!-- <dependency>-->
-<!-- <groupId>org.springframework.boot</groupId>-->
-<!-- <artifactId>spring-boot-starter-websocket</artifactId>-->
-<!-- </dependency>-->
+ <!--websocket-->
+ <!-- <dependency>-->
+ <!-- <groupId>org.springframework.boot</groupId>-->
+ <!-- <artifactId>spring-boot-starter-websocket</artifactId>-->
+ <!-- </dependency>-->
<dependency>
<groupId>io.netty</groupId>
@@ -119,6 +119,11 @@
<artifactId>fastjson</artifactId>
<version>1.2.24</version>
<scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.data</groupId>
+ <artifactId>spring-data-commons</artifactId>
+ <version>2.5.8</version>
</dependency>
</dependencies>
@@ -168,4 +173,4 @@
</snapshots>
</pluginRepository>
</pluginRepositories>-->
-</project>
+</project>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java
similarity index 78%
rename from north-glass-erp/src/main/java/com/example/erp/controller/OrderController.java
rename to north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java
index e61f42d..4c5a198 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java
@@ -1,19 +1,16 @@
package com.example.erp.controller;
-import com.example.erp.common.Result;
-import com.example.erp.mapper.OrderMapper;
-import com.example.erp.entity.Order;
+import com.example.erp.mapper.OrderTestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
//@CrossOrigin //瑙e喅鍗曚釜controller 璺ㄥ煙闂
@RestController
-@RequestMapping("/order")
+@RequestMapping("/order11111111")
-public class OrderController {
+public class OrderTestController {
@Autowired
- private OrderMapper orderMapper;
+ private OrderTestMapper orderMapper;
// @GetMapping //鏌ヨorder琛ㄧ粨鏋滈泦
// public Result index(){
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
new file mode 100644
index 0000000..6f36346
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
@@ -0,0 +1,44 @@
+package com.example.erp.controller.mm;
+
+
+
+import com.example.erp.common.Constants;
+import com.example.erp.common.Result;
+import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.exception.ServiceException;
+import com.example.erp.service.mm.FinishedGoodsInventoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.example.erp.entity.mm.FinishedGoodsInventory;
+
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/FinishedGoodsInventory")
+public class FinishedGoodsInventoryController {
+ @Autowired
+ FinishedGoodsInventoryService finishedGoodsInventoryService;
+
+ @PostMapping("/getselet/{pageNum}/{pageSize}")
+ public Result defaultDateFinishedGoodsInventory(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FinishedGoodsInventory finishedGoodsInventory){
+ System.out.println(finishedGoodsInventory);
+ return Result.seccess(finishedGoodsInventoryService.defaultDateFinishedGoodsInventory(pageNum,pageSize,finishedGoodsInventory));
+ }
+
+ @PostMapping("/getseletwarehousing/{pageNum}/{pageSize}")
+ public Result getseletwarehousing(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FlowCard flowCard){
+ System.out.println(flowCard);
+ return Result.seccess(finishedGoodsInventoryService.getseletwarehousing(pageNum,pageSize,flowCard));
+ }
+
+ @PostMapping("/addseletwarehousing")
+ public Result addseletwarehousing( @RequestBody Map<String,Map<String,Object>> object){
+ if(finishedGoodsInventoryService.addseletwarehousing(object)){
+ return Result.seccess();
+ }else {
+ throw new ServiceException(Constants.Code_500,"鍏ュ簱澶辫触");
+
+ }
+ }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java
new file mode 100644
index 0000000..aabb990
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java
@@ -0,0 +1,22 @@
+package com.example.erp.controller.sd;
+
+import com.example.erp.common.Result;
+import com.example.erp.service.sd.BasicDateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/basicData")
+public class BasicDataController {
+ @Autowired
+ BasicDateService basicDateService;
+ @GetMapping("/orderBasicData")
+ public Result getOrderBasicData(){
+ return Result.seccess(basicDateService.getOrderBasicData());
+ }
+}
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
new file mode 100644
index 0000000..1386624
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -0,0 +1,27 @@
+package com.example.erp.controller.sd;
+
+import cn.hutool.json.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.example.erp.common.Result;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.service.sd.OrderService;
+import org.apache.tomcat.Jar;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/order")
+public class OrderController {
+ @Autowired
+ private OrderService orderService;
+
+ @PostMapping("/saveOrder")
+ public Result saveOrder(@RequestBody Map<String, Object> orderMap) {
+ return Result.seccess(orderService.saveOrder(orderMap));
+ }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/Order.java b/north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java
similarity index 96%
rename from north-glass-erp/src/main/java/com/example/erp/entity/Order.java
rename to north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java
index ba47e17..73c883c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/Order.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java
@@ -7,7 +7,7 @@
@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
@TableName("`order`")
-public class Order {
+public class OrderTest {
@TableId(type = IdType.AUTO)
private Integer id;
private String orderId;
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
index a6eab00..40f2159 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
@@ -2,8 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
-import com.example.erp.entity.sd.Customer;
-import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.*;
import lombok.Data;
import java.time.LocalDate;
@@ -13,14 +12,14 @@
@TableId(type = IdType.AUTO)
private Long id;
- private String orderId;
- private Integer orderNumber;
+ private Order order;
+ private OrderDetail orderDetail;
private Integer inventory ;
private Double actualSignalArea;
private Double area;
private Integer quantityAvailable;
private String warehouseNumber;
- private LocalDate storageRegion;
+ private String storageRegion;
private Integer status;
private LocalDate enterStorageTime;
private String remark;
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedOperateLog.java b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedOperateLog.java
index 80c328e..2e74943 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedOperateLog.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedOperateLog.java
@@ -13,10 +13,13 @@
private Long id;
private String operationOrderNumber;
private Long productNumber;
- private Integer operationNumber ;
+ private Integer operationNumber;
+ private Integer quantity;
private String operateType;
private String operator;
private LocalDate operateTime;
+ private String staterOperationOrderNumber;
+ private String endOperationOrderNumber;;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java
index fa6bba9..fa8d582 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java
@@ -11,8 +11,8 @@
@TableId(type = IdType.AUTO)
private Integer id;
private String basicType;
- private String name;
- private String type;
+ private String basicName;
+ private String basicCategory;
private LocalDate createTime;
private LocalDate updateTime;
}
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 1ee2fd3..7c77160 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
@@ -2,11 +2,13 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDate;
@Data
+@TableName("`order`")
public class Order {
@TableId(type = IdType.AUTO)
@@ -34,13 +36,13 @@
private Double otherMoney;
private String otherMoneyRemarks;
private String processingNote;
- private String otherRemaks;
+ private String otherRemarks;
private Double area;
private Long quantity;
private String verifierId;
private String verifier;
- private String createrId;
- private String creater;
+ private String creatorId;
+ private String creator;
private Integer createOrder;
private Integer processReview;
private Integer orderReview;
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
index 2d9d3fc..6e65b5b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
@@ -14,6 +14,7 @@
private Integer orderNumber;
private String buildingNumber;
+ private Integer productId;
private String productName;
private Double price;
private Long quantity;
@@ -39,6 +40,6 @@
private LocalDate updateTime;
private Order order;
- private Product product;
+ //private Product product;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/OrderMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java
similarity index 76%
rename from north-glass-erp/src/main/java/com/example/erp/mapper/OrderMapper.java
rename to north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java
index 063cd40..a915889 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/OrderMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java
@@ -1,13 +1,11 @@
package com.example.erp.mapper;
-import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.example.erp.entity.Order;
+import com.example.erp.entity.OrderTest;
import org.apache.ibatis.annotations.*;
-import java.util.List;
@Mapper
-public interface OrderMapper extends BaseMapper<Order> {
+public interface OrderTestMapper extends BaseMapper<OrderTest> {
// @Select("select * from `order`")
// List<Order> findAll();
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
index 7c499b9..1bfa322 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -1,12 +1,42 @@
package com.example.erp.mapper.mm;
import com.example.erp.entity.mm.FinishedGoodsInventory;
+import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.entity.sd.Product;
+import com.example.erp.entity.userInfo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.springframework.data.repository.CrudRepository;
import java.util.List;
@Mapper
-public interface FinishedGoodsInventoryMapper {
- List<FinishedGoodsInventory> defaultProduct(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
+public interface FinishedGoodsInventoryMapper extends CrudRepository<FinishedGoodsInventory,Long> {
+
+
+
+ List<FinishedGoodsInventory> defaultfinishedGoods(@Param("offset") Integer offset,
+ @Param("pageSize") Integer pageSize,
+ @Param("finishedGoodsInventory") FinishedGoodsInventory finishedGoodsInventory);
+
+ Integer getPageTotal(Integer offset, Integer pageSize,FinishedGoodsInventory finishedGoodsInventory);
+
+ List<FlowCard> getseletwarehousing(@Param("offset") Integer offset,
+ @Param("pageSize") Integer pageSize,
+ @Param("flowCard") FlowCard flowCard);
+
+ Integer getseletwarehousingPageTotal(Integer offset, Integer pageSize,FlowCard flowCard);
+
+ Integer findOrderNumberdcount(Integer orderNumber);
+
+ Boolean updateInventory(FlowCard flowCard);
+ Boolean updateflowcard(FlowCard flowCard);
+
+ Boolean insertFinishedGoodsInventory(@Param("flowCard") FlowCard flowCard,
+ @Param("storageRegion") String storageRegion,
+ @Param("remark") String remark);
}
+
+
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
index 523b395..8552966 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -1,12 +1,17 @@
package com.example.erp.mapper.mm;
+import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
+import com.example.erp.entity.pp.FlowCard;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.springframework.data.repository.CrudRepository;
import java.util.List;
@Mapper
-public interface FinishedOperateLogMapper {
- List<FinishedOperateLog> defaultProduct(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
+public interface FinishedOperateLogMapper extends CrudRepository<FinishedOperateLog,Long> {
+ FinishedOperateLog getselectFinishedOperateLog();
+
+ Boolean insertFinishedOperateLog(FlowCard flowCard);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java
new file mode 100644
index 0000000..d20c827
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java
@@ -0,0 +1,16 @@
+package com.example.erp.mapper.sd;
+
+import com.example.erp.entity.sd.BasicData;
+import com.example.erp.service.sd.BasicDateService;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface BasicDateMapper {
+
+ List<BasicData> getOrderBasicData();
+ List<String> getOrderBasicDataType();
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
new file mode 100644
index 0000000..49c16de
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -0,0 +1,14 @@
+package com.example.erp.mapper.sd;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface OrderDetailMapper extends BaseMapper<OrderDetail> {
+
+ boolean insertBatch(List<OrderDetail> orderDetails);
+}
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
new file mode 100644
index 0000000..1d55394
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
@@ -0,0 +1,10 @@
+package com.example.erp.mapper.sd;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.sd.Order;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface OrderMapper extends BaseMapper<Order> {
+ Integer selectMaxOrderId();
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java b/north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java
index 65f8a61..660ca31 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java
@@ -2,12 +2,12 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.example.erp.entity.Order;
-import com.example.erp.mapper.OrderMapper;
+import com.example.erp.entity.OrderTest;
+import com.example.erp.mapper.OrderTestMapper;
import com.example.erp.service.IOrderService;
import org.springframework.stereotype.Service;
@Service
@DS("erp_sd")
-public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
+public class OrderServiceImpl extends ServiceImpl<OrderTestMapper, OrderTest> implements IOrderService {
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
new file mode 100644
index 0000000..b3ac882
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -0,0 +1,91 @@
+package com.example.erp.service.mm;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.entity.mm.FinishedGoodsInventory;
+import com.example.erp.entity.mm.FinishedOperateLog;
+import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
+import com.example.erp.mapper.mm.FinishedOperateLogMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.SQLException;
+import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("mm")
+public class FinishedGoodsInventoryService {
+ @Autowired
+ FinishedGoodsInventoryMapper finishedGoodsInventoryMapper;
+ @Autowired
+ FinishedOperateLogMapper finishedOperateLogMapper;
+ public Map<String,Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize,FinishedGoodsInventory finishedGoodsInventory) {
+ Integer offset = (pageNum-1)*pageSize;
+ Map<String,Object> map = new HashMap<>();
+ map.put("data",finishedGoodsInventoryMapper.defaultfinishedGoods(offset,pageSize,finishedGoodsInventory));
+ map.put("total",finishedGoodsInventoryMapper.getPageTotal(offset,pageSize,finishedGoodsInventory));
+ return map;
+ }
+
+ public Map<String,Object> getseletwarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) {
+ Integer offset = (pageNum-1)*pageSize;
+ Map<String,Object> map = new HashMap<>();
+ map.put("data",finishedGoodsInventoryMapper.getseletwarehousing(offset,pageSize,flowCard));
+ map.put("total",finishedGoodsInventoryMapper.getseletwarehousingPageTotal(offset,pageSize,flowCard));
+
+ return map;
+ }
+
+ public Boolean addseletwarehousing(Map<String,Map<String,Object>> object) {
+
+ Map<String,Object> maps= object.get("finishedGoodsInventory");
+ String storageRegion= maps.get("storageRegion").toString();
+ String remark= maps.get("remark").toString();
+ JSONObject jsonObject = new JSONObject(object.get("flowcard"));
+ FlowCard flowCard = JSONObject.parseObject(JSONObject.toJSONString(jsonObject), FlowCard.class);
+ System.out.println("鏁版嵁2锛�"+flowCard);
+ //娣诲姞鍑哄叆搴撹褰�
+ finishedOperateLogMapper.insertFinishedOperateLog(flowCard);
+ System.out.println(flowCard.getOrder().getOrderId());
+ Integer finishedGoodsInventorycount=finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrderNumber());
+ System.out.println("鏁伴噺:"+finishedGoodsInventorycount);
+ if(finishedGoodsInventorycount>0){
+ finishedGoodsInventoryMapper.updateInventory(flowCard);
+ finishedGoodsInventoryMapper.updateflowcard(flowCard);
+ return true;
+ }else{
+ if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard,storageRegion,remark)){
+ finishedGoodsInventoryMapper.updateflowcard(flowCard);
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+
+ /*Order order=finishedGoodsInventoryMapper.findOrderId(flowCard.getOrder().getOrderId());
+ OrderDetail orderDetail=finishedGoodsInventoryMapper.findOrderNumber(flowCard.getOrderNumber());*/
+ /*finishedGoodsInventory.setOrder(order);
+ finishedGoodsInventory.setOrderDetail(orderDetail);
+ finishedGoodsInventory.setInventory(flowCard.getInventoryQuantity());
+ finishedGoodsInventory.setActualSignalArea(flowCard.getOrderDetail().getHeight()*flowCard.getOrderDetail().getWidth());
+ finishedGoodsInventory.setArea(flowCard.getOrderDetail().getHeight()*flowCard.getOrderDetail().getWidth()*flowCard.getInventoryQuantity());
+ finishedGoodsInventory.setQuantityAvailable(flowCard.getInventoryQuantity());
+ finishedGoodsInventory.setWarehouseNumber(flowCard.getOrderDetail().getBuildingNumber());
+ finishedGoodsInventory.setStorageRegion(flowCard.getOrderDetail().getBuildingNumber());
+ finishedGoodsInventory.setStatus(0);
+ finishedGoodsInventory.setEnterStorageTime(LocalDate.now());
+ finishedGoodsInventory.setUpdateTime(LocalDate.now());
+ finishedGoodsInventory.setEndTime(null);
+ finishedGoodsInventory.setRemark("");*/
+
+
+
+ }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java
new file mode 100644
index 0000000..22a0936
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java
@@ -0,0 +1,43 @@
+package com.example.erp.service.sd;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.BasicDateMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.example.erp.entity.sd.BasicData;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("sd")
+public class BasicDateService {
+ @Autowired
+ BasicDateMapper basicDateMapper;
+ //鑾峰彇璁㈠崟鍩烘湰鏁版嵁
+public Map<String, List<Object>> getOrderBasicData() {
+ //鑾峰彇璁㈠崟鍩烘湰鏁版嵁绫诲瀷
+ List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType();
+ //鑾峰彇璁㈠崟鍩烘湰鏁版嵁
+ List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData();
+ //鍒涘缓Map瀵硅薄
+ Map<String, List<Object>> orderBasicDataMap = new HashMap<>(); ;
+ //鍒涘缓List瀵硅薄
+
+ //閬嶅巻璁㈠崟鍩烘湰鏁版嵁绫诲瀷
+ for(String item :orderBasicDataType){
+ List<Object> orderBasicDataList = new ArrayList<>();
+ //灏嗙被鍨嬪拰List瀵硅薄鏀惧叆Map涓�
+ orderBasicDataMap.put(item,orderBasicDataList);
+ }
+ //閬嶅巻璁㈠崟鍩烘湰鏁版嵁
+ for (BasicData item : orderBasicData){
+ //灏嗘暟鎹斁鍏ist涓�
+ orderBasicDataMap.get(item.getBasicCategory()).add(item);
+ }
+ //杩斿洖Map瀵硅薄
+ return orderBasicDataMap;
+ }
+}
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
new file mode 100644
index 0000000..d98e2b2
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -0,0 +1,72 @@
+package com.example.erp.service.sd;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.mapper.sd.OrderDetailMapper;
+import com.example.erp.mapper.sd.OrderMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("sd")
+public class OrderService {
+ @Autowired
+ private OrderMapper orderMapper;
+ @Autowired
+ private OrderDetailMapper orderDetailMapper;
+
+ public boolean saveOrder(Map<String,Object> orderMap) {
+ JSONObject orderJson = new JSONObject(orderMap);
+ Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
+ List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class);
+ boolean saveState = true;
+ //鍒ゆ柇浼犲叆id鍙傛暟鏄惁涓虹┖锛屾湭浼犲叆id涓虹┖鎻掑叆璁㈠崟琛紝浼犲叆鏇存柊琛�
+ if(order.getOrderId() == null){
+ saveState = insertOrder(order,OrderDetails);
+ }else {
+ saveState = updateOrder(order,OrderDetails);
+ }
+
+
+
+
+ return false;
+ }
+ @Transactional
+ public boolean insertOrder(Order order,List<OrderDetail> OrderDetails) {
+ Integer maxOrderId = orderMapper.selectMaxOrderId();
+ //鏌ヨ璁㈠崟id锛屽苟涓旇嚜澧�
+ String formattedNumber = String.format("%02d", maxOrderId+1);
+ //鏍煎紡鍖栧綋鍓嶆棩鏈�
+ Date currentDate = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+ String formattedDate = dateFormat.format(currentDate);
+ //寰�涓昏〃鎻掓暟鎹�
+ orderMapper.insert(order);
+ //寰幆缁欒鍗曟槑缁嗚〃瀛楁娣诲姞搴忓彿鍜屽懆闀�
+ for (int i = 0; i < OrderDetails.size(); i++) {
+ OrderDetails.get(i).setOrderNumber(i+1);
+ order.setOrderId(formattedDate);
+ OrderDetails.get(i).setPerimeter(OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()*2);
+ }
+ //寰�鏄庣粏琛ㄦ彃鏁版嵁
+ orderDetailMapper.insertBatch(OrderDetails);
+ return false;
+ }
+
+ public boolean updateOrder(Order order,List<OrderDetail> OrderDetails) {
+ return false;
+ }
+}
diff --git a/north-glass-erp/src/main/resources/application.yml b/north-glass-erp/src/main/resources/application.yml
index 0109f84..42ef468 100644
--- a/north-glass-erp/src/main/resources/application.yml
+++ b/north-glass-erp/src/main/resources/application.yml
@@ -19,13 +19,13 @@
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
-# mm:
-# url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8
-# username: root
-# password: beibo.123/
-# driver-class-name: com.mysql.cj.jdbc.Driver
-# pp:
-# url: jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8
-# username: root
-# password: beibo.123/
-# driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
+ mm:
+ url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
new file mode 100644
index 0000000..eb359fa
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.example.erp.mapper.mm.FinishedGoodsInventoryMapper">
+
+ <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedGoodsInventory">
+ <id column="fid" property="id"/>
+ <result column="inventory" property="inventory"/>
+ <result column="area" property="area"/>
+ <result column="actual_signal_area" property="actualSignalArea"/>
+ <result column="quantity_available" property="quantityAvailable"/>
+ <result column="warehouse_number" property="warehouseNumber"/>
+ <result column="storage_region" property="storageRegion"/>
+ <result column="status" property="status"/>
+ <result column="enter_storage_time" property="enterStorageTime"/>
+ <result column="remark" property="remark"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="end_time" property="endTime"/>
+
+ <result column="order_id" property="order.orderId"/>
+ <result column="project" property="order.project"/>
+ <result column="order_type" property="order.orderType"/>
+
+
+ <result column="order_number" property="orderDetail.orderNumber"/>
+ <result column="width" property="orderDetail.width"/>
+ <result column="height" property="orderDetail.height"/>
+ <result column="product_name" property="orderDetail.productName"/>
+ <result column="product_id" property="orderDetail.productId"/>
+
+ </resultMap>
+
+ <resultMap id="selectFlowCard" type="com.example.erp.entity.pp.FlowCard">
+ <id column="id" property="id"/>
+ <result column="order_number" property="orderNumber"/>
+ <result column="inventory_quantity" property="inventoryQuantity"/>
+ <result column="process_id" property="processId"/>
+ <result column="received_quantity" property="receivedQuantity"/>
+
+
+ <result column="order_id" property="order.orderId"/>
+ <result column="project" property="order.project"/>
+ <result column="creater" property="order.creater"/>
+ <result column="area" property="order.area"/>
+ <result column="batch" property="order.batch"/>
+
+ <result column="building_number" property="orderDetail.buildingNumber"/>
+ <result column="width" property="orderDetail.width"/>
+ <result column="height" property="orderDetail.height"/>
+ <result column="product_name" property="orderDetail.productName"/>
+ <result column="product_id" property="orderDetail.productId"/>
+ <result column="quantity" property="orderDetail.quantity"/>
+ </resultMap>
+
+ <update id="updateflowcard">
+ update pp.flow_card
+ set received_quantity=received_quantity+${inventoryQuantity}
+ where order_number=#{orderNumber} and process_id=#{processId}
+ </update>
+
+ <update id="updateInventory">
+ update mm.finished_goods_inventory
+ set inventory=inventory+${inventoryQuantity},quantity_available=quantity_available+${inventoryQuantity},
+ update_time=now(),area=area+actual_signal_area*${inventoryQuantity}
+ where order_number=#{orderNumber}
+ </update>
+
+ <insert id="insertFinishedGoodsInventory" useGeneratedKeys="true" >
+ insert into mm.finished_goods_inventory (order_id,
+ order_number,
+ inventory,
+ actual_signal_area,
+ area,
+ quantity_available,
+ warehouse_number,
+ storage_region,
+ `status`,
+ enter_storage_time,
+ update_time,
+ end_time,
+ remark
+ )
+ values (
+ #{flowCard.order.orderId} ,#{flowCard.orderNumber},#{flowCard.inventoryQuantity},ROUND(#{flowCard.orderDetail.width}*#{flowCard.orderDetail.height}/1000000,2),
+ ROUND(#{flowCard.orderDetail.width}*#{flowCard.orderDetail.height}*#{flowCard.inventoryQuantity}/1000000,2),
+ #{flowCard.inventoryQuantity},null,#{storageRegion},
+ 0,now(),now(),null,#{remark}
+ )
+ </insert>
+
+ <select id="findOrderNumberdcount" >
+ select count(*)
+ from mm.`finished_goods_inventory`
+ where order_number = #{orderNumber}
+
+ </select>
+
+ <select id="findOrderNumberd" >
+ select *
+ from sd.finished_goods_inventory
+ where order_number = #{orderNumber}
+
+ </select>
+
+ <select id="getseletwarehousing" resultMap="selectFlowCard">
+ select
+ fc.id,
+ o.order_id,
+ od.building_number,
+ od.product_id,
+ od.product_name,
+ od.width,
+ od.height,
+ o.creater,
+ o.project,
+ fc.order_number,
+ od.quantity,
+ fc.inventory_quantity,
+ o.area,
+ fc.process_id,
+ fc.received_quantity,
+ o.batch
+ from pp.flow_card fc left join sd.order_detail od on fc.order_number=od.order_number inner join sd.`order` o on
+ o.order_id=fc.order_id
+ <where>
+ and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity
+ <if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
+ and o.order_id regexp #{flowCard.order.orderId}
+ </if>
+ <if test="flowCard.orderDetail.buildingNumber != null and flowCard.orderDetail.buildingNumber != ''">
+ and od.building_number regexp #{flowCard.orderDetail.buildingNumber}
+ </if>
+ <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+ and od.product_id regexp #{flowCard.orderDetail.productId}
+ </if>
+ <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
+ and od.product_name regexp #{flowCard.orderDetail.productName}
+ </if>
+ <if test="flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
+ and od.width regexp #{flowCard.orderDetail.width}
+ </if>
+ <if test="flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
+ and od.height regexp #{flowCard.orderDetail.height}
+ </if>
+ <if test="flowCard.order.creater != null and flowCard.order.creater != ''">
+ and o.creater regexp #{flowCard.order.creater}
+ </if>
+ <if test="flowCard.order.project != null and flowCard.order.project != ''">
+ and o.project regexp #{flowCard.order.project}
+ </if>
+ <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
+ and fc.order_number regexp #{flowCard.orderNumber}
+ </if>
+ <if test="flowCard.orderDetail.quantity != null and flowCard.orderDetail.quantity != ''">
+ and od.quantity regexp #{flowCard.orderDetail.quantity}
+ </if>
+ <if test="flowCard.inventoryQuantity != null and flowCard.inventoryQuantity != ''">
+ and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
+ </if>
+ <if test="flowCard.order.area != null and flowCard.order.area != ''">
+ and o.area regexp #{flowCard.order.area}
+ </if>
+ <if test="flowCard.order.batch != null and flowCard.order.batch != ''">
+ and o.batch regexp #{flowCard.order.batch}
+ </if>
+ <if test="flowCard.processId != null and flowCard.processId != ''">
+ and fc.process_id regexp #{flowCard.processId}
+ </if>
+ <if test="flowCard.receivedQuantity != null and flowCard.receivedQuantity != ''">
+ and fc.received_quantity regexp #{flowCard.receivedQuantity}
+ </if>
+
+ </where>
+ group by fc.order_number,fc.process_id order by fc.create_time
+ limit #{offset},#{pageSize};
+ </select>
+ <select id="getseletwarehousingPageTotal" >
+ select CEILING(count(zu.order_number)/#{pageSize}) from (
+ select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on
+ fc.order_number=od.order_number inner join sd.`order` o on o.order_id=fc.order_id
+ <where>
+ and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity
+ <if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
+ and o.order_id regexp #{flowCard.order.orderId}
+ </if>
+ <if test="flowCard.orderDetail.buildingNumber != null and flowCard.orderDetail.buildingNumber != ''">
+ and od.building_number regexp #{flowCard.orderDetail.buildingNumber}
+ </if>
+ <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+ and od.product_id regexp #{flowCard.orderDetail.productId}
+ </if>
+ <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
+ and od.product_name regexp #{flowCard.orderDetail.productName}
+ </if>
+ <if test="flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
+ and od.width regexp #{flowCard.orderDetail.width}
+ </if>
+ <if test="flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
+ and od.height regexp #{flowCard.orderDetail.height}
+ </if>
+ <if test="flowCard.order.creater != null and flowCard.order.creater != ''">
+ and o.creater regexp #{flowCard.order.creater}
+ </if>
+ <if test="flowCard.order.project != null and flowCard.order.project != ''">
+ and o.project regexp #{flowCard.order.project}
+ </if>
+ <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
+ and fc.order_number regexp #{flowCard.orderNumber}
+ </if>
+ <if test="flowCard.orderDetail.quantity != null and flowCard.orderDetail.quantity != ''">
+ and od.quantity regexp #{flowCard.orderDetail.quantity}
+ </if>
+ <if test="flowCard.inventoryQuantity != null and flowCard.inventoryQuantity != ''">
+ and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
+ </if>
+ <if test="flowCard.order.area != null and flowCard.order.area != ''">
+ and o.area regexp #{flowCard.order.area}
+ </if>
+ <if test="flowCard.order.batch != null and flowCard.order.batch != ''">
+ and o.batch regexp #{flowCard.order.batch}
+ </if>
+ <if test="flowCard.processId != null and flowCard.processId != ''">
+ and fc.process_id regexp #{flowCard.processId}
+ </if>
+ <if test="flowCard.receivedQuantity != null and flowCard.receivedQuantity != ''">
+ and fc.received_quantity regexp #{flowCard.receivedQuantity}
+ </if>
+
+ </where>
+ group by fc.order_number,fc.process_id order by fc.create_time) as zu
+ </select>
+
+
+ <select id="defaultfinishedGoods" resultMap="selectFinishedGoodsInventory">
+ select od.order_number,
+ o.order_id,
+ o.project,
+ o.order_type,
+ od.product_name,
+ od.product_id,
+ od.width,
+ od.height,
+ fgi.inventory,
+ fgi.quantity_available,
+ fgi.actual_signal_area,
+ fgi.area,
+ fgi.warehouse_number,
+ fgi.storage_region,
+ fgi.`status`,
+ fgi.update_time,
+ fgi.enter_storage_time,
+ fgi.end_time,
+ fgi.remark
+ from finished_goods_inventory fgi
+ left join sd.order_detail od on fgi.order_number = od.order_number
+ inner join sd.`order` o on fgi.order_id = o.order_id
+ <where>
+ <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
+ and od.width regexp #{finishedGoodsInventory.orderDetail.width}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
+ and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''">
+ and od.product_name regexp #{finishedGoodsInventory.orderDetail.productName}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''">
+ and od.product_id regexp #{finishedGoodsInventory.orderDetail.productId}
+ </if>
+ <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
+ and o.order_id regexp #{finishedGoodsInventory.order.orderId}
+ </if>
+ <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
+ and o.project regexp #{finishedGoodsInventory.order.project}
+ </if>
+ <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
+ and o.order_type regexp #{finishedGoodsInventory.order.orderType}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''">
+ and od.height regexp #{finishedGoodsInventory.orderDetail.height}
+ </if>
+ <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
+ and fgi.inventory regexp #{finishedGoodsInventory.inventory}
+ </if>
+ <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
+ and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
+ </if>
+ <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
+ and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
+ </if>
+ <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
+ and fgi.area regexp #{finishedGoodsInventory.area}
+ </if>
+ <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
+ and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}
+ </if>
+ <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
+ and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion}
+ </if>
+ <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
+ and fgi.`status` regexp #{finishedGoodsInventory.status}
+ </if>
+ <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
+ and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime}
+ </if>
+ <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
+ and fgi.update_time regexp #{finishedGoodsInventory.updateTime}
+ </if>
+ <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
+ and fgi.end_time regexp #{finishedGoodsInventory.endTime}
+ </if>
+ <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
+ and fgi.remark regexp #{finishedGoodsInventory.remark}
+ </if>
+
+ </where>
+ order by fgi.id
+
+ limit #{offset},#{pageSize}
+ ;
+ </select>
+
+
+ <select id="getPageTotal">
+ select
+ CEILING(count(fgi.id)/#{pageSize})
+ from finished_goods_inventory fgi
+ left join sd.order_detail od on fgi.order_number = od.order_number
+ inner join sd.`order` o on fgi.order_id = o.order_id
+ <where>
+ <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
+ and od.width regexp #{finishedGoodsInventory.orderDetail.width}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
+ and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''">
+ and od.product_name regexp #{finishedGoodsInventory.orderDetail.productName}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''">
+ and od.product_id regexp #{finishedGoodsInventory.orderDetail.productId}
+ </if>
+ <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
+ and o.order_id regexp #{finishedGoodsInventory.order.orderId}
+ </if>
+ <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
+ and o.project regexp #{finishedGoodsInventory.order.project}
+ </if>
+ <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
+ and o.order_type regexp #{finishedGoodsInventory.order.orderType}
+ </if>
+ <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''">
+ and od.height regexp #{finishedGoodsInventory.orderDetail.height}
+ </if>
+ <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
+ and fgi.inventory regexp #{finishedGoodsInventory.inventory}
+ </if>
+ <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
+ and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
+ </if>
+ <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
+ and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
+ </if>
+ <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
+ and fgi.area regexp #{finishedGoodsInventory.area}
+ </if>
+ <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
+ and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}
+ </if>
+ <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
+ and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion}
+ </if>
+ <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
+ and fgi.`status` regexp #{finishedGoodsInventory.status}
+ </if>
+ <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
+ and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime}
+ </if>
+ <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
+ and fgi.update_time regexp #{finishedGoodsInventory.updateTime}
+ </if>
+ <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
+ and fgi.end_time regexp #{finishedGoodsInventory.endTime}
+ </if>
+ <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
+ and fgi.remark regexp #{finishedGoodsInventory.remark}
+ </if>
+
+ </where>
+
+ order by fgi.id desc
+ limit #{offset},#{pageSize}
+ ;
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
new file mode 100644
index 0000000..d69dd89
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.mm.FinishedOperateLogMapper">
+ <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedOperateLog" >
+ <id column="id" property="id"/>
+ <result column="operation_order_number" property="operationOrderNumber"/>
+ <result column="product_number" property="productNumber"/>
+ <result column="operation_number" property="operationNumber"/>
+ <result column="operate_type" property="operateType"/>
+ <result column="operator" property="operator"/>
+ <result column="operate_time" property="operateTime"/>
+
+ <!--<result column="g_typeId" property="glassTypes.typeId"/>
+ <result column="g_type" property="glassTypes.type"/>-->
+
+ </resultMap>
+ <select id="getselectFinishedOperateLog" >
+ select
+ *
+ from
+ mm.finished_operate_log limit 0,1;
+ </select>
+
+ <insert id="insertFinishedOperateLog" useGeneratedKeys="true" keyProperty="id" >
+ insert into mm.finished_operate_log(operation_order_number,
+ product_number,
+ operation_number,
+ operate_type,
+ operator,
+ quantity,
+ operate_time
+ )
+ values (
+ #{processId} ,#{orderDetail.productId},#{orderNumber},"鍏ュ簱","鐜嬩簲",#{inventoryQuantity},now()
+ )
+ </insert>
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/BasicData.xml b/north-glass-erp/src/main/resources/mapper/sd/BasicData.xml
new file mode 100644
index 0000000..78f29a0
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/sd/BasicData.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.BasicDateMapper">
+ <select id="getOrderBasicData">
+ select
+ *
+ from
+ basic_data as a
+ where a.basic_type='order'
+ </select>
+ <select id="getOrderBasicDataType">
+ select
+ a.basic_category
+ from
+ basic_data as a
+ where a.basic_type='order'
+ group by a.basic_category
+
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderDetail.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderDetail.xml
new file mode 100644
index 0000000..6be1a9f
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderDetail.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.OrderDetailMapper">
+ <insert id="insertBatch" parameterType="java.util.List">
+ INSERT INTO
+ order_detail (order_id,
+ order_number,
+ building_number,
+ product_id,
+ product_name,
+ price,
+ quantity,
+ gross_amount,
+ width,
+ height,
+ shape,
+ area,
+ gross_area,
+ compute_area,
+ compute_gross_area,
+ processing_note,
+ remarks,
+ bend_radius,
+ edging_type,
+ weight,
+ perimeter
+ )
+ values
+ <foreach collection ="orderDetails" item="orderDetail" separator =",">
+ (#{orderDetail.orderId},
+ #{orderDetail.orderNumber},
+ #{orderDetail.buildingNumber},
+ #{orderDetail.productId},
+ #{orderDetail.productName},
+ #{orderDetail.price},
+ #{orderDetail.quantity},
+ #{orderDetail.grossAmount},
+ #{orderDetail.width},
+ #{orderDetail.height},
+ #{orderDetail.shape},
+ #{orderDetail.area},
+ #{orderDetail.grossArea},
+ #{orderDetail.computeArea},
+ #{orderDetail.computeGrossArea},
+ #{orderDetail.processingNote},
+ #{orderDetail.remarks},
+ #{orderDetail.bendRadius},
+ #{orderDetail.edgingType},
+ #{orderDetail.weight},
+ #{orderDetail.perimeter}
+ )
+ </foreach>
+ </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
new file mode 100644
index 0000000..7475875
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.OrderMapper">
+ <select id="selectMaxOrderId">
+ select
+ COUNT(a.order_id)
+ from
+ `order` as a
+ where
+ a.create_time = curdate()
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java b/north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java
new file mode 100644
index 0000000..5af50a6
--- /dev/null
+++ b/north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java
@@ -0,0 +1,16 @@
+package com.example.erp.service.sd;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.jupiter.api.Assertions.*;
+@SpringBootTest
+class BasicDateServiceTest {
+ @Autowired
+ private BasicDateService basicDateService;
+ @Test
+ void getOrderBasicData() {
+ basicDateService.getOrderBasicData();
+ }
+}
\ No newline at end of file
diff --git a/north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java b/north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java
new file mode 100644
index 0000000..971967d
--- /dev/null
+++ b/north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java
@@ -0,0 +1,23 @@
+package com.example.erp.service.sd;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.*;
+@SpringBootTest
+class OrderServiceTest {
+ @Autowired
+ OrderService orderService;
+
+ @Test
+ void testCreateOrder() {
+ Map<String, Object> order =new HashMap<>();
+
+ //orderService.saveOrder();
+ }
+
+}
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/application.yml b/north-glass-erp/target/classes/application.yml
index 0109f84..42ef468 100644
--- a/north-glass-erp/target/classes/application.yml
+++ b/north-glass-erp/target/classes/application.yml
@@ -19,13 +19,13 @@
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
-# mm:
-# url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8
-# username: root
-# password: beibo.123/
-# driver-class-name: com.mysql.cj.jdbc.Driver
-# pp:
-# url: jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8
-# username: root
-# password: beibo.123/
-# driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
+ mm:
+ url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml
new file mode 100644
index 0000000..d69dd89
--- /dev/null
+++ b/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.mm.FinishedOperateLogMapper">
+ <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedOperateLog" >
+ <id column="id" property="id"/>
+ <result column="operation_order_number" property="operationOrderNumber"/>
+ <result column="product_number" property="productNumber"/>
+ <result column="operation_number" property="operationNumber"/>
+ <result column="operate_type" property="operateType"/>
+ <result column="operator" property="operator"/>
+ <result column="operate_time" property="operateTime"/>
+
+ <!--<result column="g_typeId" property="glassTypes.typeId"/>
+ <result column="g_type" property="glassTypes.type"/>-->
+
+ </resultMap>
+ <select id="getselectFinishedOperateLog" >
+ select
+ *
+ from
+ mm.finished_operate_log limit 0,1;
+ </select>
+
+ <insert id="insertFinishedOperateLog" useGeneratedKeys="true" keyProperty="id" >
+ insert into mm.finished_operate_log(operation_order_number,
+ product_number,
+ operation_number,
+ operate_type,
+ operator,
+ quantity,
+ operate_time
+ )
+ values (
+ #{processId} ,#{orderDetail.productId},#{orderNumber},"鍏ュ簱","鐜嬩簲",#{inventoryQuantity},now()
+ )
+ </insert>
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/sd/BasicData.xml b/north-glass-erp/target/classes/mapper/sd/BasicData.xml
new file mode 100644
index 0000000..78f29a0
--- /dev/null
+++ b/north-glass-erp/target/classes/mapper/sd/BasicData.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.BasicDateMapper">
+ <select id="getOrderBasicData">
+ select
+ *
+ from
+ basic_data as a
+ where a.basic_type='order'
+ </select>
+ <select id="getOrderBasicDataType">
+ select
+ a.basic_category
+ from
+ basic_data as a
+ where a.basic_type='order'
+ group by a.basic_category
+
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
new file mode 100644
index 0000000..7475875
--- /dev/null
+++ b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.OrderMapper">
+ <select id="selectMaxOrderId">
+ select
+ COUNT(a.order_id)
+ from
+ `order` as a
+ where
+ a.create_time = curdate()
+ </select>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0