From 2e4fc5726a1ae46d7c83f7397ad326075a4b194c Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 13 六月 2024 14:47:32 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml | 2
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java | 5
north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java | 44 +
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 29 +
north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue | 379 ++++++++-----
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue | 47 +
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java | 2
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ProductionSchedulingMapper.java | 9
north-glass-erp/northglass-erp/config.js | 2
north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue | 2
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue | 328 ++++++++---
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue | 2
north-glass-erp/src/main/java/com/example/erp/entity/pp/TagStyle.java | 21
north-glass-erp/src/main/resources/mapper/pp/TagStyle.xml | 10
north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java | 2
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java | 109 ++-
north-glass-erp/northglass-erp/src/components/mm/TagStyle.vue | 298 +++++++++++
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 2
north-glass-erp/src/main/java/com/example/erp/mapper/pp/TagStyleMapper.java | 9
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProductionSchedulingController.java | 7
north-glass-erp/src/main/java/com/example/erp/service/pp/ProductionSchedulingService.java | 13
north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java | 44 +
north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml | 211 +++++--
north-glass-erp/src/main/java/com/example/erp/entity/pp/ProductionScheduling.java | 12
north-glass-erp/northglass-erp/src/views/system/userPassWord/UpdateUserPassWord.vue | 2
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java | 18
26 files changed, 1,218 insertions(+), 391 deletions(-)
diff --git a/north-glass-erp/northglass-erp/config.js b/north-glass-erp/northglass-erp/config.js
index f9eae20..02bde44 100644
--- a/north-glass-erp/northglass-erp/config.js
+++ b/north-glass-erp/northglass-erp/config.js
@@ -1,4 +1,4 @@
export default {
serverUrl:"localhost:8086"
- //serverUrl:"10.153.19.150:8080"
+ //serverUrl:"192.168.1.199:8086"
}
diff --git a/north-glass-erp/northglass-erp/src/components/mm/TagStyle.vue b/north-glass-erp/northglass-erp/src/components/mm/TagStyle.vue
new file mode 100644
index 0000000..da12c1a
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/mm/TagStyle.vue
@@ -0,0 +1,298 @@
+<script setup>
+import {onMounted, ref} from "vue"
+import {VueDraggable} from "vue-draggable-plus"
+import request from "@/utils/request"
+import {ElMessage, ElMessageBox} from "element-plus"
+import {CloseBold, Delete, InfoFilled} from "@element-plus/icons-vue"
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
+
+const activeName = ref('1')
+
+const list = ref([
+])
+const size = ref([
+ {column:'width',title:null},
+ {column:'height',title:null}
+])
+const order = ref({
+ orderId:'order',
+ project:'order',
+ orderType:'order',
+ customers:'order',
+ icon:'order',
+ orderClassify:'order',
+ packType:'order',
+ deliveryDate:'order',
+ batch:'order',
+ calculateType:'order',
+ salesman:'order',
+ alType:'order',
+ money:'order',
+ contractId:'order',
+ customerBatch:'order',
+ contacts:'order',
+ contactNumber:'order',
+ deliveryAddress:'order',
+ processingNote:'order',
+})
+
+const tags = ref([])
+const tag = ref({
+ id:null,
+ name:null,
+ type:1,
+ tagWidth:10,
+ tagHeight:10,
+ value:null,
+ size:null
+
+})
+const clickIndex = ref(-1)
+
+const getTags = () => {
+ request.get('tagStyle/getTagList').then(res => {
+ tags.value = res.data
+ })
+}
+
+onMounted(() => {
+ getTags()
+})
+
+const saveTag = () => {
+ ElMessageBox.prompt( '鏂板鏍囩鍚�:', {
+ confirmButtonText: '淇濆瓨',
+ cancelButtonText: '鍙栨秷',
+ inputPattern:/^.{1,20}$/,
+ inputErrorMessage: '璇疯緭鍏�20涓瓧绗︿互鍐呯殑涓斾笉涓虹┖鐨勫瓧绗�',
+ }).then(({ value }) => {
+ tag.value.name = value
+ tag.value.value = JSON.stringify(list.value)
+ tag.value.size = JSON.stringify(size.value)
+ request.post('tagStyle/saveTag',tag.value).then(res => {
+ if(res.code === '200' && res.data===true){
+ ElMessage.success("淇濆瓨鎴愬姛")
+ getTags()
+ }
+ })
+ })
+
+}
+
+const changeType = () => {
+ if(tag.value.type == 1){
+ tag.value.tagWidth=10
+ tag.value.tagHeight=10
+ size.value=[
+ {column:'width',title:null},
+ {column:'height',title:null}
+ ]
+ }else if(tag.value.type == 2){
+ tag.value.tagWidth=4
+ tag.value.tagHeight=3
+ size.value=[
+ {column:'childWidth',title:null},
+ {column:'childHeight',title:null}
+ ]
+ }
+}
+
+const clearList = () => {
+ list.value = []
+}
+
+const searchTag = (getTag,index) => {
+ list.value = JSON.parse(getTag.value)
+ size.value = JSON.parse(getTag.size)
+ tag.value = getTag
+ clickIndex.value = index
+}
+
+const close = () => {
+ tag.value = {
+ id:null,
+ name:null,
+ type:1,
+ tagWidth:10,
+ tagHeight:10,
+ value:null,
+ size:null
+ }
+ list.value = []
+ size.value = [
+ {column:'width',title:null},
+ {column:'height',title:null}
+ ]
+ clickIndex.value = -1
+}
+
+const deleteTag = () => {
+ request.post(`tagStyle/deleteTag/${tag.value.id}`).then(res => {
+ if(res.code === '200' && res.data===true){
+ ElMessage.success("鍒犻櫎鎴愬姛")
+ getTags()
+ close()
+ }
+
+ })
+}
+
+const addList = (getTag,from) => {
+ list.value.push({
+ name:getTag,
+ title:null,
+ isFocus:false,
+ from:from
+ })
+}
+
+const deleteThis = (index) => {
+ list.value.splice(index,1)
+}
+
+
+</script>
+
+<template>
+ <div style="width: 100%;height: 100%;" class="common-layout">
+ <el-container style="width: 100%;height: 100%;">
+ <el-aside width="200px">
+ <el-collapse v-model="activeName" accordion>
+ <el-collapse-item title="鏍囩鍒楄〃" name="1">
+ <div v-for="(tag,index) in tags"
+ :class="{'tag-active':index===clickIndex}"
+ @dblclick="searchTag(tag,index)">
+ {{tag.name}}
+ </div>
+
+ </el-collapse-item>
+ </el-collapse>
+ </el-aside>
+ <el-container>
+ <el-header >
+ <el-row id="el-rows" style="margin-top: 0.5rem">
+ <el-select
+ v-model="tag.type"
+ @change="changeType"
+ placeholder="" >
+ <el-option label="鎴愬搧" :value="1"/>
+ <el-option label="鍗婃垚鍝�" :value="2"/>
+ </el-select>
+ <el-select placeholder="璁㈠崟琛ㄥご">
+ <el-option @click="addList(keys,item)"
+ v-for="(item,keys,index) in order"
+ :label="$t(item+'.'+keys)" :value="keys"/>
+
+ </el-select>
+
+ <el-button v-if="tag.id!==null" @click="close" type="primary" circle :icon="CloseBold"/>
+ </el-row>
+ </el-header>
+ <el-main>
+ <VueDraggable
+ ref="el"
+ v-model="list"
+ :animation="150"
+ ghostClass="ghost"
+ style="height: 95%;background-color: white;position: relative;"
+ class="flex flex-col gap-2 p-4 w-300px h-300px m-auto bg-gray-500/5 rounded"
+ >
+ <div
+ v-for="(item,index) in list"
+ :key="item.id"
+ class="cursor-move h-30 bg-gray-500/5 rounded p-3 cursor-move"
+ >
+ <el-row @mouseenter="item.isfocus=true" @mouseleave="item.isfocus=false" >
+ <el-col :span="6"><el-input v-model="item.title"/></el-col>
+ <el-col :span="4">{{ item.name }}</el-col>
+ <el-col :span="4">
+ <el-button
+ size="default"
+ v-if="item.isfocus"
+ @click="deleteThis(index)"
+ :icon="Delete" circle />
+ </el-col>
+ </el-row>
+ </div>
+ <div class="cursor-move h-30 bg-gray-500/5 rounded p-3 cursor-move"
+ style="position: absolute;bottom: 0.5rem; " >
+ <el-row >
+ <el-col :span="6"><el-input v-model="size[0].title"/></el-col>
+ <el-col :span="4">{{ size[0].column }}</el-col>
+ <el-col :span="6"><el-input v-model="size[1].title"/></el-col>
+ <el-col :span="4">{{size[1].column }}</el-col>
+ </el-row>
+
+ </div>
+ </VueDraggable>
+ </el-main>
+ <el-footer style="padding-top: 0.5rem">
+ <el-popconfirm
+ width="220"
+ confirm-button-text="纭畾"
+ cancel-button-text="鍙栨秷"
+ :icon="InfoFilled"
+ icon-color="#626AEF"
+ title="纭畾鍒犻櫎?"
+ @confirm="deleteTag"
+ v-if="tag.id!==null"
+ >
+ <template #reference>
+ <el-button type="primary" style="float: left" >鍒犻櫎</el-button>
+ </template>
+ </el-popconfirm>
+
+ <el-button type="primary" @click="clearList">娓呯┖</el-button>
+ <el-button v-if="tag.id===null" type="primary" @click="saveTag" >鏂板</el-button>
+ <el-button v-else type="primary" @click="saveTag" >淇敼</el-button>
+ </el-footer>
+ </el-container>
+ </el-container>
+
+ </div>
+</template>
+
+<style scoped>
+/*.common-layout .el-aside {
+ background-color: var(--el-color-primary-light-8);
+ color: var(--el-text-color-primary);
+ text-align: center;
+}*/
+
+.common-layout .el-header, .common-layout .el-footer {
+ background-color: var(--el-color-primary-light-9);
+ color: var(--el-text-color-primary);
+ text-align: center;
+ border: var(--el-color-primary-light-7) 1px solid;
+}
+
+.common-layout .el-main {
+ background-color: var(--el-color-primary-light-9);
+ color: var(--el-text-color-primary);
+ text-align: center;
+}
+
+.ghost {
+ opacity: 0.5;
+ background: #c8ebfb;
+}
+.cursor-move{
+ background-color: #6b72800d;
+ margin-bottom: 0.2rem;
+ text-align: center;
+ height: 2rem;
+ width: 50%;
+ margin-left: 25%;
+}
+.el-select{
+ width: 8rem
+}
+
+#el-rows > *{
+ margin-right: 0.5rem;
+}
+.tag-active{
+ background-color: #c8ebfb;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index b83e218..c9436c7 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -3,7 +3,7 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from "vue-i18n"
import request from "@/utils/request"
-import {ElMessage} from "element-plus";
+import {ElMessage} from "element-plus"
const { t } = useI18n()
const xGrid = ref()
const gridOptions = reactive({
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index b83e401..5e615b1 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -8,28 +8,42 @@
import {useI18n} from 'vue-i18n'
import {changeFilterEvent, filterChanged} from "@/hook"
import {VXETable} from "vxe-table";
-import {toolbarButtonClickEvent} from "@/hook/mouseMove";
+import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove";
import PrintProcess from '@/views/pp/processCard/PrintProcess.vue'
import PrintLabel from '@/views/pp/processCard/PrintLabel.vue'
import footSum from "@/hook/footSum"
-import {Search} from "@element-plus/icons-vue";
//璇█鑾峰彇
const {t} = useI18n()
let router = useRouter()
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
-const dialogTableVisibleSetup = ref(false)
+const printVisible= ref(false)
let selectRecords = ref(null)
-//瀹氫箟婊氬姩鏉¢珮搴�
-let scrollTop = ref(null)
-let scrollHeight = ref(null)
-let clientHeight = ref(null)
-const scrollEvnt = (row) => {
- // 鍐呭楂樺害
- scrollTop.value = row.$event.target.scrollTop
- scrollHeight.value = row.$event.target.scrollHeight
- clientHeight.value = row.$event.target.clientHeight
+const xGrid = ref(null)
+const xGridDetail =ref(null)
+
+
+
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ request.post(`/processCard/printFlowCardDetails/${row.process_id}/${row.technology_number}`,filterData.value).then((res) => {
+ if (res.code == 200) {
+
+ produceDetailList.value = (res.data.data)
+ printVisible.value=true
+
+ } else {
+
+ ElMessage.warning(res.msg)
+
+ }
+ })
+ break
+ }
+
+ }
}
//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
@@ -46,17 +60,12 @@
})
-let filterDataPrint =ref( {})
-let printSetupDate = {
- id:'',
- printType:'',
- printTypeName:'',
- printState:''
-}
//瀹氫箟椤甸潰鎬婚〉鏁�
let pageTotal = ref('')
//瀹氫箟鏁版嵁杩斿洖缁撴灉
let produceList = ref([])
+//瀹氫箟鏁版嵁杩斿洖缁撴灉
+let produceDetailList = ref([])
//瀹氫箟褰撳墠椤垫暟
let pageNum = $ref(1)
let pageState = null
@@ -78,14 +87,6 @@
}
})
-request.post(`/processCard/printSetup`, filterDataPrint.value).then((res) => {
- if (res.code == 200) {
- printSetupDate = deepClone(res.data.data)
- } else {
- ElMessage.warning(res.msg)
- }
-})
-
//琛ㄥ熬姹傚拰
const sumNum = (list, field) => {
let count = 0
@@ -101,8 +102,7 @@
return regex.test(value); // 杩斿洖true/false
}
-//瀛愮粍浠舵帴鏀跺弬鏁�
-const xGrid = ref()
+
const gridOptions = reactive({
loading: true,
border: "full",//琛ㄦ牸鍔犺竟妗�
@@ -123,7 +123,7 @@
useKey: true
},
filterConfig: { //绛涢�夐厤缃」
- // remote: true
+ // remote: true
},
customConfig: {
storage: true
@@ -135,6 +135,7 @@
},//琛ㄥご鍙傛暟
columns: [
{type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
+ {title: '鎿嶄綔', width: 55, slots: { default: 'button_slot' },fixed:"left"},
{type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
{type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
{
@@ -146,7 +147,7 @@
},
{
field: 'process_id',
- title: t('processCard.processId'),
+ title: '娴佺▼鍗″彿',
showOverflow: "ellipsis",
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
@@ -154,37 +155,36 @@
},
{
field: 'customer_name',
- title: t('customer.customerName'),
+ title: '瀹㈡埛鍚嶇О',
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
filterMethod: filterChanged
},
{
field: 'project',
- title: t('order.project'),
+ title: '椤圭洰鍚嶇О',
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
filterMethod: filterChanged
},
- {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis"},
- {field: 'glass_address', title: t('processCard.glassAddress'),},
- {field: 'quantity', title: t('order.quantity'),},
- {field: 'total_area', title: t('order.area'),},
- {field: 'product_name', title: t('order.product'),},
- {field: 'glass_child', title: t('reportingWorks.glassChild'),},
- {field: 'founder', title: t('processCard.founder'),},
- {field: 'splitFrame_time', title: t('processCard.splitFrameTime'),},
+ {field: 'technology_number', title: '灏忕墖椤哄簭', showOverflow: "ellipsis"},
+ {field: 'glass_address', title: '灏忕墖鏍囪',},
+ {field: 'quantity', title: '鏁伴噺',},
+ {field: 'total_area', title: '闈㈢Н',},
+ {field: 'product_name', title: '浜у搧鍚嶇О',},
+ {field: 'glass_child', title: '鍗曠墖鍚嶇О',},
+ {field: 'founder', title: '鍒嗘灦鍛�',},
+ {field: 'splitFrame_time', title: '鍒嗘灦鏃堕棿',},
],//琛ㄥご鎸夐挳
toolbarConfig: {
buttons: [
- {code: 'print', name: t('processCard.print'), status: 'primary'},
- {code: 'printLabel', name: t('processCard.printLabel'), status: 'primary'},
- {code: 'printSetup', name: t('processCard.printSetup'),status: 'primary'},
+ {code: 'print', name: '鎵撳嵃娴佺▼鍗�', status: 'primary'},
+ {code: 'printLabel', name: '鎵撳嵃鏍囩', status: 'primary'},
],
// import: false,
// export: true,
- //print: true,
+ //print: true,
zoom: true,
custom: true
},
@@ -209,7 +209,7 @@
const gridEvents = {
toolbarButtonClick ({ code}) {
const $grid = xGrid.value
- selectRecords = $grid.getCheckboxRecords()
+ selectRecords = $grid.getCheckboxRecords()
if ($grid) {
switch (code) {
case 'print': {
@@ -249,36 +249,161 @@
break
}
- case 'printSetup': {
- dialogTableVisibleSetup.value=true
+ case 'sort': {
+ const $table = xGridDetail.value
+ let data = $table.getTableData().fullData
+ let flowCardData = ref({
+ flowCard: data,
+ })
+ request.post("/processCard/printSort", flowCardData.value).then((res) => {
+ if (res.code == 200) {
+ ElMessage.success("鎺掑簭鎴愬姛")
+ //router.push('/main/processCard/SplittingDetails?orderId=${orderId}')
+ router.push({
+ path: '/main/processCard/PrintFlowCard',
+ query: {orderId: orderId,random: Math.random()}
+ })
+
+ //location.reload();
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
break
}
-
}
}
},
}
-let checkbox= ref({
- customerName:0,
- orderId:0,
- typeName:0,
- specifications:0,
- project:0,
- remarks:0,
- glassChild:0,
- processingNote:0,
+
+const detailGridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'demo_1',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollX: {enabled: true},
+ scrollY: {enabled: true, gt: 0},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ // remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },//琛ㄥご鍙傛暟
+ columns: [
+ {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
+ {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
+ {
+ field: 'sort',
+ width: 80,
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ title: '鎺掑簭',
+ },
+ {
+ field: 'process_id',
+ title: '娴佺▼鍗″彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'order_number',
+ title: '搴忓彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'technology_number',
+ title: '灏忕墖椤哄簭',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'glass_address',
+ title: '灏忕墖鏍囪',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'quantity',
+ title: '鏁伴噺',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'child_width',
+ title: '瀹�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'child_height',
+ title: '楂�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ {
+ field: 'area',
+ title: '闈㈢Н',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged
+ },
+ ],//琛ㄥご鎸夐挳
+
+ toolbarConfig: {
+ buttons: [
+ {code: 'sort', name: '鎺掑簭', status: 'primary'},
+ ],
+ // import: false,
+ // export: true,
+ //print: true,
+ zoom: true,
+ custom: true
+ },
+ data: null,//琛ㄦ牸鏁版嵁
+ //鑴氶儴姹傚拰
+ footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+ return[
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return t('basicData.total')
+ }
+ const List = ["quantity",'area',]
+ if (List.includes(column.field)) {
+ return footSum(data, column.field)
+ }
+ return ''
+ })
+ ]
+ }
})
-const changeDate = ()=>{
-
- request.post(`/processCard/updatePrintSetup`, checkbox.value).then((res) => {
- if (res.code == 200) {
- dialogTableVisibleSetup.value=false
- } else {
- ElMessage.warning(res.msg)
- }
- })
+const openedTable = () => {
+ let detail =ref(produceDetailList.value)
+ xGridDetail.value.reloadData(detail.value)
}
</script>
@@ -309,8 +434,13 @@
</template>
<!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+<!-- v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"-->
<template #button_slot="{ row }">
- <el-button link size="small" type="primary" @click="getTableRow(row,'edit')">{{ $t('basicData.edit') }}
+ <el-button @click="getTableRow(row,'edit')"
+ link
+ type="primary"
+ size="small">
+ {{ $t('basicData.edit') }}
</el-button>
</template>
@@ -330,37 +460,59 @@
<el-dialog
v-model="dialogTableVisible"
destroy-on-close
- :title="$t('processCard.print')"
+ title="娴佺▼鍗℃墦鍗�"
style="width: 80%;height:75% ">
<PrintProcess :printList="selectRecords"
- style="width: 100%;height: 100%" />
+ style="width: 100%;height: 100%" />
</el-dialog>
<el-dialog
v-model="dialogTableVisibleLabel"
destroy-on-close
- :title="$t('processCard.printLabel')"
+ title="鏍囩鎵撳嵃"
style="width: 80%;height:75% ">
<PrintLabel :printList="selectRecords"
- style="width: 100%;height: 100%" />
+ style="width: 100%;height: 100%" />
</el-dialog>
- <el-dialog v-model="dialogTableVisibleSetup" :title="$t('processCard.printSetup')" style="width: 70%;height:75% ">
- <div>
- <el-button @click="changeDate" id="searchButton" type="primary" >{{ $t('basicData.save') }}</el-button>
- </div>
+ <el-dialog
+ @opened="openedTable"
+ v-model="printVisible"
+ title="娴佺▼鍗℃槑缁�"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ style="width: 80%;height:75% ">
+ <vxe-grid
+ ref="xGridDetail"
+ class="mytable-scrollbar"
+ max-height="100%"
+ height="600px"
+ size="small"
+ v-bind="detailGridOptions"
+ v-on="gridEvents">
- <div class="order-primary" >
- <el-checkbox v-model="checkbox.customerName" :checked="printSetupDate[0].printState===1">{{ $t('customer.customerName') }}</el-checkbox>
- <el-checkbox v-model="checkbox.project" :checked="printSetupDate[1].printState===1">{{ $t('order.project') }}</el-checkbox>
- <el-checkbox v-model="checkbox.orderId" :checked="printSetupDate[6].printState===1">{{ $t('order.orderId') }}</el-checkbox>
- <el-checkbox v-model="checkbox.specifications" :checked="printSetupDate[2].printState===1">{{ $t('processCard.specificationQuantity') }}</el-checkbox>
- <el-checkbox v-model="checkbox.remarks" :checked="printSetupDate[3].printState===1">{{ $t('order.floorNumber') }}</el-checkbox>
- <el-checkbox v-model="checkbox.processingNote" :checked="printSetupDate[4].printState===1">{{ $t('order.processingNote') }}</el-checkbox>
- <el-checkbox v-model="checkbox.glassChild" :checked="printSetupDate[5].printState===1">{{ $t('processCard.singlePieceProductName') }}</el-checkbox>
- <el-checkbox v-model="checkbox.typeName" :checked="printSetupDate[7].printState===1">{{ $t('processCard.productType') }}</el-checkbox>
- </div>
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in detailGridOptions.columns" v-show="item.field!=undefined ">
+ <span style="font-weight: bold">{{ item.title + ': ' }}</span>
+ <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
+ <span v-else>{{ row[item.field] }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="text"
+ v-model="option.data"
+ @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+
+ </vxe-grid>
</el-dialog>
</div>
</template>
@@ -369,10 +521,6 @@
.main-div-customer {
width: 99%;
height: 100%;
-}
-.order-primary{
- margin-top: 20px;
- width: 100%;
}
</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue
index 769fd31..3ddf3dd 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue
@@ -12,11 +12,11 @@
import BasicTable from '@/components/sd/product/BasicTable.vue'
import {VXETable} from "vxe-table";
import useUserInfoStore from "@/stores/userInfo";
-import {changeFilterEvent, filterChanged} from "@/hook"
-import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove";
-import { useI18n } from 'vue-i18n'
+import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove";
+import {useI18n} from 'vue-i18n'
+import footSum from "@/hook/footSum"
//璇█鑾峰彇
-const { t } = useI18n()
+const {t} = useI18n()
let router = useRouter()
const userStore = useUserInfoStore()
@@ -107,9 +107,13 @@
//瀹氫箟鏁版嵁杩斿洖缁撴灉
let produceList = ref([])
//瀹氫箟褰撳墠椤垫暟
-let pageNum = $ref(1)
+let pageNum = ref(1)
let pageState = null
-
+let total = reactive({
+ pageTotal: 0,
+ dataTotal: 0,
+ pageSize: 100
+})
//鑾峰彇涓冨ぉ鍓嶅埌褰撳墠鏃堕棿
function getNowTime() {
@@ -124,9 +128,9 @@
return [start, end]
}
-onMounted(()=>{
+onMounted(() => {
//鍚敤琛ㄦ牸鎷栧姩閫変腑
- addListener(xGrid.value,gridOptions)
+ addListener(xGrid.value, gridOptions)
})
//绗竴娆″姞杞借幏鍙栬繎3澶╂椂闂村拰榛樿鐘舵��
@@ -148,7 +152,7 @@
pageTotal.value = res.data.total
produceList = produceList.value.concat(deepClone(res.data.data))
titleSelectJson.value.processType = res.data.process
- xGrid.value.reloadData(produceList)
+
gridOptions.loading = false
//绂佺敤鍒犻櫎銆佷繚瀛樻寜閽�
gridOptions.toolbarConfig.buttons[0].disabled = true
@@ -171,74 +175,129 @@
if (selectProcesses == '') {
selectProcesses = null
}
- if (inputVal == null && selectState == 1) {
- //鏍规嵁鏃堕棿鏌ヨ鏈帓浜ф暟鎹�
- request.post(`/productionScheduling/selectLastScheduling/${startTime}/${endTime}/${selectProcesses}/${inputVal}`, filterData.value).then((res) => {
+ // if (inputVal == null && selectState == 1) {
+ // //鏍规嵁鏃堕棿鏌ヨ鏈帓浜ф暟鎹�
+ // request.post(`/productionScheduling/selectLastScheduling/${startTime}/${endTime}/${selectProcesses}/${inputVal}`, filterData.value).then((res) => {
+ //
+ // if (res.code == 200) {
+ // pageTotal.value = res.data.total
+ // xGrid.value.loadData(res.data.data)
+ // gridOptions.loading = false
+ // //绂佺敤鍒犻櫎銆佸鏍告寜閽�
+ // gridOptions.toolbarConfig.buttons[0].disabled = true
+ // gridOptions.toolbarConfig.buttons[1].disabled = true
+ // //鍚敤淇濆瓨
+ // gridOptions.toolbarConfig.buttons[2].disabled = false
+ // } else {
+ // ElMessage.warning(res.msg)
+ // }
+ // })
+ // } else if (inputVal != null && selectState == 1) {
+ //鏍规嵁宸ュ簭鏌ヨ鏈帓浜ф暟鎹�
+ request.post(`/productionScheduling/selectScheduling/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
+ if (res.code == 200) {
+ total.dataTotal = res.data.total.total * 1
+ total.pageTotal = res.data.total.pageTotal
+ pageTotal.value = res.data.total
+ xGrid.value.loadData(res.data.data)
+ console.log(res.data.data)
+ gridOptions.loading = false
+ //绂佺敤鍒犻櫎銆佸鏍告寜閽�
+ gridOptions.toolbarConfig.buttons[0].disabled = true
+ gridOptions.toolbarConfig.buttons[1].disabled = true
+ //鍚敤淇濆瓨
+ gridOptions.toolbarConfig.buttons[2].disabled = false
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+ // } else if (inputVal == null && selectState == 2) {
+ // //鏍规嵁鏃堕棿鏌ヨ宸叉帓浜ф暟鎹�
+ // request.post(`/productionScheduling/selectScheduling/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
+ // if (res.code == 200) {
+ // pageTotal.value = res.data.total
+ // xGrid.value.loadData(res.data.data)
+ // gridOptions.loading = false
+ // //鍚敤鍒犻櫎銆佸鏍告寜閽�
+ // gridOptions.toolbarConfig.buttons[0].disabled = false
+ // gridOptions.toolbarConfig.buttons[1].disabled = false
+ // //绂佺敤淇濆瓨
+ // gridOptions.toolbarConfig.buttons[2].disabled = true
+ // } else {
+ // ElMessage.warning(res.msg)
+ // }
+ // })
+ // } else if (inputVal != null && selectState == 2) {
+ // //鏍规嵁璁㈠崟鍙锋煡璇㈠凡鎺掍骇鏁版嵁
+ // request.post(`/productionScheduling/selectSchedulingNot/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
+ // if (res.code == 200) {
+ // pageTotal.value = res.data.total
+ // xGrid.value.loadData(res.data.data)
+ // gridOptions.loading = false
+ // //鍚敤鍒犻櫎銆佸鏍告寜閽�
+ // gridOptions.toolbarConfig.buttons[0].disabled = false
+ // gridOptions.toolbarConfig.buttons[1].disabled = false
+ // //绂佺敤淇濆瓨
+ // gridOptions.toolbarConfig.buttons[2].disabled = true
+ // } else {
+ // ElMessage.warning(res.msg)
+ // }
+ // })
+ // }
- if (res.code == 200) {
- pageTotal.value = res.data.total
- xGrid.value.loadData(res.data.data)
- gridOptions.loading = false
- //绂佺敤鍒犻櫎銆佸鏍告寜閽�
- gridOptions.toolbarConfig.buttons[0].disabled = true
- gridOptions.toolbarConfig.buttons[1].disabled = true
- //鍚敤淇濆瓨
- gridOptions.toolbarConfig.buttons[2].disabled = false
- } else {
- ElMessage.warning(res.msg)
- }
- })
- } else if (inputVal != null && selectState == 1) {
- //鏍规嵁宸ュ簭鏌ヨ鏈帓浜ф暟鎹�
- request.post(`/productionScheduling/selectScheduling/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
- if (res.code == 200) {
- pageTotal.value = res.data.total
- xGrid.value.loadData(res.data.data)
- gridOptions.loading = false
- //绂佺敤鍒犻櫎銆佸鏍告寜閽�
- gridOptions.toolbarConfig.buttons[0].disabled = true
- gridOptions.toolbarConfig.buttons[1].disabled = true
- //鍚敤淇濆瓨
- gridOptions.toolbarConfig.buttons[2].disabled = false
- } else {
- ElMessage.warning(res.msg)
- }
- })
- } else if (inputVal == null && selectState == 2) {
- //鏍规嵁鏃堕棿鏌ヨ宸叉帓浜ф暟鎹�
- request.post(`/productionScheduling/selectScheduling/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
- if (res.code == 200) {
- pageTotal.value = res.data.total
- xGrid.value.loadData(res.data.data)
- gridOptions.loading = false
- //鍚敤鍒犻櫎銆佸鏍告寜閽�
- gridOptions.toolbarConfig.buttons[0].disabled = false
- gridOptions.toolbarConfig.buttons[1].disabled = false
- //绂佺敤淇濆瓨
- gridOptions.toolbarConfig.buttons[2].disabled = true
- } else {
- ElMessage.warning(res.msg)
- }
- })
- } else if (inputVal != null && selectState == 2) {
- //鏍规嵁璁㈠崟鍙锋煡璇㈠凡鎺掍骇鏁版嵁
- request.post(`/productionScheduling/selectSchedulingNot/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
- if (res.code == 200) {
- pageTotal.value = res.data.total
- xGrid.value.loadData(res.data.data)
- gridOptions.loading = false
- //鍚敤鍒犻櫎銆佸鏍告寜閽�
- gridOptions.toolbarConfig.buttons[0].disabled = false
- gridOptions.toolbarConfig.buttons[1].disabled = false
- //绂佺敤淇濆瓨
- gridOptions.toolbarConfig.buttons[2].disabled = true
- } else {
- ElMessage.warning(res.msg)
- }
- })
+
+}
+
+/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
+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
}
+//鑾峰彇閫変腑鏃堕棿
+ let startTime = form.date1[0]
+ let endTime = form.date1[1]
+ let selectProcesses = value.value
+ let selectState = stateValue.value
+ let inputVal = form.orderId
+ if (inputVal == '') {
+ inputVal = null
+ }
+ if (selectProcesses == '') {
+ selectProcesses = null
+ }
+ request.post(`/productionScheduling/selectScheduling/1/${total.pageSize}/${startTime}/${endTime}/${inputVal}/${selectProcesses}/${selectState}`, filterData.value).then((res) => {
+ if (res.code == 200) {
+ total.dataTotal = res.data.total.total * 1
+ total.pageTotal = parseInt(res.data.total)
+ pageNum.value = 1
+ xGrid.value.loadData(res.data.data)
+ gridOptions.loading = false
+ //绂佺敤鍒犻櫎銆佸鏍告寜閽�
+ gridOptions.toolbarConfig.buttons[0].disabled = true
+ gridOptions.toolbarConfig.buttons[1].disabled = true
+ //鍚敤淇濆瓨
+ gridOptions.toolbarConfig.buttons[2].disabled = false
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
}
/*鍚庣杩斿洖缁撴灉澶氬眰宓屽灞曠ず*/
@@ -269,13 +328,13 @@
useKey: true
},
filterConfig: { //绛涢�夐厤缃」
- // remote: true
+ remote: true
},
customConfig: {
storage: true
},
- editConfig: {
+ editConfig: {
trigger: 'click',
mode: 'row',
showStatus: true
@@ -284,9 +343,27 @@
body: {
options: [
[
- { code: 'copyChecked', name: t('basicData.selectSame'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
- { code: 'copyAll', name: t('basicData.sameAfterwards'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
- { code: 'clearChecked', name: t('basicData.clearSelection'), prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
+ {
+ code: 'copyChecked',
+ name: t('basicData.selectSame'),
+ prefixIcon: 'vxe-icon-copy',
+ visible: true,
+ disabled: false
+ },
+ {
+ code: 'copyAll',
+ name: t('basicData.sameAfterwards'),
+ prefixIcon: 'vxe-icon-feedback',
+ visible: true,
+ disabled: false
+ },
+ {
+ code: 'clearChecked',
+ name: t('basicData.clearSelection'),
+ prefixIcon: 'vxe-icon-indicator',
+ visible: true,
+ disabled: false
+ },
]
]
}
@@ -310,65 +387,54 @@
},
// {field: '鎺掍骇缂栧彿', title: '鎺掍骇缂栧彿', width: 120 },
{
- field: 'order_id',
+ field: 'orderGlassDetail.orderId',
title: t('order.orderId'),
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
width: 100,
- filterMethod: filterChanged
},
{
- field: 'customer_name',
+ field: 'order.customerName',
title: t('processCard.customerName'),
width: 110,
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
- filterMethod: filterChanged
},
{
- field: 'project',
+ field: 'order.project',
title: t('order.project'),
width: 100,
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
- filterMethod: filterChanged
},
{
- field: 'order_number',
+ field: 'orderNumber',
title: t('order.OrderNum'),
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
width: 70,
- filterMethod: filterChanged
},
{
- field: 'technology_number',
+ field: 'technologyNumber',
title: t('processCard.technologyNumber'),
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
width: 70,
- filterMethod: filterChanged
},
{
- field: 'child_width',
+ field: 'orderGlassDetail.childWidth',
title: t('order.width'),
width: 60,
- filters: [{data: ''}],
- slots: {filter: 'num1_filter'},
- filterMethod: filterChanged
},
{
- field: 'child_height',
+ field: 'orderGlassDetail.childHeight',
title: t('order.height'),
width: 60,
- filters: [{data: ''}],
- slots: {filter: 'num1_filter'},
- filterMethod: filterChanged
},
- {field: 'quantity', title: t('processCard.orderQuantity'), width: 70},
- {field: 'area', title: t('processCard.orderArea'), width: 90},
+ {field: 'orderDetail.quantity', title: t('processCard.orderQuantity'), width: 70},
+ {field: 'orderGlassDetail.area', title: t('processCard.orderArea'), width: 90},
{
- field: 'scheduling_quantity',
+ field: 'schedulingQuantity',
width: 120,
editRender: {name: 'input', attrs: {placeholder: ''}},
title: t('processCard.productionSchedulingQuantity'),
@@ -378,12 +444,12 @@
{field: 'pendingProductionArea', title: t('processCard.areaToScheduled'), width: 120},
{field: 'productionScheduledQuantity', title: t('processCard.plannedProductionQuantity'), width: 120},
{field: 'productionScheduledArea', title: t('processCard.plannedProductionArea'), width: 120},
- {field: 'review_status', title: t('processCard.reviewedState'), width: 140},
+ {field: 'reviewStatus', title: t('processCard.reviewedState'), width: 140},
{field: 'reviewer', title: t('processCard.reviewed'), width: 140},
- {field: 'glass_child', title: t('order.product'), width: 140},
- {field: 'shape', title: t('order.shape'), width: 80},
+ {field: 'orderGlassDetail.glassChild', title: t('order.product'), width: 140},
+ {field: 'orderDetail.shape', title: t('order.shape'), width: 80},
{field: 'notes', title: t('processCard.notes'), editRender: {name: 'input', attrs: {placeholder: ''}}, width: 120},
- {field: 'scheduling_id', title: t('processCard.schedulingId'), width: 120},
+ {field: 'schedulingId', title: t('processCard.schedulingId'), width: 120},
],//琛ㄥご鎸夐挳
toolbarConfig: {
@@ -400,20 +466,22 @@
},
data: [],//table body瀹為檯鏁版嵁
//鑴氶儴姹傚拰
- // footerMethod({columns, data}) {//椤佃剼鍑芥暟
- // let footList = ['鏁伴噺', '闈㈢Н', '鎺掍骇鏁伴噺', '宸叉帓浜ф暟閲�', '宸叉帓浜ч潰绉�', '鏈帓浜ф暟閲�', '鏈帓浜ч潰绉�']
- // return [
- // columns.map((column, columnIndex) => {
- // if (columnIndex === 0) {
- // return '鍚堣:'
- // }
- // if (footList.includes(column.field)) {
- // return sumNum(data, column.field)
- // }
- // return ''
- // })
- // ]
- // }
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return t('basicData.total')
+ }
+ const List =
+ ["orderDetail.quantity", 'orderGlassDetail.area', 'pendingProductionQuantity',
+ 'pendingProductionArea', 'productionScheduledQuantity', 'productionScheduledArea']
+ if (List.includes(column.field)) {
+ return footSum(data, column.field)
+ }
+ return ''
+ })
+ ]
+ }
})
@@ -428,7 +496,7 @@
if ($table) {
const selectRecords = $table.getCheckboxRecords()
if (selectRecords.length == 0) {
- ElMessage.warning(t('processCard.checkProductionScheduling'))
+ ElMessage.warning("璇峰嬀閫夋帓浜ф暟鎹�")
return;
}
for (let i = 0; i < selectRecords.length; i++) {
@@ -437,13 +505,13 @@
let number = selectRecords[i].scheduling_quantity
//璁″垝寮�濮嬨�佺粨鏉熸椂闂达紝鎺掍骇鏁伴噺涓嶈兘涓虹┖
if (start == null || end == null || number == null) {
- ElMessage.warning(t('processCard.saveCorrespondingValues'))
+ ElMessage.warning("璇峰~鍏ュ搴旂殑鍊煎啀杩涜淇濆瓨")
return;
}
}
let selectProcesses = value.value
if (selectProcesses == null || selectProcesses == "") {
- ElMessage.warning(t('processCard.selectProductionSchedulingProcess'))
+ ElMessage.warning("璇烽�夋嫨鎺掍骇宸ュ簭")
return;
}
@@ -457,12 +525,12 @@
//淇濆瓨鎺掍骇鏁版嵁
request.post("/productionScheduling/addScheduling", schedulingData.value).then((res) => {
if (res.code == 200) {
- ElMessage.success(t('basicData.msg.saveSuccess'))
+ ElMessage.success("淇濆瓨鎴愬姛")
// 鍚敤淇濆瓨
gridOptions.toolbarConfig.buttons[2].disabled = false
router.push({
path: '/main/processCard/ProductionScheduling',
- query: { random: Math.random()}
+ query: {random: Math.random()}
})
} else {
// 鍚敤淇濆瓨
@@ -482,10 +550,10 @@
const selectRecords = $table.getCheckboxRecords()
if ($table) {
if (selectRecords.length == 0) {
- ElMessage.warning(t('processCard.checkProductionScheduling'))
+ ElMessage.warning("璇峰嬀閫夋帓浜ф暟鎹�")
return;
}
- const type = await VXETable.modal.confirm(t('processCard.deleteThisData'))
+ const type = await VXETable.modal.confirm('鎮ㄧ‘瀹氳鍒犻櫎璇ユ暟鎹�?')
if (type === 'confirm') {
let schedulingData = ref({
scheduling: selectRecords,
@@ -493,7 +561,7 @@
request.post("/productionScheduling/deleteScheduling", schedulingData.value).then((res) => {
if (res.code == 200) {
- ElMessage.success(t('basicData.msg.deleteSuccess'))
+ ElMessage.success("鍒犻櫎鎴愬姛")
location.reload();
} else {
ElMessage.warning(res.msg)
@@ -509,7 +577,7 @@
const selectRecords = $table.getCheckboxRecords()
if ($table) {
if (selectRecords.length == 0) {
- ElMessage.warning(t('processCard.checkProductionScheduling'))
+ ElMessage.warning("璇峰嬀閫夋帓浜ф暟鎹�")
return;
}
let schedulingData = ref({
@@ -518,7 +586,7 @@
})
request.post("/productionScheduling/examineScheduling", schedulingData.value).then((res) => {
if (res.code == 200) {
- ElMessage.success(t('basicData.msg.ReviewSuccess'))
+ ElMessage.success("瀹℃牳鎴愬姛")
location.reload();
} else {
ElMessage.warning(res.msg)
@@ -532,18 +600,18 @@
}
}
},
- menuClick ({ menu, row, column }) {
+ menuClick({menu, row, column}) {
const $grid = xGrid.value
if ($grid) {
switch (menu.code) {
- case 'copyChecked' :{
+ case 'copyChecked' : {
let result = toolbarButtonClickEvent()
- if (result.cell === "scheduled_start_time" ||result.cell === "plan_end_time"){
- if(result){
+ if (result.cell === "scheduled_start_time" || result.cell === "plan_end_time") {
+ if (result) {
const dataList = xGrid.value.getTableData().visibleData
const val = dataList[result.start][result.cell]
- dataList.forEach((item,index) =>{
- if(index>=result.start && index<=result.end){
+ dataList.forEach((item, index) => {
+ if (index >= result.start && index <= result.end) {
item[result.cell] = val
}
})
@@ -552,9 +620,9 @@
break
}
- case 'copyAll' :{
+ case 'copyAll' : {
let result = toolbarButtonClickEvent()
- if (result.cell === "scheduled_start_time" ||result.cell === "plan_end_time") {
+ if (result.cell === "scheduled_start_time" || result.cell === "plan_end_time") {
if (result) {
const dataList = xGrid.value.getTableData().visibleData
const val = dataList[result.start][result.cell]
@@ -567,9 +635,9 @@
}
break
}
- case 'clearChecked' :{
+ case 'clearChecked' : {
let result = toolbarButtonClickEvent()
- if (result.cell === "scheduled_start_time" ||result.cell === "plan_end_time") {
+ if (result.cell === "scheduled_start_time" || result.cell === "plan_end_time") {
if (result) {
const dataList = xGrid.value.getTableData().visibleData
dataList.forEach((item, index) => {
@@ -592,8 +660,8 @@
const selectRecords = $grid.getCheckboxRecords()
let selectState = stateValue.value
table.forEach((selectRecords) => {
- if (selectRecords.scheduling_quantity > selectRecords.pendingProductionQuantity && selectState==1) {
- ElMessage.warning(t('processCard.schedulingQuantityNoQuantityScheduled'))
+ if (selectRecords.scheduling_quantity > selectRecords.pendingProductionQuantity && selectState == 1) {
+ ElMessage.warning("鎺掍骇鏁伴噺涓嶈兘澶т簬寰呮帓浜ф暟閲�")
//绂佺敤淇濆瓨鎸夐挳
//gridOptions.toolbarConfig.buttons[2].disabled = true
}
@@ -612,15 +680,15 @@
<el-date-picker
v-model="form.date1"
:default-time="defaultTime"
- :start-placeholder="$t('basicData.startDate')"
- :end-placeholder="$t('basicData.endDate')"
+ end-placeholder="缁撴潫鏃堕棿"
format="YYYY/MM/DD"
+ start-placeholder="寮�濮嬫椂闂�"
type="daterange"
value-format="YYYY-MM-DD"
/>
- <el-input v-model="form.orderId" clearable :placeholder="$t('order.orderId')" style="width: 110px"></el-input>
+ <el-input v-model="form.orderId" :placeholder="$t('order.orderId')" clearable style="width: 110px"></el-input>
<el-select v-model="value" clearable default-value="default_city" style="width: 120px">
<el-option
@@ -631,7 +699,7 @@
/>
</el-select>
- <el-select v-model="stateValue" class="m-2" :placeholder="$t('processCard.whetherToScheduleProduction')" style="width: 120px">
+ <el-select v-model="stateValue" class="m-2" placeholder="鏄惁鎺掍骇" style="width: 120px">
<el-option
v-for="item in stateOptions"
:key="item.value"
@@ -643,7 +711,7 @@
<el-button
id="select"
:icon="Search"
- type="primary" @click="getWorkOrder">{{$t('basicData.search')}}
+ type="primary" @click="getWorkOrder">{{ $t('basicData.search') }}
</el-button>
</el-row>
@@ -651,7 +719,7 @@
<vxe-grid
ref="xGrid"
class="mytable-scrollbar"
- height="100%"
+ height="500px"
max-height="100%"
v-bind="gridOptions"
v-on="gridEvents"
@@ -677,14 +745,26 @@
</div>
</div>
</template>
-
+ <template #pager>
+ <!--浣跨敤 pager 鎻掓Ы-->
+ <!-- 'PrevJump','NextJump', -->
+ <vxe-pager
+ v-model:current-page="pageNum"
+ v-model:page-size="total.pageSize"
+ v-model:pager-count="total.pageTotal"
+ :layouts="[ 'PrevPage', 'Jump','PageCount', 'NextPage', 'Total']"
+ :total="total.dataTotal"
+ @page-change="handlePageChange"
+ >
+ </vxe-pager>
+ </template>
</vxe-grid>
</div>
- <div class="vxe-table--cell-area" ref="cellArea" >
- <span class="vxe-table--cell-main-area" ></span>
+ <div ref="cellArea" class="vxe-table--cell-area">
+ <span class="vxe-table--cell-main-area"></span>
- <span class="vxe-table--cell-active-area" ></span>
+ <span class="vxe-table--cell-active-area"></span>
</div>
</template>
@@ -699,6 +779,7 @@
height: 6%;
text-align: center;
}
+
.vxe-grid {
/* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
-webkit-user-select: none;
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue
index 5e98ad8..20a564b 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue
@@ -8,19 +8,18 @@
import {useI18n} from 'vue-i18n'
import {changeFilterEvent, filterChanged} from "@/hook"
import footSum from "@/hook/footSum"
+import TagStyle from "@/components/mm/TagStyle.vue"
//璇█鑾峰彇
const {t} = useI18n()
let router = useRouter()
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal = ref('')
+
//瀹氫箟鏁版嵁杩斿洖缁撴灉
let produceList = ref([])
-//瀹氫箟褰撳墠椤垫暟
-let pageNum = $ref(1)
-let pageState = null
+let titleStyleVisible = ref(false)
+
const form = reactive({
date1: '',
@@ -119,7 +118,6 @@
})
}
-//瀛愮粍浠舵帴鏀跺弬鏁�
const xGrid = ref()
const gridOptions = reactive({
loading: true,
@@ -187,10 +185,10 @@
],//琛ㄥご鎸夐挳
toolbarConfig: {
- buttons: [],
- import: false,
- // export: true,
- // print: true,
+ buttons: [
+ {'code': 'titleStyle', 'name': '鏍囩鏍峰紡',status: 'primary'}
+ ],
+
zoom: true,
custom: true
},
@@ -212,6 +210,20 @@
}
})
+
+const gridEvents = {
+ async toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'titleStyle': {
+ titleStyleVisible.value = true
+ break
+ }
+ }
+ }
+ }
+}
</script>
@@ -246,6 +258,7 @@
height="100%"
max-height="100%"
v-bind="gridOptions"
+ v-on="gridEvents"
>
<!-- @toolbar-button-click="toolbarButtonClickEvent"-->
<!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
@@ -274,6 +287,15 @@
</vxe-grid>
+ <el-dialog
+ id="titleStyle"
+ :title="'鏍囩鏍峰紡'"
+ style="width: 70%;height:70% "
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ v-model="titleStyleVisible">
+ <tag-style style="width: 100%;height: 100%"/>
+ </el-dialog>
</div>
</template>
@@ -285,6 +307,9 @@
#selectForm {
width: 60%;
}
-
+:deep(#titleStyle .el-dialog__body){
+ height: 90%;
+ width: 100%;
+}
</style>
\ No newline at end of file
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 0e1f629..47adeb3 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
@@ -1066,7 +1066,7 @@
</div>
<div class="order-detail">
<vxe-grid
- max-height="100%"
+ height="100%"
class="mytable-scrollbar"
ref="xGrid"
v-bind="gridOptions"
diff --git a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
index dfbe1b8..64329bd 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
@@ -685,7 +685,7 @@
<el-input v-model="productTotal.totalThickness" size="small" disabled />
</div>
</el-col>
- <el-col :span="5">
+ <el-col :span="8">
<div class="grid-content ep-bg-purple" >
<el-text class="mx-1"
style="margin-left: 0.5rem;text-align: center">
diff --git a/north-glass-erp/northglass-erp/src/views/system/userPassWord/UpdateUserPassWord.vue b/north-glass-erp/northglass-erp/src/views/system/userPassWord/UpdateUserPassWord.vue
index 6243b4a..2fdebf8 100644
--- a/north-glass-erp/northglass-erp/src/views/system/userPassWord/UpdateUserPassWord.vue
+++ b/north-glass-erp/northglass-erp/src/views/system/userPassWord/UpdateUserPassWord.vue
@@ -10,8 +10,6 @@
const router = useRouter()
const route = useRoute()
const userStore = useUserInfoStore()
-
-console.log(userStore.user.id)
//娉ㄥ唽鐢ㄦ埛鍙傛暟
const register = reactive({
userId: userStore.user.id,
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
index 966c965..63f5414 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -20,7 +20,7 @@
import java.util.Map;
@RestController
-@Api(value="娴佺▼鍗ontroller",tags={"娴佺▼鍗℃搷浣滄帴鍙�"})
+@Api(value = "娴佺▼鍗ontroller", tags = {"娴佺▼鍗℃搷浣滄帴鍙�"})
@RequestMapping("/processCard")
public class ProcessCardController {
@Autowired
@@ -29,36 +29,36 @@
//娴佺▼鍗$鐞嗘煡璇�
@ApiOperation("娴佺▼鍗$鐞嗘煡璇㈡帴鍙�")
@SaCheckPermission("SelectProcessCard.search")
- @PostMapping ("/flowCard/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}")
+ @PostMapping("/flowCard/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}")
public Result dateProcess(
@PathVariable Integer pageNum,
@PathVariable Integer pageSize,
@PathVariable Date selectTime1,
@PathVariable Date selectTime2,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectProcessCard(pageNum,pageSize,selectTime1,selectTime2,flowCard));
-
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectProcessCard(pageNum, pageSize, selectTime1, selectTime2, flowCard));
+
}
//鍒嗘灦鏌ヨ
@ApiOperation("鍒嗘灦鏌ヨ鎺ュ彛")
@SaCheckPermission("SelectAddProcess.search")
- @PostMapping ("/selectAddProcess/{selectTime1}/{selectTime2}")
+ @PostMapping("/selectAddProcess/{selectTime1}/{selectTime2}")
public Result selectAddProcess(
@PathVariable Date selectTime1,
@PathVariable Date selectTime2,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectAddProcess(selectTime1,selectTime2,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectAddProcess(selectTime1, selectTime2, flowCard));
}
//鍒嗘灦鏄庣粏鏌ヨ
@ApiOperation("鍒嗘灦鏄庣粏鏌ヨ鎺ュ彛")
@SaCheckPermission("SplittingDetails.search")
- @PostMapping ("/detailsSelect/{orderId}")
+ @PostMapping("/detailsSelect/{orderId}")
public Result detailsSelect(
@PathVariable String orderId,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.detailsSelectSv(orderId,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.detailsSelectSv(orderId, flowCard));
}
@@ -70,14 +70,14 @@
public Result deleteOrderWork(
@PathVariable String orderId,
@PathVariable String processId
- ){
+ ) {
// if(flowCardService.deleteFlowCardSv(orderId,processId)){
// return Result.seccess();
// }else {
// throw new ServiceException(Constants.Code_500,"鍒犻櫎澶辫触,璇锋鏌ユ槸鍚﹀凡鎶ュ伐");
//
// }
- return Result.seccess(flowCardService.deleteFlowCardSv(orderId,processId));
+ return Result.seccess(flowCardService.deleteFlowCardSv(orderId, processId));
}
//淇敼鎺掔増鐘舵��
@@ -87,23 +87,23 @@
public Result updateLayoutStatus(
@PathVariable String processId,
@PathVariable Integer state
- ){
- if(flowCardService.updateLayoutStatusSv(processId,state)){
+ ) {
+ if (flowCardService.updateLayoutStatusSv(processId, state)) {
return Result.seccess();
- }else {
- throw new ServiceException(Constants.Code_500,"淇敼澶辫触");
+ } else {
+ throw new ServiceException(Constants.Code_500, "淇敼澶辫触");
}
}
//鍒嗘灦鏂板鏄庣粏鏌ヨ
@ApiOperation("鍒嗘灦鏄庣粏鏂板鎺ュ彛")
- @PostMapping ("/selectNoCard/{orderId}/{productionId}")
+ @PostMapping("/selectNoCard/{orderId}/{productionId}")
public Result SelectNoCard(
@PathVariable String orderId,
@PathVariable String productionId,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectNoCardSv(orderId,productionId,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectNoCardSv(orderId, productionId, flowCard));
}
@@ -111,80 +111,82 @@
@ApiOperation("娴佺▼鍗″垱寤烘帴鍙�")
@SaCheckPermission("AddProcessCard.add")
@PostMapping("/addFlowCard")
- public Result AddOrderWork( @RequestBody Map<String,Object> object){
- if(flowCardService.addFlowCardSv(object)){
+ public Result AddOrderWork(@RequestBody Map<String, Object> object) {
+ if (flowCardService.addFlowCardSv(object)) {
return Result.seccess();
- }else {
- throw new ServiceException(Constants.Code_500,"淇濆瓨澶辫触");
+ } else {
+ throw new ServiceException(Constants.Code_500, "淇濆瓨澶辫触");
}
}
//鏌ヨ绗竴娆℃帓浜ф暟鎹�
@ApiOperation("鎺掍骇鐣岄潰鍔犺浇鏌ヨ鎺ュ彛")
- @PostMapping ("/selectLastScheduling/{selectTime1}/{selectTime2}")
+ @PostMapping("/selectLastScheduling/{selectTime1}/{selectTime2}")
public Result selectLastScheduling(
@PathVariable String selectTime1,
@PathVariable String selectTime2,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectLastScheduling(selectTime1,selectTime2,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectLastScheduling(selectTime1, selectTime2, flowCard));
}
+
//鏌ヨ鎺掍骇鏁版嵁
@ApiOperation("鎺掍骇鐐瑰嚮鎸夐挳鏌ヨ鎺ュ彛")
- @PostMapping ("/selectScheduling/{selectTime1}/{selectTime2}/{orderId}/{processes}/{state}")
+ @PostMapping("/selectScheduling/{selectTime1}/{selectTime2}/{orderId}/{processes}/{state}")
public Result selectScheduling(
@PathVariable String selectTime1,
@PathVariable String selectTime2,
@PathVariable String orderId,
@PathVariable String processes,
@PathVariable Integer state,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectSchedulingSv(selectTime1,selectTime2,orderId,processes,state,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectSchedulingSv(selectTime1, selectTime2, orderId, processes, state, flowCard));
}
+
//娴佺▼鍗℃槑缁嗘煡璇�
@ApiOperation("娴佺▼鍗℃槑缁嗘煡璇㈡帴鍙�")
@SaCheckPermission("SelectDetailProcessCard.search")
- @PostMapping ("/flowCardDetail/{processId}")
+ @PostMapping("/flowCardDetail/{processId}")
public Result flowCardDetail(
@PathVariable String processId,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.flowCardDetailSv(processId,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.flowCardDetailSv(processId, flowCard));
}
@ApiOperation("娴佺▼鍗℃墦鍗版煡璇㈡帴鍙�")
@SaCheckPermission("SelectPrintFlowCard.search")
- @PostMapping ("/selectPrintFlowCard/{selectTime1}/{selectTime2}/{orderId}/{project}")
+ @PostMapping("/selectPrintFlowCard/{selectTime1}/{selectTime2}/{orderId}/{project}")
public Result selectPrintFlowCard(
@PathVariable Date selectTime1,
@PathVariable Date selectTime2,
@PathVariable String orderId,
@PathVariable String project,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectPrintFlowCardSv(selectTime1,selectTime2,orderId,project,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectPrintFlowCardSv(selectTime1, selectTime2, orderId, project, flowCard));
}
@ApiOperation("娴佺▼鍗℃槑缁嗘煡璇㈡帴鍙�")
@SaCheckPermission("PrintFlowCard.search")
- @PostMapping ("/selectPrint/{orderId}")
+ @PostMapping("/selectPrint/{orderId}")
public Result selectPrint(
@PathVariable String orderId,
- @RequestBody FlowCard flowCard){
- return Result.seccess(flowCardService.selectPrintSv(orderId,flowCard));
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.selectPrintSv(orderId, flowCard));
}
@ApiOperation("鎵撳嵃娴佺▼鍗℃暟鎹煡璇㈡帴鍙�")
@PostMapping("/getSelectPrinting")
- public Result getSelectPrinting( @RequestBody Map<String,Object> object){
+ public Result getSelectPrinting(@RequestBody Map<String, Object> object) {
return Result.seccess(flowCardService.getSelectPrintingSv(object));
}
@ApiOperation("鎵撳嵃鏍囩鏁版嵁鏌ヨ鎺ュ彛")
@PostMapping("/getSelectPrintLabel")
- public Result getSelectPrintLabel( @RequestBody Map<String,Object> object){
+ public Result getSelectPrintLabel(@RequestBody Map<String, Object> object) {
return Result.seccess(flowCardService.getSelectPrintLabelSv(object));
}
@@ -192,10 +194,29 @@
@SaCheckPermission("SelectProcessCard.review")
@PostMapping("/updateComposing")
public Result updateComposing(
- @RequestBody Map<String,Object> object
- ){
+ @RequestBody Map<String, Object> object
+ ) {
- return Result.seccess(flowCardService.updateComposingSv(object));
+ return Result.seccess(flowCardService.updateComposingSv(object));
+ }
+
+ @ApiOperation("娴佺▼鍗℃墦鍗版槑缁嗘暟鎹煡璇㈡帴鍙�")
+ @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}")
+ public Result printFlowCardDetails(@PathVariable String processId,
+ @PathVariable String technologyNumber,
+ @RequestBody FlowCard flowCard) {
+ return Result.seccess(flowCardService.printFlowCardDetailsSv(processId, technologyNumber, flowCard));
+ }
+
+ @ApiOperation("淇濆瓨鎵撳嵃鎺掑簭鎺ュ彛")
+ @PostMapping("/printSort")
+ public Result printSort(@RequestBody Map<String, Object> object) {
+ if (flowCardService.printSortSv(object)) {
+ return Result.seccess();
+ } else {
+ throw new ServiceException(Constants.Code_500, "淇濆瓨澶辫触");
+
+ }
}
@ApiOperation("鎵撳嵃鏍囩璁剧疆鏌ヨ")
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProductionSchedulingController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProductionSchedulingController.java
index 6b54924..46ab80d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProductionSchedulingController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProductionSchedulingController.java
@@ -37,15 +37,18 @@
//鐐瑰嚮鏌ヨ鎺掔増鏁版嵁
@ApiOperation("鐐瑰嚮鏌ヨ鎺掔増鏁版嵁鎺ュ彛")
@SaCheckPermission("ProductionScheduling.search")
- @PostMapping ("/selectScheduling/{selectTime1}/{selectTime2}/{orderId}/{processes}/{state}")
+ @PostMapping ("/selectScheduling/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}/{orderId}/{processes}/{state}")
public Result selectScheduling(
+ @PathVariable Integer pageNum,
+ @PathVariable Integer pageSize,
@PathVariable String selectTime1,
@PathVariable String selectTime2,
@PathVariable String orderId,
@PathVariable String processes,
@PathVariable Integer state,
@RequestBody ProductionScheduling productionScheduling){
- return Result.seccess(productionSchedulingService.selectSchedulingSv(selectTime1,selectTime2,orderId,processes,state,productionScheduling));
+
+ return Result.seccess(productionSchedulingService.selectSchedulingSv(pageNum, pageSize,selectTime1,selectTime2,orderId,processes,state,productionScheduling));
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java
new file mode 100644
index 0000000..9ab3ff0
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java
@@ -0,0 +1,44 @@
+package com.example.erp.controller.pp;
+
+import com.example.erp.common.Result;
+import com.example.erp.entity.pp.TagStyle;
+import com.example.erp.service.pp.TagStyleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("tagStyle")
+public class TagStyleController {
+ private final TagStyleService tagStyleService;
+
+ public TagStyleController(TagStyleService tagStyleService) {
+ this.tagStyleService = tagStyleService;
+ }
+
+ @PostMapping("saveTag")
+ public Result saveTag(@RequestBody TagStyle tagStyle){
+ return Result.seccess(tagStyleService.saveTag(tagStyle));
+ }
+
+ @GetMapping("getTagList")
+ public Result getTagList(){
+ return Result.seccess(tagStyleService.getTagList());
+ }
+ @GetMapping("getTagById/{id}")
+ public Result getTagById(@PathVariable("id") Integer id){
+ return Result.seccess(tagStyleService.getTagById(id));
+ }
+
+ @PostMapping("deleteTag/{id}")
+ public Result deleteTag(@PathVariable("id") Integer id){
+ return Result.seccess(tagStyleService.deleteTag(id));
+ }
+
+
+ @PostMapping("updateTag")
+ public Result updateTag(TagStyle tagStyle){
+ return Result.seccess(tagStyleService.updateTag(tagStyle));
+ }
+
+
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index 82874c7..7918d4a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -57,6 +57,8 @@
private String founder;
//鍒嗘灦鏃堕棿
private LocalDate splitFrameTime;
+ //鎺掑簭
+ private Integer sort;
//寤虹珛鏃堕棿
private LocalDate createTime;
//淇敼鏃堕棿
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ProductionScheduling.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ProductionScheduling.java
index f5f9809..1df4277 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ProductionScheduling.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ProductionScheduling.java
@@ -2,6 +2,7 @@
import com.example.erp.entity.sd.Order;
import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.entity.sd.OrderGlassDetail;
import lombok.Data;
import java.time.LocalDate;
@@ -33,8 +34,19 @@
//鍒涘缓鏃堕棿
private LocalDate createTime;
+ private Integer pendingProductionQuantity;
+
+ private Double pendingProductionArea;
+
+ private Integer productionScheduledQuantity;
+
+ private Double productionScheduledArea;
+
+
//澶栭敭璁㈠崟琛�
private Order order;
//澶栭敭璁㈠崟鏄庣粏琛�
private OrderDetail orderDetail;
+ //澶栭敭璁㈠崟鏄庣粏琛�
+ private OrderGlassDetail orderGlassDetail;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/TagStyle.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/TagStyle.java
new file mode 100644
index 0000000..7f95eaf
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/TagStyle.java
@@ -0,0 +1,21 @@
+package com.example.erp.entity.pp;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class TagStyle {
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+ private Integer type;
+ private String name;
+ private Double tagWidth;
+ private Double tagHeight;
+ private String value;
+ private String size;
+ private LocalDateTime createTime;
+
+}
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 be95348..2ae7498 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
@@ -32,7 +32,7 @@
private Double computeGrossArea;
private String processingNote;
private String remarks;
- private Integer bendRadius;
+ private Double bendRadius;
private String edgingType;
private Double weight;
private Double perimeter;
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index 60ead89..be45201 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.pp.PrintSetup;
import org.apache.ibatis.annotations.Mapper;
import java.sql.Date;
@@ -83,6 +82,10 @@
List<Map<String, String>> getPrintLabel(String processId, Integer technologyNumber);
+ List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, FlowCard flowCard);
+
+ Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort);
+
List<Map<String, String>> selectPrintSetup(PrintSetup printSetup);
Boolean updatePrintSetup(String alias,Integer printState);
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ProductionSchedulingMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ProductionSchedulingMapper.java
index ed797a9..b9298fe 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ProductionSchedulingMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ProductionSchedulingMapper.java
@@ -1,12 +1,9 @@
package com.example.erp.mapper.pp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.example.erp.entity.pp.BasicDataProduce;
import com.example.erp.entity.pp.ProductionScheduling;
-import com.example.erp.entity.sd.BasicData;
import org.apache.ibatis.annotations.Mapper;
-import java.sql.Date;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -15,9 +12,9 @@
public interface ProductionSchedulingMapper extends BaseMapper<ProductionScheduling> {
- List<Map<String,String>> selectOkSchedulingMp(String selectTime1, String selectTime2,String orderId,String processes, ProductionScheduling productionScheduling);
+ List<Map<String,String>> selectOkSchedulingMp(Integer offset, Integer pageSize, String selectTime1, String selectTime2, String orderId, String processes, ProductionScheduling productionScheduling);
- List<Map<String,String>> selectNoSchedulingMp(String selectTime1, String selectTime2,String orderId,String processes, ProductionScheduling productionScheduling);
+ List<ProductionScheduling> selectNoSchedulingMp(Integer offset, Integer pageSize, String selectTime1, String selectTime2, String orderId, String processes, ProductionScheduling productionScheduling);
List<Map<String,String>> selectLastSchedulingMp(String selectTime1, String selectTime2,String processes,String orderId, ProductionScheduling productionScheduling);
@@ -33,5 +30,7 @@
List<Map<String,String>> selectProcess();
+ Map<String, Integer> getPageTotal(Integer offset, Integer pageSize, String selectTime1, String selectTime2, String orderId, String processes, ProductionScheduling productionScheduling);
+
// Integer selectNumberMp(String orderId, String orderNumber, String processes);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/TagStyleMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/TagStyleMapper.java
new file mode 100644
index 0000000..90e3149
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/TagStyleMapper.java
@@ -0,0 +1,9 @@
+package com.example.erp.mapper.pp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.pp.TagStyle;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface TagStyleMapper extends BaseMapper<TagStyle> {
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index 17182e3..1ef4887 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -6,7 +6,6 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.pp.PrintSetup;
import com.example.erp.entity.pp.ProductionScheduling;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
@@ -265,12 +264,27 @@
return map;
}
+ public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, FlowCard flowCard) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber, flowCard));
+ return map;
+ }
+
+ public Boolean printSortSv(Map<String, Object> object) {
+ List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
+ if (!FlowCardList.isEmpty()) {
+ for (FlowCard flowCard : FlowCardList) {
+ flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
+ }
+ }
+ return true;
+ }
+
public Map<String, Object> printSetup(PrintSetup printSetup) {
Map<String, Object> map = new HashMap<>();
map.put("data", flowCardMapper.selectPrintSetup(printSetup));
return map;
}
-
public Boolean updatePrintSetup(Map<String, Object> object) {
System.out.println(object);
boolean saveState = true;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ProductionSchedulingService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ProductionSchedulingService.java
index 75c9eb4..c9783e5 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ProductionSchedulingService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ProductionSchedulingService.java
@@ -4,9 +4,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.erp.entity.pp.ProductionScheduling;
-import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -24,7 +22,9 @@
ProductionSchedulingMapper productionSchedulingMapper;
//鏈帓浜ф煡璇�
- public Map<String, Object> selectSchedulingSv(String selectTime1, String selectTime2, String orderId,String processes, Integer state, ProductionScheduling productionScheduling ) {
+ public Map<String, Object> selectSchedulingSv(Integer pageNum, Integer pageSize, String selectTime1, String selectTime2, String orderId, String processes, Integer state, ProductionScheduling productionScheduling ) {
+
+ Integer offset = (pageNum - 1) * pageSize;
Map<String, Object> map = new HashMap<>();
if("null".equals(orderId)){
orderId="";
@@ -35,13 +35,12 @@
}
if (state==2){//宸叉帓浜�
- map.put("data", productionSchedulingMapper.selectOkSchedulingMp(selectTime1, selectTime2,orderId,processes, productionScheduling));
+ map.put("data", productionSchedulingMapper.selectOkSchedulingMp(offset, pageSize,selectTime1, selectTime2,orderId,processes, productionScheduling));
}else if (state==1){//鏈帓浜�
- map.put("data", productionSchedulingMapper.selectNoSchedulingMp(selectTime1, selectTime2,orderId,processes, productionScheduling));
-
+ map.put("data", productionSchedulingMapper.selectNoSchedulingMp(offset, pageSize,selectTime1, selectTime2,orderId,processes, productionScheduling));
}
-
+ map.put("total", productionSchedulingMapper.getPageTotal(offset, pageSize,selectTime1, selectTime2,orderId,processes, productionScheduling));
return map;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java
new file mode 100644
index 0000000..d1ebcac
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java
@@ -0,0 +1,44 @@
+package com.example.erp.service.pp;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.entity.pp.TagStyle;
+import com.example.erp.mapper.pp.TagStyleMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@DS("pp")
+public class TagStyleService {
+ private final TagStyleMapper tagStyleMapper;
+
+ public TagStyleService(TagStyleMapper tagStyleMapper) {
+ this.tagStyleMapper = tagStyleMapper;
+ }
+
+ public Boolean saveTag(TagStyle tagStyle) {
+ if(tagStyle.getId()==null){
+ return tagStyleMapper.insert(tagStyle)>0;
+ }else {
+ return tagStyleMapper.updateById(tagStyle)>0;
+ }
+
+ }
+
+ public List<TagStyle> getTagList() {
+ return tagStyleMapper.selectList(null);
+ }
+
+ public boolean deleteTag(Integer id) {
+ return tagStyleMapper.deleteById(id)>0;
+ }
+
+ public Boolean updateTag(TagStyle tagStyle) {
+ return tagStyleMapper.updateById(tagStyle)>0;
+ }
+
+ public TagStyle getTagById(Integer id) {
+ return tagStyleMapper.selectById(id);
+ }
+}
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 8f036c8..d09673e 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -494,7 +494,7 @@
where fc.process_id = #{processId}
and fc.technology_number = #{technologyNumber}
group by fc.process_id, fc.order_number
- order by fc.order_number
+ order by IF(sort!=NULL||sort!='',sort,fc.order_number)
</select>
<select id="getProcessList">
@@ -545,7 +545,32 @@
order by d.technology_number
</select>
- <select id="selectPrintSetup">
+ <select id="printFlowCardDetailsMp">
+ SELECT fc.process_id,
+ fc.order_number,
+ fc.technology_number,
+ ogd.glass_address,
+ ogd.child_width,
+ ogd.child_height,
+ fc.quantity,
+ ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area
+ FROM flow_card AS fc
+ LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and fc.technology_number = #{technologyNumber}
+ </select>
+
+ <update id="printSortMp">
+ update flow_card
+ set sort = #{sort}
+ where process_id = #{processId}
+ and order_number=#{orderNumber}
+ and technology_number = #{technologyNumber}
+ </update>
+
+<select id="selectPrintSetup">
select id,
print_type as printType,
print_type_name as printTypeName,
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml b/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
index 80b4bb7..aa8ed69 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
@@ -3,42 +3,41 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.pp.ProductionSchedulingMapper">
- <resultMap id="ProductionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling">
+ <resultMap id="productionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling">
<result column="processes" property="processes"/>
<result column="scheduling_quantity" property="schedulingQuantity"/>
<result column="order_number" property="orderNumber"/>
<result column="scheduling_id" property="schedulingId"/>
- <result column="order_id" property="orderId"/>
+ <result column="order_id" property="orderGlassDetail.orderId"/>
+ <result column="technology_number" property="technologyNumber"/>
+ <result column="pendingProductionQuantity" property="pendingProductionQuantity"/>
+ <result column="pendingProductionArea" property="pendingProductionArea"/>
+ <result column="productionScheduledQuantity" property="productionScheduledQuantity"/>
+ <result column="productionScheduledArea" property="productionScheduledArea"/>
+ <result column="review_status" property="reviewStatus"/>
<!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
- <association property="order" javaType="com.example.erp.entity.sd.Order">
- <result column="project" property="project"/>
- <result column="order_id" property="orderId"/>
- <result column="customer_name" property="customerName"/>
- <result column="batch" property="batch"/>
- <result column="other_remarks" property="otherRemarks"/>
- <result column="icon" property="icon"/>
- <result column="order_type" property="orderType"/>
- <result column="salesman" property="salesman"/>
- <result column="processing_note" property="processingNote"/>
- <result column="delivery_address" property="deliveryAddress"/>
- </association>
- <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
- <result column="order_id" property="orderId"/>
- <result column="product_id" property="productId"/>
- <result column="product_name" property="productName"/>
- <result column="compute_gross_area" property="computeGrossArea"/>
- <result column="processing_note" property="processingNote"/>
- <result column="quantity" property="quantity"/>
- <result column="compute_gross_area" property="computeGrossArea"/>
- <result column="perimeter" property="perimeter"/>
- <result column="order_number" property="orderNumber"/>
- <result column="width" property="width"/>
- <result column="height" property="height"/>
- <result column="shape" property="shape"/>
- <result column="weight" property="weight"/>
- </association>
-
-
+ <result column="project" property="order.project"/>
+ <result column="customer_name" property="order.customerName"/>
+ <result column="batch" property="order.batch"/>
+ <result column="other_remarks" property="order.otherRemarks"/>
+ <result column="icon" property="order.icon"/>
+ <result column="order_type" property="order.orderType"/>
+ <result column="salesman" property="order.salesman"/>
+ <result column="processing_note" property="order.processingNote"/>
+ <result column="delivery_address" property="order.deliveryAddress"/>
+ <result column="product_id" property="orderDetail.productId"/>
+ <result column="product_name" property="orderDetail.productName"/>
+ <result column="compute_gross_area" property="orderDetail.computeGrossArea"/>
+ <result column="quantity" property="orderDetail.quantity"/>
+ <result column="perimeter" property="orderDetail.perimeter"/>
+ <result column="width" property="orderDetail.width"/>
+ <result column="height" property="orderDetail.height"/>
+ <result column="shape" property="orderDetail.shape"/>
+ <result column="weight" property="orderDetail.weight"/>
+ <result column="child_width" property="orderGlassDetail.childWidth"/>
+ <result column="child_height" property="orderGlassDetail.childHeight"/>
+ <result column="area" property="orderGlassDetail.area"/>
+ <result column="glass_child" property="orderGlassDetail.glassChild"/>
</resultMap>
@@ -114,41 +113,65 @@
order by ps.id desc
</select>
<!-- 鏌ヨ鏈帓浜ф暟鎹�-->
- <select id="selectNoSchedulingMp">
+ <select id="selectNoSchedulingMp" resultMap="productionSchedulingMap">
select ogd.order_id,
- o.customer_name,
- o.project,
- ogd.order_number,
- ogd.technology_number,
- ogd.child_width,
- ogd.child_height,
- od.quantity,
- round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as scheduling_quantity,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
- round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000, 2)
- as pendingProductionArea,
- IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
- round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
- 2) as productionScheduledArea,
- ogd.glass_child,
- od.shape
+ o.customer_name,
+ o.project,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.child_width,
+ ogd.child_height,
+ od.quantity,
+ round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as schedulingQuantity,
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
+ round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000,
+ 2)
+ as pendingProductionArea,
+ IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
+ round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
+ 2) as productionScheduledArea,
+ ogd.glass_child,
+ od.shape
from sd.order_glass_detail as ogd
- left join sd.order as o on ogd.order_id = o.order_id
- left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- left join sd.order_process_detail as opd on opd.order_id=ogd.order_id and opd.order_number=ogd.order_number and opd.technology_number=ogd.technology_number
- left join
- (select order_id,order_number,technology_number,SUM(scheduling_quantity) as schedulingQuantity from production_scheduling where processes=#{processes} group by order_id,order_number,technology_number) as ps on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and ps.technology_number=ogd.technology_number
+ left join sd.order as o on ogd.order_id = o.order_id
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.order_process_detail as opd
+ on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and
+ opd.technology_number = ogd.technology_number
+ left join
+ (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity
+ from production_scheduling
+ where processes = #{processes}
+ group by order_id, order_number, technology_number) as ps
+ on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and
+ ps.technology_number = ogd.technology_number
where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
- and od.create_time between #{selectTime1} and #{selectTime2} and opd.reporting_work_num_count=0
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and opd.reporting_work_num_count = 0
- and position(#{orderId} in ogd.order_id)
--- and position("鍒囧壊" in ps.processes)
-
- group by ogd.order_id, ogd.order_number,ogd.technology_number
+ and position(#{orderId} in ogd.order_id)
+ -- and position("鍒囧壊" in ps.processes)
+ <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ group by ogd.order_id, ogd.order_number, ogd.technology_number
order by ogd.order_id desc
+ limit #{offset},#{pageSize};
</select>
<!-- 棣栨鏌ヨ鎺掍骇鏁版嵁-->
<select id="selectLastSchedulingMp">
@@ -161,30 +184,39 @@
ogd.child_height,
od.quantity,
round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as scheduling_quantity,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
- round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000, 2)
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as scheduling_quantity,
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
+ round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000,
+ 2)
as pendingProductionArea,
- IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
+ IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
- 2) as productionScheduledArea,
+ 2) as productionScheduledArea,
ogd.glass_child,
od.shape
from sd.order_glass_detail as ogd
left join sd.order as o on ogd.order_id = o.order_id
- left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- left join sd.order_process_detail as opd on opd.order_id=ogd.order_id and opd.order_number=ogd.order_number and opd.technology_number=ogd.technology_number
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.order_process_detail as opd
+ on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and
+ opd.technology_number = ogd.technology_number
left join
- (select order_id,order_number,technology_number,SUM(scheduling_quantity) as schedulingQuantity from production_scheduling where processes=#{processes} group by order_id,order_number,technology_number) as ps on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and ps.technology_number=ogd.technology_number
+ (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity
+ from production_scheduling
+ where processes = #{processes}
+ group by order_id, order_number, technology_number) as ps
+ on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and
+ ps.technology_number = ogd.technology_number
where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
- and od.create_time between #{selectTime1} and #{selectTime2} and opd.reporting_work_num_count=0
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and opd.reporting_work_num_count = 0
and position(#{orderId} in ogd.order_id)
-- and position("鍒囧壊" in ps.processes)
- group by ogd.order_id, ogd.order_number,ogd.technology_number
+ group by ogd.order_id, ogd.order_number, ogd.technology_number
order by ogd.order_id desc
</select>
@@ -237,7 +269,46 @@
and bd.basic_type = 'product'
</select>
- <select id="selectNumberMp">
+ <select id="getPageTotal">
+ select CEILING(count(ogd.id)/#{pageSize}) as 'pageTotal',
+ count(distinct ogd.id) as 'total'
+ from sd.order_glass_detail as ogd
+ left join sd.order as o on ogd.order_id = o.order_id
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.order_process_detail as opd
+ on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and
+ opd.technology_number = ogd.technology_number
+ left join
+ (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity
+ from production_scheduling
+ where processes = #{processes}
+ group by order_id, order_number, technology_number) as ps
+ on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and
+ ps.technology_number = ogd.technology_number
+
+ where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and opd.reporting_work_num_count = 0
+
+ and position(#{orderId} in ogd.order_id)
+ -- and position("鍒囧壊" in ps.processes)
+ <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ order by ogd.order_id desc
+ limit #{offset},#{pageSize};
</select>
</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/pp/TagStyle.xml b/north-glass-erp/src/main/resources/mapper/pp/TagStyle.xml
new file mode 100644
index 0000000..bcbf007
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/pp/TagStyle.xml
@@ -0,0 +1,10 @@
+<?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.pp.TagStyleMapper">
+
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
index fe328f7..dc1fcbc 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
@@ -25,7 +25,7 @@
if(pd.glass_sort=1,'(澶�)',if(pd2.glass_sort=pd.glass_sort,'(鍐�)','')),
pd.detail,
if( od.bend_radius!='',
- round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,0),
+ round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,1),
od.width
),
od.height,
--
Gitblit v1.8.0