Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | <td></td> |
| | | <td></td> |
| | | </tr> |
| | | </tbody> |
| | | <tfoot> |
| | | <tr style="height: 14px"> |
| | | <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29"> |
| | | 数量: |
| | |
| | | </tr> |
| | | <tr v-if="company.remarkSwitch=='1'"> |
| | | <td colspan="29"> |
| | | <div style="display: flex;flex-wrap: wrap;"> |
| | | <div v-for="(itemremark,index) in item.remarkList" :key="index"> |
| | | <div style="display: flex;flex-wrap: wrap;"> |
| | | <div class="nuber_xx" v-for="(itemremark,index) in item.remarkList" :key="index"> |
| | | <span v-if="!(itemremark.S02==null&&itemremark.S03==null&&itemremark.S04==null&&itemremark.S05==null)"> |
| | | 编号:{{itemremark.S01}} |
| | | </span> |
| | | <span v-if="itemremark.S02!=null">备注1:{{itemremark.S02}}</span> |
| | | <span v-if="itemremark.S03!=null">备注2:{{itemremark.S03}}</span> |
| | | <span v-if="itemremark.S04!=null">备注3:{{itemremark.S04}}</span> |
| | | <span v-if="itemremark.S05!=null">备注4:{{itemremark.S05}}</span> |
| | | </div> |
| | | </div> |
| | | <span v-if="itemremark.S02!=null">备注1:{{itemremark.S02}}</span> |
| | | <span v-if="itemremark.S03!=null">备注2:{{itemremark.S03}}</span> |
| | | <span v-if="itemremark.S04!=null">备注3:{{itemremark.S04}}</span> |
| | | <span v-if="itemremark.S05!=null">备注4:{{itemremark.S05}}</span> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tfoot> |
| | | |
| | | <tr v-for="(itemtextareas,index) in item.detail" :key="index"> |
| | | <td colspan="29" style="width: 480px;height: 150px "> |
| | | <div style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea> |
| | |
| | | background: none; |
| | | } |
| | | |
| | | |
| | | .nuber_xx span{ |
| | | font-size: 12px; |
| | | } |
| | | |
| | | |
| | | @media print { |
| | |
| | | <table v-for="(item,id) in produceList" id="contentTable" :key="id"> |
| | | <thead> |
| | | <tr v-for="(itemFlow,index) in item.detail" :key="index"> |
| | | <td colspan="33"> |
| | | <td colspan="34"> |
| | | <div style="float: left;">补片单号:{{itemFlow.patch_id}}</div> |
| | | <div id="bj" style="float: right;font-size: 28px">补 {{ id + 1 }}</div> |
| | | <div>{{ company.companyName }}</div> |
| | |
| | | <td class="tdNowrap">项目名称:</td> |
| | | <td colspan="8">{{ items.project }}</td> |
| | | <td class="tdNowrap">工艺流程:</td> |
| | | <td colspan="20" style="width: 500px">{{ items.process }}</td> |
| | | <td colspan="21" style="width: 500px">{{ items.process }}</td> |
| | | </tr> |
| | | <tr v-for="(itemTr,index) in item.detail" :key="index"> |
| | | <td class="tdNowrap">磨边类型:</td> |
| | |
| | | <td class="tdNowrap">单片名称:</td> |
| | | <td colspan="8">{{ itemTr.glass_child }}</td> |
| | | <td class="tdNowrap">产品名称:</td> |
| | | <td colspan="20">{{ itemTr.product_name }}</td> |
| | | <td colspan="21">{{ itemTr.product_name }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td rowspan='2'>序号</td> |
| | |
| | | <td rowspan='2'>原因</td> |
| | | <td rowspan='2'>工序</td> |
| | | <td rowspan='2'>班组</td> |
| | | <td rowspan='2'>信息</td> |
| | | <td rowspan='2'>备注</td> |
| | | <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td> |
| | | </tr> |
| | |
| | | <td>{{ itemDatile.patch_reason }}</td> |
| | | <td>{{ itemDatile.patch_processes }}</td> |
| | | <td>{{ itemDatile.responsible_team }}</td> |
| | | <td>{{ itemDatile.responsible_personnel }}</td> |
| | | <td>{{ itemDatile.remarks }}</td> |
| | | <td></td> |
| | | <td></td> |
| | |
| | | </tbody> |
| | | <tfoot> |
| | | <tr style="height: 14px"> |
| | | <td v-for="(itemsum,index) in item.detail" :key="index" colspan="33"> |
| | | <td v-for="(itemsum,index) in item.detail" :key="index" colspan="34"> |
| | | 数量: |
| | | <label>{{ itemsum.quantity }}</label> |
| | | 面积: |
| | |
| | | </td> |
| | | |
| | | <td>完工签名</td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>质检签名</td> |
| | |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>原片箱号</td> |
| | | <td colspan="28"></td> |
| | | <td colspan="29"></td> |
| | | </tr> |
| | | <tr v-for="(qrCodeItem,index) in item.detail" :key="index"> |
| | | <td colspan="29"> |
| | | <td colspan="30"> |
| | | <span style="display: flex;"> |
| | | <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%"> |
| | | <div class='qrCode' style="width: 80px;height: 80px;"> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(itemtextareas,index) in item.detail" :key="index"> |
| | | <td colspan="33" rowspan="6" style="width: 99%;height: 150px "> |
| | | <td colspan="34" rowspan="6" style="width: 99%;height: 150px "> |
| | | <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea> |
| | | </div> |
| | | </td> |
| | |
| | | <table v-for="(item,id) in produceList" id="contentTable" :key="id"> |
| | | <thead> |
| | | <tr v-for="(itemFlow,index) in item.detail" :key="index"> |
| | | <td colspan="33"> |
| | | <td colspan="34"> |
| | | <div style="float: left;">返片单号:{{itemFlow.patch_id}}</div> |
| | | <div id="bj" style="float: right;font-size: 28px">返 {{ id + 1 }}</div> |
| | | <div>{{ company.companyName }}</div> |
| | |
| | | <td class="tdNowrap">项目名称:</td> |
| | | <td colspan="8">{{ items.project }}</td> |
| | | <td class="tdNowrap">工艺流程:</td> |
| | | <td colspan="20" style="width: 500px">{{ items.process }}</td> |
| | | <td colspan="21" style="width: 500px">{{ items.process }}</td> |
| | | </tr> |
| | | <tr v-for="(itemTr,index) in item.detail" :key="index"> |
| | | <td class="tdNowrap">磨边类型:</td> |
| | |
| | | <td class="tdNowrap">单片名称:</td> |
| | | <td colspan="8">{{ itemTr.glass_child }}</td> |
| | | <td class="tdNowrap">产品名称:</td> |
| | | <td colspan="20">{{ itemTr.product_name }}</td> |
| | | <td colspan="21">{{ itemTr.product_name }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td rowspan='2'>序号</td> |
| | |
| | | <td rowspan='2'>原因</td> |
| | | <td rowspan='2'>工序</td> |
| | | <td rowspan='2'>班组</td> |
| | | <td rowspan='2'>信息</td> |
| | | <td rowspan='2'>备注</td> |
| | | <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td> |
| | | </tr> |
| | |
| | | <td>{{ itemDatile.patch_reason }}</td> |
| | | <td>{{ itemDatile.patch_processes }}</td> |
| | | <td>{{ itemDatile.responsible_team }}</td> |
| | | <td>{{ itemDatile.responsible_personnel }}</td> |
| | | <td>{{ itemDatile.remarks }}</td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | |
| | | </tbody> |
| | | <tfoot> |
| | | <tr style="height: 14px"> |
| | | <td v-for="(itemsum,index) in item.detail" :key="index" colspan="33"> |
| | | <td v-for="(itemsum,index) in item.detail" :key="index" colspan="34"> |
| | | 数量: |
| | | <label>{{ itemsum.quantity }}</label> |
| | | 面积: |
| | |
| | | </td> |
| | | |
| | | <td>完工签名</td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>质检签名</td> |
| | |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>原片箱号</td> |
| | | <td colspan="28"></td> |
| | | <td colspan="29"></td> |
| | | </tr> |
| | | <tr v-for="(qrCodeItem,index) in item.detail" :key="index"> |
| | | <td colspan="29"> |
| | | <td colspan="30"> |
| | | <span style="display: flex;"> |
| | | <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%"> |
| | | <div class='qrCode' style="width: 80px;height: 80px;"> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(itemtextareas,index) in item.detail" :key="index"> |
| | | <td colspan="33" rowspan="6" style="width: 99%;height: 150px "> |
| | | <td colspan="34" rowspan="6" style="width: 99%;height: 150px "> |
| | | <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea> |
| | | </div> |
| | | </td> |
| | |
| | | font-size: 12px; |
| | | font-weight: bolder; |
| | | } |
| | | input{ |
| | | border: none; |
| | | background: none; |
| | | } |
| | | |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | |
| | | |
| | | }) |
| | | request.post("/MaterialInventory/saveMaterialOutbound", flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | if(res.code==200 && res.data==="true"){ |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | | router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}}) |
| | | }else if(res.data==="false1"){ |
| | | ElMessage.warning("数量错误,请刷新再保存") |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | ElMessage.warning(t('basicData.msg.saveFail')) |
| | | } |
| | | }).catch((err)=>{ |
| | | ElMessage.error(t('basicData.msg.ServerConnectionError')) |
| | | router.push("/login") |
| | | }) |
| | | break |
| | | } |
| | |
| | | }) |
| | | |
| | | request.post("/FinishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => { |
| | | if(res.code==200 && res.data===true){ |
| | | if(res.code==200 && res.data==="true"){ |
| | | ElMessage.success(t('productStock.receivedSuccessfully')) |
| | | router.push({path:'/main/productStock/CreateProductStock',query:{random:Math.random()}}) |
| | | }else if(res.data==="false1"){ |
| | | ElMessage.warning("库存数量不对请刷新界面") |
| | | }else if(res.data==="false2"){ |
| | | ElMessage.warning("数据不存在") |
| | | }else{ |
| | | ElMessage.warning(t('productStock.entryFailure')) |
| | | } |
| | |
| | | orderDetail: selectRecords |
| | | }) |
| | | request.post("/FinishedGoodsInventory/addDeliveryDetail", orderDetailData.value).then((res) => { |
| | | if (res.code == 200 && res.data===true) { |
| | | if (res.code == 200 && res.data==="true") { |
| | | ElMessage.success(t('productStock.deliverySuccessful')) |
| | | router.push({path: '/main/productStock/FinishedProductOut', query: {random: Math.random()}}) |
| | | } else { |
| | | }else if (res.data==="false1") { |
| | | ElMessage.warning("发货单已出库请刷新界面") |
| | | }else if (res.data==="false2") { |
| | | ElMessage.warning("发货单库存数不存在") |
| | | }else { |
| | | ElMessage.warning(t('productStock.deliveryFailed')) |
| | | } |
| | | }).catch((err)=>{ |
| | |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'saveFlowCard': { |
| | | gridLeftOptions.toolbarConfig.buttons[0].disabled=true |
| | | const $table = xGridLeft.value |
| | | const $tableRight = xGrid.value |
| | | if ($table) { |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | console.log(printType) |
| | | if(printType==1){ |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | |
| | | } |
| | | labelList = dataList[0] |
| | | |
| | | ) |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | |
| | | ) |
| | | labelList = dataList[0] |
| | | |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | height: 35px; |
| | | } |
| | | .row1 span { |
| | | font-size: 14pt; |
| | | font-size: 15pt; |
| | | } |
| | | |
| | | .row2 { |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintLabel1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | ) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | height: 35px; |
| | | } |
| | | .row1 span { |
| | | font-size: 14pt; |
| | | font-size: 15pt; |
| | | } |
| | | .row2 { |
| | | font-size: 12pt; |
| | |
| | | id += selectRecords[i].id + "|" |
| | | } |
| | | } |
| | | router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}}) |
| | | router.push({ |
| | | path: '/main/processCard/PrintLabel', |
| | | query: {printList: JSON.stringify(selectRecords),printType:1} |
| | | }) |
| | | |
| | | break |
| | | } |
| | |
| | | } |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelSemi2', |
| | | query: {printList: JSON.stringify(selectRecords)} |
| | | query: {printList: JSON.stringify(selectRecords),printType:1} |
| | | }) |
| | | |
| | | break |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | |
| | |
| | | const printVisible = ref(false) |
| | | let selectRecords = ref(null) |
| | | let titleStyleVisible = ref(false) |
| | | |
| | | let lastList = ref([]) |
| | | const selectRecordsData = ref({ |
| | | printList: [] |
| | | }) |
| | |
| | | value: '1', |
| | | label: t('processCard.finishedProductLabel'), |
| | | }, |
| | | |
| | | /* { |
| | | value: '2', |
| | | label: t('processCard.halfProductLabel'), |
| | | },*/ |
| | | { |
| | | value: `${company.printLabel.labelValue}`, |
| | | label: `${company.printLabel.labelType}`, |
| | | }, |
| | | { |
| | | value: `${company.printLabel.labelValue3}`, |
| | | label: `${company.printLabel.labelType3}`, |
| | | }, |
| | | ] |
| | | let hidePrintLabels = company.printLabel.hideButton; |
| | | |
| | |
| | | {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'}, |
| | | {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'}, |
| | | {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'}, |
| | | {code: 'printLabel3', name: '标签打印2', status: 'primary'}, |
| | | {code: 'printTest', name: "测试打印", status: 'primary'}, |
| | | {code: 'printLabel3', name: '成品打印2', status: 'primary'}, |
| | | {code: 'printTest', name: "可编辑打印", status: 'primary'}, |
| | | // {code: 'printLike', name: "同配置打印", status: 'primary'}, |
| | | ], |
| | | // import: false, |
| | |
| | | id += selectRecords[i].id + "|" |
| | | } |
| | | } |
| | | router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}}) |
| | | router.push({ |
| | | path: '/main/processCard/PrintLabel', |
| | | query: {printList: JSON.stringify(selectRecords),printType:2} |
| | | }) |
| | | |
| | | break |
| | | } |
| | |
| | | } |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelSemi2', |
| | | query: {printList: JSON.stringify(selectRecords)} |
| | | query: {printList: JSON.stringify(selectRecords),printType:2} |
| | | }) |
| | | |
| | | break |
| | |
| | | } |
| | | } |
| | | if (lableTypes == 1) { |
| | | |
| | | console.log(company.label) |
| | | labelRow.value.list = JSON.stringify(selectRecords) |
| | | labelRow.value.faceOrientation = faceOrientation |
| | | labelRow.value.type = type |
| | | labelRow.value.lableType = lableTypes |
| | | lastList.value = [] |
| | | if (company.label === 1) { |
| | | dialogTableVisibleLabel.value = true |
| | | } else if (company.label === 2) { |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabel', |
| | | path: '/main/processCard/PrintCustomLabelCZ', |
| | | query: { |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:2 |
| | | } |
| | | }) |
| | | } |
| | |
| | | labelRow.value.faceOrientation = faceOrientation |
| | | labelRow.value.type = type |
| | | labelRow.value.lableType = lableTypes |
| | | lastList.value = [] |
| | | if (company.label === 1) { |
| | | dialogTableVisibleCustomLabel.value = true |
| | | } else if (company.label === 2) { |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelSemi', |
| | | path: '/main/processCard/PrintCustomLabelSemiCZ', |
| | | query: { |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:2 |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:2 |
| | | } |
| | | }) |
| | | |
| | |
| | | if (hidePrintLabels == 'true') { |
| | | return button.code !== 'printLabel' && button.code !== 'printLabel2'; |
| | | } else { |
| | | return true && button.code !== 'printLike'; // 显示该按钮 |
| | | return true && button.code !== 'printLike' && button.code !== 'printLabel3'&& button.code !== 'printTest'; // 显示该按钮 |
| | | } |
| | | }) |
| | | } |
| | |
| | | <el-button v-print="printContentLabel" :icon="Printer" circle/> |
| | | </template> |
| | | <print-custom-label id="childLabel" |
| | | :lastList = 'lastList' |
| | | :faceOrientation="labelRow.faceOrientation" |
| | | :lableType="labelRow.lableType" |
| | | :list="labelRow.list" |
| | |
| | | |
| | | const {currentRoute} = useRouter() |
| | | const route = currentRoute.value |
| | | const printType=route.query.printType |
| | | projectNo.value = route.query.projectNo |
| | | type.value = route.query.type |
| | | |
| | | onMounted(() => { |
| | | if(projectNo.value!=null){ |
| | | request.post(`/processCard/getSelectPrintLabel/${projectNo.value}/${type.value}`).then((res) => { |
| | |
| | | } |
| | | }) |
| | | }else{ |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | console.log(printType) |
| | | if (printType == 1) { |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }) |
| | | }else if(printType==2){ |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | height: 20px; |
| | | } |
| | | .row1 span { |
| | | font-size: 8pt; |
| | | font-size: 10pt; |
| | | font-weight: bold; |
| | | } |
| | | |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | |
| | | ) |
| | | labelList = dataList[0] |
| | | |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | {field: 'thisProcess',width: 120, title: t('reportingWorks.reportingProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsibleProcess',width: 120, title: t('reportingWorks.responsibleProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsibleTeam', width: 130,title: t('reportingWorks.responsibleTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'breakageType', width: 100,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'breakageType', width: 120,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true}, |
| | | {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true}, |
| | |
| | | titleSelectJson.value = res.data.basic |
| | | layer= res.data.layer |
| | | |
| | | //添加补片状态列 |
| | | let column = {field: 'patchStatusOther', width: 90,title: res.data.title} |
| | | gridOptions.columns.push(column) |
| | | |
| | | const s01Values = []; |
| | | for (let i = 0; i < res.data.reportingWorkDetails.length; i++) { |
| | | const s01Values = []; |
| | |
| | | }) |
| | | |
| | | const data = [{id:1,num:2},{id:1,num:3},{id:2,num:2},{id:1,num:2}]; |
| | | |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | |
| | | } |
| | | case 'update': { |
| | | //根据补片状态判断是否能修改 |
| | | request.post(`/reportingWork/getPatchCondition/${route.query.reportingWorkId}`).then(async (res) => { |
| | | if (res.code == 200) { |
| | | if (res.data > 0) { |
| | | ElMessage.error("该报工包含已补片数据,不可修改!") |
| | | return |
| | | } else { |
| | | // request.post(`/reportingWork/getPatchCondition/${route.query.reportingWorkId}`).then(async (res) => { |
| | | // if (res.code == 200) { |
| | | // if (res.data > 0) { |
| | | // ElMessage.error("该报工包含已补片数据,不可修改!") |
| | | // return |
| | | // } else { |
| | | getQuantity() |
| | | const errMap = await $grid.validate(true) |
| | | if (errMap) { |
| | |
| | | return |
| | | } |
| | | saveReportingWork(0, 'update') |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | // } |
| | | // } else { |
| | | // ElMessage.warning(res.msg) |
| | | // } |
| | | // }) |
| | | |
| | | break |
| | | } |
| | |
| | | const { rows, column, cell } = params; // 解构获取行、列和单元格信息 |
| | | //点击次破数量时打开明细界面 |
| | | if(column.field=="breakageQuantity"){ |
| | | brokenVisible.value = true |
| | | if (row.patchStatusOther!="已补片"){ |
| | | brokenVisible.value = true |
| | | } |
| | | } |
| | | }, |
| | | menuClick({menu, row, column}) { |
| | |
| | | |
| | | //第一次加载数据 |
| | | let groupChangeProcess = ref(false)//用于本班组显示问题 |
| | | request.post(`/reportingWork/selectProcess`).then((res) => { |
| | | request.post(`/reportingWork/selectProcess/${user.user.userId}`).then((res) => { |
| | | if (res.code == 200) { |
| | | titleSelectJson.value.processType = res.data.process |
| | | if(user.user.address!==null && user.user.address!==''){ |
| | | titleUploadData.value.thisProcess = user.user.address |
| | | titleUploadData.value.teamsGroupsName = user.user.userName |
| | | console.log(user.user.address) |
| | | groupChangeProcess.value = true |
| | | if (user.user.address==='技术部多曲' || user.user.address==='夹胶'){ |
| | | groupChangeProcess.value = false |
| | |
| | | return row?.rowClass |
| | | |
| | | } |
| | | const editConfigDisable = reactive({ |
| | | trigger: 'click', |
| | | mode: 'cell', |
| | | beforeEditMethod ({ row }) { |
| | | if (row.patchStatusOther === '已补片') { |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | }) |
| | | |
| | | </script> |
| | | |
| | |
| | | v-on="gridEvents" |
| | | @edit-closed="editClosedEvent" |
| | | :cell-class-name="cellClassName" |
| | | :edit-config="editConfigDisable" |
| | | |
| | | > |
| | | |
| | |
| | | @SaCheckPermission("CreateOutbound.add") |
| | | @PostMapping("/saveMaterialOutbound") |
| | | public Result saveMaterialOutbound( @RequestBody Map<String,Object> object){ |
| | | if(materialInventoryService.saveMaterialOutbound(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"保存失败"); |
| | | |
| | | } |
| | | return Result.seccess(materialInventoryService.saveMaterialOutbound(object)); |
| | | |
| | | } |
| | | |
| | | @ApiOperation("物料新增接口") |
| | |
| | | return Result.seccess(flowCardService.getSelectPrintLabelSv1(object)); |
| | | } |
| | | |
| | | @ApiOperation("打印标签明细查询接口") |
| | | @PostMapping("/getSelectPrintLabelDetails") |
| | | public Result getSelectPrintLabelDetails(@RequestBody Map<String, Object> object) { |
| | | return Result.seccess(flowCardService.getSelectPrintLabelDetails(object)); |
| | | } |
| | | |
| | | @ApiOperation("打印自定义标签数据查询接口") |
| | | @PostMapping("/getSelectPrintCustomLabel/{type}/{lableType}") |
| | | public Result getSelectPrintCustomLabel( @PathVariable String type, |
| | |
| | | return Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process,reportType)); |
| | | } |
| | | @ApiOperation("查询工序") |
| | | @PostMapping ("/selectProcess") |
| | | public Result SelectProcess() { |
| | | return Result.seccess(reportingWorkService.SelectProcessSv()); |
| | | @PostMapping ("/selectProcess/{userId}") |
| | | public Result SelectProcess(@PathVariable String userId) { |
| | | return Result.seccess(reportingWorkService.SelectProcessSv(userId)); |
| | | } |
| | | |
| | | @ApiOperation("报工新增") |
| | |
| | | //返工面积 |
| | | // private double reworkArea; |
| | | |
| | | //报工修改用补片状态 |
| | | @TableField(select = false,exist= false) |
| | | private String patchStatusOther; |
| | | |
| | | //次破列表 |
| | | @TableField(select = false,exist= false) |
| | | private List<DamageDetails> |
| | |
| | | import com.example.erp.entity.mm.FinishedGoodsInventory; |
| | | import com.example.erp.entity.mm.FinishedOperateLog; |
| | | import com.example.erp.entity.pp.FlowCard; |
| | | import com.example.erp.entity.sd.DeliveryDetail; |
| | | import com.example.erp.entity.sd.Order; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | | import com.example.erp.entity.sd.Product; |
| | |
| | | |
| | | Boolean updateOrderInventory(@Param("orderDetail") OrderDetail orderDetail); |
| | | |
| | | FlowCard findFlowCard(FlowCard flowCard); |
| | | |
| | | DeliveryDetail findDeliverydetail(@Param("orderId") String orderId, |
| | | @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId); |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | List<Map<String,Object>> getPrintCreateOutboundDetail(String materialOutboundId); |
| | | |
| | | MaterialInventory getMaterialInventoryById(@Param("id") Long id); |
| | | |
| | | } |
| | |
| | | |
| | | List<Map<String, String>> getPrintLabel1(String processId,Integer technologyNumber); |
| | | |
| | | List<Map<String, String>> getPrintLabelDetail(String processId,Integer orderNumber); |
| | | |
| | | List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, String process, FlowCard flowCard); |
| | | |
| | | Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort); |
| | |
| | | Boolean updateRWPatchNum(String reportingWorkId, Integer patchNum); |
| | | |
| | | Boolean updateRWDPatchNum(String reportingWorkId, String orderSort, Integer technologyNumber, Integer patchNum); |
| | | |
| | | String selectUserProcess(String userId); |
| | | |
| | | List<Map<String,String>> getSelectProcessJiajiao(); |
| | | |
| | | List<Map<String,String>> getSelectProcessDuoqu(); |
| | | } |
| | |
| | | import com.example.erp.entity.mm.FinishedGoodsInventory; |
| | | import com.example.erp.entity.mm.FinishedOperateLog; |
| | | import com.example.erp.entity.pp.FlowCard; |
| | | import com.example.erp.entity.sd.DeliveryDetail; |
| | | import com.example.erp.entity.sd.Order; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | | import com.example.erp.entity.userInfo.Log; |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Boolean addSelectWarehousing(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | public String addSelectWarehousing(Map<String,Object> object) { |
| | | String saveState = "true"; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | //定义前端传输的数据 |
| | |
| | | Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber()); |
| | | Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId()); |
| | | Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId()); |
| | | |
| | | /*System.out.println("订单总数:" + ordersum + "已入库数量:" + ordernumbersum + "准备入库数量" + flowCard.getInventoryQuantity());*/ |
| | | if (finishedGoodsInventorycount > 0) { |
| | | //修改库存表入库数量 |
| | | finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark); |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity())); |
| | | //判断订单是否全部入库 |
| | | if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | } |
| | | } else { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) { |
| | | FlowCard flowCard1=finishedGoodsInventoryMapper.findFlowCard(flowCard); |
| | | //判断库存数是否大于未入库数 |
| | | if(flowCard1.getReceivedQuantity()+flowCard.getInventoryQuantity()<=flowCard1.getInventoryQuantity()){ |
| | | /*System.out.println("订单总数:" + ordersum + "已入库数量:" + ordernumbersum + "准备入库数量" + flowCard.getInventoryQuantity());*/ |
| | | if (finishedGoodsInventorycount > 0) { |
| | | //修改库存表入库数量 |
| | | finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark); |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity())); |
| | | //判断订单是否全部入库 |
| | | if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | }else{ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | } |
| | | } else { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) { |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity())); |
| | | if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | }else{ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | }else{ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | return "false1"; |
| | | } |
| | | |
| | | |
| | | } |
| | | }else{ |
| | | return false; |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | return "false2"; |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | |
| | | sysError.setError(e+Arrays.toString(e.getStackTrace())); |
| | | sysError.setFunc("addSelectWarehousing"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | saveState = "false"; |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | public Boolean addDeliveryDetail(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | public String addDeliveryDetail(Map<String,Object> object) { |
| | | String saveState = "true"; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | |
| | | deliverydetailsum=0; |
| | | } |
| | | |
| | | DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId()); |
| | | /*System.out.println("订单总数:" + ordersum + "订单库存数:" + orderNumberdsum + "准备出库数量" + |
| | | orderDetail.getWarehouseNum()+ "发货数量" + orderDetail.getDeliveryDetail().getQuantity()+ "发货总数" + |
| | | deliverysum+ "已发数量" + deliverydetailsum);*/ |
| | | //判断发货单的库存是否存在 |
| | | if (finishedGoodsInventorycount > 0) { |
| | | if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){ |
| | | //修改库存表库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改发货明细表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0); |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1); |
| | | //修改订单明细表发货数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (orderNumberdsum == orderDetail.getWarehouseNum()) { |
| | | //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); |
| | | } |
| | | if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { |
| | | //判断发货单是否已出库 |
| | | if(deliveryDetail==null){ |
| | | if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){ |
| | | //修改库存表库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改发货明细表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0); |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2); |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1); |
| | | //修改订单明细表发货数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (orderNumberdsum == orderDetail.getWarehouseNum()) { |
| | | //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); |
| | | } |
| | | if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2); |
| | | } |
| | | } |
| | | }else{ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | return "false1"; |
| | | } |
| | | |
| | | |
| | | }else{ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | saveState = false; |
| | | return "false2"; |
| | | } |
| | | } |
| | | } |
| | |
| | | sysError.setError(e+Arrays.toString(e.getStackTrace())); |
| | | sysError.setFunc("addDeliveryDetail"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | saveState = "false"; |
| | | |
| | | } |
| | | return saveState; |
| | |
| | | @Autowired |
| | | LogService logService; |
| | | |
| | | public Boolean saveMaterialOutbound(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | public String saveMaterialOutbound(Map<String,Object> object) { |
| | | String saveState = "true"; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | String materialOutboundId = ""; |
| | |
| | | if (!materialOutboundDetailLists.isEmpty()) { |
| | | for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) { |
| | | //还原物料库存数 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); |
| | | /*if(materialOutboundDetail.getUseId()!=null){ |
| | | //还原优化工程库存数 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity()); |
| | |
| | | |
| | | if (!materialOutboundDetailList.isEmpty()) { |
| | | for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) { |
| | | |
| | | Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber); |
| | | //新增材料出库明细数据 |
| | | materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1); |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | MaterialInventory materialInventory = materialInventoryMapper.getMaterialInventoryById(materialOutboundDetail.getId()); |
| | | if(materialInventory.getAvailableQuantity()>=materialOutboundDetail.getOutboundQuantity()){ |
| | | Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber); |
| | | //新增材料出库明细数据 |
| | | materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1); |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | /*if(materialOutboundDetail.getUseId()!=null){ |
| | | //修改优化工程表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity()); |
| | |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | }*/ |
| | | }else{ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | return "false1"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | sysError.setError(e+Arrays.toString(e.getStackTrace())); |
| | | sysError.setFunc("saveMaterialOutbound"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | saveState = "false1"; |
| | | |
| | | } |
| | | return saveState; |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getSelectPrintLabelDetails(Map<String, Object> object) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果 |
| | | List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); |
| | | if (!flowCardList.isEmpty()) { |
| | | for (FlowCard flowCard : flowCardList) { |
| | | // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber()); |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | // for (int i = 0; i < count; i++) { |
| | | itemmap.put("data", flowCardMapper.getPrintLabelDetail(flowCard.getProcessId(), flowCard.getOrderNumber())); |
| | | list.add(itemmap); |
| | | //} |
| | | |
| | | } |
| | | } |
| | | map.put("data", list); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard)); |
| | |
| | | import com.example.erp.service.userInfo.LogService; |
| | | import com.example.erp.service.userInfo.SysErrorService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | |
| | | } |
| | | |
| | | //查询工序 |
| | | public Map<String, Object> SelectProcessSv() { |
| | | public Map<String, Object> SelectProcessSv(String userId) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("process", reportingWorkMapper.SelectProcessMp()); |
| | | String process = reportingWorkMapper.selectUserProcess(userId); |
| | | if (process==null) { |
| | | map.put("process", reportingWorkMapper.SelectProcessMp()); |
| | | } |
| | | else { |
| | | if (process.equals("夹胶")){ |
| | | map.put("process",reportingWorkMapper.getSelectProcessJiajiao() ); |
| | | } |
| | | if (process.equals("技术部多曲")){ |
| | | map.put("process",reportingWorkMapper.getSelectProcessDuoqu() ); |
| | | } |
| | | } |
| | | |
| | | return map; |
| | | } |
| | | |
| | |
| | | //根据报工编号获取层 |
| | | map.put("layer", reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId)); |
| | | map.put("numberList", flowCardMapper.getGlassNumber(reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId),reportingWork.getProcessId())); |
| | | |
| | | map.put("title", "补片状态"); |
| | | return map; |
| | | |
| | | } |
| | |
| | | where order_number=#{orderDetail.orderNumber} and order_id=#{orderDetail.orderId} |
| | | </update> |
| | | |
| | | <select id="findFlowCard"> |
| | | select * from pp.flow_card |
| | | where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} group by process_id |
| | | </select> |
| | | |
| | | <select id="findDeliverydetail"> |
| | | select * from sd.delivery_detail |
| | | where order_number=#{orderNumber} and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0 |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | |
| | | where modd.material_outbound_id = #{materialOutboundId} |
| | | </select> |
| | | |
| | | <select id="getMaterialInventoryById" > |
| | | select |
| | | * |
| | | from mm.material_inventory mi |
| | | where mi.id = #{id} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | group by od.order_number, od.width, od.height |
| | | </select> |
| | | |
| | | <select id="getPrintLabelDetail"> |
| | | select o.order_id, |
| | | o.project, |
| | | o.customer_id, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | fc.quantity, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | ogd.glass_child, |
| | | ogd.process, |
| | | c.customer_abbreviation as customer_name, |
| | | ifnull(od.processing_note, '') as processing_note, |
| | | bgt.type_name, |
| | | od.other_columns, |
| | | od.building_number, |
| | | od.bend_radius |
| | | from sd.order as o |
| | | left join sd.order_detail as od on o.order_id = od.order_id |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = od.order_id and ogd.order_number = od.order_number |
| | | left join pp.flow_card as fc on o.order_id = fc.order_id and |
| | | od.order_number = fc.order_number and |
| | | fc.technology_number = ogd.technology_number |
| | | left join sd.product pt on pt.id = od.product_id |
| | | left join sd.customer c on c.id = o.customer_id |
| | | left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id |
| | | where fc.process_id = #{processId} |
| | | and fc.order_number = #{orderNumber} |
| | | group by od.order_number, od.width, od.height |
| | | </select> |
| | | |
| | | <select id="printFlowCardDetailsMp"> |
| | | SELECT fc.process_id, |
| | | fc.order_number, |
| | |
| | | pl.patch_type, |
| | | pl.patch_reason, |
| | | pl.patch_processes, |
| | | pl.responsible_team |
| | | pl.responsible_team, |
| | | pl.responsible_personnel |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and |
| | |
| | | pl.rework_reason as patch_reason, |
| | | pl.rework_processes as patch_processes, |
| | | pl.responsible_team, |
| | | pl.rework_team |
| | | pl.rework_team, |
| | | pl.responsible_personnel |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and |
| | |
| | | <if test="crossProcessBreakingDTO.glassChild != null and crossProcessBreakingDTO.glassChild != ''"> |
| | | and ogd.glass_child regexp #{crossProcessBreakingDTO.glassChild} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.breakageType != null and crossProcessBreakingDTO.breakageType != ''"> |
| | | and dd.breakage_type regexp #{crossProcessBreakingDTO.breakageType} |
| | | </if> |
| | | GROUP BY dd.id |
| | | order by dd.id desc |
| | | limit #{offset},#{pageSize} |
| | |
| | | ifnull(f.completed_quantity,0) as thisQuantitySum ,-- 本工序完工和 |
| | | if(c.quantity-f.completed_quantity = 0 ,true,false) as saveFlag, |
| | | e.other_columns, |
| | | IF(count(pl.id)>0,'已补片','') as patchStatusOther, |
| | | |
| | | <if test="nextProcess != null and nextProcess != ''"> -- 非最后一道工序 |
| | | ifnull(g.completed_quantity,0) as nextQuantitySum, -- 后工序已完成 |
| | | if((f.completed_quantity |
| | |
| | | and d.technology_number = c.technology_number |
| | | left join sd.order_detail as e |
| | | on e.order_id = d.order_id and e.order_number = d.order_number |
| | | left join patch_log as pl on pl.reporting_work_id=b.reporting_work_id |
| | | and pl.order_sort=a.order_number and pl.technology_number=a.technology_number |
| | | |
| | | left join (select sum(completed_quantity) as completed_quantity , |
| | | rw.process_id, |
| | |
| | | o.batch, |
| | | rw.this_process, |
| | | rw.this_completed_quantity, |
| | | round(ogd.area * rw.this_completed_quantity,2) as completedArea, |
| | | round(ogd.child_width*ogd.child_height * rw.this_completed_quantity/1000000,2) as completedArea, |
| | | rw.this_worn_quantity, |
| | | round(ogd.area * rw.this_worn_quantity,2) as wornArea, |
| | | round(ogd.child_width*ogd.child_height * rw.this_worn_quantity/1000000,2) as wornArea, |
| | | rw.device_name, |
| | | rw.teams_groups_name, |
| | | rw.reviewed_state, |
| | |
| | | where reporting_work_id=#{reportingWorkId} and order_number = #{orderSort} |
| | | and technology_number = #{technologyNumber} |
| | | </update> |
| | | |
| | | <select id="selectUserProcess"> |
| | | select address from erp_user_info.user where login_name=#{userId} |
| | | </select> |
| | | |
| | | <select id="getSelectProcessJiajiao"> |
| | | SELECT * FROM ( |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='夹胶' |
| | | |
| | | UNION |
| | | |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='均质' |
| | | ) AS combined_results; |
| | | </select> |
| | | |
| | | <select id="getSelectProcessDuoqu"> |
| | | SELECT * FROM ( |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='技术部多曲' |
| | | |
| | | UNION |
| | | |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='钢化' |
| | | ) AS combined_results; |
| | | </select> |
| | | </mapper> |
| | |
| | | o.customer_id, |
| | | o.customer_name, |
| | | sum(od.quantity) as quantity, |
| | | sum(od.area) as area, |
| | | sum(od.compute_gross_area) as area, |
| | | od.shape, |
| | | od.width, |
| | | od.height, |
| | |
| | | od.product_name, |
| | | o.customer_name, |
| | | sum(od.quantity) as quantity, |
| | | sum(od.area) as area, |
| | | sum(od.compute_gross_area) as area, |
| | | od.price, |
| | | sum(od.gross_amount) as money, |
| | | date(o.create_time) as create_time |