From 9f1739f6a4310a1080eb4403d81e5ee6d550a89d Mon Sep 17 00:00:00 2001
From: yuejiayang <146344614+YangLei105@users.noreply.github.com>
Date: Tue, 3 Sep 2024 19:08:36 +0800
Subject: [PATCH] =?UTF-8?q?2024.9.3=20=E4=B8=80=E3=80=81=E5=8A=A0=E5=B7=A5?=
=?UTF-8?q?=E4=B8=AD=E5=BF=83=E4=B8=8A=E4=BC=A0SOP=EF=BC=88=E7=AC=AC?=
=?UTF-8?q?=E4=B8=80=E7=89=88=EF=BC=89=20=E4=BA=8C=E3=80=81=E7=94=9F?=
=?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95-=E7=94=9F=E4=BA=A7=E9=80=9A?=
=?UTF-8?q?=E7=9F=A5=E5=8D=95=EF=BC=88=E7=AC=AC=E4=B8=80=E7=89=88=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/base/site.js | 12 +
src/api/shopOrder/shopOrder.js | 3 +-
src/views/modules/base/workCenter.vue | 517 +++++++++++++++-
.../shopOrder/shopOrder/shopNotice.vue | 557 ++++++++++++++++++
4 files changed, 1086 insertions(+), 3 deletions(-)
create mode 100644 src/views/modules/shopOrder/shopOrder/shopNotice.vue
diff --git a/src/api/base/site.js b/src/api/base/site.js
index d585b86..d14c98e 100644
--- a/src/api/base/site.js
+++ b/src/api/base/site.js
@@ -165,3 +165,15 @@ export const updateRevNoData= data => createAPI(`/base/updateRevNoData`,'post',d
// 获取当前物料最大工序
export const getPartNoRouteInMaxItemNo= data => createAPI(`/base/getPartNoRouteInMaxItemNo`,'post',data)
+
+// 获取当前机台的SOP文件
+export const sopFileListSearch= data => createAPI(`/base/sopFileListSearch`,'post',data)
+
+// 删除当前机台的SOP文件
+export const deleteSOPFile= data => createAPI(`/base/deleteSOPFile`,'post',data)
+
+// 上传SOP文件
+export const uploadSOPFile= data => createAPI(`/base/uploadSOPFile`,'post',data)
+
+// 编辑SOP文件信息
+export const sopFileEdit= data => createAPI(`/base/sopFileEdit`,'post',data)
diff --git a/src/api/shopOrder/shopOrder.js b/src/api/shopOrder/shopOrder.js
index 7fda8c1..5b541dc 100644
--- a/src/api/shopOrder/shopOrder.js
+++ b/src/api/shopOrder/shopOrder.js
@@ -95,5 +95,6 @@ export const deleteShopOrderToolData = data => createAPI('/shopOrder/deleteShopO
// 更改生产工单工艺路线
export const shopOrderUpdateRoutingViaRev = data => createAPI('/shopOrder/shopOrderUpdateRoutingViaRev', 'post', data)
-
+// 查询工单的工具信息
+export const shopNoticeSearch = data => createAPI('/shopOrder/shopNoticeSearch', 'post', data)
diff --git a/src/views/modules/base/workCenter.vue b/src/views/modules/base/workCenter.vue
index 69366de..ad566c1 100644
--- a/src/views/modules/base/workCenter.vue
+++ b/src/views/modules/base/workCenter.vue
@@ -109,6 +109,7 @@
{{buttons.update}}
{{buttons.delete}}
{{buttons.setResource}}
+ 上传SOP
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SOP文件(点击上传)
+
+
+ 保存
+
+
+
+
+
+
+
+ {{scope.row[item.columnProp]}}
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+ {{buttons.close}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ {{buttons.close}}
+
+
+
+
@@ -342,7 +488,9 @@ import {
deleteWorkCenterData,
saveResource,
deleteResource,
- setResourceFlag
+ setResourceFlag,
+ sopFileListSearch,
+ deleteSOPFile,
}from "@/api/base/site.js"
import {
searchPartNoData,
@@ -353,6 +501,7 @@ import {
searchFunctionButtonList,
} from "@/api/sysLanguage.js"
+import {uploadSOPFile,sopFileEdit} from "../../../api/base/site";
var functionId='103004';
export default {
@@ -452,6 +601,15 @@ export default {
download2:'导出机台'
},
+ rules: {
+ effectiveDate: [
+ {
+ required: true,
+ message: ' ',
+ trigger: ['blur','change']
+ }
+ ]
+ },
queryButton: {
functionId: functionId,
table_id: '*',
@@ -497,6 +655,36 @@ export default {
modelFlag2:false,
modelFlag:false,
modelInputFlag:true,
+ fileName:'',
+ uploadSOPFlag:false,
+ uploadSOPEditFlag:false,
+ uploadSOPDisableFlag:true,
+ sopFileList:[],
+ fileList:[],
+ sopModelData:{
+ flag:'',
+ id : '',
+ workCenterNo:'',
+ workCenterDesc: '',
+ site:'',
+ resourceID:'',
+ resourceDesc:'',
+ versionNumber:'',
+ effectiveDate:'',
+ expiryDate:'',
+ },
+ sopUpdateModelData:{
+ flag:'',
+ id : '',
+ workCenterNo:'',
+ workCenterDesc: '',
+ site:'',
+ resourceID:'',
+ resourceDesc:'',
+ versionNumber:'',
+ effectiveDate:'',
+ expiryDate:null,
+ },
selectList:[],
modelData: {
add:'',
@@ -1021,6 +1209,134 @@ export default {
columnWidth: 80
}
],
+ columnSopFileList:[
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4VersionNumber',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "versionNumber",
+ headerAlign: "center",
+ align: "center",
+ columnLabel: "版本号",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 80
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4FileName',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "fileName",
+ headerAlign: "center",
+ align: "left",
+ columnLabel: "文件名称",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 200
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4CreatedBy',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "createdBy",
+ headerAlign: "center",
+ align: "left",
+ columnLabel: "上传人",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 100
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4CreateDate',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "createDate",
+ headerAlign: "center",
+ align: "center",
+ columnLabel: "上传时间",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 100
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4EffectiveDate',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "effectiveDate",
+ headerAlign: "center",
+ align: "center",
+ columnLabel: "生效日期",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 100
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4ExpiryDate',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "expiryDate",
+ headerAlign: "center",
+ align: "center",
+ columnLabel: "失效日期",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 100
+ },
+ {
+ userId: this.$store.state.user.name,
+ functionId: 103004,
+ serialNumber: '103004Table4Status',
+ tableId: "103004Table3",
+ tableName: "SOP文件表",
+ columnProp: "status",
+ headerAlign: "center",
+ align: "center",
+ columnLabel: "状态",
+ columnHidden: false,
+ columnImage: false,
+ columnSortable: false,
+ sortLv: 0,
+ status: true,
+ fixed: '',
+ columnWidth: 80
+ },
+ ],
authEdit: false,
authAdd: false,
authDelete: false,
@@ -1181,6 +1497,203 @@ export default {
})
})
},
+ formatDate(date) {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ return `${year}-${month}-${day}`;
+ },
+ uploadSOP(){
+ if(this.currentRow2==null){
+ this.$alert(this.labels.resourceIn, this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ return false;
+ }
+ this.sopModelData={
+ workCenterNo:this.currentRow2.workCenterNo,
+ workCenterDesc: this.currentRow2.workCenterDesc,
+ site:this.currentRow2.site,
+ resourceID:this.currentRow2.resourceID,
+ resourceDesc:this.currentRow2.resourceDesc,
+ versionNumber:'A01',
+ effectiveDate:this.formatDate(new Date()),
+ expiryDate:'',
+ };
+ this.sopFileListSearch();
+ this.uploadSOPFlag=true;
+ },
+ updateSOPFile(row){
+ this.sopUpdateModelData= {
+ id: row.id,
+ workCenterNo: this.currentRow2.workCenterNo,
+ workCenterDesc: this.currentRow2.workCenterDesc,
+ site: this.currentRow2.site,
+ resourceID: this.currentRow2.resourceID,
+ resourceDesc: this.currentRow2.resourceDesc,
+ versionNumber: row.versionNumber,
+ effectiveDate: new Date(row.effectiveDate),
+ expiryDate: row.expiryDate,
+ }
+ this.fileName = row.fileName;
+ this.uploadSOPDisableFlag=false
+ this.uploadSOPEditFlag=true;
+ },
+ sopFileListSearch(){
+ let inData={
+ orderRef1:this.currentRow2.site,
+ orderRef2:this.currentRow2.workCenterNo,
+ orderRef3:this.currentRow2.resourceID,
+ orderRef4:'',
+ fileType: 'SOP'
+ }
+ sopFileListSearch(inData).then(({data}) => {
+ // 遍历data
+ for (let i = 0; i < data.rows.length; i++) {
+ if (data.rows[i].expiryDate != null) {
+ if (data.rows[i].expiryDate < this.dayjs().format('YYYY-MM-DD')) {
+ data.rows[i].status = '失效'
+ } else {
+ data.rows[i].status = '有效'
+ }
+ } else {
+ data.rows[i].status = '有效'
+ }
+ this.sopFileList.push(data.rows[i]);
+ this.sopFileList[i].versionNumber = data.rows[i].orderRef4
+
+ }
+ // 如果this.sopFileList不为空,拿到versionNumber的最后一个并给versionNumber赋值(versionNumber由 A + 两位数组成,赋值时给数字+1)
+ if (this.sopFileList.length > 0) {
+ let versionNumber = this.sopFileList[this.sopFileList.length - 1].versionNumber;
+ // 如果A后面的数字小于10则为A0+数字加一,否则为A+数字加一
+ if (versionNumber.substring(1) < 9) {
+ this.sopModelData.versionNumber = 'A0' + (parseInt(versionNumber.substring(1)) + 1);
+ } else {
+ this.sopModelData.versionNumber = 'A' + (parseInt(versionNumber.substring(1)) + 1);
+ }
+ } else {
+ this.sopModelData.versionNumber = 'A01';
+ }
+ })
+ },
+ triggerUpload() {
+ this.$refs.uploadFile.$el.querySelector('input').click()
+ },
+ /*选择上传文件时*/
+ onChange(file,fileList){
+ const newFileName = file.name;
+ if (this.fileName) {
+ this.fileName += ', ' + newFileName;
+ } else {
+ this.fileName = newFileName;
+ }
+ this.fileList.push(file);
+ },
+ closeFileUpdate() {
+ this.fileName = '';
+ //this.fileRemark = ''
+ this.$refs.uploadFile.clearFiles()
+ this.fileList = []
+ },
+ uploadSOPSave() {
+ if (this.sopModelData.effectiveDate === '' || this.sopModelData.effectiveDate == null) {
+ this.$alert('请选择生效日期!', this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ return false;
+ }
+ if (this.fileList.length === 0) {
+ this.$alert('上传的SOP文件不能为空!', this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ return false;
+ }
+ const formData = new FormData();
+ //片接文件
+ for (let i = 0; i < this.fileList.length; i++) {
+ formData.append("file", this.fileList[i].raw)
+ }
+ formData.append("orderRef2", this.sopModelData.workCenterNo)
+ formData.append("orderRef1", this.sopModelData.site)
+ formData.append("orderRef3", this.sopModelData.resourceID)
+ formData.append("orderRef4", this.sopModelData.versionNumber)
+ formData.append("effectiveDate", this.sopModelData.effectiveDate)
+ if (this.sopModelData.expiryDate != null && this.sopModelData.expiryDate !== '') {
+ formData.append("expiryDate", this.sopModelData.expiryDate)
+ }
+ formData.append("fileType", 'SOP')
+ console.log(this.sopModelData.expiryDate)
+ uploadSOPFile(formData).then(({data}) => {
+ if (data && data.code === 0) {
+ this.uploadSOPFlag = false
+ this.$message.success(this.labels.doYes)
+ //清空文件上传记录
+ this.$refs.uploadFile.clearFiles();
+ this.closeFileUpdate();
+ this.sopFileList = []
+ } else {
+ this.$alert(data.msg, this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ }
+ })
+ },
+ updateSopFile(){
+ if (this.sopModelData.effectiveDate === '' || this.sopModelData.effectiveDate == null) {
+ this.$alert('请选择生效日期!', this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ return false;
+ }
+ let inData = {
+ id: this.sopUpdateModelData.id,
+ effectiveDate: this.sopUpdateModelData.effectiveDate,
+ expiryDate: this.sopUpdateModelData.expiryDate,
+ }
+ sopFileEdit(inData).then(({data}) => {
+ if (data && data.code === 0) {
+ this.sopFileList = [];
+ this.sopFileListSearch();
+ this.uploadSOPEditFlag = false
+ this.fileName = '';
+ this.$message.success(this.labels.doYes)
+ } else {
+ this.$alert(data.msg, this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ }
+ })
+ },
+ deleteSOPFile(row){
+ this.$confirm('确认删除该文件?', this.labels.point, {
+ confirmButtonText: this.labels.true,
+ cancelButtonText: this.labels.cancel,
+ type: 'warning'
+ }).then(() => {
+ deleteSOPFile(row).then(({data}) => {
+ if (data && data.code === 0) {
+ this.sopFileList = [];
+ this.sopFileListSearch();
+ this.$message.success(this.labels.doYes)
+ } else {
+ this.$alert(data.msg, this.labels.error, {
+ confirmButtonText: this.labels.true
+ })
+ }
+ })
+ })
+ },
+ closeUploadFileVisible(){
+ this.uploadSOPFlag=false;
+ this.sopFileList=[];
+ this.fileList = [];
+ this.closeFileUpdate();
+ },
+ closeUploadFileEditVisible(){
+ this.uploadSOPEditFlag=false;
+ this.fileName = '';
+ },
deleteCalendar(){
if(this.currentRow2==null){
this.$alert(this.labels.resourceIn, this.labels.error, {
diff --git a/src/views/modules/shopOrder/shopOrder/shopNotice.vue b/src/views/modules/shopOrder/shopOrder/shopNotice.vue
new file mode 100644
index 0000000..52edb08
--- /dev/null
+++ b/src/views/modules/shopOrder/shopOrder/shopNotice.vue
@@ -0,0 +1,557 @@
+
+
+
+
+
+
+
+ 仅查询有效的SOP
+
+ 查询
+
+
+
+
+
+
BOM物料清单
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 附件
+
+
+ 图纸
+
+
+ 刀线
+
+
SOP清单
+
+
+
+ {{scope.row[item.columnProp]}}
+
+
+
+
+
+
+
+
+
+
+