Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | <database-info product="MySQL" version="8.0.19" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.19" exact-driver-version="8.0"> |
| | | <extra-name-characters>#@</extra-name-characters> |
| | | <identifier-quote-string>`</identifier-quote-string> |
| | | <jdbc-catalog-is-schema>true</jdbc-catalog-is-schema> |
| | | </database-info> |
| | | <case-sensitivity plain-identifiers="lower" quoted-identifiers="lower" /> |
| | | <secret-storage>master_key</secret-storage> |
| | |
| | | |
| | | |
| | | // //这里需要是visibleData |
| | | // let tableData = getTablexGrid().getTableData().visibleData//获取处理条件之后的全量表体数据 |
| | | // let rowStart = selectionStart.rowIndex//获取选中起始行索引 |
| | | // let rowEnd = selectionEnd.rowIndex//获取选中结束行索引 |
| | | // let selectRows = tableData.filter((col, index: number) => {//col参数不能改否则会获取不到数据 |
| | | // //这里修改从右下往左上拖动的数据显示 |
| | | // if (rowStart <= rowEnd) { |
| | | // return rowStart <= index && rowEnd >= index |
| | | // } else { |
| | | // return rowStart >= index && rowEnd <= index |
| | | // } |
| | | // }) |
| | | let tableData = getTablexGrid().getTableData().visibleData//获取处理条件之后的全量表体数据 |
| | | let rowStart = selectionStart.rowIndex//获取选中起始行索引 |
| | | let rowEnd = selectionEnd.rowIndex//获取选中结束行索引 |
| | | let selectRows = tableData.filter((col, index: number) => {//col参数不能改否则会获取不到数据 |
| | | //这里修改从右下往左上拖动的数据显示 |
| | | if (rowStart <= rowEnd) { |
| | | return rowStart <= index && rowEnd >= index |
| | | } else { |
| | | return rowStart >= index && rowEnd <= index |
| | | } |
| | | }) |
| | | // console.log("鼠标选中行:", JSON.stringify(selectRows)) |
| | | |
| | | //这里需要是visibleColumn |
| | |
| | | } else { |
| | | return colStart >= index && colEnd <= index |
| | | } |
| | | |
| | | }) |
| | | return { |
| | | start:selectionStart.rowIndex,//开始行 |
| | | end : selectionEnd.rowIndex,//结束行 |
| | | cell:selectCols[0].field//选中列 |
| | | |
| | | |
| | | let result=null |
| | | if(selectRows.length===0){ |
| | | return false |
| | | } |
| | | result = { |
| | | start:selectionStart.rowIndex,//开始行 |
| | | end: selectionEnd.rowIndex,//结束行 |
| | | cell:selectCols[0].field,//选中列, |
| | | row:selectRows |
| | | } |
| | | |
| | | selectionStart.rowIndex=-1 |
| | | selectionStart.cellIndex=-1 |
| | | selectionEnd.rowIndex=-1 |
| | | selectionEnd.cellIndex=-1 |
| | | |
| | | return result |
| | | //console.log("鼠标选中列:", JSON.stringify(selectCols)) |
| | | |
| | | |
| | |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }).catch((e)=>{ |
| | | ElMessage.warning("服务器连接异常,请稍后再试") |
| | | router.push("/login") |
| | | }) |
| | | |
| | | //获取菜单列表 |
| | |
| | | |
| | | export default defineStore("userInfo",{ |
| | | state: () =>{ |
| | | let user=ref(null) |
| | | let user=ref({ |
| | | userName:null, |
| | | userId:null |
| | | }) |
| | | return { |
| | | user |
| | | } |
| | |
| | | |
| | | |
| | | //第一次调用 |
| | | request.post(`/FinishedGoodsInventory/getseletwarehousing/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectWarehousing/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/FinishedGoodsInventory/getseletwarehousing/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectWarehousing/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | } |
| | | const selectOrderList = ()=>{ |
| | | |
| | | request.post(`/FinishedGoodsInventory/getseletwarehousing/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectWarehousing/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | produceList = deepClone(res.data.data) |
| | |
| | | flowcard:selectRecords |
| | | }) |
| | | |
| | | request.post("/FinishedGoodsInventory/addseletwarehousing",flowData.value).then((res) => { |
| | | request.post("/FinishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("入库成功") |
| | | location.reload(); |
| | |
| | | |
| | | |
| | | //第一次调用 |
| | | request.post(`/FinishedGoodsInventory/getseletdeliveryDetail/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectDeliveryDetail/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/FinishedGoodsInventory/getseletdeliveryDetail/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectDeliveryDetail/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | |
| | | const selectOrderList = ()=>{ |
| | | |
| | | request.post(`/FinishedGoodsInventory/getseletdeliveryDetail/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectDeliveryDetail/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | produceList = deepClone(res.data.data) |
| | |
| | | orderDetail:selectRecords |
| | | }) |
| | | |
| | | request.post("/FinishedGoodsInventory/adddeliveryDetail",orderDetailData.value).then((res) => { |
| | | request.post("/FinishedGoodsInventory/addDeliveryDetail",orderDetailData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("出库成功") |
| | | location.reload(); |
| | |
| | | |
| | | |
| | | //第一次调用 |
| | | request.post(`/FinishedGoodsInventory/getselet/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelect/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/FinishedGoodsInventory/getselet/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelect/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | |
| | | const selectOrderList = ()=>{ |
| | | |
| | | request.post(`/FinishedGoodsInventory/getselet/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelect/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | produceList = deepClone(res.data.data) |
| | |
| | | }) |
| | | |
| | | //第一次调用 |
| | | request.post(`/FinishedGoodsInventory/getselectAllocateFinishedOperateLog/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectAllocateFinishedOperateLog/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/FinishedGoodsInventory/getselectAllocateFinishedOperateLog/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectAllocateFinishedOperateLog/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | |
| | | |
| | | const selectOrderList = ()=>{ |
| | | request.post(`/FinishedGoodsInventory/getselectAllocateFinishedOperateLog/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/FinishedGoodsInventory/getSelectAllocateFinishedOperateLog/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | orderDetail:selectRecords |
| | | |
| | | }) |
| | | request.post("/FinishedGoodsInventory/updateFinishedGoodsInventoryCounterexamination",flowData.value).then((res) => { |
| | | request.post("/FinishedGoodsInventory/updateFinishedGoodsInventoryCounterExamination",flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("反审成功") |
| | | location.reload(); |
| | |
| | | <script setup> |
| | | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | let router=useRouter() |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | case 'setType':{ |
| | | alert('我接收到子组件传送的反审状态') |
| | | break |
| | | } |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {changeFilterEvent,filterChanged} from "@/hook" |
| | | import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove"; |
| | | |
| | | let router = useRouter() |
| | | |
| | | //定义页面总页数 |
| | | let pageTotal=ref('') |
| | | //定义数据返回结果 |
| | | let produceList = ref([]) |
| | | //定义当前页数 |
| | | let pageNum=$ref(1) |
| | | const xGrid = ref(); |
| | | let cellArea = ref() |
| | | |
| | | |
| | | let filterData = ref({ |
| | | |
| | | }) |
| | | |
| | | |
| | | //第一次调用 |
| | | request.post(`/Replenish/getSelectReplenish/${pageNum}/100`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | |
| | | produceList = deepClone(res.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | //remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | { type: 'checkbox',fixed:"left", title: '选择', width: 80 }, |
| | | { type: 'seq',fixed:"left", title: '自序', width: 50 }, |
| | | {field: '报工时间', width: 120,title: '报工时间', sortable: true}, |
| | | {field: '销售单号', width: 120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, }, |
| | | {field: '流程卡号',width: 120, title: '流程卡号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: '项目名称', width: 130,title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: '产品名称',width: 120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '报工编号', width: 100,title: '报工编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: '序号', width: 70,title: '序号', sortable: true}, |
| | | {field: '单片名称',width: 100, title: '单片名称', sortable: true}, |
| | | {field: '楼层编号',width: 120, title: '楼层编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: '标记', width: 80,title: '标记', sortable: true}, |
| | | {field: '片标记',width: 90, title: '片标记', sortable: true}, |
| | | {field: '流程卡数量',width: 120, title: '流程卡数量', sortable: true}, |
| | | {field: '宽',width: 80, title: '宽', sortable: true}, |
| | | {field: '高',width: 80, title: '高', sortable: true}, |
| | | {field: '面积',width: 80, title: '面积', sortable: true}, |
| | | {field: '形状',width: 80, title: '形状', sortable: true}, |
| | | {field: '次破数量',width: 120, title: '次破数量', sortable: true}, |
| | | {field: '次破类型',width: 120, title: '次破类型', sortable: true}, |
| | | {field: '次破原因',width: 120, title: '次破原因', sortable: true}, |
| | | {field: '责任设备',width: 120, title: '责任设备', sortable: true}, |
| | | {field: '报工工序',width: 120, title: '报工工序', sortable: true}, |
| | | {field: '责任工序',width: 120, title: '责任工序', sortable: true}, |
| | | {field: '责任班组',width: 120, title: '责任班组', sortable: true}, |
| | | {field: '责任人员',width: 120, title: '责任人员', sortable: true}, |
| | | {field: '质检员',width: 100, title: '质检员', sortable: true} |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {field: 'select',type:'checkbox',title: '选择', width: 80,fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | {field: 'reportingWorkTime', width: 120, title: '报工时间', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'orderId', width: 120, title: '销售单号', showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'processId', width: 120, title: '流程卡号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'project', width: 120, title: '项目名称', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'batch', width: 80, title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'orderSort', width: 80, title: '序号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'productName', width: 120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'reportingWorkId', width: 120, title: '报工编号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'technologyNumber', width: 80, title: '标记',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'glassAddress', width: 90, title: '片标记', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchNum', width: 120, title: '次破数量', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'width', width: 80, title: '宽', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'height', width: 80, title: '高', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'shape', width: 80, title: '形状', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchProcesses', width: 100, title: '报工工序', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchType', width: 100, title: '次破类型', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchReason', width: 120, title: '次破原因', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsibleEquipment', width: 120, title: '责任设备', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'responsibleTeam', width: 120, title: '责任班组', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'qualityInsPector', width: 100, title: '质检员', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged} |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {code: 'print_lck', name: '保存',status:'primary' ,icon:'vxe-icon-save'}, |
| | | {'code': 'add', 'name': '保存',status: 'primary',icon: 'vxe-icon-save'} |
| | | ], |
| | | import: false, |
| | | export: true, |
| | |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | ],//table body实际数据 |
| | | //脚部求和 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['流程卡数量','面积','次破数量'] |
| | |
| | | |
| | | }) |
| | | |
| | | const gridEvents = { |
| | | async toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'add': { |
| | | const selectRecords = $grid.getCheckboxRecords() |
| | | |
| | | if (selectRecords.length > 0) { |
| | | const errMap = await $grid.validate(selectRecords) |
| | | if (errMap) { |
| | | return |
| | | } |
| | | } else { |
| | | ElMessage.warning("未选中数据") |
| | | return |
| | | } |
| | | |
| | | |
| | | let flowData = ref({ |
| | | patchLog: selectRecords |
| | | |
| | | }) |
| | | request.post("/Replenish/saveReplenish", flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("补片单提交成功") |
| | | location.reload(); |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | }, |
| | | menuClick ({ menu, row, column }) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (menu.code) { |
| | | |
| | | case 'copyChecked' :{ |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | let firstVal=null; |
| | | if(result.cell.indexOf('.')>-1){ |
| | | firstVal = eval("dataList["+result.start +"]."+result.cell) |
| | | }else { |
| | | firstVal=dataList[result.start][result.cell]; |
| | | } |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | if(result.cell.indexOf('.')>-1){ |
| | | const columnArr = result.cell.split('.') |
| | | item[columnArr[0]][columnArr[1]] = firstVal |
| | | }else{ |
| | | item[result.cell] = firstVal |
| | | } |
| | | |
| | | } |
| | | }) |
| | | } |
| | | break |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | const selectOrderList = ()=>{ |
| | | request.post(`/rework/SelectRework/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | if(res.code==200){ |
| | | selectDate.value = res.data.selectDate |
| | | |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | //页脚跳转 |
| | | const handlePageChange = ({ currentPage, pageSize }) => { |
| | | total.pageTotal = pageSize |
| | | pageNum.value=currentPage |
| | | |
| | | selectOrderList() |
| | | } |
| | | |
| | | |
| | | |
| | | </script> |
| | |
| | | |
| | | <vxe-grid |
| | | max-height="100%" |
| | | @filter-change="filterChanged" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | |
| | | <script setup> |
| | | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | let router=useRouter() |
| | | import {reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import useUserInfoStore from "@/stores/userInfo"; |
| | | import {changeFilterEvent,filterChanged} from "@/hook" |
| | | |
| | | |
| | | const userStore = useUserInfoStore() |
| | | const username = userStore.user.userName |
| | | const userid = userStore.user.userId |
| | | let router = useRouter() |
| | | let produceList = ref([]) |
| | | const dialogFormVisible = ref(false) |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | |
| | | } |
| | | } |
| | | |
| | | let pageNum=ref(1) |
| | | let total = reactive({ |
| | | pageTotal : 0, |
| | | dataTotal : 0, |
| | | pageSize : 10 |
| | | }) |
| | | |
| | | let selectDate = ref(["",""]) |
| | | |
| | | //筛选条件,有外键需要先定义明细里面的数据 |
| | | let filterData = ref({ |
| | | |
| | | |
| | | }) |
| | | |
| | | //第一次调用 |
| | | request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | | total.dataTotal = res.data.total.total*1 |
| | | total.pageTotal= res.data.total.pageTotal |
| | | |
| | | selectDate.value = res.data.selectDate |
| | | pageNum.value=1 |
| | | |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | | let count = 0 |
| | |
| | | } |
| | | |
| | | //子组件接收参数 |
| | | |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | //remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {title: '操作', width: 80, slots: { default: 'button_slot' },fixed:"left"}, |
| | | { type: 'seq',fixed:"left", title: '自序', width: 50 }, |
| | | |
| | | {field: 'salesOrderNo', width: 120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, }, |
| | | {field: 'processCardNo',width: 120, title: '流程卡号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'entryName', width: 130,title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'productName',width: 120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'reportingWorkNo', width: 100,title: '报工编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'serialNumber', width: 70,title: '序号', sortable: true}, |
| | | {field: 'singlePieceName',width: 100, title: '单片名称', sortable: true}, |
| | | {field: 'floorNumber',width: 120, title: '楼层编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'marking', width: 80,title: '标记', sortable: true}, |
| | | {field: 'pieces',width: 90, title: '片标记', sortable: true}, |
| | | {field: 'processCardNumber',width: 120, title: '流程卡数量', sortable: true}, |
| | | {field: 'width',width: 80, title: '宽', sortable: true}, |
| | | {field: 'height',width: 80, title: '高', sortable: true}, |
| | | {field: 'area',width: 80, title: '面积', sortable: true}, |
| | | {field: 'shape',width: 80, title: '形状', sortable: true}, |
| | | {field: 'numberBroken',width: 120, title: '次破数量', sortable: true}, |
| | | {field: 'reasonType',width: 120, title: '次破类型', sortable: true}, |
| | | {field: 'reasonDamage',width: 120, title: '次破原因', sortable: true}, |
| | | {field: 'responsibilityDevice',width: 120, title: '责任设备', sortable: true}, |
| | | {field: 'reportingProcess',width: 120, title: '报工工序', sortable: true}, |
| | | {field: 'responsibilityProcess',width: 120, title: '责任工序', sortable: true}, |
| | | {field: 'responsibilityTeams',width: 120, title: '责任班组', sortable: true}, |
| | | {field: 'responsibilityPersonnel',width: 120, title: '责任人员', sortable: true}, |
| | | {field: 'qualityInspector',width: 100, title: '质检员', sortable: true} |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {type:'checkbox',title: '选择', width: 80,fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | {field: 'review_status',title: '审核', width: 40, slots: { default: 'state' }}, |
| | | {field: 'patch_id', width: 120, title: '补片单号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'order_id', width: 120, title: '销售单号', showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'process_id', width: 120, title: '流程卡号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'project', width: 120, title: '项目名称', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'reporting_work_id', width: 100,title: '报工编号',filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'batch', width: 80, title: '批次', showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'order_sort', width: 80, title: '序号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'product_name', width: 120, title: '单片名称', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'building_number',width: 120, title: '楼层编号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'technology_number', width: 80, title: '标记', showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'glass_address', width: 90, title: '片标记', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'patch_num', width: 80, title: '数量', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'width', width: 80, title: '宽', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'height', width: 80, title: '高', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'shape', width: 80, title: '形状', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'patch_type', width: 100, title: '返工类型', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'patch_reason', width: 120, title: '返工原因', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'responsible_equipment', width: 120, title: '责任设备', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'responsible_team', width: 120, title: '责任班组', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'patch_area', width: 120, title: '面积', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'patch_processes', width: 120, title: '报工工序', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'quality_inspector', width: 100, title: '质检员', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'reviewer', width: 100, title: '审核员', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'create_time', width: 100, title: '补片时间'}, |
| | | {field: 'update_time', width: 120, title: '补片审核时间'} |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | // buttons: [{ |
| | | // |
| | | // }], |
| | | import: false, |
| | | buttons: [{ |
| | | 'name': '审核',status: 'primary', |
| | | 'code':'add' |
| | | }], |
| | | /*import: false, |
| | | export: true, |
| | | print: true, |
| | | print: true,*/ |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | { |
| | | reportingWorkTime:'2021-01-01', |
| | | salesOrderNo:'NG23010101', |
| | | processCardNo:'NG23010101A01', |
| | | entryName:'xxxx', |
| | | productName:"xxxxxxxxx", |
| | | reportingWorkNo:"BG2301010001", |
| | | floorNumber:"D4-010-01", |
| | | area:'23.11', |
| | | reportingProcess:'钢化', |
| | | qualityInspector:"张三", |
| | | serialNumber:'1', |
| | | singlePieceName: '6mm白玻平钢(外)', |
| | | marking: '1', |
| | | pieces: '(外)', |
| | | processCardNumber: '11', |
| | | width: '575', |
| | | height:"2241", |
| | | shape: '普形', |
| | | upCompletedQuantity: '12', |
| | | completedQuantity: '1', |
| | | numberBroken:'2', |
| | | availableUse:'', |
| | | returnProcess:'', |
| | | |
| | | reasonType: '机器', |
| | | reasonDamage:'气泡超标', |
| | | available:'', |
| | | reworkProcess:'', |
| | | responsibilityProcess:'中空', |
| | | responsibilityTeams:'中空一班', |
| | | responsibilityPersonnel:'', |
| | | responsibilityDevice:'中空3#线', |
| | | completed:'', |
| | | onceBroken:'', |
| | | }, |
| | | { |
| | | reportingWorkTime:'2021-01-01', |
| | | salesOrderNo:'NG23010101', |
| | | processCardNo:'NG23010101A01', |
| | | entryName:'xxxx', |
| | | productName:"xxxxxxxxx", |
| | | reportingWorkNo:"BG2301010001", |
| | | floorNumber:"D4-010-01", |
| | | area:'23.11', |
| | | reportingProcess:'钢化', |
| | | qualityInspector:"张三", |
| | | serialNumber:'1', |
| | | singlePieceName: '6mm白玻平钢(外)', |
| | | marking: '1', |
| | | pieces: '(外)', |
| | | processCardNumber: '11', |
| | | width: '575', |
| | | height:"2241", |
| | | shape: '普形', |
| | | upCompletedQuantity: '12', |
| | | completedQuantity: '1', |
| | | numberBroken:'2', |
| | | availableUse:'', |
| | | returnProcess:'', |
| | | |
| | | reasonType: '机器', |
| | | reasonDamage:'气泡超标', |
| | | available:'', |
| | | reworkProcess:'', |
| | | responsibilityProcess:'中空', |
| | | responsibilityTeams:'中空一班', |
| | | responsibilityPersonnel:'', |
| | | responsibilityDevice:'中空3#线', |
| | | completed:'', |
| | | onceBroken:'', |
| | | }, |
| | | { |
| | | reportingWorkTime:'2021-01-01', |
| | | salesOrderNo:'NG23010101', |
| | | processCardNo:'NG23010101A01', |
| | | entryName:'xxxx', |
| | | productName:"xxxxxxxxx", |
| | | reportingWorkNo:"BG2301010001", |
| | | floorNumber:"D4-010-01", |
| | | area:'23.11', |
| | | reportingProcess:'钢化', |
| | | qualityInspector:"张三", |
| | | serialNumber:'1', |
| | | singlePieceName: '6mm白玻平钢(外)', |
| | | marking: '1', |
| | | pieces: '(外)', |
| | | processCardNumber: '11', |
| | | width: '575', |
| | | height:"2241", |
| | | shape: '普形', |
| | | upCompletedQuantity: '12', |
| | | completedQuantity: '1', |
| | | numberBroken:'2', |
| | | availableUse:'', |
| | | returnProcess:'', |
| | | |
| | | reasonType: '机器', |
| | | reasonDamage:'气泡超标', |
| | | available:'', |
| | | reworkProcess:'', |
| | | responsibilityProcess:'中空', |
| | | responsibilityTeams:'中空一班', |
| | | responsibilityPersonnel:'', |
| | | responsibilityDevice:'中空3#线', |
| | | completed:'', |
| | | onceBroken:'', |
| | | }, |
| | | { |
| | | reportingWorkTime:'2021-01-01', |
| | | salesOrderNo:'NG23010101', |
| | | processCardNo:'NG23010101A01', |
| | | entryName:'xxxx', |
| | | productName:"xxxxxxxxx", |
| | | reportingWorkNo:"BG2301010001", |
| | | floorNumber:"D4-010-01", |
| | | area:'23.11', |
| | | reportingProcess:'钢化', |
| | | qualityInspector:"张三", |
| | | serialNumber:'1', |
| | | singlePieceName: '6mm白玻平钢(外)', |
| | | marking: '1', |
| | | pieces: '(外)', |
| | | processCardNumber: '11', |
| | | width: '575', |
| | | height:"2241", |
| | | shape: '普形', |
| | | upCompletedQuantity: '12', |
| | | completedQuantity: '1', |
| | | numberBroken:'2', |
| | | availableUse:'', |
| | | returnProcess:'', |
| | | |
| | | reasonType: '机器', |
| | | reasonDamage:'气泡超标', |
| | | available:'', |
| | | reworkProcess:'', |
| | | responsibilityProcess:'中空', |
| | | responsibilityTeams:'中空一班', |
| | | responsibilityPersonnel:'', |
| | | responsibilityDevice:'中空3#线', |
| | | completed:'', |
| | | onceBroken:'', |
| | | }, |
| | | ],//table body实际数据 |
| | | //脚部求和 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['processCardNumber','numberBroken'] |
| | | return[ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return '合计:' |
| | | return '合计' |
| | | } |
| | | if (footList.includes(column.field)) { |
| | | return sumNum(data, column.field) |
| | |
| | | |
| | | }) |
| | | |
| | | const gridEvents = { |
| | | toolbarButtonClick ({ code }) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'add': { |
| | | const $table = xGrid.value |
| | | if ($table) { |
| | | const selectRecords = $table.getCheckboxRecords() |
| | | |
| | | let flowData = ref({ |
| | | |
| | | userId:userid, |
| | | userName:username, |
| | | patchLog:selectRecords |
| | | |
| | | }) |
| | | request.post("/Replenish/updateReplenish",flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("审核成功") |
| | | location.reload(); |
| | | |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | return; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | } |
| | | |
| | | |
| | | const selectOrderList = ()=>{ |
| | | request.post(`/Replenish/SelectReplenish/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | if(res.code==200){ |
| | | selectDate.value = res.data.selectDate |
| | | |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const changeDate = ()=>{ |
| | | selectOrderList() |
| | | } |
| | | |
| | | //页脚跳转 |
| | | const handlePageChange = ({ currentPage, pageSize }) => { |
| | | total.pageTotal = pageSize |
| | | pageNum.value=currentPage |
| | | |
| | | selectOrderList() |
| | | } |
| | | |
| | | const checkBoxConfig = { |
| | | checkMethod: ({ row }) => { |
| | | if (row['review_status']===1){ |
| | | return row.disable |
| | | }else{ |
| | | return !row.disable |
| | | } |
| | | |
| | | }, |
| | | reserve:true |
| | | } |
| | | |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <div id="head" > |
| | | <el-row :gutter="0"> |
| | | <el-header height="auto" style="padding: 0;margin:0"> |
| | | <el-date-picker |
| | | v-model="value" |
| | | v-model="selectDate" |
| | | type="daterange" |
| | | start-placeholder="报工开始时间" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD" |
| | | |
| | | /> |
| | | |
| | | <el-button type="primary">查询</el-button> |
| | | </el-row> |
| | | </div> |
| | | <el-button @click="changeDate" style="margin-top: -5px" id="searchButton" type="primary" :icon="Search">查询</el-button> |
| | | </el-header> |
| | | |
| | | <vxe-grid |
| | | max-height="100%" |
| | | @filter-change="filterChanged" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | :checkbox-config="checkBoxConfig" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <template #state="{ row,column}"> |
| | | <el-checkbox @click.native.prevent :checked="row[column.field]===1"/> |
| | | </template> |
| | | |
| | | <template #pager> |
| | | <!--使用 pager 插槽--> |
| | | <vxe-pager |
| | | @page-change="handlePageChange" |
| | | :layouts="[ 'PrevPage', 'Jump','PageCount', 'NextPage', 'Total']" |
| | | v-model:current-page="pageNum" |
| | | v-model:page-size="total.pageSize" |
| | | v-model:pager-count="total.pageTotal" |
| | | :total="total.dataTotal" |
| | | > |
| | | </vxe-pager> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | </div> |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import {indexOf} from "xe-utils"; |
| | | import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove"; |
| | | import userInfo from "@/stores/userInfo" |
| | | let brokenVisible = ref(false) |
| | | const xGrid = ref() |
| | | const brokenGrid =ref() |
| | | let router = useRouter() |
| | | |
| | | const user=userInfo() |
| | | |
| | | //定义表头数据 |
| | | const titleUploadData = ref({ |
| | | //流程卡号 |
| | | processId: 'NG24030501A01/2', |
| | | //销售单号 |
| | | orderId: '', |
| | | //生产单号 |
| | | productionId: '', |
| | | //设备类型 |
| | | deviceType: '', |
| | | //班组类型 |
| | | teamsType: '', |
| | | deviceName: '', |
| | | //班组名称 |
| | | teamsGroupsName: '', |
| | | //生产日期 |
| | | reportingWorkDate: '', |
| | | reportingWorkTime: '', |
| | | //报工工序 |
| | | thisProcess: '', |
| | | //上工序 |
| | |
| | | |
| | | |
| | | }) |
| | | let detail = ref([]) |
| | | |
| | | //定义接收加载表头下拉数据 |
| | | const titleSelectJson = ref({ |
| | |
| | | processType: [], |
| | | thisProcessType: [], |
| | | mateProcessType: [], |
| | | historyDevice:[], |
| | | historyTeams:[], |
| | | historyProcess:[], |
| | | breakageType:[], |
| | | breakageReason:[] |
| | | |
| | | }) |
| | | |
| | | //表尾求和 |
| | |
| | | return count.toFixed(2) |
| | | } |
| | | |
| | | const form = reactive({ |
| | | processId: 'NG24022302A01/1' |
| | | }) |
| | | |
| | | |
| | | const optionVal = ref('') |
| | | const options = [ |
| | |
| | | ] |
| | | |
| | | |
| | | //子组件接收参数 |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | |
| | | |
| | | }, |
| | | { |
| | | field: 'breakageNumber', title: '次破数量', |
| | | |
| | | field: 'breakageQuantity', title: '次破数量', |
| | | }, |
| | | // {field: 'available', width: 80, title: '可利用', editRender: {name: 'input', attrs: {placeholder: ''}}}, |
| | | // {field: 'returnProcess', width: 100, title: '退回工序', editRender: {name: 'input', attrs: {placeholder: ''}}}, |
| | | // { |
| | | // field: 'reasonType', width: 100, title: '次破类型', |
| | | // editRender: {name: 'input', attrs: {placeholder: '', type: 'selected'}} |
| | | // }, |
| | | // { |
| | | // field: 'reasonDamage', width: 100, title: '次破原因', |
| | | // editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | // }, |
| | | // { |
| | | // field: 'responsibleProcess', width: 100, title: '责任工序', |
| | | // editRender: {}, |
| | | // slots: {default: 'reportingWordSort_default', edit: 'reportingWordSort'} |
| | | // //editRender: {name: 'input', attrs: {placeholder: '',type: 'selected'}}, |
| | | // |
| | | // }, |
| | | // { |
| | | // field: 'responsibleEquipment', |
| | | // width: 100, |
| | | // title: '责任设备', |
| | | // editRender: {}, |
| | | // slots: {default: 'reportingDeviceSort_default', edit: 'reportingDeviceSort'} |
| | | // // editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | // }, |
| | | // |
| | | // { |
| | | // field: 'responsibleTeam', width: 100, title: '责任班组', |
| | | // editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | // }, |
| | | // { |
| | | // field: 'responsibilityPersonnel', |
| | | // width: 100, |
| | | // title: '责任人员', |
| | | // editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | // |
| | | // }, |
| | | {field: 'completed', width: 90, title: '已完工',}, |
| | | {field: 'onceBroken', width: 90, title: '已次破',}, |
| | | |
| | | ], |
| | | //表单验证 |
| | | editRules: {}, |
| | | editRules: { |
| | | completedQuantity: [ |
| | | { |
| | | validator ({ row }) { |
| | | const regex = /^[0-9]\d*$/ |
| | | const brokenNum = |
| | | (row.breakageQuantity === undefined || row.breakageQuantity===null) ? 0 : row.breakageQuantity |
| | | |
| | | if (row.completedQuantity && !regex.test(row.completedQuantity)) { |
| | | return new Error('请输入整数,并且大于-1') |
| | | }else if(row.completedQuantity+brokenNum>row.quantity){ |
| | | return new Error((`${row.completedQuantity}+$(brokenNum)>${row.quantity}`)) |
| | | } |
| | | |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | toolbarConfig: {//表头按钮 |
| | | buttons: [ |
| | | // {code: 'empty', name: '清空报工数量'}, |
| | |
| | | // {code: 'sameDamage', name: '次破相同'}, |
| | | // {code: 'sameOneCompletion', name: '完工一列相同'}, |
| | | // {code: 'sameOneDamage', name: '次破一列相同'}, |
| | | {code: 'print_lck', name: '保存', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'saveReportingWork', name: '保存', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'print_lck', name: '保存并审核', status: 'primary', icon: 'vxe-icon-save'}, |
| | | ], |
| | | // import: false, |
| | |
| | | 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 '' |
| | | // }) |
| | | // ] |
| | | // } |
| | | footerMethod({columns, data}) {//页脚函数 |
| | | let footList = ['', '', '', '', ''] |
| | | return [ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return '合计:' |
| | | } |
| | | return '' |
| | | }) |
| | | ] |
| | | } |
| | | |
| | | }) |
| | | |
| | | let brokenRow = ref() |
| | | const gridEvents = { |
| | | async toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'saveReportingWork': { |
| | | if($grid.getTableData().fullData.length===0){ |
| | | ElMessage.warning(`请选择流程卡数据`) |
| | | return false |
| | | } |
| | | const device = titleUploadData.value.deviceName |
| | | if(device === null || device === undefined || device === ''){ |
| | | ElMessage.error('请选择报工设备!') |
| | | return |
| | | } |
| | | const teamsGroupsName = titleUploadData.value.teamsGroupsName |
| | | if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){ |
| | | ElMessage.error('请选择报工设备!') |
| | | return |
| | | } |
| | | const errMap = await $grid.validate(true) |
| | | if (errMap) { |
| | | ElMessage.error(`校验不通过!`) |
| | | return |
| | | } |
| | | saveReportingWork() |
| | | break |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | cellDblclick (params) {//表格内容双击打开产品界面 |
| | | const { row } = params |
| | | brokenRow = row |
| | | console.log(row) |
| | | //brokenGrid.value.reload() |
| | | //brokenVisible.value = true |
| | | brokenRow.value = row |
| | | if(brokenRow.value.damageDetails=== undefined){ |
| | | brokenRow.value.damageDetails=[] |
| | | } |
| | | //brokenGrid.value.reloadData(brokenRow.damageDetail) |
| | | //改变brokenVisible的值触发openedBrokenTable()方法 |
| | | brokenVisible.value = true |
| | | //console.log(brokenGrid.value) |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | const brokenGrid =ref() |
| | | |
| | | |
| | | const brokenGridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | |
| | | stripe: true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | //showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY: {enabled: true},//开启虚拟滚动 |
| | | //scrollY: {enabled: true},//开启虚拟滚动 |
| | | showOverflow: true, |
| | | columnConfig: { |
| | | resizable: true, |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns: [ |
| | | // {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | { |
| | | field: 'order_number', |
| | | title: '序号', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | {type: 'seq',fixed:"left", title: '自序', width: 80 }, |
| | | // { |
| | | // field: 'order_number', |
| | | // title: '序号' |
| | | // }, |
| | | |
| | | { |
| | | field: 'breakageNumber', title: '次破数量', |
| | | |
| | | }, |
| | | {field: 'available', title: '可利用', editRender: {name: 'input', attrs: {placeholder: ''}}}, |
| | | {field: 'returnProcess', title: '退回工序', editRender: {name: 'input', attrs: {placeholder: ''}}}, |
| | | { |
| | | field: 'reasonType', title: '次破类型', |
| | | editRender: {name: 'input', attrs: {placeholder: '', type: 'selected'}} |
| | | }, |
| | | { |
| | | field: 'reasonDamage', title: '次破原因', |
| | | field: 'breakageQuantity', |
| | | title: '次破数量', |
| | | editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | }, |
| | | {field: 'available', |
| | | title: '可利用', |
| | | slots: {default: 'available'} |
| | | }, |
| | | {field: 'returnProcess', title: '退回工序', |
| | | editRender: {}, |
| | | slots: {default: 'returnProcess_default', edit: 'returnProcess'} |
| | | }, |
| | | { |
| | | field: 'breakageType', title: '次破类型', |
| | | editRender: {}, |
| | | slots: {default: 'breakageType_default', edit: 'breakageType'} |
| | | }, |
| | | { |
| | | field: 'breakageReason', title: '次破原因', |
| | | editRender: {}, |
| | | slots: {default: 'breakageReason_default', edit: 'breakageReason'} |
| | | }, |
| | | { |
| | | field: 'responsibleProcess', title: '责任工序', |
| | | editRender: {}, |
| | | slots: {default: 'reportingWordSort_default', edit: 'reportingWordSort'} |
| | | //editRender: {name: 'input', attrs: {placeholder: '',type: 'selected'}}, |
| | | |
| | | slots: {default: 'responsibleProcess_default', edit: 'responsibleProcess'} |
| | | }, |
| | | { |
| | | field: 'responsibleEquipment', |
| | |
| | | |
| | | { |
| | | field: 'responsibleTeam', title: '责任班组', |
| | | editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | editRender: {}, |
| | | slots: {default: 'responsibleTeam_default', edit: 'responsibleTeam'} |
| | | }, |
| | | { |
| | | field: 'responsibilityPersonnel', |
| | | field: 'responsiblePersonnel', |
| | | title: '责任人员', |
| | | editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | |
| | |
| | | |
| | | ], |
| | | //表单验证 |
| | | editRules: {}, |
| | | editRules: { |
| | | breakageQuantity: [ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^[1-9]\d*$/ |
| | | if (!regex.test(cellValue)) { |
| | | return new Error('输入大于0的整数') |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | returnProcess:[ |
| | | { |
| | | validator ({ row }) { |
| | | const regex = /^\s*$/i |
| | | if(row.available===true && (regex.test(row.returnProcess)==='' || row.returnProcess===null)){ |
| | | return new Error('可利用已选择,请选择返回工序') |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | breakageType: [ |
| | | { required: true, message: '请选择次破类型' } |
| | | ], |
| | | breakageReason: [ |
| | | { required: true, message: '请选择次破原因' } |
| | | ], |
| | | responsibleProcess: [ |
| | | { required: true, message: '请选择责任工序' } |
| | | ], |
| | | responsibleEquipment: [ |
| | | { required: true, message: '请选择责任设备' } |
| | | ], |
| | | responsibleTeam: [ |
| | | { required: true, message: '责任班组' } |
| | | ], |
| | | }, |
| | | toolbarConfig: {//表头按钮 |
| | | buttons: [ |
| | | {code: 'print_lck', name: '添加', status: 'primary', icon: 'vxe-icon-save'}, |
| | | {code: 'addRow', name: '添加', status: 'primary', icon: 'vxe-icon-square-plus'}, |
| | | {code: 'removeRow', name: '删除', status: 'primary', icon: 'vxe-icon-delete'}, |
| | | ], |
| | | // import: false, |
| | | // export: true, |
| | |
| | | custom: true |
| | | }, |
| | | }) |
| | | const brokenGridEvents = { |
| | | toolbarButtonClick({code}) { |
| | | const $grid = brokenGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'addRow': { |
| | | $grid.insertAt({}) |
| | | break |
| | | } |
| | | case 'removeRow': { |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | $grid.remove(result.row) |
| | | } |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | const openedBrokenTable = () => { |
| | | addListener(brokenGrid.value,brokenGridOptions) |
| | | let damage =ref(brokenRow.value.damageDetails) |
| | | brokenGrid.value.reloadData(damage.value) |
| | | //console.log(brokenRow.value) |
| | | } |
| | | |
| | | |
| | | const checkClose = async (done) => { |
| | | const errMap = await brokenGrid.value.validate(true) |
| | | if (errMap) { |
| | | ElMessage.error(`校验不通过!`) |
| | | return false |
| | | } |
| | | let breakageQuantityCount = 0 |
| | | brokenRow.value.breakageQuantity=0 |
| | | brokenGrid.value.getTableData().fullData.forEach((row) =>{ |
| | | breakageQuantityCount+=row.breakageQuantity*1 |
| | | }) |
| | | |
| | | let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1 |
| | | if(breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1){ |
| | | ElMessage.warning(`损耗数:'${breakageQuantityCount}' |
| | | 完工数:'${reportingWorkNum}'之和${breakageQuantityCount+reportingWorkNum} |
| | | 不能大于${brokenRow.value.quantity*1}`) |
| | | return false |
| | | } |
| | | |
| | | breakageQuantityCount = breakageQuantityCount === 0 ? null : breakageQuantityCount |
| | | brokenRow.value.breakageQuantity = breakageQuantityCount |
| | | brokenRow.value.damageDetails=brokenGrid.value.getTableData().fullData |
| | | done() |
| | | } |
| | | |
| | | |
| | | |
| | | //第一次加载数据 |
| | | |
| | | request.post(`/reportingWork/selectProcess`).then((res) => { |
| | | |
| | | if (res.code == 200) { |
| | | titleSelectJson.value.processType = res.data.process; |
| | | //console.log(titleSelectJson.value.processType) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | |
| | | const saveReportingWork = () => { |
| | | |
| | | titleUploadData.value.creator = user.user.userName |
| | | titleUploadData.value.creatorId = user.user.userId |
| | | const requestDetailData = xGrid.value.getTableData().fullData.filter((row) => { |
| | | const a = (row.completedQuantity !== undefined && row.completedQuantity !== null && row.completedQuantity !== '') |
| | | const b = (row.breakageQuantity !== undefined && row.breakageQuantity !== null && row.breakageQuantity !== '') |
| | | return (a || b) |
| | | }) |
| | | if(requestDetailData.length === 0){ |
| | | ElMessage.warning('请填写至少一条损耗数和完工数') |
| | | return false |
| | | } |
| | | |
| | | const requestData = { |
| | | title:titleUploadData.value, |
| | | detail:xGrid.value.getTableData().fullData |
| | | } |
| | | console.log(xGrid.value.getTableData().fullData) |
| | | request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{ |
| | | if (res.code == 200){ |
| | | ElMessage.success("报工成功") |
| | | router.push({path:'/main/reportingWorks/AddReportingWork',query:{random:Math.random()}}) |
| | | } |
| | | }).catch(err =>{ |
| | | ElMessage.error(err.message) |
| | | }) |
| | | } |
| | | |
| | | |
| | | //查询责任设备 |
| | | const computedDevice = computed((responsibleProcess) => { |
| | | return function (responsibleProcess){ |
| | | return titleSelectJson.value.historyDevice.filter((item) => { |
| | | return item.basic_category === responsibleProcess |
| | | }) |
| | | } |
| | | }) |
| | | // 查询责任班组 |
| | | const computedResponsibleTeam = computed((responsibleProcess) => { |
| | | return function (responsibleProcess){ |
| | | return titleSelectJson.value.historyTeams.filter((item) => { |
| | | return item.process === responsibleProcess |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | //判断是否点击可利用 显示返回工序 |
| | | const computedReturnProcess = computed((available) => { |
| | | return function (available){ |
| | | if(available){ |
| | | return titleSelectJson.value.historyProcess |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | //下拉款选择工序时查询 |
| | | const getWork = () => { |
| | | |
| | | let processId = form.processId |
| | | let processId = titleUploadData.value.processId |
| | | if (processId.indexOf("/") < 0) { |
| | | |
| | | ElMessage.success("请输入正确格式流程卡") |
| | | ElMessage.warning("请输入正确格式流程卡") |
| | | return |
| | | } |
| | | let indexOfChar = processId.indexOf("/") |
| | | let leftString = processId.slice(0, indexOfChar) |
| | | if (leftString.length != 13) { |
| | | ElMessage.success("请输入正确位数的流程卡") |
| | | ElMessage.warning("请输入正确位数的流程卡") |
| | | return |
| | | } |
| | | //工序 |
| | | let process = titleUploadData.value.thisProcess |
| | | if (process == "" || process == null) { |
| | | |
| | | ElMessage.success("请选择工序") |
| | | ElMessage.warning("请选择工序") |
| | | return |
| | | } |
| | | |
| | | if (titleSelectJson.value.thisProcessType.indexOf(process) == -1 && process != "切割" && titleSelectJson.value.thisProcessType != "") { |
| | | ElMessage.success("此工序不属于该流程卡") |
| | | ElMessage.warning("此工序不属于该流程卡") |
| | | return |
| | | } |
| | | //流程卡号 |
| | |
| | | if (res.code == 200) { |
| | | //表头赋值 |
| | | titleUploadData.value = res.data.data |
| | | titleUploadData.value.processId = processId |
| | | //设备下拉框 |
| | | titleSelectJson.value.deviceType = res.data.device |
| | | //班组下拉框 |
| | | titleSelectJson.value.teamsType = res.data.teams |
| | | //当前流程卡工序 |
| | | titleSelectJson.value.thisProcessType = res.data.thisProcess |
| | | //报工时间默认当天 |
| | | const today = new Date |
| | | today.setTime(today.getTime()) |
| | | titleUploadData.value.reportingWorkDate = today.getFullYear() + |
| | | '-' + ("0" + (today.getMonth() + 1)).slice(-2) |
| | | + '-' + ("0" + today.getDate()).slice(-2) |
| | | //历史班组 |
| | | titleSelectJson.value.historyTeams= res.data.historyTeams |
| | | //历史设备 |
| | | titleSelectJson.value.historyDevice = res.data.historyDevice |
| | | //历史工序 |
| | | titleSelectJson.value.historyProcess = res.data.historyProcess |
| | | //次破类型 |
| | | titleSelectJson.value.breakageType = res.data.breakageType |
| | | //次破原因 |
| | | titleSelectJson.value.breakageReason = res.data.breakageReason |
| | | //console.log(res.data) |
| | | titleUploadData.value.classes='早班' |
| | | |
| | | |
| | | titleUploadData.value.reportingWorkTime = formatCurrentTime() |
| | | //绑定下方表格 |
| | | xGrid.value.reloadData(res.data.Detail) |
| | | detail.value = res.data.Detail |
| | | xGrid.value.reloadData(detail.value) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | |
| | | const verifyNum = () => { |
| | | const $grid = xGrid.value |
| | | const table = $grid.getTableData().fullData |
| | | //console.log(table) |
| | | let sum = 0; |
| | | let sumBreak = 0; |
| | | table.forEach((item) => { |
| | | if (item.completedQuantity == null || item.completedQuantity == "") { |
| | | item.completedQuantity = 0; |
| | | } |
| | | if (item.breakageNumber == null || item.breakageNumber == "") { |
| | | item.breakageNumber = 0; |
| | | if (item.breakageQuantity == null || item.breakageQuantity == "") { |
| | | item.breakageQuantity = 0; |
| | | } |
| | | |
| | | if (item.quantity < item.completedQuantity) { |
| | | ElMessage.success("序号" + item.order_number + "的数量不能大于上工序数量") |
| | | |
| | | |
| | | } else if (item.breakageNumber * 1 + item.completedQuantity * 1 > item.quantity * 1) { |
| | | } else if (item.breakageQuantity * 1 + item.completedQuantity * 1 > item.quantity * 1) { |
| | | ElMessage.success("请输入序号" + item.order_number + "正确的完工或次破数量") |
| | | } |
| | | |
| | | sum = item.completedQuantity * 1 + sum * 1 |
| | | |
| | | sumBreak = item.breakageNumber * 1 + sumBreak * 1 |
| | | sumBreak = item.breakageQuantity * 1 + sumBreak * 1 |
| | | |
| | | }) |
| | | titleUploadData.value.thisCompletedQuantity = sum |
| | | titleUploadData.value.thisWornQuantity = sumBreak |
| | | } |
| | | |
| | | //获取当前时间 |
| | | function formatCurrentTime() { |
| | | let dateObj = new Date(); // 创建一个表示当前时间的Date对象 |
| | | let year = dateObj.getFullYear(); // 年份 |
| | | let month = (dateObj.getMonth() + 1).toString().padStart(2, '0'); // 月份(注意需要加上1) |
| | | let day = dateObj.getDate().toString().padStart(2, '0'); // 天数 |
| | | let hours = dateObj.getHours().toString().padStart(2, '0'); // 小时 |
| | | let minutes = dateObj.getMinutes().toString().padStart(2, '0'); // 分钟 |
| | | let seconds = dateObj.getSeconds().toString().padStart(2, '0'); // 秒数 |
| | | if(parseInt(hours)>=17)titleUploadData.value.classes='晚班' |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // 返回格式化后的时间字符串 |
| | | } |
| | | |
| | | const ptypeChangeEvent = (row) => { |
| | | // for (let i = 0; i < row.length; i++){ |
| | |
| | | <template> |
| | | <div style="height: 100%;width: 100%"> |
| | | <div id="head" style="height: 5%;width: 100%;margin-bottom: 5px"> |
| | | <el-input v-model="form.processId" placeholder="流程卡号" style="width: 200px" @keyup.enter.native="getWork"/> |
| | | <el-input v-model="titleUploadData.processId" placeholder="流程卡号" style="width: 200px" @keyup.enter.native="getWork"/> |
| | | |
| | | <el-select v-model="titleUploadData.thisProcess" clearable placeholder="请选择工序" style="width: 120px" |
| | | @change="getWork"> |
| | |
| | | <el-text>客户名称:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-text class="customClass">{{ titleUploadData.order.customerName }}</el-text> |
| | | |
| | | <el-text class="customClass"></el-text> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-text>项目名称:</el-text> |
| | |
| | | <el-text>报工设备:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-select v-model="titleUploadData.deviceType" clearable placeholder="请选择设备"> |
| | | <el-select v-model="titleUploadData.deviceName" clearable placeholder="请选择设备"> |
| | | <el-option |
| | | v-for="item in titleSelectJson['deviceType']" |
| | | :key="item.id" |
| | |
| | | <el-text>报工班组:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-select v-model="titleUploadData.teamsType" clearable placeholder="请选择班组"> |
| | | <el-select v-model="titleUploadData.teamsGroupsName" clearable placeholder="请选择班组"> |
| | | <el-option |
| | | v-for="item in titleSelectJson['teamsType']" |
| | | :key="item.id" |
| | |
| | | <el-text>班次:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-select v-model="classesVal" class="processesSt" placeholder=""> |
| | | <el-select v-model="titleUploadData.classes" class="processesSt" placeholder=""> |
| | | <el-option |
| | | v-for="item in classesOption" |
| | | :key="item.value" |
| | |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-date-picker |
| | | v-model="titleUploadData.reportingWorkDate" |
| | | v-model="titleUploadData.reportingWorkTime" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | placeholder="" |
| | | style="width: 100%" |
| | | type="date" |
| | | type="datetime" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-text>备注:</el-text> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | |
| | | <el-input v-model="titleUploadData.notes" placeholder="" /> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | @filter-change="filterChanged" |
| | | @edit-closed="verifyNum" |
| | | |
| | | > |
| | | <!-- 责任工序--> |
| | | <template #reportingWordSort="{ row }"> |
| | | <vxe-select v-model="row.responsibleProcess" transfer @change="ptypeChangeEvent(row)"> |
| | | <vxe-option v-for="item in titleSelectJson.thisProcessType" :key="item" :label="item" :value="item"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #reportingWordSort_default="{ row }"> |
| | | <span>{{ row.responsibleProcess }}</span> |
| | | </template> |
| | | <!-- 责任设备 --> |
| | | <template #reportingDeviceSort="{ row }"> |
| | | <vxe-select v-model="row.responsibleEquipment" transfer> |
| | | <vxe-option v-for="item in titleSelectJson.mateProcessType" :key="item" :label="item" :value="item"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #reportingDeviceSort_default="{ row }"> |
| | | <span>{{ row.responsibleEquipment }}</span> |
| | | </template> |
| | | |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | |
| | | |
| | | |
| | | </vxe-grid> |
| | | <el-dialog v-model="brokenVisible" title="破损列表" style="width: 80%;height:75% "> |
| | | <vxe-grid ref="brokenGrid" v-bind="brokenGridOptions"> |
| | | <el-dialog |
| | | @opened="openedBrokenTable" |
| | | :before-close="checkClose" |
| | | v-model="brokenVisible" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | title="破损列表" |
| | | style="width: 80%;height:75% "> |
| | | <vxe-grid |
| | | |
| | | height="400px" |
| | | ref="brokenGrid" |
| | | class="mytable-scrollbar" |
| | | v-bind="brokenGridOptions" |
| | | v-on="brokenGridEvents"> |
| | | <!-- 返回工序--> |
| | | <template #returnProcess="{ row }"> |
| | | <vxe-select v-model="row.returnProcess" |
| | | filterable |
| | | clearable |
| | | placeholder="" > |
| | | <vxe-option v-for="item in computedReturnProcess(row.available)" |
| | | :key="item.basic_category" |
| | | :label="item.basic_category" |
| | | :value="item.basic_category"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #returnProcess_default="{ row }"> |
| | | <span>{{ row.returnProcess }}</span> |
| | | </template> |
| | | |
| | | <!-- 责任工序--> |
| | | <template #responsibleProcess="{ row }"> |
| | | <vxe-select v-model="row.responsibleProcess" |
| | | filterable |
| | | clearable |
| | | placeholder="" > |
| | | <vxe-option v-for="item in titleSelectJson.historyProcess" |
| | | :key="item.basic_category" |
| | | :label="item.basic_category" |
| | | :value="item.basic_category"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #responsibleProcess_default="{ row }"> |
| | | <span>{{ row.responsibleProcess }}</span> |
| | | </template> |
| | | <!-- 刺破类型breakageType --> |
| | | <template #breakageType="{ row }"> |
| | | <vxe-select v-model="row.breakageType " |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | <vxe-option v-for="item in titleSelectJson.breakageType" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #breakageType_default="{ row }"> |
| | | <span>{{ row.breakageType }}</span> |
| | | </template> |
| | | |
| | | <!--次破原因--> |
| | | <template #breakageReason="{ row }"> |
| | | <vxe-select v-model="row.breakageReason " |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | <vxe-option v-for="item in titleSelectJson.breakageReason" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #breakageReason_default="{ row }"> |
| | | <span>{{ row.breakageReason }}</span> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <!-- 责任设备 --> |
| | | <template #reportingDeviceSort="{ row }"> |
| | | <vxe-select v-model="row.responsibleEquipment" |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | <vxe-option v-for="item in computedDevice(row.responsibleProcess)" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #reportingDeviceSort_default="{ row }"> |
| | | <span>{{ row.responsibleEquipment }}</span> |
| | | </template> |
| | | |
| | | <!-- 责任设备 --> |
| | | <template #responsibleTeam="{ row }"> |
| | | <vxe-select v-model="row.responsibleTeam" |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | <vxe-option v-for="item in computedResponsibleTeam(row.responsibleProcess)" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | | <template #responsibleTeam_default="{ row }"> |
| | | <span>{{ row.responsibleTeam }}</span> |
| | | </template> |
| | | <!-- 可利用 --> |
| | | <template #available="{ row }"> |
| | | <el-checkbox v-model="row.available" /> |
| | | </template> |
| | | |
| | | </vxe-grid> |
| | | </el-dialog> |
| | |
| | | text-align: center; |
| | | border: #181818 1px solid; |
| | | } |
| | | .vxe-grid { |
| | | /* 禁用浏览器默认选中 */ |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | } |
| | | |
| | | </style> |
| | |
| | | import request from "@/utils/request"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {useRouter} from "vue-router"; |
| | | import {useRouter,useRoute} from "vue-router"; |
| | | import GlassType from '@/components/basic/product/GlassType.vue' |
| | | |
| | | |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | let indexFlag=$ref(1) |
| | | function changeRouter(index){ |
| | | indexFlag=index |
| | |
| | | </div> |
| | | |
| | | <div id="main-body"> |
| | | <router-view /> |
| | | <router-view :key="route.fullPath" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {field: 'select',type:'checkbox',title: '选择', width: 80,fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | |
| | | {field: 'reworkTeam', width: 120, title: '返工班组', slots: {default: 'responsibleTeam_default', edit: 'responsibleTeam'}, editRender: {}}, |
| | | {field: 'orderId', width: 120, title: '销售单号', sortable: true, showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'processId', width: 120, title: '流程卡号', sortable: true, filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'project', width: 120, title: '项目名称', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'batch', width: 80, title: '批次', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'orderNumber', width: 80, title: '序号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'orderSort', width: 80, title: '序号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'productName', width: 120, title: '单片名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'technologyNumber', width: 80, title: '标记', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'glassAddress', width: 90, title: '片标记', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | |
| | | if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){ |
| | | ruleForm.value.id = Number(str) |
| | | |
| | | request.post(`/customer/getseletCustomer/1/100`,ruleForm.value).then((res) => { |
| | | request.post(`/customer/getSelectCustomer/1/100`,ruleForm.value).then((res) => { |
| | | if(res.code==200){ |
| | | ruleForm.value=deepClone(res.data.data[0]) |
| | | |
| | |
| | | }) |
| | | |
| | | //第一次调用 |
| | | request.post(`/customer/getseletCustomer/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/customer/getSelectCustomer/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/customer/getseletCustomer/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/customer/getSelectCustomer/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | //分页查询 |
| | | const selectOrderList = ()=>{ |
| | | |
| | | request.post(`/customer/getseletCustomer/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | request.post(`/customer/getSelectCustomer/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | produceList = deepClone(res.data.data) |
| | |
| | | filterData.value.orderId=orderId |
| | | number.value=orderId |
| | | //第一次调用 |
| | | request.post("/Delivery/getseletShippingOrderDetails/1/100",filterData.value).then((res) => { |
| | | request.post("/Delivery/getSelectShippingOrderDetails/1/100",filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | pageTotal.value=res.data.total |
| | |
| | | if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){ |
| | | filterData.value.deliveryDetail.deliveryId=str |
| | | //第一次调用 |
| | | request.post("/Delivery/getseletShippingOrderDetail/1/100",filterData.value).then((res) => { |
| | | request.post("/Delivery/getSelectShippingOrderDetail/1/100",filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | pageTotal.value=res.data.total |
| | |
| | | }) |
| | | |
| | | //第一次调用 |
| | | request.post(`/Delivery/getseletShippingOrder/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/Delivery/getSelectShippingOrder/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | |
| | | }else{ |
| | | filterData.value[column.property] = value |
| | | } |
| | | request.post(`/Delivery/getseletShippingOrder/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/Delivery/getSelectShippingOrder/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | total.dataTotal = res.data.total.total*1 |
| | |
| | | |
| | | |
| | | const selectOrderList = ()=>{ |
| | | request.post(`/Delivery/getseletShippingOrder/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | request.post(`/Delivery/getSelectShippingOrder/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | produceList = deepClone(res.data.data) |
| | |
| | | price: [ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | if ( !regex.test(cellValue) ) { |
| | | return new Error('输入0.00~99999.99的数字') |
| | | } |
| | |
| | | computeArea: [ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | if (!regex.test(cellValue)) { |
| | | return new Error('输入0.00~99999.99的数字') |
| | | } |
| | |
| | | width:[ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | if (!regex.test(cellValue)) { |
| | | return new Error('输入0.00~99999.99的数字') |
| | | } |
| | |
| | | } |
| | | //获取子页面产品方法 |
| | | const getProductRow = (row) => { |
| | | if(row.state!=1){ |
| | | ElMessage.warning('该产品还未审核') |
| | | return |
| | | } |
| | | |
| | | rowIndex.productName = row.productName |
| | | rowIndex.productId = row.id |
| | | productVisible.value = false |
| | |
| | | |
| | | /*成品库存查询*/ |
| | | @ApiOperation("成品库存查询接口") |
| | | @PostMapping("/getselet/{pageNum}/{pageSize}") |
| | | @PostMapping("/getSelect/{pageNum}/{pageSize}") |
| | | public Result defaultDateFinishedGoodsInventory(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FinishedGoodsInventory finishedGoodsInventory){ |
| | | return Result.seccess(finishedGoodsInventoryService.defaultDateFinishedGoodsInventory(pageNum,pageSize,finishedGoodsInventory)); |
| | | } |
| | | |
| | | /*查询可入库的成品数据*/ |
| | | @ApiOperation("可入库的成品查询接口") |
| | | @PostMapping("/getseletwarehousing/{pageNum}/{pageSize}") |
| | | public Result getseletwarehousing(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FlowCard flowCard){ |
| | | return Result.seccess(finishedGoodsInventoryService.getseletwarehousing(pageNum,pageSize,flowCard)); |
| | | @PostMapping("/getSelectWarehousing/{pageNum}/{pageSize}") |
| | | public Result getSelectWarehousing(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FlowCard flowCard){ |
| | | return Result.seccess(finishedGoodsInventoryService.getSelectWarehousing(pageNum,pageSize,flowCard)); |
| | | } |
| | | |
| | | /*成品入库*/ |
| | | @ApiOperation("成品入库接口") |
| | | @PostMapping("/addseletwarehousing") |
| | | public Result addseletwarehousing( @RequestBody Map<String,Object> object){ |
| | | if(finishedGoodsInventoryService.addseletwarehousing(object)){ |
| | | @PostMapping("/addSelectWarehousing") |
| | | public Result addSelectWarehousing( @RequestBody Map<String,Object> object){ |
| | | if(finishedGoodsInventoryService.addSelectWarehousing(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"入库失败"); |
| | |
| | | |
| | | /*查询可发货的成品数据*/ |
| | | @ApiOperation("可发货的成品查询接口") |
| | | @PostMapping("/getseletdeliveryDetail/{pageNum}/{pageSize}") |
| | | public Result getseletdeliveryDetail(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(finishedGoodsInventoryService.getseletdeliveryDetail(pageNum,pageSize,orderDetail)); |
| | | @PostMapping("/getSelectDeliveryDetail/{pageNum}/{pageSize}") |
| | | public Result getSelectDeliveryDetail(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(finishedGoodsInventoryService.getSelectDeliveryDetail(pageNum,pageSize,orderDetail)); |
| | | } |
| | | |
| | | /*成品发货*/ |
| | | @ApiOperation("成品发货接口") |
| | | @PostMapping("/adddeliveryDetail") |
| | | public Result adddeliveryDetail( @RequestBody Map<String,Object> object){ |
| | | if(finishedGoodsInventoryService.adddeliveryDetail(object)){ |
| | | @PostMapping("/addDeliveryDetail") |
| | | public Result addDeliveryDetail( @RequestBody Map<String,Object> object){ |
| | | if(finishedGoodsInventoryService.addDeliveryDetail(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"出库失败"); |
| | |
| | | |
| | | /*调拨记录查询*/ |
| | | @ApiOperation("调拨记录查询接口") |
| | | @PostMapping("/getselectAllocateFinishedOperateLog/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result getselectAllocateFinishedOperateLog(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ |
| | | return Result.seccess(finishedGoodsInventoryService.getselectAllocateFinishedOperateLog(pageNum,pageSize,selectDate,finishedOperateLog)); |
| | | @PostMapping("/getSelectAllocateFinishedOperateLog/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result getSelectAllocateFinishedOperateLog(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ |
| | | return Result.seccess(finishedGoodsInventoryService.getSelectAllocateFinishedOperateLog(pageNum,pageSize,selectDate,finishedOperateLog)); |
| | | } |
| | | |
| | | /*订单领出*/ |
| | |
| | | } |
| | | /*订单反审*/ |
| | | @ApiOperation("订单反审接口") |
| | | @PostMapping("/updateFinishedGoodsInventoryCounterexamination") |
| | | public Result updateFinishedGoodsInventoryCounterexamination( @RequestBody Map<String,Object> object){ |
| | | @PostMapping("/updateFinishedGoodsInventoryCounterExamination") |
| | | public Result updateFinishedGoodsInventoryCounterExamination( @RequestBody Map<String,Object> object){ |
| | | |
| | | if(finishedGoodsInventoryService.updateFinishedGoodsInventoryToExamine(object,"反审")){ |
| | | return Result.seccess(); |
New file |
| | |
| | | package com.example.erp.controller.pp; |
| | | |
| | | import com.example.erp.common.Constants; |
| | | import com.example.erp.common.Result; |
| | | import com.example.erp.entity.pp.PatchLog; |
| | | import com.example.erp.entity.pp.Rework; |
| | | import com.example.erp.exception.ServiceException; |
| | | import com.example.erp.service.pp.ReplenishService; |
| | | import com.example.erp.service.pp.ReworkService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @RequestMapping("/Replenish") |
| | | public class ReplenishController { |
| | | |
| | | @Autowired |
| | | ReplenishService replenishService; |
| | | |
| | | |
| | | |
| | | /*发货订单查询*/ |
| | | @ApiOperation("补片新增查询接口") |
| | | @PostMapping("/getSelectReplenish/{pageNum}/{pageSize}") |
| | | public Result getSelectReplenish(@PathVariable Integer pageNum, @PathVariable Integer pageSize){ |
| | | return Result.seccess(replenishService.getSelectReplenish(pageNum,pageSize)); |
| | | } |
| | | |
| | | @ApiOperation("补片查询接口") |
| | | @PostMapping("/SelectReplenish/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result SelectReplenish(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate,@RequestBody PatchLog patchLog){ |
| | | return Result.seccess(replenishService.SelectReplenish(pageNum,pageSize,selectDate,patchLog)); |
| | | } |
| | | |
| | | |
| | | @ApiOperation("补片新增接口") |
| | | @PostMapping("/saveReplenish") |
| | | public Result updateFinishedGoodsInventoryAllocate( @RequestBody Map<String,Object> object){ |
| | | if(replenishService.saveReplenish(object)){ |
| | | |
| | | return Result.seccess(); |
| | | |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"返工失败"); |
| | | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("订单调拨接口") |
| | | @PostMapping("/updateReplenish") |
| | | public Result updateReplenish( @RequestBody Map<String,Object> object){ |
| | | if(replenishService.updateReplenish(object)){ |
| | | |
| | | return Result.seccess(); |
| | | |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"审核失败"); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | return Result.seccess(reportingWorkService.SelectProcessSv()); |
| | | } |
| | | |
| | | @PostMapping ("/saveReportingWork") |
| | | public Result SaveReportingWork(@RequestBody Map<String,Object> reportingWork) { |
| | | return Result.seccess(reportingWorkService.SaveReportingWorkSv(reportingWork)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | /*发货订单查询*/ |
| | | @ApiOperation("发货订单查询接口") |
| | | @ApiOperation("可返工数据查询接口") |
| | | @PostMapping("/getSelectRework/{pageNum}/{pageSize}") |
| | | public Result getSelectRework(@PathVariable Integer pageNum, @PathVariable Integer pageSize){ |
| | | return Result.seccess(reworkService.getSelectRework(pageNum,pageSize)); |
| | | } |
| | | |
| | | @ApiOperation("发货订单查询接口") |
| | | @ApiOperation("返工数据查询接口") |
| | | @PostMapping("/SelectRework/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result SelectRework(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate,@RequestBody Rework rework){ |
| | | return Result.seccess(reworkService.SelectRework(pageNum,pageSize,selectDate,rework)); |
| | | } |
| | | |
| | | |
| | | @ApiOperation("订单调拨接口") |
| | | @ApiOperation("返工接口") |
| | | @PostMapping("/saveRework") |
| | | public Result updateFinishedGoodsInventoryAllocate( @RequestBody Map<String,Object> object){ |
| | | if(reworkService.saveRework(object)){ |
| | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("订单调拨接口") |
| | | @ApiOperation("审核接口") |
| | | @PostMapping("/updateRework") |
| | | public Result updateRework( @RequestBody Map<String,Object> object){ |
| | | if(reworkService.updateRework(object)){ |
| | |
| | | |
| | | /*发货订单查询*/ |
| | | @ApiOperation("客户查询接口") |
| | | @PostMapping("/getseletCustomer/{pageNum}/{pageSize}") |
| | | public Result getseletShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody Customer customer){ |
| | | return Result.seccess(customerService.getseletCustomer(pageNum,pageSize,customer)); |
| | | @PostMapping("/getSelectCustomer/{pageNum}/{pageSize}") |
| | | public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody Customer customer){ |
| | | return Result.seccess(customerService.getSelectCustomer(pageNum,pageSize,customer)); |
| | | } |
| | | |
| | | @ApiOperation("客户新增修改接口") |
| | |
| | | |
| | | /*发货订单查询*/ |
| | | @ApiOperation("发货订单查询接口") |
| | | @PostMapping("/getseletShippingOrder/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result getseletShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Delivery delivery){ |
| | | return Result.seccess(deliveryService.getseletShippingOrder(pageNum,pageSize,selectDate,delivery)); |
| | | @PostMapping("/getSelectShippingOrder/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Delivery delivery){ |
| | | return Result.seccess(deliveryService.getSelectShippingOrder(pageNum,pageSize,selectDate,delivery)); |
| | | } |
| | | |
| | | /*发货订单明细查询*/ |
| | | @ApiOperation("发货编辑订单明细查询接口") |
| | | @PostMapping("/getseletShippingOrderDetail/{pageNum}/{pageSize}") |
| | | public Result getseletShippingOrderDetail(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(deliveryService.getseletShippingOrderDetail(pageNum,pageSize,orderDetail)); |
| | | @PostMapping("/getSelectShippingOrderDetail/{pageNum}/{pageSize}") |
| | | public Result getSelectShippingOrderDetail(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(deliveryService.getSelectShippingOrderDetail(pageNum,pageSize,orderDetail)); |
| | | } |
| | | |
| | | /*库存可发货订单查询*/ |
| | |
| | | |
| | | /*发货订单明细查询*/ |
| | | @ApiOperation("发货新增订单明细查询接口") |
| | | @PostMapping("/getseletShippingOrderDetails/{pageNum}/{pageSize}") |
| | | public Result getseletShippingOrderDetails(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(deliveryService.getseletShippingOrderDetails(pageNum,pageSize,orderDetail)); |
| | | @PostMapping("/getSelectShippingOrderDetails/{pageNum}/{pageSize}") |
| | | public Result getSelectShippingOrderDetails(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ |
| | | return Result.seccess(deliveryService.getSelectShippingOrderDetails(pageNum,pageSize,orderDetail)); |
| | | } |
| | | @ApiOperation("发货新增接口") |
| | | @PostMapping("/insertDelivery") |
| | |
| | | private Integer patchStatus; |
| | | //质检状态 |
| | | private Integer qualityInsStatus; |
| | | //数量 |
| | | private Integer quantity; |
| | | } |
New file |
| | |
| | | package com.example.erp.entity.pp; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | |
| | | @Data |
| | | public class PatchLog { |
| | | //自增id |
| | | private Long id; |
| | | //补片编号 |
| | | private String patchId; |
| | | //流程卡号 |
| | | private String processId; |
| | | //补片类型 |
| | | private String patchType; |
| | | //补片原因 |
| | | private String patchReason; |
| | | //补片工序 |
| | | private String patchProcesses; |
| | | //补片数量 |
| | | private Integer patchNum; |
| | | //补片面积 |
| | | private Double patchArea; |
| | | //补片班组 |
| | | private String patchTeam; |
| | | //审核人 |
| | | private String reviewer; |
| | | //审核状态 |
| | | private Integer reviewStatus; |
| | | //创建时间 |
| | | private LocalDate createTime; |
| | | //修改时间 |
| | | private LocalDate updateTime; |
| | | |
| | | private String orderId; |
| | | private String responsiblePersonnel; |
| | | private String orderSort; |
| | | private Integer technologyNumber; |
| | | private String responsibleTeam; |
| | | private String qualityInspector; |
| | | private String responsibleEquipment; |
| | | private String reportingWorkId; |
| | | |
| | | //外键流程卡表 |
| | | private FlowCard flowCard; |
| | | } |
| | |
| | | package com.example.erp.entity.pp; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.example.erp.entity.sd.Order; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Data |
| | | public class ReportingWork { |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | //包装方式 |
| | | private String packagingMethod; |
| | | //报工时间 |
| | | private LocalDate reportingWorkTime; |
| | | private LocalDateTime reportingWorkTime; |
| | | //审核时间 |
| | | private LocalDate examineTime; |
| | | //质检时间 |
| | |
| | | //修改时间 |
| | | private LocalDate updateTime; |
| | | |
| | | //创建者 |
| | | private String creatorId ; |
| | | private String creator ; |
| | | |
| | | |
| | | @TableField(select = false,exist= false) |
| | | private Order order; |
| | | //外键流程卡表 |
| | | @TableField(select = false,exist= false) |
| | | private FlowCard flowCard; |
| | | private ReportingWork reportingWork; |
| | | |
| | | // @TableField(select = false,exist= false) |
| | | // private ReportingWork reportingWork; |
| | | @TableField(select = false,exist= false) |
| | | private ReportingWorkDetail reportingWorkDetail; |
| | | } |
| | |
| | | package com.example.erp.entity.pp; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | 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; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ReportingWorkDetail { |
| | | @TableId(type = IdType.AUTO) |
| | | //自增ID |
| | | private Integer id; |
| | | //报工编号 |
| | |
| | | //工艺确认序号 |
| | | private String technologyNumber; |
| | | //完工数量 |
| | | private Integer completedQuantity; |
| | | private int completedQuantity; |
| | | //次破数量 |
| | | private Integer breakageQuantity; |
| | | private int breakageQuantity; |
| | | //次破原因 |
| | | private String breakageReason; |
| | | //类型 |
| | |
| | | //返工更新时间 |
| | | private LocalDate reworkUpdateTime; |
| | | //返工面积 |
| | | private double reworkArea; |
| | | // private double reworkArea; |
| | | |
| | | //次破列表 |
| | | @TableField(select = false,exist= false) |
| | | private List<DamageDetails> |
| | | damageDetails; |
| | | |
| | | |
| | | //外键报工主表 |
| | | @TableField(select = false,exist= false) |
| | | private ReportingWork reportingWork; |
| | | @TableField(select = false,exist= false) |
| | | private Order order; |
| | | @TableField(select = false,exist= false) |
| | | private OrderDetail orderDetail; |
| | | @TableField(select = false,exist= false) |
| | | private OrderGlassDetail orderGlassDetail; |
| | | |
| | | } |
| | |
| | | @Data |
| | | public class Rework { |
| | | //自增id |
| | | private Integer id; |
| | | private Long id; |
| | | //返工编号 |
| | | private String reworkId; |
| | | //流程卡号 |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @TableName("sd.order_process_detail") |
| | | public class OrderProcessDetail { |
| | | @TableId(type = IdType.AUTO) |
| | | |
| | |
| | | private String orderNumber; |
| | | private Integer technologyNumber; |
| | | private String process; |
| | | private Integer reportingworkNum; |
| | | private Integer brokenNum; |
| | | private int reportingWorkNumCount; |
| | | private int reportingWorkNum; |
| | | private int brokenNum; |
| | | |
| | | // private Order order; |
| | | // private OrderDetail orderDetail; |
| | |
| | | |
| | | Map<String,Integer> getPageTotal(Integer offset, Integer pageSize, FinishedGoodsInventory finishedGoodsInventory); |
| | | |
| | | List<FlowCard> getseletwarehousing(@Param("offset") Integer offset, |
| | | List<FlowCard> getSelectWarehousing(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("flowCard") FlowCard flowCard); |
| | | |
| | | Map<String,Integer> getseletwarehousingPageTotal(Integer offset, Integer pageSize,FlowCard flowCard); |
| | | Map<String,Integer> getSelectWarehousingPageTotal(Integer offset, Integer pageSize,FlowCard flowCard); |
| | | |
| | | Integer findOrderNumberdcount(@Param("orderId") String orderId, |
| | | @Param("orderNumber") Integer orderNumber); |
| | |
| | | @Param("remark") String remark); |
| | | |
| | | |
| | | List<OrderDetail> getseletdeliveryDetail(@Param("offset") Integer offset, |
| | | List<OrderDetail> getSelectDeliveryDetail(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("orderDetail") OrderDetail orderDetail); |
| | | |
| | | Map<String,Integer> getseletdeliveryDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | Map<String,Integer> getSelectDeliveryDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | |
| | | List<OrderDetail> getSelectAllocate(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
New file |
| | |
| | | package com.example.erp.mapper.pp; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.example.erp.entity.pp.DamageDetails; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | @Mapper |
| | | public interface DamageDetailsMapper extends BaseMapper<DamageDetails> { |
| | | } |
New file |
| | |
| | | package com.example.erp.mapper.pp; |
| | | |
| | | import com.example.erp.entity.pp.PatchLog; |
| | | import com.example.erp.entity.pp.Rework; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | | public interface PatchLogMapper { |
| | | |
| | | List<Map<String,Object>> SelectReplenish(@Param("offset") Integer offset,@Param("pageSize") Integer pageSiz,String startDate,String endDate,PatchLog patchLog); |
| | | |
| | | Map<String,Integer> SelectReplenishPageTotal(@Param("offset") Integer offset,@Param("pageSize") Integer pageSiz,String startDate,String endDate,PatchLog patchLog); |
| | | |
| | | |
| | | |
| | | |
| | | Integer getMaximum(); |
| | | |
| | | Boolean insertReplenish(@Param("patchLog") PatchLog patchLog , @Param("oddNumber") String oddNumber); |
| | | |
| | | Boolean updateDamageDetails(@Param("patchLog") PatchLog patchLog); |
| | | |
| | | Boolean updateReplenish(@Param("patchLog") PatchLog patchLog , @Param("userName") String userName); |
| | | |
| | | List<Map<String,Object>> getSelectReplenish(@Param("offset") Integer offset, @Param("pageSize") Integer pageSiz); |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | package com.example.erp.mapper.pp; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.example.erp.entity.pp.ReportingWorkDetail; |
| | | import com.example.erp.entity.pp.Rework; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | import java.util.List; |
| | | |
| | | @Mapper |
| | | public interface ReportingWorkDetailMapper { |
| | | public interface ReportingWorkDetailMapper extends BaseMapper<ReportingWorkDetail> { |
| | | /*List<ReportingWorkDetail> getDetail();*/ |
| | | |
| | | /*查询返工新增数据*/ |
| | |
| | | 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.ReportingWork; |
| | | import com.example.erp.entity.pp.ReportingWorkDetail; |
| | |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | | public interface ReportingWorkMapper { |
| | | public interface ReportingWorkMapper extends BaseMapper<ReportingWork> { |
| | | |
| | | |
| | | ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr,String previousProcess,String nextProcess,String process); |
| | |
| | | |
| | | String SelectWorkTechnologyMp(String processIdStr); |
| | | |
| | | List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr); |
| | | List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr,String process); |
| | | |
| | | List<Map<String,String>> SelectReworlDetailMp(String processIdStr, String technologyStr, String previousProcess); |
| | | |
| | |
| | | |
| | | List<Map<String,String>> historyDeviceMp(String historyProcess, String process); |
| | | |
| | | List<Map<String,String>> historyTeamsMp(String historyProcess, String process); |
| | | List<Map<String,String>> historyTeamsMp(String processIdStr, String process); |
| | | |
| | | List<Map<String,String>> SelectHistoryProcessMp(String historyProcess, String process); |
| | | |
| | | List<Map<String,BasicDataProduce>> selectBasicNameByType(String type); |
| | | |
| | | Integer selectMaxReportingWorkId(); |
| | | } |
| | |
| | | |
| | | Boolean insertRework(@Param("rework") Rework rework , @Param("oddNumber") String oddNumber); |
| | | |
| | | Boolean updateReportingWorkDetail(@Param("rework") Rework rework); |
| | | Boolean updateDamageDetails(@Param("rework") Rework rework); |
| | | |
| | | Boolean updateRework(@Param("rework") Rework rework , @Param("userName") String userName); |
| | | |
| | | List<Map<String,Object>> getSelectReplenish(@Param("offset") Integer offset, @Param("pageSize") Integer pageSiz); |
| | | |
| | | Integer getMaxFlowCard(@Param("processId") String processId); |
| | | } |
| | | |
| | |
| | | public interface CustomerMapper extends CrudRepository<Customer,Long> { |
| | | |
| | | List<Customer> getCustomerList(); |
| | | List<Customer> getseletCustomer(@Param("offset") Integer offset, |
| | | List<Customer> getSelectCustomer(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("customer") Customer customer); |
| | | |
| | | |
| | | Map<String,Integer> getseletCustomerPageTotal(Integer offset, Integer pageSize, Customer customer); |
| | | Map<String,Integer> getSelectCustomerPageTotal(Integer offset, Integer pageSize, Customer customer); |
| | | |
| | | Boolean insertCustomer(@Param("customer") Customer customer); |
| | | |
| | |
| | | @Mapper |
| | | public interface DeliveryDetailMapper extends CrudRepository<DeliveryDetail,Long> { |
| | | |
| | | List<DeliveryDetail> getseletShippingOrderDetail(@Param("offset") Integer offset, |
| | | List<DeliveryDetail> getSelectShippingOrderDetail(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("orderDetail") OrderDetail orderDetail); |
| | | |
| | | |
| | | |
| | | Integer getseletShippingOrderDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | Integer getSelectShippingOrderDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | |
| | | List<DeliveryDetail> getseletShippingOrderDetails(@Param("offset") Integer offset, |
| | | List<DeliveryDetail> getSelectShippingOrderDetails(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("orderDetail") OrderDetail orderDetail); |
| | | |
| | |
| | | |
| | | |
| | | |
| | | Integer getseletShippingOrderDetailsPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | Integer getSelectShippingOrderDetailsPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail); |
| | | |
| | | Boolean insertDeliveryDetail(@Param("orderDetail") OrderDetail orderDetail, @Param("number") String number,@Param("deliveryNumber") Integer deliveryNumber); |
| | | |
| | |
| | | @Mapper |
| | | public interface DeliveryMapper extends CrudRepository<Delivery,Long> { |
| | | |
| | | List<Delivery> getseletShippingOrder(@Param("offset") Integer offset, |
| | | List<Delivery> getSelectShippingOrder(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize,String startDate, String endDate, |
| | | @Param("delivery") Delivery delivery); |
| | | |
| | | Delivery getseletShippingOrderDetaildelivery(@Param("offset") Integer offset, |
| | | Delivery getSelectShippingOrderDetailDelivery(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("orderDetail") OrderDetail orderDetail); |
| | | |
| | | Order getseletShippingOrderDetaildeliverys(@Param("offset") Integer offset, |
| | | Order getSelectShippingOrderDetailDeliverys(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize, |
| | | @Param("orderDetail") OrderDetail orderDetail); |
| | | Map<String,Integer> getseletShippingOrderPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, Delivery delivery); |
| | | Map<String,Integer> getSelectShippingOrderPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, Delivery delivery); |
| | | |
| | | List<Order> getSelectOrderInventory(@Param("offset") Integer offset, |
| | | @Param("pageSize") Integer pageSize,String startDate, String endDate, |
| | |
| | | package com.example.erp.mapper.sd; |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.example.erp.entity.sd.OrderProcessDetail; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | import java.util.List; |
| | | |
| | | @Mapper |
| | | @DS("sd") |
| | | public interface OrderProcessDetailMapper extends BaseMapper<OrderProcessDetail> { |
| | | boolean insertOrderProcessDetail(@Param("processDetailList") List<OrderProcessDetail> processDetailList); |
| | | } |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getseletwarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) { |
| | | public Map<String, Object> getSelectWarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.getseletwarehousing(offset, pageSize, flowCard)); |
| | | map.put("total", finishedGoodsInventoryMapper.getseletwarehousingPageTotal(offset, pageSize, flowCard)); |
| | | map.put("data", finishedGoodsInventoryMapper.getSelectWarehousing(offset, pageSize, flowCard)); |
| | | map.put("total", finishedGoodsInventoryMapper.getSelectWarehousingPageTotal(offset, pageSize, flowCard)); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Boolean addseletwarehousing(Map<String,Object> object) { |
| | | Boolean isinsert=false; |
| | | public Boolean addSelectWarehousing(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | //定义前端传输的数据 |
| | | String storageRegion = ""; |
| | | String remark = ""; |
| | | if (object.get("remark") != null) { |
| | | remark = object.get("remark").toString(); |
| | | } |
| | | if (object.get("storageRegion") != null) { |
| | | storageRegion = object.get("storageRegion").toString(); |
| | | } |
| | | |
| | | //定义前端传输的数据 |
| | | String storageRegion = ""; |
| | | String remark = ""; |
| | | if (object.get("remark") != null) { |
| | | remark = object.get("remark").toString(); |
| | | } |
| | | if (object.get("storageRegion") != null) { |
| | | storageRegion = object.get("storageRegion").toString(); |
| | | } |
| | | |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | |
| | | //获取对象集合循环进行新增修改 |
| | | List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowcard")), FlowCard.class); |
| | |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | } |
| | | isinsert=true; |
| | | } else { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) { |
| | | //修改流程卡表入库数量 |
| | |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),flowCard.getInventoryQuantity()); |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | isinsert=true; |
| | | } else { |
| | | isinsert= false; |
| | | |
| | | } |
| | | } |
| | | } |
| | | return isinsert; |
| | | }else{ |
| | | return false; |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getseletdeliveryDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | public Map<String, Object> getSelectDeliveryDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.getseletdeliveryDetail(offset, pageSize, orderDetail)); |
| | | map.put("total", finishedGoodsInventoryMapper.getseletdeliveryDetailPageTotal(offset, pageSize, orderDetail)); |
| | | map.put("data", finishedGoodsInventoryMapper.getSelectDeliveryDetail(offset, pageSize, orderDetail)); |
| | | map.put("total", finishedGoodsInventoryMapper.getSelectDeliveryDetailPageTotal(offset, pageSize, orderDetail)); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public Boolean adddeliveryDetail(Map<String,Object> object) { |
| | | public Boolean addDeliveryDetail(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> getselectAllocateFinishedOperateLog(Integer pageNum, Integer pageSize,List<String> selectDate, FinishedOperateLog finishedOperateLog) { |
| | | public Map<String, Object> getSelectAllocateFinishedOperateLog(Integer pageNum, Integer pageSize,List<String> selectDate, FinishedOperateLog finishedOperateLog) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | |
| | | String endDate = LocalDate.now().toString(); |
New file |
| | |
| | | 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.FlowCard; |
| | | import com.example.erp.entity.pp.PatchLog; |
| | | import com.example.erp.entity.pp.Rework; |
| | | import com.example.erp.entity.userInfo.SysError; |
| | | import com.example.erp.mapper.pp.PatchLogMapper; |
| | | import com.example.erp.service.userInfo.SysErrorService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | |
| | | |
| | | @Service |
| | | @DS("pp") |
| | | public class ReplenishService { |
| | | @Autowired |
| | | PatchLogMapper patchMapper; |
| | | |
| | | @Autowired |
| | | SysErrorService sysErrorService; |
| | | |
| | | |
| | | public List<Map<String, Object>> getSelectReplenish(Integer pageNum, Integer pageSize) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | return patchMapper.getSelectReplenish(offset,pageSize); |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> SelectReplenish(Integer pageNum, Integer pageSize,List<String> selectDate,PatchLog patchLog) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | | } |
| | | if(!selectDate.get(1).isEmpty()){ |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("data",patchMapper.SelectReplenish(offset,pageSize,startDate,endDate,patchLog)); |
| | | map.put("total",patchMapper.SelectReplenishPageTotal(offset,pageSize,startDate,endDate,patchLog)); |
| | | |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | | map.put("selectDate",list); |
| | | return map; |
| | | } |
| | | |
| | | public Boolean saveReplenish(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | String oddNumber=orderNumberSetting("补片"); |
| | | //获取对象集合循环进行新增修改 |
| | | List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); |
| | | if (!patchLoglist.isEmpty()){ |
| | | for (PatchLog patchLog : patchLoglist) { |
| | | //添加返工记录,修改次破明细数量 |
| | | patchMapper.insertReplenish(patchLog,oddNumber); |
| | | patchMapper.updateDamageDetails(patchLog); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | public Boolean updateReplenish(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); |
| | | if (!patchLoglist.isEmpty()){ |
| | | for (PatchLog patchLog : patchLoglist) { |
| | | //审核 |
| | | patchMapper.updateReplenish(patchLog,userName); |
| | | } |
| | | } |
| | | |
| | | |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | public String orderNumberSetting(String type) { |
| | | //根据类型自动生成不同的操作单号 |
| | | String alias=""; |
| | | if(Objects.equals(type, "补片")){ |
| | | alias="BP"; |
| | | } |
| | | //查询当天的最大数量 |
| | | Integer maximum=patchMapper.getMaximum(); |
| | | //设置两位不够补0 |
| | | String formattedNumber = String.format("%02d", maximum+1); |
| | | //格式化当前日期 |
| | | Date currentDate = new Date(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); |
| | | String formattedDate = dateFormat.format(currentDate); |
| | | String oddNumbers = alias+formattedDate+formattedNumber; |
| | | return oddNumbers; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | package com.example.erp.service.pp; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.example.erp.entity.pp.DamageDetails; |
| | | import com.example.erp.entity.pp.ReportingWork; |
| | | import com.example.erp.entity.pp.ReportingWorkDetail; |
| | | import com.example.erp.entity.sd.Order; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | | import com.example.erp.entity.sd.OrderProcessDetail; |
| | | import com.example.erp.mapper.pp.BasicDateProduceMapper; |
| | | import com.example.erp.mapper.pp.DamageDetailsMapper; |
| | | import com.example.erp.mapper.pp.ReportingWorkDetailMapper; |
| | | import com.example.erp.mapper.pp.ReportingWorkMapper; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.example.erp.mapper.sd.OrderProcessDetailMapper; |
| | | import com.example.erp.service.sd.OrderProcessDetailService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | | @DS("pp") |
| | | public class ReportingWorkService { |
| | | @Autowired |
| | | final |
| | | ReportingWorkMapper reportingWorkMapper; |
| | | |
| | | final |
| | | BasicDateProduceMapper basicDateProduceMapper; |
| | | final |
| | | DamageDetailsMapper damageDetailsMapper; |
| | | final |
| | | OrderProcessDetailMapper orderProcessDetailMapper; |
| | | final |
| | | ReportingWorkDetailMapper |
| | | reportingWorkDetailMapper; |
| | | |
| | | final |
| | | OrderProcessDetailService orderProcessDetailService; |
| | | |
| | | |
| | | |
| | | public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService) { |
| | | this.reportingWorkMapper = reportingWorkMapper; |
| | | this.basicDateProduceMapper = basicDateProduceMapper; |
| | | this.damageDetailsMapper = damageDetailsMapper; |
| | | this.reportingWorkDetailMapper = reportingWorkDetailMapper; |
| | | this.orderProcessDetailMapper = orderProcessDetailMapper; |
| | | this.orderProcessDetailService = orderProcessDetailService; |
| | | } |
| | | |
| | | public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | } |
| | | //System.out.println("当前工序:" + process + " 上一道工序:" + previousProcess + " 下一道工序:" + nextProcess); |
| | | //查询当前工序的表头数据 |
| | | // System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process)); |
| | | map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process)); |
| | | map.put("thisProcess", processList); |
| | | break; |
| | |
| | | //班组下拉框 |
| | | map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process)); |
| | | |
| | | map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype")); |
| | | map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason")); |
| | | |
| | | //查询本工序报工需要哪几层,上工序是什么 |
| | | String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr); |
| | |
| | | //判断本工序是不是第一道工序 |
| | | if (interceptProcess.equals(process)) { |
| | | //是第一道工序,查询流程卡数据 |
| | | map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr)); |
| | | map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr,process)); |
| | | } |
| | | else { |
| | | //不是第一道工序,查询报工数据 |
| | |
| | | |
| | | //获取该流程卡号历史报工工序 |
| | | String historyProcess =reportingWorkMapper.historyProcessMp(processIdStr); |
| | | |
| | | //历史报工工序设备 |
| | | map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,process)); |
| | | //历史报工工序班组 |
| | | map.put("historyTeams",reportingWorkMapper.historyTeamsMp(historyProcess,process)); |
| | | map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processIdStr,process)); |
| | | //历史工序 |
| | | map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,process)); |
| | | |
| | |
| | | map.put("process", reportingWorkMapper.SelectProcessMp()); |
| | | return map; |
| | | } |
| | | |
| | | //报工新增 |
| | | @Transactional |
| | | public boolean SaveReportingWorkSv(Map<String, Object> reportingWorkMap) { |
| | | //接收解析主附表信息 |
| | | JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); |
| | | ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class); |
| | | List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class); |
| | | //获取当前最大报工单号生成报工单号 |
| | | String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId()+1); |
| | | //格式化当前日期 |
| | | Date currentDate = new Date(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); |
| | | String formattedDate = dateFormat.format(currentDate); |
| | | String reportingWorkId = "BG"+formattedDate+formattedNumber; |
| | | reportingWork.setReportingWorkId(reportingWorkId); |
| | | reportingWork.setProcessId(reportingWork.getProcessId().substring(0,13)); |
| | | //主表插入 |
| | | reportingWorkMapper.insert(reportingWork); |
| | | |
| | | //副表循环插入,并且插入次破信息表。再根据次破信息修改订单玻璃流程表的完工数量与刺破数量 |
| | | reportingWorkDetails.forEach(reportingWorkDetail -> { |
| | | reportingWorkDetail.setReportingWorkId(reportingWorkId); |
| | | List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails(); |
| | | if(damageDetails!=null && !damageDetails.isEmpty()){ |
| | | damageDetails.forEach(damageDetail ->{ |
| | | damageDetail.setReportingWorkId(reportingWorkId); |
| | | damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber()); |
| | | damageDetail.setProcessId(reportingWork.getProcessId()); |
| | | damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber()); |
| | | damageDetailsMapper.insert(damageDetail); |
| | | }); |
| | | } |
| | | //System.out.println(reportingWorkDetail); |
| | | OrderProcessDetail orderProcessDetail = new OrderProcessDetail(); |
| | | orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity()); |
| | | orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity()); |
| | | orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity()); |
| | | |
| | | //根据订单id,订单序号,以及小片序号 更新小片流程的完工数量以及刺破数量 |
| | | LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber()) |
| | | .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId()) |
| | | .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess()) |
| | | .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber()) |
| | | .setSql("reporting_work_num_count =reporting_work_num_count +"+orderProcessDetail.getReportingWorkNumCount()) |
| | | .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum()) |
| | | .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum()); |
| | | |
| | | orderProcessDetailMapper.update(null,updateWrapper); |
| | | reportingWorkDetailMapper.insert(reportingWorkDetail); |
| | | }); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | 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.PatchLog; |
| | | import com.example.erp.entity.pp.Rework; |
| | | import com.example.erp.entity.sd.Delivery; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | |
| | | |
| | | public Boolean saveRework(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | |
| | | |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("返工"); |
| | | //获取对象集合循环进行新增修改 |
| | | List<Rework> reworklist = JSONArray.parseArray(JSONObject.toJSONString(object.get("rework")), Rework.class); |
| | | if (!reworklist.isEmpty()){ |
| | | for (Rework rework : reworklist) { |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("返工"); |
| | | //添加出入库记录 |
| | | //添加返工记录,修改次破明细数量 |
| | | reworkMapper.insertRework(rework,oddNumber); |
| | | reworkMapper.updateReportingWorkDetail(rework); |
| | | reworkMapper.updateDamageDetails(rework); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | |
| | | return saveState; |
| | | |
| | |
| | | SysErrorService sysErrorService; |
| | | |
| | | |
| | | public Map<String, Object> getseletCustomer(Integer pageNum, Integer pageSize, Customer customer) { |
| | | public Map<String, Object> getSelectCustomer(Integer pageNum, Integer pageSize, Customer customer) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", customerMapper.getseletCustomer(offset, pageSize, customer)); |
| | | map.put("total", customerMapper.getseletCustomerPageTotal(offset, pageSize, customer)); |
| | | map.put("data", customerMapper.getSelectCustomer(offset, pageSize, customer)); |
| | | map.put("total", customerMapper.getSelectCustomerPageTotal(offset, pageSize, customer)); |
| | | return map; |
| | | } |
| | | |
| | |
| | | SysErrorService sysErrorService; |
| | | |
| | | |
| | | public Map<String, Object> getseletShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { |
| | | public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | |
| | | } |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", deliveryMapper.getseletShippingOrder(offset, pageSize,startDate,endDate, delivery)); |
| | | map.put("total", deliveryMapper.getseletShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); |
| | | map.put("data", deliveryMapper.getSelectShippingOrder(offset, pageSize,startDate,endDate, delivery)); |
| | | map.put("total", deliveryMapper.getSelectShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getseletShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | public Map<String, Object> getSelectShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", deliveryDetailMapper.getseletShippingOrderDetail(offset, pageSize, orderDetail)); |
| | | map.put("delivery", deliveryMapper.getseletShippingOrderDetaildelivery(offset, pageSize, orderDetail)); |
| | | map.put("total", deliveryDetailMapper.getseletShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); |
| | | map.put("data", deliveryDetailMapper.getSelectShippingOrderDetail(offset, pageSize, orderDetail)); |
| | | map.put("delivery", deliveryMapper.getSelectShippingOrderDetailDelivery(offset, pageSize, orderDetail)); |
| | | map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); |
| | | |
| | | return map; |
| | | } |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getseletShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | public Map<String, Object> getSelectShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", deliveryDetailMapper.getseletShippingOrderDetails(offset, pageSize, orderDetail)); |
| | | map.put("title", deliveryMapper.getseletShippingOrderDetaildeliverys(offset, pageSize, orderDetail)); |
| | | map.put("total", deliveryDetailMapper.getseletShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); |
| | | map.put("data", deliveryDetailMapper.getSelectShippingOrderDetails(offset, pageSize, orderDetail)); |
| | | map.put("title", deliveryMapper.getSelectShippingOrderDetailDeliverys(offset, pageSize, orderDetail)); |
| | | map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); |
| | | return map; |
| | | } |
| | | |
New file |
| | |
| | | package com.example.erp.service.sd; |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.example.erp.entity.sd.OrderProcessDetail; |
| | | import com.example.erp.mapper.sd.OrderProcessDetailMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | |
| | | @Service |
| | | @DS("sd") |
| | | public class OrderProcessDetailService { |
| | | final |
| | | OrderProcessDetailMapper orderProcessDetailMapper; |
| | | |
| | | public OrderProcessDetailService(OrderProcessDetailMapper orderProcessDetailMapper) { |
| | | this.orderProcessDetailMapper = orderProcessDetailMapper; |
| | | } |
| | | |
| | | public void updateReportingWork(OrderProcessDetail orderProcessDetail, LambdaUpdateWrapper<OrderProcessDetail> updateWrapper) { |
| | | orderProcessDetailMapper.update(orderProcessDetail,updateWrapper); |
| | | } |
| | | } |
| | |
| | | </update> |
| | | |
| | | |
| | | <select id="getseletdeliveryDetailPageTotal" > |
| | | <select id="getSelectDeliveryDetailPageTotal" > |
| | | select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal', |
| | | count(dd.id) as 'total' |
| | | from sd.delivery_detail dd |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletdeliveryDetail" resultMap="selectDelivery"> |
| | | <select id="getSelectDeliveryDetail" resultMap="selectDelivery"> |
| | | select dd.delivery_id, |
| | | dd.order_number, |
| | | dd.order_id, |
| | |
| | | |
| | | <update id="updateflowcard"> |
| | | update pp.flow_card |
| | | set received_quantity=received_quantity+${inventoryQuantity} |
| | | set received_quantity=received_quantity+${inventoryQuantity},storage_time=now() |
| | | where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} |
| | | </update> |
| | | |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="getseletwarehousing" resultMap="selectFlowCard"> |
| | | <select id="getSelectWarehousing" resultMap="selectFlowCard"> |
| | | select |
| | | fc.id, |
| | | o.order_id, |
| | |
| | | group by fc.order_id,fc.order_number,fc.process_id order by fc.create_time |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | <select id="getseletwarehousingPageTotal" > |
| | | <select id="getSelectWarehousingPageTotal" > |
| | | select |
| | | CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal', |
| | | count(zu.order_number) as 'total' from ( |
| | | select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on |
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.PatchLogMapper"> |
| | | |
| | | |
| | | |
| | | <!--获取补片数据--> |
| | | <select id="SelectReplenish" > |
| | | select |
| | | r.id, |
| | | r.review_status, |
| | | r.reporting_work_id, |
| | | r.patch_id, |
| | | r.process_id, |
| | | r.order_id, |
| | | r.order_sort, |
| | | o.project, |
| | | o.batch, |
| | | od.building_number, |
| | | od.product_name, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | | r.patch_num, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | r.patch_type, |
| | | r.patch_reason, |
| | | r.responsible_team, |
| | | r.responsible_personnel, |
| | | r.responsible_equipment, |
| | | r.patch_area, |
| | | r.quality_inspector, |
| | | r.patch_processes, |
| | | r.reviewer, |
| | | date(r.create_time) as create_time, |
| | | date(r.update_time) as update_time |
| | | from pp.patch_log r left join sd.order_detail od on r.order_id=od.order_id and r.order_sort=od.order_number |
| | | left join sd.`order` o on r.order_id = o.order_id |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on r.order_id = ogd.order_id and r.order_sort = ogd.order_number |
| | | <where> |
| | | date(r.create_time)>=#{startDate} and date(r.create_time) <= #{endDate} |
| | | </where> |
| | | order by r.review_status |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="SelectReplenishPageTotal" > |
| | | select CEILING(count(zu.id)/#{pageSize}) as 'pageTotal', |
| | | count(zu.id) as 'total' |
| | | from (select r.id as id |
| | | from pp.patch_log r left join sd.order_detail od on r.order_id=od.order_id and r.order_sort=od.order_number |
| | | left join sd.`order` o on r.order_id = o.order_id |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on r.order_id = ogd.order_id and r.order_sort = ogd.order_number |
| | | <where> |
| | | date(r.create_time)>=#{startDate} and date(r.create_time) <= #{endDate} |
| | | </where> |
| | | ) as zu |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="getMaximum" > |
| | | select count(*) from pp.patch_log where date(create_time)=CURDATE() |
| | | </select> |
| | | |
| | | |
| | | <insert id="insertReplenish" useGeneratedKeys="true" > |
| | | insert into pp.patch_log(patch_id,reporting_work_id,process_id,order_id, order_sort, technology_number, responsible_team, |
| | | responsible_personnel, patch_type, patch_reason, patch_processes, patch_num, |
| | | patch_area,responsible_equipment,quality_inspector, reviewer, review_status, create_time) |
| | | values ( |
| | | #{oddNumber}, #{patchLog.reportingWorkId},#{patchLog.processId},#{patchLog.orderId},#{patchLog.orderSort},#{patchLog.technologyNumber}, |
| | | #{patchLog.responsibleTeam},#{patchLog.responsiblePersonnel},#{patchLog.patchType},#{patchLog.patchReason}, |
| | | #{patchLog.patchProcesses},#{patchLog.patchNum},#{patchLog.patchArea},#{patchLog.responsibleEquipment},#{patchLog.qualityInspector},"",0,now() |
| | | ) |
| | | </insert> |
| | | |
| | | <update id="updateReplenish" > |
| | | update pp.patch_log set reviewer=#{userName},review_status=1,update_time=now() where id=#{patchLog.id} |
| | | </update> |
| | | |
| | | <update id="updateDamageDetails" > |
| | | update pp.damage_details set quantity=quantity+#{patchLog.patchNum},patch_status=1 where id=#{patchLog.reviewer} |
| | | </update> |
| | | |
| | | |
| | | <select id="getSelectReplenish"> |
| | | select date(rw.reporting_work_time) as reportingWorkTime, |
| | | o.order_id as orderId, |
| | | dd.reporting_work_id as reportingWorkId, |
| | | rw.production_id as productionId, |
| | | rw.process_id as processId, |
| | | o.project, |
| | | o.batch, |
| | | dd.id as reviewer, |
| | | od.building_number as buildingNumber, |
| | | dd.order_number as orderSort, |
| | | od.product_name as productName, |
| | | dd.technology_number as technologyNumber, |
| | | ogd.glass_address as glassAddress, |
| | | dd.breakage_quantity-dd.quantity as patchNum, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | dd.breakage_quantity-dd.quantity as breakageQuantity, |
| | | dd.return_process as patchProcesses, |
| | | dd.breakage_reason as patchReason, |
| | | dd.breakage_type as patchType, |
| | | dd.responsible_personnel as responsiblePersonnel, |
| | | dd.responsible_equipment as responsibleEquipment, |
| | | dd.responsible_team as responsibleTeam, |
| | | ROUND((dd.breakage_quantity-dd.quantity) * od.width * od.height / 1000000, 2) as patchArea, |
| | | rw.qualityIns_pector as qualityInsPector |
| | | from pp.damage_details dd |
| | | left join pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number and dd.technology_number=rwd.technology_number |
| | | left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id |
| | | |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and dd.order_number = od.order_number |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number |
| | | |
| | | where dd.breakage_quantity-dd.quantity>0 and dd.available=0 |
| | | |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.shape, |
| | | fc.quantity - IFNULL(fc.number_patches,0)-IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) |
| | | as quantity |
| | | fc.quantity -odpd.reporting_work_num as quantity, |
| | | odpd.reporting_work_num_count as completed, |
| | | odpd.broken_num as onceBroken |
| | | FROM |
| | | sd.order_detail AS od |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON od.order_id = ogd.order_id |
| | | AND od.order_number = ogd.order_number |
| | | LEFT JOIN flow_card AS fc ON fc.order_id = ogd.order_id and fc.production_id=ogd.production_id |
| | | AND fc.order_number = ogd.order_number |
| | | AND fc.technology_number = ogd.technology_number |
| | | left join reporting_work as rw on rw.order_id=fc.order_id and rw.production_id=fc.production_id and rw.process_id=fc.process_id |
| | | left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id and rwd.order_number=fc.order_number and rwd.technology_number=fc.technology_number |
| | | LEFT JOIN sd.order_glass_detail AS ogd |
| | | ON od.order_id = ogd.order_id |
| | | AND od.order_number = ogd.order_number |
| | | LEFT JOIN flow_card AS fc |
| | | ON fc.order_id = ogd.order_id |
| | | and fc.production_id=ogd.production_id |
| | | AND fc.order_number = ogd.order_number |
| | | AND fc.technology_number = ogd.technology_number |
| | | left join sd.order_process_detail as odpd |
| | | ON odpd.order_id = fc.order_id |
| | | AND odpd.order_number = fc.order_number |
| | | AND odpd.technology_number = fc.technology_number |
| | | WHERE |
| | | fc.process_id = #{processIdStr} |
| | | AND position( |
| | | fc.technology_number IN #{technologyStr}) |
| | | |
| | | AND fc.technology_number = #{technologyStr} |
| | | AND odpd.process = #{process} |
| | | order by fc.order_number |
| | | </select> |
| | | |
| | |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.shape, |
| | | reportingwork_num -IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) as quantity |
| | | reporting_work_num -IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) as quantity |
| | | FROM sd.order_detail as od |
| | | left join sd.order_glass_detail as ogd |
| | | on od.order_id = ogd.order_id and od.order_number = ogd.order_number |
| | |
| | | </select> |
| | | |
| | | <select id="SelectProcessMp"> |
| | | select * from sd.basic_data where basic_type="product" and basic_category="process" |
| | | select * from sd.basic_data where basic_type='product' and basic_category='process' |
| | | |
| | | </select> |
| | | |
| | | <select id="historyProcessMp"> |
| | | select ifnull(GROUP_CONCAT(distinct rw.this_process),"") from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | select ifnull(GROUP_CONCAT(distinct rw.this_process),'') from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | </select> |
| | | |
| | | <select id="historyDeviceMp"> |
| | |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "device" |
| | | bd.basic_category = 'process' |
| | | AND bdp.basic_type = 'device' |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | </select> |
| | | |
| | |
| | | bdp.id, |
| | | bdp.basic_type, |
| | | bdp.basic_name, |
| | | bd.basic_name AS basic_category |
| | | bd.basic_name,bd.id AS basic_category, |
| | | rw.process |
| | | FROM |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | LEFT JOIN `basic_data_produce` AS bdp |
| | | ON bd.id = bdp.basic_category |
| | | right join ( |
| | | select distinct process from |
| | | ( select distinct rw.this_process as process |
| | | from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | UNION |
| | | select #{process} |
| | | ) as t |
| | | ) as rw |
| | | on rw.process=bd.basic_name |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "teamsgroups" |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | bdp.basic_type = 'teamsgroups' |
| | | </select> |
| | | |
| | | <select id="SelectHistoryProcessMp"> |
| | |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "teamsgroups" |
| | | bd.basic_category = 'process' |
| | | AND bdp.basic_type = 'teamsgroups' |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | </select> |
| | | |
| | | <select id="selectBasicNameByType"> |
| | | select * from `basic_data_produce` as a where a.basic_type = #{type} |
| | | </select> |
| | | |
| | | <select id="selectMaxReportingWorkId"> |
| | | select |
| | | ifnull(SUBSTR(max(reporting_work_id) from 9),0) |
| | | from |
| | | reporting_work as a |
| | | where |
| | | date(a.create_time) = curdate() |
| | | order by id desc,reporting_work_id desc limit 1 |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <!--获取返工数据--> |
| | | <select id="SelectRework" > |
| | | select |
| | | r.id, |
| | | r.review_status, |
| | | r.rework_team, |
| | | r.rework_id, |
| | |
| | | |
| | | <select id="getSelectRework"> |
| | | select o.order_id as orderId, |
| | | rwd.reporting_work_id as reportingWorkId, |
| | | dd.reporting_work_id as reportingWorkId, |
| | | rw.process_id as processId, |
| | | o.project, |
| | | o.batch, |
| | | rwd.order_number as orderSort, |
| | | dd.id as reviewer, |
| | | dd.order_number as orderSort, |
| | | od.product_name as productName, |
| | | ogd.technology_number as technologyNumber, |
| | | dd.technology_number as technologyNumber, |
| | | ogd.glass_address as glassAddress, |
| | | rwd.wait_rework_quantity as reworkNum, |
| | | dd.breakage_quantity-dd.quantity as reworkNum, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | rwd.breakage_quantity as breakageQuantity, |
| | | rwd.return_process as reworkProcesses, |
| | | rwd.breakage_reason as reworkReason, |
| | | rwd.breakage_type as reworkType, |
| | | rwd.responsible_personnel as responsiblePersonnel, |
| | | rwd.responsible_equipment as responsibleEquipment, |
| | | rwd.responsible_team as responsibleTeam, |
| | | ROUND(rwd.wait_rework_quantity * od.width * od.height / 1000000, 2) as reworkArea, |
| | | dd.breakage_quantity-dd.quantity as breakageQuantity, |
| | | dd.return_process as reworkProcesses, |
| | | dd.breakage_reason as reworkReason, |
| | | dd.breakage_type as reworkType, |
| | | dd.responsible_personnel as responsiblePersonnel, |
| | | dd.responsible_equipment as responsibleEquipment, |
| | | dd.responsible_team as responsibleTeam, |
| | | ROUND((dd.breakage_quantity-dd.quantity) * od.width * od.height / 1000000, 2) as reworkArea, |
| | | rw.qualityIns_pector as qualityInsPector |
| | | from pp.reporting_work_detail rwd |
| | | left join pp.reporting_work rw on rwd.reporting_work_id = rw.reporting_work_id |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and rwd.order_number = od.order_number |
| | | left join sd.order_glass_detail ogd |
| | | on rw.order_id = ogd.order_id and rwd.order_number = ogd.order_number |
| | | where rwd.wait_rework_quantity>0 |
| | | from pp.damage_details dd |
| | | left join pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number and dd.technology_number=rwd.technology_number |
| | | left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id |
| | | |
| | | group by ogd.order_id, ogd.order_number |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and dd.order_number = od.order_number |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number |
| | | |
| | | where dd.breakage_quantity-dd.quantity>0 and dd.available=1 |
| | | |
| | | </select> |
| | | |
| | | |
| | |
| | | select count(*) from pp.rework where date(create_time)=CURDATE() |
| | | </select> |
| | | |
| | | <select id="getMaxFlowCard" > |
| | | select count(*) from pp.flow_card where project_no=#{processId} |
| | | </select> |
| | | |
| | | <insert id="insertRework" useGeneratedKeys="true" > |
| | | insert into pp.rework(rework_id,reporting_work_id, process_id,order_id, order_sort, technology_number, responsible_team, |
| | | insert into pp.rework(rework_id,reporting_work_id,process_id,order_id, order_sort, technology_number, responsible_team, |
| | | responsible_personnel, rework_type, rework_reason, rework_processes, rework_num, |
| | | rework_area, rework_team,responsible_equipment,quality_inspector, reviewer, review_status, create_time) |
| | | values ( |
| | |
| | | </insert> |
| | | |
| | | <update id="updateRework" > |
| | | update pp.rework set reviewer=#{userName},review_status=1,update_time=now() where rework_id=#{rework.reworkId} |
| | | update pp.rework set reviewer=#{userName},review_status=1,update_time=now() where rework_id=#{rework.id} |
| | | </update> |
| | | |
| | | <update id="updateReportingWorkDetail" > |
| | | update pp.reporting_work_detail set wait_rework_quantity=wait_rework_quantity-#{rework.reworkNum} |
| | | where reporting_work_id=#{rework.reportingWorkId} and order_number=#{rework.orderSort} and technology_number=#{rework.technologyNumber} |
| | | <update id="updateDamageDetails" > |
| | | update pp.damage_details set quantity=quantity+#{rework.reworkNum} where id=#{rework.reviewer} |
| | | </update> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | </mapper> |
| | |
| | | from |
| | | sd.customer |
| | | </select> |
| | | <select id="getseletCustomer"> |
| | | <select id="getSelectCustomer"> |
| | | select |
| | | * |
| | | from |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletCustomerPageTotal"> |
| | | <select id="getSelectCustomerPageTotal"> |
| | | select |
| | | CEILING(count(id)/#{pageSize}) as 'pageTotal', |
| | | count(id) as 'total' |
| | |
| | | |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetaildelivery" > |
| | | <select id="getSelectShippingOrderDetailDelivery" > |
| | | select |
| | | d.delivery_state,d.stock_state,d.payment_terms, |
| | | d.customer_id,d.customer_name,d.project,d.pay_method,d.pay_date,d.contacts,d.contact_number, |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="getseletShippingOrderDetaildeliverys" > |
| | | <select id="getSelectShippingOrderDetailDeliverys" > |
| | | select customer_id,customer_name,project,salesman,salesman_id,contacts,contact_number,delivery_address from sd.`order` |
| | | <where> |
| | | <if test="orderDetail.orderId != null and orderDetail.orderId != ''"> |
| | |
| | | limit 0,1 |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrder"> |
| | | <select id="getSelectShippingOrder"> |
| | | select * from sd.delivery d |
| | | <where> |
| | | date(d.create_time)>=#{startDate} and date(d.create_time) <= #{endDate} |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderPageTotal"> |
| | | <select id="getSelectShippingOrderPageTotal"> |
| | | select |
| | | CEILING(count(id)/#{pageSize}) as 'pageTotal', |
| | | count(id) as 'total' |
| | |
| | | |
| | | |
| | | |
| | | <select id="getseletShippingOrderDetail" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | <select id="getSelectShippingOrderDetail" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | select od.order_id, |
| | | o.batch, |
| | | dd.delivery_number, |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetailPageTotal"> |
| | | <select id="getSelectShippingOrderDetailPageTotal"> |
| | | select |
| | | CEILING(count(dd.id)/#{pageSize}) |
| | | from sd.delivery_detail dd |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | <select id="getSelectShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | select od.order_id, |
| | | od.order_number, |
| | | o.batch, |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetailsPageTotal"> |
| | | <select id="getSelectShippingOrderDetailsPageTotal"> |
| | | select |
| | | CEILING(count(od.id)/#{pageSize}) |
| | | from sd.order_detail od |
| | |
| | | <mapper namespace="com.example.erp.mapper.sd.OrderMapper"> |
| | | <select id="selectMaxOrderId"> |
| | | select |
| | | COUNT(a.order_id) |
| | | ifnull(SUBSTR(max(order_id) from 9),0) |
| | | from |
| | | `order` as a |
| | | where |
| | | date(a.create_time) = curdate() |
| | | order by id desc,order_id desc limit 1 |
| | | </select> |
| | | |
| | | |
| | |
| | | </update> |
| | | |
| | | |
| | | <select id="getseletdeliveryDetailPageTotal" > |
| | | <select id="getSelectDeliveryDetailPageTotal" > |
| | | select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal', |
| | | count(dd.id) as 'total' |
| | | from sd.delivery_detail dd |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletdeliveryDetail" resultMap="selectDelivery"> |
| | | <select id="getSelectDeliveryDetail" resultMap="selectDelivery"> |
| | | select dd.delivery_id, |
| | | dd.order_number, |
| | | dd.order_id, |
| | |
| | | |
| | | <update id="updateflowcard"> |
| | | update pp.flow_card |
| | | set received_quantity=received_quantity+${inventoryQuantity} |
| | | set received_quantity=received_quantity+${inventoryQuantity},storage_time=now() |
| | | where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} |
| | | </update> |
| | | |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="getseletwarehousing" resultMap="selectFlowCard"> |
| | | <select id="getSelectWarehousing" resultMap="selectFlowCard"> |
| | | select |
| | | fc.id, |
| | | o.order_id, |
| | |
| | | group by fc.order_id,fc.order_number,fc.process_id order by fc.create_time |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | <select id="getseletwarehousingPageTotal" > |
| | | <select id="getSelectWarehousingPageTotal" > |
| | | select |
| | | CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal', |
| | | count(zu.order_number) as 'total' from ( |
| | | select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on |
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.PatchLogMapper"> |
| | | |
| | | |
| | | |
| | | <!--获取补片数据--> |
| | | <select id="SelectReplenish" > |
| | | select |
| | | r.id, |
| | | r.review_status, |
| | | r.reporting_work_id, |
| | | r.patch_id, |
| | | r.process_id, |
| | | r.order_id, |
| | | r.order_sort, |
| | | o.project, |
| | | o.batch, |
| | | od.building_number, |
| | | od.product_name, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | | r.patch_num, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | r.patch_type, |
| | | r.patch_reason, |
| | | r.responsible_team, |
| | | r.responsible_personnel, |
| | | r.responsible_equipment, |
| | | r.patch_area, |
| | | r.quality_inspector, |
| | | r.patch_processes, |
| | | r.reviewer, |
| | | date(r.create_time) as create_time, |
| | | date(r.update_time) as update_time |
| | | from pp.patch_log r left join sd.order_detail od on r.order_id=od.order_id and r.order_sort=od.order_number |
| | | left join sd.`order` o on r.order_id = o.order_id |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on r.order_id = ogd.order_id and r.order_sort = ogd.order_number |
| | | <where> |
| | | date(r.create_time)>=#{startDate} and date(r.create_time) <= #{endDate} |
| | | </where> |
| | | order by r.review_status |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="SelectReplenishPageTotal" > |
| | | select CEILING(count(zu.id)/#{pageSize}) as 'pageTotal', |
| | | count(zu.id) as 'total' |
| | | from (select r.id as id |
| | | from pp.patch_log r left join sd.order_detail od on r.order_id=od.order_id and r.order_sort=od.order_number |
| | | left join sd.`order` o on r.order_id = o.order_id |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on r.order_id = ogd.order_id and r.order_sort = ogd.order_number |
| | | <where> |
| | | date(r.create_time)>=#{startDate} and date(r.create_time) <= #{endDate} |
| | | </where> |
| | | ) as zu |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="getMaximum" > |
| | | select count(*) from pp.patch_log where date(create_time)=CURDATE() |
| | | </select> |
| | | |
| | | |
| | | <insert id="insertReplenish" useGeneratedKeys="true" > |
| | | insert into pp.patch_log(patch_id,reporting_work_id,process_id,order_id, order_sort, technology_number, responsible_team, |
| | | responsible_personnel, patch_type, patch_reason, patch_processes, patch_num, |
| | | patch_area,responsible_equipment,quality_inspector, reviewer, review_status, create_time) |
| | | values ( |
| | | #{oddNumber}, #{patchLog.reportingWorkId},#{patchLog.processId},#{patchLog.orderId},#{patchLog.orderSort},#{patchLog.technologyNumber}, |
| | | #{patchLog.responsibleTeam},#{patchLog.responsiblePersonnel},#{patchLog.patchType},#{patchLog.patchReason}, |
| | | #{patchLog.patchProcesses},#{patchLog.patchNum},#{patchLog.patchArea},#{patchLog.responsibleEquipment},#{patchLog.qualityInspector},"",0,now() |
| | | ) |
| | | </insert> |
| | | |
| | | <update id="updateReplenish" > |
| | | update pp.patch_log set reviewer=#{userName},review_status=1,update_time=now() where id=#{patchLog.id} |
| | | </update> |
| | | |
| | | <update id="updateDamageDetails" > |
| | | update pp.damage_details set quantity=quantity+#{patchLog.patchNum},patch_status=1 where id=#{patchLog.reviewer} |
| | | </update> |
| | | |
| | | |
| | | <select id="getSelectReplenish"> |
| | | select date(rw.reporting_work_time) as reportingWorkTime, |
| | | o.order_id as orderId, |
| | | dd.reporting_work_id as reportingWorkId, |
| | | rw.production_id as productionId, |
| | | rw.process_id as processId, |
| | | o.project, |
| | | o.batch, |
| | | dd.id as reviewer, |
| | | od.building_number as buildingNumber, |
| | | dd.order_number as orderSort, |
| | | od.product_name as productName, |
| | | dd.technology_number as technologyNumber, |
| | | ogd.glass_address as glassAddress, |
| | | dd.breakage_quantity-dd.quantity as patchNum, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | dd.breakage_quantity-dd.quantity as breakageQuantity, |
| | | dd.return_process as patchProcesses, |
| | | dd.breakage_reason as patchReason, |
| | | dd.breakage_type as patchType, |
| | | dd.responsible_personnel as responsiblePersonnel, |
| | | dd.responsible_equipment as responsibleEquipment, |
| | | dd.responsible_team as responsibleTeam, |
| | | ROUND((dd.breakage_quantity-dd.quantity) * od.width * od.height / 1000000, 2) as patchArea, |
| | | rw.qualityIns_pector as qualityInsPector |
| | | from pp.damage_details dd |
| | | left join pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number and dd.technology_number=rwd.technology_number |
| | | left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id |
| | | |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and dd.order_number = od.order_number |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number |
| | | |
| | | where dd.breakage_quantity-dd.quantity>0 and dd.available=0 |
| | | |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.shape, |
| | | fc.quantity - IFNULL(fc.number_patches,0)-IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) |
| | | as quantity |
| | | fc.quantity -odpd.reporting_work_num as quantity, |
| | | odpd.reporting_work_num_count as completed, |
| | | odpd.broken_num as onceBroken |
| | | FROM |
| | | sd.order_detail AS od |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON od.order_id = ogd.order_id |
| | | AND od.order_number = ogd.order_number |
| | | LEFT JOIN flow_card AS fc ON fc.order_id = ogd.order_id and fc.production_id=ogd.production_id |
| | | AND fc.order_number = ogd.order_number |
| | | AND fc.technology_number = ogd.technology_number |
| | | left join reporting_work as rw on rw.order_id=fc.order_id and rw.production_id=fc.production_id and rw.process_id=fc.process_id |
| | | left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id and rwd.order_number=fc.order_number and rwd.technology_number=fc.technology_number |
| | | LEFT JOIN sd.order_glass_detail AS ogd |
| | | ON od.order_id = ogd.order_id |
| | | AND od.order_number = ogd.order_number |
| | | LEFT JOIN flow_card AS fc |
| | | ON fc.order_id = ogd.order_id |
| | | and fc.production_id=ogd.production_id |
| | | AND fc.order_number = ogd.order_number |
| | | AND fc.technology_number = ogd.technology_number |
| | | left join sd.order_process_detail as odpd |
| | | ON odpd.order_id = fc.order_id |
| | | AND odpd.order_number = fc.order_number |
| | | AND odpd.technology_number = fc.technology_number |
| | | WHERE |
| | | fc.process_id = #{processIdStr} |
| | | AND position( |
| | | fc.technology_number IN #{technologyStr}) |
| | | |
| | | AND fc.technology_number = #{technologyStr} |
| | | AND odpd.process = #{process} |
| | | order by fc.order_number |
| | | </select> |
| | | |
| | |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.shape, |
| | | reportingwork_num -IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) as quantity |
| | | reporting_work_num -IFNULL(rwd.completed_quantity,0)-IFNULL(rwd.breakage_quantity,0)-IFNULL((rwd.wait_rework_quantity),0) as quantity |
| | | FROM sd.order_detail as od |
| | | left join sd.order_glass_detail as ogd |
| | | on od.order_id = ogd.order_id and od.order_number = ogd.order_number |
| | |
| | | </select> |
| | | |
| | | <select id="SelectProcessMp"> |
| | | select * from sd.basic_data where basic_type="product" and basic_category="process" |
| | | select * from sd.basic_data where basic_type='product' and basic_category='process' |
| | | |
| | | </select> |
| | | |
| | | <select id="historyProcessMp"> |
| | | select ifnull(GROUP_CONCAT(distinct rw.this_process),"") from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | select ifnull(GROUP_CONCAT(distinct rw.this_process),'') from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | </select> |
| | | |
| | | <select id="historyDeviceMp"> |
| | |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "device" |
| | | bd.basic_category = 'process' |
| | | AND bdp.basic_type = 'device' |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | </select> |
| | | |
| | |
| | | bdp.id, |
| | | bdp.basic_type, |
| | | bdp.basic_name, |
| | | bd.basic_name AS basic_category |
| | | bd.basic_name,bd.id AS basic_category, |
| | | rw.process |
| | | FROM |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | LEFT JOIN `basic_data_produce` AS bdp |
| | | ON bd.id = bdp.basic_category |
| | | right join ( |
| | | select distinct process from |
| | | ( select distinct rw.this_process as process |
| | | from reporting_work as rw where rw.process_id=#{processIdStr} |
| | | UNION |
| | | select #{process} |
| | | ) as t |
| | | ) as rw |
| | | on rw.process=bd.basic_name |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "teamsgroups" |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | bdp.basic_type = 'teamsgroups' |
| | | </select> |
| | | |
| | | <select id="SelectHistoryProcessMp"> |
| | |
| | | sd.basic_data AS bd |
| | | LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category |
| | | WHERE |
| | | bd.basic_category = "process" |
| | | AND bdp.basic_type = "teamsgroups" |
| | | bd.basic_category = 'process' |
| | | AND bdp.basic_type = 'teamsgroups' |
| | | AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process})) |
| | | </select> |
| | | |
| | | <select id="selectBasicNameByType"> |
| | | select * from `basic_data_produce` as a where a.basic_type = #{type} |
| | | </select> |
| | | |
| | | <select id="selectMaxReportingWorkId"> |
| | | select |
| | | ifnull(SUBSTR(max(reporting_work_id) from 9),0) |
| | | from |
| | | reporting_work as a |
| | | where |
| | | date(a.create_time) = curdate() |
| | | order by id desc,reporting_work_id desc limit 1 |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <!--获取返工数据--> |
| | | <select id="SelectRework" > |
| | | select |
| | | r.id, |
| | | r.review_status, |
| | | r.rework_team, |
| | | r.rework_id, |
| | |
| | | |
| | | <select id="getSelectRework"> |
| | | select o.order_id as orderId, |
| | | rwd.reporting_work_id as reportingWorkId, |
| | | dd.reporting_work_id as reportingWorkId, |
| | | rw.process_id as processId, |
| | | o.project, |
| | | o.batch, |
| | | rwd.order_number as orderSort, |
| | | dd.id as reviewer, |
| | | dd.order_number as orderSort, |
| | | od.product_name as productName, |
| | | ogd.technology_number as technologyNumber, |
| | | dd.technology_number as technologyNumber, |
| | | ogd.glass_address as glassAddress, |
| | | rwd.wait_rework_quantity as reworkNum, |
| | | dd.breakage_quantity-dd.quantity as reworkNum, |
| | | od.width, |
| | | od.height, |
| | | od.shape, |
| | | rwd.breakage_quantity as breakageQuantity, |
| | | rwd.return_process as reworkProcesses, |
| | | rwd.breakage_reason as reworkReason, |
| | | rwd.breakage_type as reworkType, |
| | | rwd.responsible_personnel as responsiblePersonnel, |
| | | rwd.responsible_equipment as responsibleEquipment, |
| | | rwd.responsible_team as responsibleTeam, |
| | | ROUND(rwd.wait_rework_quantity * od.width * od.height / 1000000, 2) as reworkArea, |
| | | dd.breakage_quantity-dd.quantity as breakageQuantity, |
| | | dd.return_process as reworkProcesses, |
| | | dd.breakage_reason as reworkReason, |
| | | dd.breakage_type as reworkType, |
| | | dd.responsible_personnel as responsiblePersonnel, |
| | | dd.responsible_equipment as responsibleEquipment, |
| | | dd.responsible_team as responsibleTeam, |
| | | ROUND((dd.breakage_quantity-dd.quantity) * od.width * od.height / 1000000, 2) as reworkArea, |
| | | rw.qualityIns_pector as qualityInsPector |
| | | from pp.reporting_work_detail rwd |
| | | left join pp.reporting_work rw on rwd.reporting_work_id = rw.reporting_work_id |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and rwd.order_number = od.order_number |
| | | left join sd.order_glass_detail ogd |
| | | on rw.order_id = ogd.order_id and rwd.order_number = ogd.order_number |
| | | where rwd.wait_rework_quantity>0 |
| | | from pp.damage_details dd |
| | | left join pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number and dd.technology_number=rwd.technology_number |
| | | left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id |
| | | |
| | | group by ogd.order_id, ogd.order_number |
| | | left join sd.`order` o on rw.order_id = o.order_id |
| | | left join sd.order_detail od on rw.order_id = od.order_id and dd.order_number = od.order_number |
| | | left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd |
| | | on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number |
| | | |
| | | where dd.breakage_quantity-dd.quantity>0 and dd.available=1 |
| | | |
| | | </select> |
| | | |
| | | |
| | |
| | | select count(*) from pp.rework where date(create_time)=CURDATE() |
| | | </select> |
| | | |
| | | <select id="getMaxFlowCard" > |
| | | select count(*) from pp.flow_card where project_no=#{processId} |
| | | </select> |
| | | |
| | | <insert id="insertRework" useGeneratedKeys="true" > |
| | | insert into pp.rework(rework_id,reporting_work_id, process_id,order_id, order_sort, technology_number, responsible_team, |
| | | insert into pp.rework(rework_id,reporting_work_id,process_id,order_id, order_sort, technology_number, responsible_team, |
| | | responsible_personnel, rework_type, rework_reason, rework_processes, rework_num, |
| | | rework_area, rework_team,responsible_equipment,quality_inspector, reviewer, review_status, create_time) |
| | | values ( |
| | |
| | | </insert> |
| | | |
| | | <update id="updateRework" > |
| | | update pp.rework set reviewer=#{userName},review_status=1,update_time=now() where rework_id=#{rework.reworkId} |
| | | update pp.rework set reviewer=#{userName},review_status=1,update_time=now() where rework_id=#{rework.id} |
| | | </update> |
| | | |
| | | <update id="updateReportingWorkDetail" > |
| | | update pp.reporting_work_detail set wait_rework_quantity=wait_rework_quantity-#{rework.reworkNum} |
| | | where reporting_work_id=#{rework.reportingWorkId} and order_number=#{rework.orderSort} and technology_number=#{rework.technologyNumber} |
| | | <update id="updateDamageDetails" > |
| | | update pp.damage_details set quantity=quantity+#{rework.reworkNum} where id=#{rework.reviewer} |
| | | </update> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | </mapper> |
| | |
| | | from |
| | | sd.customer |
| | | </select> |
| | | <select id="getseletCustomer"> |
| | | <select id="getSelectCustomer"> |
| | | select |
| | | * |
| | | from |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletCustomerPageTotal"> |
| | | <select id="getSelectCustomerPageTotal"> |
| | | select |
| | | CEILING(count(id)/#{pageSize}) as 'pageTotal', |
| | | count(id) as 'total' |
| | |
| | | |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetaildelivery" > |
| | | <select id="getSelectShippingOrderDetailDelivery" > |
| | | select |
| | | d.delivery_state,d.stock_state,d.payment_terms, |
| | | d.customer_id,d.customer_name,d.project,d.pay_method,d.pay_date,d.contacts,d.contact_number, |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="getseletShippingOrderDetaildeliverys" > |
| | | <select id="getSelectShippingOrderDetailDeliverys" > |
| | | select customer_id,customer_name,project,salesman,salesman_id,contacts,contact_number,delivery_address from sd.`order` |
| | | <where> |
| | | <if test="orderDetail.orderId != null and orderDetail.orderId != ''"> |
| | |
| | | limit 0,1 |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrder"> |
| | | <select id="getSelectShippingOrder"> |
| | | select * from sd.delivery d |
| | | <where> |
| | | date(d.create_time)>=#{startDate} and date(d.create_time) <= #{endDate} |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderPageTotal"> |
| | | <select id="getSelectShippingOrderPageTotal"> |
| | | select |
| | | CEILING(count(id)/#{pageSize}) as 'pageTotal', |
| | | count(id) as 'total' |
| | |
| | | |
| | | |
| | | |
| | | <select id="getseletShippingOrderDetail" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | <select id="getSelectShippingOrderDetail" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | select od.order_id, |
| | | o.batch, |
| | | dd.delivery_number, |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetailPageTotal"> |
| | | <select id="getSelectShippingOrderDetailPageTotal"> |
| | | select |
| | | CEILING(count(dd.id)/#{pageSize}) |
| | | from sd.delivery_detail dd |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | <select id="getSelectShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail"> |
| | | select od.order_id, |
| | | od.order_number, |
| | | o.batch, |
| | |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getseletShippingOrderDetailsPageTotal"> |
| | | <select id="getSelectShippingOrderDetailsPageTotal"> |
| | | select |
| | | CEILING(count(od.id)/#{pageSize}) |
| | | from sd.order_detail od |
| | |
| | | <mapper namespace="com.example.erp.mapper.sd.OrderMapper"> |
| | | <select id="selectMaxOrderId"> |
| | | select |
| | | COUNT(a.order_id) |
| | | ifnull(SUBSTR(max(order_id) from 9),0) |
| | | from |
| | | `order` as a |
| | | where |
| | | date(a.create_time) = curdate() |
| | | order by id desc,order_id desc limit 1 |
| | | </select> |
| | | |
| | | |