From ed3cdd111410d19e93cc0a918e8447ba7e0fe674 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 26 一月 2024 14:28:37 +0800
Subject: [PATCH] 周五,订单相关前后端文件提交
---
north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java | 2
north-glass-erp/target/classes/mapper/sd/BasicData.xml | 22 ++
.gitignore | 4
north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java | 16 +
north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java | 43 +++
north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java | 11
north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml | 15 +
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/controller/sd/BasicDataController.java | 22 ++
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 332 ++++++++++++++++++++++++++----
north-glass-erp/target/classes/mapper/sd/OrderMapper.xml | 15 +
north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java | 23 ++
north-glass-erp/src/main/resources/application.yml | 4
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/controller/sd/OrderController.java | 27 ++
north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java | 2
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java | 10
north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java | 16 +
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 45 ++++
north-glass-erp/target/classes/application.yml | 4
north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java | 6
23 files changed, 585 insertions(+), 69 deletions(-)
diff --git a/.gitignore b/.gitignore
index 81062fd..0d98b3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,9 @@
*.jar
*.war
*.ear
-*.idea
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
+
+# Ignore .idea files
+**/.idea/
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/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/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/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..83d0cca 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)
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/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/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/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..980b63b
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -0,0 +1,45 @@
+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.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;
+ @Transactional
+ 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);
+ 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);
+ order.setOrderId("NG"+formattedDate + formattedNumber);
+
+ //System.out.println(order);
+ orderMapper.insert(order);
+
+ return false;
+ }
+}
diff --git a/north-glass-erp/src/main/resources/application.yml b/north-glass-erp/src/main/resources/application.yml
index bb342d6..42ef468 100644
--- a/north-glass-erp/src/main/resources/application.yml
+++ b/north-glass-erp/src/main/resources/application.yml
@@ -20,12 +20,12 @@
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
mm:
- url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8
+ 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://localhost:3306/pp?serverTimezone=GMT%2b8
+ 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/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/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 bb342d6..42ef468 100644
--- a/north-glass-erp/target/classes/application.yml
+++ b/north-glass-erp/target/classes/application.yml
@@ -20,12 +20,12 @@
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
mm:
- url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8
+ 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://localhost:3306/pp?serverTimezone=GMT%2b8
+ 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/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