Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | // } |
| | | ] |
| | | }, |
| | | |
| | | { |
| | | //基础数据管理 |
| | | path: 'productionBasicData', |
| | | name: 'productionBasicData', |
| | | component: () => import('../views/pp/productionBasicData/ProductionBasicData.vue'), |
| | | children:[ |
| | | { |
| | | path: 'selectProductionBasicData', |
| | | name: 'selectProductionBasicData', |
| | | component: () => import('../views/pp/productionBasicData/SelectProductionBasicData.vue'), |
| | | }, |
| | | { |
| | | path: 'addBreakageReason', |
| | | name: 'addBreakageReason', |
| | | component: () => import('../views/pp/productionBasicData/AddBreakageReason.vue'), |
| | | }, |
| | | { |
| | | path: 'addBreakageType', |
| | | name: 'addBreakageType', |
| | | component: () => import('../views/pp/productionBasicData/AddBreakageType.vue'), |
| | | }, |
| | | { |
| | | path: 'addTeamGroup', |
| | | name: 'addTeamGroup', |
| | | component: () => import('../views/pp/productionBasicData/AddTeamGroup.vue'), |
| | | }, |
| | | { |
| | | path: '', |
| | | redirect:'/main/productionBasicData/SelectProductionBasicData' |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | |
| | | |
New file |
| | |
| | | <script setup> |
| | | |
| | | import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue"; |
| | | import {useRouter, useRoute} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import userInfo from "@/stores/userInfo" |
| | | import {useI18n} from 'vue-i18n' |
| | | //语言获取 |
| | | const {t} = useI18n() |
| | | const route = useRoute() |
| | | const user = userInfo() |
| | | let router = useRouter() |
| | | |
| | | //子组件接收参数 |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[ |
| | | { type: 'seq',fixed:"left", title: '自序', width: 50 }, |
| | | { |
| | | field: 'basicName', |
| | | title: '次破原因', |
| | | width: 1000, |
| | | editRender: {name: 'input', attrs: {placeholder: ''}}, |
| | | |
| | | }, |
| | | ], |
| | | //表头按钮 |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'}, |
| | | ], |
| | | // import: false, |
| | | // export: true, |
| | | // print: true, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | |
| | | ],//table body实际数据 |
| | | //脚部求和 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['maintenanceFrequency','MaintenancesFrequency'] |
| | | return[ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return '合计:' |
| | | } |
| | | if (footList.includes(column.field)) { |
| | | return sumNum(data, column.field) |
| | | } |
| | | return '' |
| | | }) |
| | | ] |
| | | } |
| | | |
| | | }) |
| | | const teamGridEvents = { |
| | | toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'addRow': { |
| | | $grid.insertAt({}) |
| | | break |
| | | } |
| | | case 'save': { |
| | | const tableData = $grid.getTableData().fullData |
| | | //console.log(tableData) |
| | | let breakageTypeData = ref({ |
| | | basicDataProduce: tableData |
| | | }) |
| | | request.post("/basicDataProduce/saveBreakageReason", breakageTypeData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | ElMessage.success("保存成功") |
| | | router.push({ |
| | | path: '/main/productionBasicData/AddBreakageReason', |
| | | query: {random: Math.random()} |
| | | }) |
| | | |
| | | //location.reload(); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | const size = ref<'default' | 'large' | 'small'>('default') |
| | | |
| | | const value1 = ref('') |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | | class="mytable-scrollbar" |
| | | max-height="100%" |
| | | height="650px" |
| | | v-bind="gridOptions" |
| | | v-on="teamGridEvents" |
| | | @filter-change="filterChanged" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row}"> |
| | | <ul class="expand-wrapper"> |
| | | <li v-for="(item,key,index) in row"> |
| | | <span style="font-weight: bold">{{key+': '}}</span> |
| | | <span>{{ item }}</span> |
| | | </li> |
| | | </ul> |
| | | </template> |
| | | |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .main-div-customer{ |
| | | width: 80%; |
| | | margin: 0 auto; |
| | | height: 100%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue"; |
| | | import {useRouter, useRoute} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import userInfo from "@/stores/userInfo" |
| | | import {useI18n} from 'vue-i18n' |
| | | //语言获取 |
| | | const {t} = useI18n() |
| | | const route = useRoute() |
| | | const user = userInfo() |
| | | let router = useRouter() |
| | | |
| | | |
| | | //子组件接收参数 |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[ |
| | | { type: 'seq',fixed:"left", title: '自序', width: 50 }, |
| | | |
| | | { |
| | | field: 'basicName', |
| | | title: '次破类型', |
| | | width: 1000, |
| | | editRender: {name: 'input', attrs: {placeholder: ''}}, |
| | | |
| | | }, |
| | | ], |
| | | //表头按钮 |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'}, |
| | | ], |
| | | // import: false, |
| | | // export: true, |
| | | // print: true, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | |
| | | ],//table body实际数据 |
| | | //脚部求和 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['maintenanceFrequency','MaintenancesFrequency'] |
| | | return[ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return '合计:' |
| | | } |
| | | if (footList.includes(column.field)) { |
| | | return sumNum(data, column.field) |
| | | } |
| | | return '' |
| | | }) |
| | | ] |
| | | } |
| | | |
| | | }) |
| | | |
| | | const teamGridEvents = { |
| | | toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'addRow': { |
| | | $grid.insertAt({}) |
| | | break |
| | | } |
| | | case 'save': { |
| | | const tableData = $grid.getTableData().fullData |
| | | //console.log(tableData) |
| | | let breakageTypeData = ref({ |
| | | basicDataProduce: tableData |
| | | }) |
| | | request.post("/basicDataProduce/saveBreakageType", breakageTypeData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | ElMessage.success("保存成功") |
| | | router.push({ |
| | | path: '/main/productionBasicData/AddBreakageType', |
| | | query: {random: Math.random()} |
| | | }) |
| | | |
| | | //location.reload(); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | const size = ref<'default' | 'large' | 'small'>('default') |
| | | |
| | | const value1 = ref('') |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | | class="mytable-scrollbar" |
| | | max-height="100%" |
| | | height="650px" |
| | | v-bind="gridOptions" |
| | | v-on="teamGridEvents" |
| | | @filter-change="filterChanged" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row}"> |
| | | <ul class="expand-wrapper"> |
| | | <li v-for="(item,key,index) in row"> |
| | | <span style="font-weight: bold">{{key+': '}}</span> |
| | | <span>{{ item }}</span> |
| | | </li> |
| | | </ul> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .main-div-customer{ |
| | | width: 80%; |
| | | margin: 0 auto; |
| | | height: 100%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | |
| | | import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue"; |
| | | import {useRouter, useRoute} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import userInfo from "@/stores/userInfo" |
| | | import {useI18n} from 'vue-i18n' |
| | | //语言获取 |
| | | const {t} = useI18n() |
| | | const route = useRoute() |
| | | const user = userInfo() |
| | | let router = useRouter() |
| | | |
| | | //定义接收加载表头下拉数据 |
| | | const titleSelectJson = ref({ |
| | | processType: [], |
| | | |
| | | }) |
| | | //第一次加载数据 |
| | | request.post(`/basicDataProduce/selectProcess`).then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | titleSelectJson.value.processType = res.data.process; |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | |
| | | //子组件接收参数 |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe: true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY: {enabled: true},//开启虚拟滚动 |
| | | showOverflow: true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns: [ |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | { |
| | | field: 'basicName', |
| | | title: '班组名称', |
| | | width: 600, |
| | | editRender: {name: 'input', attrs: {placeholder: ''}}, |
| | | |
| | | }, |
| | | { |
| | | field: 'basicCategory', |
| | | title: '所在工序', |
| | | editRender: {}, |
| | | slots: {default: 'basicCategory_default', edit: 'basicCategory'} |
| | | }, |
| | | ], |
| | | //表头按钮 |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'}, |
| | | ], |
| | | // import: false, |
| | | // export: true, |
| | | // print: true, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | 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 '' |
| | | }) |
| | | ] |
| | | } |
| | | |
| | | }) |
| | | |
| | | const teamGridEvents = { |
| | | toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'addRow': { |
| | | $grid.insertAt({}) |
| | | break |
| | | } |
| | | case 'save': { |
| | | const tableData = $grid.getTableData().fullData |
| | | //console.log(tableData) |
| | | let teamGroupData = ref({ |
| | | basicDataProduce: tableData |
| | | }) |
| | | request.post("/basicDataProduce/saveTeamGroup", teamGroupData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | ElMessage.success("保存成功") |
| | | //router.push('/main/processCard/SplittingDetails?orderId=${orderId}') |
| | | router.push({ |
| | | path: '/main/productionBasicData/AddTeamGroup', |
| | | query: {random: Math.random()} |
| | | }) |
| | | |
| | | //location.reload(); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | const size = ref<'default' | 'large' | 'small'>('default') |
| | | |
| | | const value1 = ref('') |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | | class="mytable-scrollbar" |
| | | max-height="100%" |
| | | height="650px" |
| | | v-bind="gridOptions" |
| | | v-on="teamGridEvents" |
| | | @filter-change="filterChanged" |
| | | |
| | | > |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input v-model="option.data" type="type" @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template #basicCategory="{ row }"> |
| | | <vxe-select v-model="row.basicCategory" |
| | | clearable |
| | | filterable |
| | | placeholder=""> |
| | | <vxe-option v-for="item in titleSelectJson.processType" |
| | | :key="item.basic_name" |
| | | :label="item.basic_name" |
| | | :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #basicCategory_default="{ row }"> |
| | | <span>{{ row.basicCategory }}</span> |
| | | </template> |
| | | |
| | | </vxe-grid> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .main-div-customer { |
| | | width: 99%; |
| | | height: 100%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | import {ref} from "vue"; |
| | | import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue"; |
| | | import request from "@/utils/request"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {useRoute, useRouter} from "vue-router"; |
| | | import GlassType from '@/components/basic/product/GlassType.vue' |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | let indexFlag=$ref(1) |
| | | function changeRouter(index){ |
| | | indexFlag=index |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div id="main"> |
| | | <div id="div-title"> |
| | | <el-breadcrumb :separator-icon="ArrowRight"> |
| | | <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productionBasicData/SelectProductionBasicData' }">基础数据查询</el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageType' }">次破类型新增</el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageReason' }">次破原因新增</el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddTeamGroup' }">班组新增新增</el-breadcrumb-item> |
| | | <!-- <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddMaintenanceAndRepair' }">班组人员新增新增</el-breadcrumb-item>--> |
| | | <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">打印</el-breadcrumb-item> |
| | | </el-breadcrumb> |
| | | </div> |
| | | |
| | | <div id="main-body"> |
| | | <router-view :key="route.fullPath" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | #main{ |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | #div-title{ |
| | | height: 5%; |
| | | width: 100%; |
| | | } |
| | | #searchButton{ |
| | | margin-top: -5px; |
| | | margin-left: 1rem; |
| | | } |
| | | #searchButton1{ |
| | | //margin-left: 10rem; |
| | | } |
| | | /*main-body样式*/ |
| | | #main-body{ |
| | | width: 99%; |
| | | height: 92%; |
| | | margin-top: 1%; |
| | | } |
| | | :deep(.indexTag .el-breadcrumb__inner){ |
| | | color: #5CADFE !important; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | |
| | | import {reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {ElMessage} from "element-plus"; |
| | | import { useI18n } from 'vue-i18n' |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | | let router=useRouter() |
| | | //定义数据返回结果 |
| | | let produceList = ref([]) |
| | | //定义接收加载表头下拉数据 |
| | | const titleSelectJson = ref({ |
| | | processType: [], |
| | | |
| | | }) |
| | | const size = ref<'default' | 'large' | 'small'>('default') |
| | | |
| | | const value1 = ref('') |
| | | let dialogTableVisible = ref(false) |
| | | |
| | | const getBasicData = ref({ |
| | | id: '', |
| | | basic_type: '', |
| | | basic_name: '', |
| | | d_basic_name: '', |
| | | }) |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | request.post(`/basicDataProduce/openSelectId/${row.id}`).then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | getBasicData.value = res.data.data[0] |
| | | dialogTableVisible.value=true |
| | | //router.push({path: '/main/productionBasicData/SelectProductionBasicData', query: {random:Math.random()}}) |
| | | } else { |
| | | |
| | | ElMessage.warning(res.msg) |
| | | |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | request.post(`/basicDataProduce/deleteBasic/${row.id}`).then((res) => { |
| | | if (res.code == 200) { |
| | | ElMessage.success(t('workOrder.deleteOk')) |
| | | router.push({path: '/main/productionBasicData/SelectProductionBasicData', query: {random:Math.random()}}) |
| | | } else { |
| | | |
| | | ElMessage.warning(res.msg) |
| | | |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | case 'setType':{ |
| | | alert('我接收到子组件传送的反审状态') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | | let count = 0 |
| | | list.forEach(item => { |
| | | count += Number(item[field]) |
| | | }) |
| | | return count.toFixed(2) |
| | | } |
| | | |
| | | request.post(`/basicDataProduce/selectBasic`).then((res) => { |
| | | |
| | | if (res.code == 200) { |
| | | produceList = produceList.value.concat(deepClone(res.data.data)) |
| | | titleSelectJson.value.processType = res.data.process; |
| | | xGrid.value.reloadData(produceList) |
| | | gridOptions.loading = false |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | |
| | | //子组件接收参数 |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | 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}, |
| | | {title: '操作', width: 140, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {field: 'id', width: 60, title: 'id',filters:[{ data: '' }],slots: { filter: 'num1_filter' },}, |
| | | {field: 'basic_type',width: 370, title: '类型', showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'basic_name', width: 330,title: '名称', filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'd_basic_name',width: 330, title: '类别',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | ], |
| | | //表头按钮 |
| | | toolbarConfig: { |
| | | // buttons: [{ |
| | | // |
| | | // }], |
| | | // import: false, |
| | | // export: true, |
| | | // print: true, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | 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 '' |
| | | }) |
| | | ] |
| | | } |
| | | |
| | | }) |
| | | |
| | | const updateBasic = () => { |
| | | let id = getBasicData.value.id |
| | | let process = getBasicData.value.d_basic_name |
| | | let name = getBasicData.value.basic_name |
| | | let type = getBasicData.value.basic_type |
| | | request.post(`/basicDataProduce/updateBasic/${id}/${process}/${name}/${type}`).then((res) => { |
| | | if (res.code == 200) { |
| | | ElMessage.success(t('processCard.modifySuccessfully')) |
| | | router.push({path: '/main/productionBasicData/SelectProductionBasicData', query: {random:Math.random()}}) |
| | | } else { |
| | | |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <vxe-grid |
| | | max-height="100%" |
| | | @filter-change="filterChanged" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row }"> |
| | | <ul class="expand-wrapper"> |
| | | <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> |
| | | <span style="font-weight: bold">{{ item.title + ': ' }}</span> |
| | | <span 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 #button_slot="{ row }"> |
| | | <el-button @click="getTableRow(row,'edit');" link type="primary" size="small">{{$t('basicData.edit')}}</el-button> |
| | | <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | <el-dialog v-model="dialogTableVisible" title="基础数据修改"> |
| | | <el-row> |
| | | <el-col :span="2"> |
| | | <el-text>id:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-input v-model="getBasicData.id" readonly autocomplete="off" style="width: 220px"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"> |
| | | <el-text>类型:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-input v-model="getBasicData.basic_type" readonly autocomplete="off" style="width: 220px"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"> |
| | | <el-text>名称:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-input v-model="getBasicData.basic_name" autocomplete="off" style="width: 220px"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"> |
| | | <el-text>类别:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <!-- <el-input v-model="getBasicData.d_basic_name" autocomplete="off" style="width: 220px"/>--> |
| | | <el-select v-model="getBasicData.d_basic_name" clearable placeholder="" style="width: 220px" |
| | | > |
| | | <el-option |
| | | v-for="item in titleSelectJson['processType']" |
| | | :key="item.id" |
| | | :label="item.basic_name" |
| | | :value="item.basic_name" |
| | | /> |
| | | </el-select> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">取消</el-button> |
| | | <el-button type="primary" @click="updateBasic"> |
| | | 修改 |
| | | </el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .main-div-customer{ |
| | | width: 99%; |
| | | height: 100%; |
| | | } |
| | | .el-row{ |
| | | margin: 10px; |
| | | } |
| | | </style> |
| | |
| | | package com.example.erp.controller.pp; |
| | | |
| | | import com.example.erp.common.Constants; |
| | | import com.example.erp.common.Result; |
| | | import com.example.erp.entity.pp.BasicDataProduce; |
| | | import com.example.erp.entity.pp.FlowCard; |
| | | import com.example.erp.exception.ServiceException; |
| | | import com.example.erp.service.pp.BasicDateProduceService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | |
| | | @Api(value="基础数据controller",tags={"基础数据操作接口"}) |
| | | @RequestMapping("/basicDataProduce") |
| | | public class BasicDataProduceController { |
| | | @Autowired |
| | | BasicDateProduceService basicDateProduceService; |
| | | // @PostMapping("/selectWorkBasic/{process}") |
| | | // public Result SelectWorkBasic( |
| | | // @PathVariable String process) { |
| | | // return Result.seccess(basicDateProduceService.SelectWorkBasicSv(process)); |
| | | // } |
| | | @ApiOperation("查询工序接口") |
| | | @PostMapping ("/selectProcess") |
| | | public Result selectProcess() { |
| | | return Result.seccess(basicDateProduceService.selectProcessSv()); |
| | | } |
| | | |
| | | @ApiOperation("查询所有基础数据接口") |
| | | @PostMapping ("/selectBasic") |
| | | public Result selectBasic() { |
| | | return Result.seccess(basicDateProduceService.selectBasicSv()); |
| | | } |
| | | |
| | | @ApiOperation("根据Id查询对应基础数据接口") |
| | | @PostMapping ("/openSelectId/{id}") |
| | | public Result openSelectId( |
| | | @PathVariable String id){ |
| | | return Result.seccess(basicDateProduceService.openSelectIdSv(id)); |
| | | |
| | | } |
| | | |
| | | @ApiOperation("删除基础数据接口") |
| | | @PostMapping("/deleteBasic/{id}") |
| | | public Result deleteBasic(@PathVariable String id){ |
| | | if(basicDateProduceService.deleteBasicSv(id)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"删除失败!"); |
| | | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("修改基础数据接口") |
| | | @PostMapping("/updateBasic/{id}/{process}/{name}/{type}") |
| | | public Result updateBasic(@PathVariable String id, |
| | | @PathVariable String process, |
| | | @PathVariable String name, |
| | | @PathVariable String type){ |
| | | if(basicDateProduceService.updateBasicSv(id,process,name,type)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"修改失败"); |
| | | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("班组基础数据添加接口") |
| | | @PostMapping("/saveTeamGroup") |
| | | public Result saveTeamGroup( @RequestBody Map<String,Object> object){ |
| | | if(basicDateProduceService.saveTeamGroupSv(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"保存失败"); |
| | | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("次破类型基础数据添加接口") |
| | | @PostMapping("/saveBreakageType") |
| | | public Result saveBreakageType( @RequestBody Map<String,Object> object){ |
| | | if(basicDateProduceService.saveBreakageTypeSv(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"保存失败"); |
| | | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("次破原因基础数据添加接口") |
| | | @PostMapping("/saveBreakageReason") |
| | | public Result saveBreakageReason( @RequestBody Map<String,Object> object){ |
| | | if(basicDateProduceService.saveBreakageReasonSv(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"保存失败"); |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | | public interface BasicDateProduceMapper { |
| | | |
| | | |
| | | |
| | | List<BasicDataProduce> SelectWorkBasicDeviceMp(String process); |
| | | |
| | | List<BasicDataProduce> SelectWorkBasicTeamsMp(String process); |
| | | |
| | | List<BasicDataProduce> SelectWorkBasicTeams(String process); |
| | | |
| | | List<Map<String,String>> selectProcessMp(); |
| | | |
| | | List<Map<String,String>> selectBasicMp(); |
| | | |
| | | List<Map<String,String>> openSelectIdMp(String id); |
| | | |
| | | Boolean deleteBasicMp(String id); |
| | | |
| | | Boolean updateBasicMp(String id, String basicId, String name, String type); |
| | | |
| | | String getBasicData(String process); |
| | | |
| | | Boolean addTeamGroupMp(String basicId, String basicName); |
| | | |
| | | Boolean saveBreakageTypeMp(String basicName); |
| | | |
| | | Boolean saveBreakageReasonMp(String basicName); |
| | | } |
| | |
| | | package com.example.erp.service.pp; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.example.erp.entity.pp.BasicDataProduce; |
| | | import com.example.erp.entity.pp.FlowCard; |
| | | import com.example.erp.mapper.pp.BasicDateProduceMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | @Autowired |
| | | private BasicDateProduceMapper basicDateProduceMapper; |
| | | |
| | | //查询工序 |
| | | public Map<String, Object> selectProcessSv() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("process", basicDateProduceMapper.selectProcessMp()); |
| | | return map; |
| | | } |
| | | |
| | | // public Object SelectWorkBasicSv(String process) { |
| | | // Map<String, Object> map = new HashMap<>(); |
| | | // map.put("device", basicDateProduceMapper.SelectWorkBasicDeviceMp(process)); |
| | | // map.put("teams", basicDateProduceMapper.SelectWorkBasicTeamsMp(process)); |
| | | // return map; |
| | | // } |
| | | |
| | | //查询所有基础数据 |
| | | public Map<String, Object> selectBasicSv() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", basicDateProduceMapper.selectBasicMp()); |
| | | map.put("process", basicDateProduceMapper.selectProcessMp()); |
| | | return map; |
| | | } |
| | | |
| | | //根据Id查询对应基础数据 |
| | | public Map<String, Object> openSelectIdSv(String id) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", basicDateProduceMapper.openSelectIdMp(id)); |
| | | return map; |
| | | } |
| | | |
| | | //删除基础数据 |
| | | public Boolean deleteBasicSv(String id) { |
| | | if (!id.isEmpty()) { |
| | | |
| | | return basicDateProduceMapper.deleteBasicMp(id); |
| | | } else { |
| | | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //updateBasicSv |
| | | public Boolean updateBasicSv(String id, String process, String name, String type) { |
| | | if (!id.isEmpty()) { |
| | | String BasicId = basicDateProduceMapper.getBasicData(process); |
| | | basicDateProduceMapper.updateBasicMp(id,BasicId,name,type); |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //班组基础数据添加 |
| | | public Boolean saveTeamGroupSv(Map<String, Object> object) { |
| | | List<BasicDataProduce> basicDataProduceList = JSONArray.parseArray(JSONObject.toJSONString(object.get("basicDataProduce")), BasicDataProduce.class); |
| | | if (!basicDataProduceList.isEmpty()) { |
| | | for (BasicDataProduce basicDataProduce : basicDataProduceList) { |
| | | //查询工序对应的工序id |
| | | String BasicId = basicDateProduceMapper.getBasicData(basicDataProduce.getBasicCategory()); |
| | | basicDateProduceMapper.addTeamGroupMp(BasicId,basicDataProduce.getBasicName()); |
| | | } |
| | | return true; |
| | | }else{ |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | //次破类型基础数据添加 |
| | | public Boolean saveBreakageTypeSv(Map<String, Object> object) { |
| | | List<BasicDataProduce> basicDataProduceList = JSONArray.parseArray(JSONObject.toJSONString(object.get("basicDataProduce")), BasicDataProduce.class); |
| | | if (!basicDataProduceList.isEmpty()) { |
| | | for (BasicDataProduce basicDataProduce : basicDataProduceList) { |
| | | basicDateProduceMapper.saveBreakageTypeMp(basicDataProduce.getBasicName()); |
| | | } |
| | | return true; |
| | | }else{ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | //次破原因基础数据添加 |
| | | public boolean saveBreakageReasonSv(Map<String, Object> object) { |
| | | List<BasicDataProduce> basicDataProduceList = JSONArray.parseArray(JSONObject.toJSONString(object.get("basicDataProduce")), BasicDataProduce.class); |
| | | if (!basicDataProduceList.isEmpty()) { |
| | | for (BasicDataProduce basicDataProduce : basicDataProduceList) { |
| | | basicDateProduceMapper.saveBreakageReasonMp(basicDataProduce.getBasicName()); |
| | | } |
| | | return true; |
| | | }else{ |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | |
| | | <result column="d_basic_type" property="basicData.basicType"/> |
| | | <result column="d_basic_name" property="basicData.basicName"/> |
| | | <result column="d_basic_category" property="basicData.basicCategory"/> |
| | | |
| | | <association property="basicData" javaType="com.example.erp.entity.sd.BasicData"> |
| | | <result column="basic_name" property="basicName"/> |
| | | </association> |
| | | |
| | | |
| | | </resultMap> |
| | | <select id="SelectWorkBasicDeviceMp"> |
| | | select |
| | | * |
| | | from |
| | | basic_data_produce as a |
| | | where a.basic_category=#{process} and a.basic_type='设备' |
| | | </select> |
| | | |
| | | <select id="SelectWorkBasicTeamsMp"> |
| | | select |
| | | * |
| | | from |
| | | basic_data_produce as a |
| | | where a.basic_category=#{process} and a.basic_type='班组' |
| | | </select> |
| | | |
| | | <select id="SelectWorkBasicTeams" resultMap="selectBasicDataProduce"> |
| | | select bdp.basic_name ,bd.basic_name as d_basic_name |
| | |
| | | where bd.basic_name = #{process} |
| | | and bdp.basic_type = "teamsgroups" |
| | | </select> |
| | | |
| | | <!-- 查询工序--> |
| | | <select id="selectProcessMp"> |
| | | select * from sd.basic_data where basic_type='product' and basic_category='process' |
| | | |
| | | </select> |
| | | |
| | | <select id="selectBasicMp"> |
| | | select bdp.id, bdp.basic_type, bdp.basic_name, bd.basic_name as d_basic_name |
| | | from pp.basic_data_produce bdp |
| | | left join sd.basic_data bd on bdp.basic_category = bd.id |
| | | order by bdp.id desc |
| | | </select> |
| | | |
| | | <select id="openSelectIdMp"> |
| | | select bdp.id, bdp.basic_type, bdp.basic_name, bd.basic_name as d_basic_name |
| | | from pp.basic_data_produce bdp |
| | | left join sd.basic_data bd on bdp.basic_category = bd.id |
| | | where bdp.id = #{id} |
| | | </select> |
| | | |
| | | <delete id="deleteBasicMp"> |
| | | delete from pp.basic_data_produce where id = #{id} |
| | | </delete> |
| | | |
| | | <update id="updateBasicMp"> |
| | | update pp.basic_data_produce set basic_type = #{type},basic_name = #{name},basic_category = #{basicId} where id = #{id} |
| | | </update> |
| | | |
| | | <select id="getBasicData"> |
| | | select id from sd.basic_data where basic_category = 'process' and basic_name = #{process} |
| | | </select> |
| | | |
| | | <insert id="addTeamGroupMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,basic_category,create_time) |
| | | values('teamsgroups',#{basicName},#{basicId},now()) |
| | | </insert> |
| | | |
| | | <insert id="saveBreakageTypeMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,create_time) |
| | | values('breakagetype',#{basicName},now()) |
| | | </insert> |
| | | |
| | | <insert id="saveBreakageReasonMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,create_time) |
| | | values('breakagereason',#{basicName},now()) |
| | | </insert> |
| | | </mapper> |
| | |
| | | <result column="d_basic_type" property="basicData.basicType"/> |
| | | <result column="d_basic_name" property="basicData.basicName"/> |
| | | <result column="d_basic_category" property="basicData.basicCategory"/> |
| | | |
| | | <association property="basicData" javaType="com.example.erp.entity.sd.BasicData"> |
| | | <result column="basic_name" property="basicName"/> |
| | | </association> |
| | | |
| | | |
| | | </resultMap> |
| | | <select id="SelectWorkBasicDeviceMp"> |
| | | select |
| | | * |
| | | from |
| | | basic_data_produce as a |
| | | where a.basic_category=#{process} and a.basic_type='设备' |
| | | </select> |
| | | |
| | | <select id="SelectWorkBasicTeamsMp"> |
| | | select |
| | | * |
| | | from |
| | | basic_data_produce as a |
| | | where a.basic_category=#{process} and a.basic_type='班组' |
| | | </select> |
| | | |
| | | <select id="SelectWorkBasicTeams" resultMap="selectBasicDataProduce"> |
| | | select bdp.basic_name ,bd.basic_name as d_basic_name |
| | |
| | | where bd.basic_name = #{process} |
| | | and bdp.basic_type = "teamsgroups" |
| | | </select> |
| | | |
| | | <!-- 查询工序--> |
| | | <select id="selectProcessMp"> |
| | | select * from sd.basic_data where basic_type='product' and basic_category='process' |
| | | |
| | | </select> |
| | | |
| | | <select id="selectBasicMp"> |
| | | select bdp.id, bdp.basic_type, bdp.basic_name, bd.basic_name as d_basic_name |
| | | from pp.basic_data_produce bdp |
| | | left join sd.basic_data bd on bdp.basic_category = bd.id |
| | | order by bdp.id desc |
| | | </select> |
| | | |
| | | <select id="openSelectIdMp"> |
| | | select bdp.id, bdp.basic_type, bdp.basic_name, bd.basic_name as d_basic_name |
| | | from pp.basic_data_produce bdp |
| | | left join sd.basic_data bd on bdp.basic_category = bd.id |
| | | where bdp.id = #{id} |
| | | </select> |
| | | |
| | | <delete id="deleteBasicMp"> |
| | | delete from pp.basic_data_produce where id = #{id} |
| | | </delete> |
| | | |
| | | <update id="updateBasicMp"> |
| | | update pp.basic_data_produce set basic_type = #{type},basic_name = #{name},basic_category = #{basicId} where id = #{id} |
| | | </update> |
| | | |
| | | <select id="getBasicData"> |
| | | select id from sd.basic_data where basic_category = 'process' and basic_name = #{process} |
| | | </select> |
| | | |
| | | <insert id="addTeamGroupMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,basic_category,create_time) |
| | | values('teamsgroups',#{basicName},#{basicId},now()) |
| | | </insert> |
| | | |
| | | <insert id="saveBreakageTypeMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,create_time) |
| | | values('breakagetype',#{basicName},now()) |
| | | </insert> |
| | | |
| | | <insert id="saveBreakageReasonMp"> |
| | | insert into pp.basic_data_produce(basic_type,basic_name,create_time) |
| | | values('breakagereason',#{basicName},now()) |
| | | </insert> |
| | | </mapper> |
New file |
| | |
| | | <?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.ReportMapper"> |
| | | <resultMap id="flowCardMap" type="com.example.erp.entity.pp.FlowCard"> |
| | | <result column="order_id" property="orderId"/> |
| | | <result column="process_Id" property="processId"/> |
| | | <result column="quantity" property="quantity"/> |
| | | <result column="founder" property="founder"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="layout_status" property="layoutStatus"/> |
| | | <!--接收其他外键实体类数据--> |
| | | <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="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> |
| | | <association property="orderGlassDetail" javaType="com.example.erp.entity.sd.OrderGlassDetail"> |
| | | <result column="production_id" property="productionId"/> |
| | | </association> |
| | | <association property="product" javaType="com.example.erp.entity.sd.Product"> |
| | | <result column="total_thickness" property="totalThickness"/> |
| | | <result column="thickness" property="thickness"/> |
| | | </association> |
| | | |
| | | <!--<result column="g_typeId" property="glassTypes.typeId"/> |
| | | <result column="g_type" property="glassTypes.type"/>--> |
| | | |
| | | </resultMap> |
| | | |
| | | <!-- 流程卡进度--> |
| | | <select id="processCardProgressMp"> |
| | | |
| | | </select> |
| | | </mapper> |