From 7104751e2f26872d4891d01d42ee88cf19715d01 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 08 七月 2025 17:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue | 193 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 189 insertions(+), 4 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index 562ef90..8258712 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -55,6 +55,8 @@
classes: '',
//璐d换宸ュ簭
responsibleProcess: '',
+ //鍖呰鏂瑰紡
+ packagingMethod:'',
order: {
//瀹㈡埛缂栧彿
customerId: '',
@@ -90,6 +92,39 @@
})
+let btnValue=company.storageBtn
+let teamsTypeValue=company.teamsType
+//鏄惁鐐瑰嚮鎶ュ伐鍏ュ簱
+let storageBtn = ref(false)
+//绠卞彿 搴撲綅 澶囨敞
+const storageRegion = ref(null);
+const container = ref(null);
+const remark = ref(null);
+
+//鍖呰鏂瑰紡
+const mannerPacking = ref(null)
+const mannerPackingOp = [
+ // {
+ // value: t('reportingWorks.early'),
+ // label: t('reportingWorks.early'),
+ // },
+ // {
+ // value: t('reportingWorks.nightShift'),
+ // label: t('reportingWorks.nightShift'),
+ // },
+ {
+ value: '鏈ㄧ',
+ label: '鏈ㄧ',
+ },
+ {
+ value: '閾佹灦',
+ label: '閾佹灦',
+ },
+ {
+ value: '鍊掓灦',
+ label: '鍊掓灦',
+ },
+]
let inputDisabled = ref(false)
@@ -104,6 +139,7 @@
&& titleUploadData.value.thisProcess!=null){
getWork()
getQuantity()
+
}
}
}
@@ -397,6 +433,7 @@
// {code: 'sameOneDamage', name: '娆$牬涓�鍒楃浉鍚�'},
{code: 'saveReportingWork', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
{code: 'saveReportingWorkReview', name: t('reportingWorks.saveAndReview'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
+ {code: 'saveWorkStorage', name: t('reportingWorks.saveWorkStorage'), status: 'primary', icon: 'vxe-icon-save'},
],
// import: false,
// export: true,
@@ -473,6 +510,46 @@
// })
break
+ }
+ case 'saveWorkStorage':{
+ if(xGrid.value.getTableData().fullData.length===0){
+ ElMessage.warning(t('reportingWorks.selectProcessCardData'))
+ return
+ }
+ const device = titleUploadData.value.deviceName
+ if(device === null || device === undefined || device === ''){
+ ElMessage.error(t('reportingWorks.selectWorkReportingEquipment'))
+ return
+ }
+ const teamsGroupsName = titleUploadData.value.teamsGroupsName
+ if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
+ ElMessage.error(t('reportingWorks.selectWorkReportingTeam'))
+ return
+ }
+
+ if (mannerPacking.value === null || mannerPacking.value === undefined || mannerPacking.value === ''){
+ ElMessage.error(t('reportingWorks.msgMannerPacking'))
+ return
+ }
+ const parts = technologicalProcess.split('->');
+ const last = parts[parts.length - 1];
+ let processId = titleUploadData.value.processId
+ //鍖归厤鈥�/鈥濆墠鍚庡瓧绗︿覆
+ const regex = /([^\/]+)\/([^\/]+)/;
+ //鏌ユ壘鍖归厤鐨勫瓧绗︿覆
+ const resultProcessId = processId.match(regex);
+ //娴佺▼鍗″彿
+ let processIdStr = resultProcessId[1];
+ //灞傚彿
+ let technologyStr = resultProcessId[2];
+ if (last != titleUploadData.value.thisProcess){
+ ElMessage.error('璇烽�夋嫨鏈�鍚庡伐搴忔姤宸ュ叆搴�')
+ return
+ }
+ storageBtn.value = true
+ //鎶ュ伐鏂板
+ saveReportingWork(0,'save')
+
}
}
}
@@ -816,6 +893,7 @@
//绗竴娆″姞杞芥暟鎹�
let groupChangeProcess = ref(false)//鐢ㄤ簬鏈彮缁勬樉绀洪棶棰�
const initTiltle = async () => {
+ hideButton()
await request.post(`/reportingWork/selectProcess/${user.user.userId}`).then((res) => {
if (res.code == 200) {
titleSelectJson.value.processType = res.data.process
@@ -907,7 +985,8 @@
return false
}
}
-
+//鍖呰鏂瑰紡
+ titleUploadData.value.packagingMethod = mannerPacking.value
titleUploadData.value.creator = user.user.userName
titleUploadData.value.creatorId = user.user.userId
const requestDetailData = xGrid.value.getTableData().fullData.filter((row) => {
@@ -943,6 +1022,10 @@
request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{
if (res.code == 200){
ElMessage.success(t('reportingWorks.successfulJobApplication'))
+ //鎶ュ伐鍏ュ簱
+ if(storageBtn.value == true){
+ getStorageWork();
+ }
router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
}else{
const errorObj = JSON.parse(res.msg)
@@ -1127,7 +1210,10 @@
//璁惧涓嬫媺妗�
titleSelectJson.value.deviceType = res.data.device
//鐝粍涓嬫媺妗�
- //titleSelectJson.value.teamsType = res.data.teams
+ if (teamsTypeValue==true){
+ titleSelectJson.value.teamsType = res.data.teams
+ }
+
//褰撳墠娴佺▼鍗″伐搴�
titleSelectJson.value.thisProcessType = res.data.thisProcess
//鍘嗗彶鐝粍
@@ -1360,6 +1446,88 @@
}
})
+
+//鎶ュ伐鍏ュ簱鏂规硶
+const getStorageWork = () => {
+ let processId = titleUploadData.value.processId
+ //鍖归厤鈥�/鈥濆墠鍚庡瓧绗︿覆
+ const regex = /([^\/]+)\/([^\/]+)/;
+ //鏌ユ壘鍖归厤鐨勫瓧绗︿覆
+ const resultProcessId = processId.match(regex);
+ //娴佺▼鍗″彿
+ let processIdStr = resultProcessId[1];
+ //灞傚彿
+ let technologyStr = resultProcessId[2];
+ //寮�濮嬪鐞嗗叆搴撻渶瑕佺殑鏁版嵁
+ let rawData = xGrid.value.getTableData().fullData
+ const seen = new Set();
+ const result = rawData.filter(item => {
+ // 1. 鍏堟妸 completedQuantity 涓� 0 鐨勫墧闄�
+ if (item.completedQuantity === 0) {
+ return false;
+ }
+ // 2. 閬囧埌鐩稿悓 order_number锛屽彧淇濈暀绗竴娆★紝鍚庨潰閮戒涪寮�
+ if (seen.has(item.order_number)) {
+ return false;
+ }
+ seen.add(item.order_number);
+ return true;
+ });
+
+ // 缁欐瘡鏉¤褰曡拷鍔� order 瀛楁
+ const resultData = result.map(item => ({
+ ...item,
+ order: {
+ orderId: titleUploadData.value.orderId
+ },
+ processId:processIdStr,
+ orderNumber:item.order_number
+ }));
+ let flowData = ref({
+ decValue:company.decValue,
+ userId: user.user.userId,
+ userName: user.user.userName,
+ storageRegion: storageRegion.value,
+ remark: remark.value,
+ container: container.value,
+ flowCard: resultData,
+ })
+ //璋冪敤鍏ュ簱鎺ュ彛
+ request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
+ if(res.code==200 && res.data==="true"){
+ ElMessage.success(t('productStock.receivedSuccessfully'))
+ // router.push({path:'/maiggn/productStock/CreateProductStock',query:{random:Math.random()}})
+ }else if(res.data==="false1"){
+ ElMessage.warning(t('basicData.msg.quantityError'))
+ }else if(res.data==="false2"){
+ ElMessage.warning(t('basicData.msg.dataDoesNotExist'))
+ }else{
+ ElMessage.warning(t('productStock.entryFailure'))
+ }
+ }).catch((err)=>{
+ ElMessage.error(t('basicData.msg.ServerConnectionError'))
+ router.push("/login")
+ })
+}
+
+const hideButton = () => {
+ if (btnValue == false){
+ const els = document.querySelectorAll('.inventory_content');
+ els.forEach(el => {
+ el.style.display = 'none';
+ });
+ }
+ gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
+ // 濡傛灉 type 涓嶄负绌烘椂锛岄殣钘� print 鎸夐挳
+ if (btnValue == false && button.code === 'saveWorkStorage') {
+ return false; // 闅愯棌 print 鎸夐挳
+ }
+
+
+ // 榛樿杩斿洖 true锛岃〃绀轰繚鐣欐寜閽�
+ return true;
+ });
+};
</script>
<template>
@@ -1384,6 +1552,23 @@
<el-button :disabled="disabledFlag" :loading="loadingFlag" @click="reviewReportingWork" type="primary">{{$t('reportingWorks.passAudit')}}
</el-button>
+
+ <span class="inventory_content">
+ <el-select style="width: 100px" v-model="mannerPacking" class="processesSt" :placeholder="$t('reportingWorks.mannerPacking')">
+ <el-option
+ v-for="item in mannerPackingOp"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ <el-input style="width: 100px" v-model="container" class="m-2" :placeholder="$t('productStock.pleaseEnterTheBoxNumber')">
+ </el-input>
+ <el-input style="width: 100px" v-model="storageRegion" class="m-2" :placeholder="$t('productStock.pleaseEnterTheStorageLocation')">
+ </el-input>
+ <el-input style="width: 200px" v-model="remark" class="m-2" :placeholder="$t('productStock.pleaseEnterANote')">
+ </el-input>
+ </span>
<!-- <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>-->
<label>{{technologicalProcess}}</label>
@@ -1477,8 +1662,8 @@
<el-option
v-for="item in titleSelectJson['teamsType']"
:key="item.id"
- :label="item.basicName"
- :value="item.basicName"
+ :label="item.user_name"
+ :value="item.user_name"
/>
</el-select>
</el-col>
--
Gitblit v1.8.0