diff --git a/src/api/mes/workSchedulingQaform/index.ts b/src/api/mes/workSchedulingQaform/index.ts
new file mode 100644
index 000000000..e964dad35
--- /dev/null
+++ b/src/api/mes/workSchedulingQaform/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface WorkSchedulingQaformVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ planMaserCode: string
+ schedulingCode: string
+ nodeCode: string
+ qaFormNo: string
+ qaFormName: string
+ qaFormType: string
+ qaTime: Date
+ qaCount: number
+ qaCountPassed: number
+ qaCountNotpassed: number
+ qaPassRate: string
+}
+
+// 查询任务质检单列表
+export const getWorkSchedulingQaformPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/work-scheduling-qaform/senior', data })
+ } else {
+ return await request.get({ url: `/mes/work-scheduling-qaform/page`, params })
+ }
+}
+
+// 查询任务质检单详情
+export const getWorkSchedulingQaform = async (id: number) => {
+ return await request.get({ url: `/mes/work-scheduling-qaform/get?id=` + id })
+}
+
+// 新增任务质检单
+export const createWorkSchedulingQaform = async (data: WorkSchedulingQaformVO) => {
+ return await request.post({ url: `/mes/work-scheduling-qaform/create`, data })
+}
+
+// 修改任务质检单
+export const updateWorkSchedulingQaform = async (data: WorkSchedulingQaformVO) => {
+ return await request.put({ url: `/mes/work-scheduling-qaform/update`, data })
+}
+
+// 删除任务质检单
+export const deleteWorkSchedulingQaform = async (id: number) => {
+ return await request.delete({ url: `/mes/work-scheduling-qaform/delete?id=` + id })
+}
+
+// 导出任务质检单 Excel
+export const exportWorkSchedulingQaform = async (params) => {
+ return await request.download({ url: `/mes/work-scheduling-qaform/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/work-scheduling-qaform/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/views/mes/orderDay/components/schedule.vue b/src/views/mes/orderDay/components/schedule.vue
index 88127320a..3a79d518e 100644
--- a/src/views/mes/orderDay/components/schedule.vue
+++ b/src/views/mes/orderDay/components/schedule.vue
@@ -36,24 +36,25 @@
-
+
-
+
+ -->
-
+
-
+ 工序编码:{{currentNode.id}} -工序名称:{{currentNode.attrs.title.text }}
+
@@ -76,7 +77,17 @@
{{ getTotalcounts(scope.row.repMaterialCounts) }}
-
+
+
+
+
+
@@ -211,7 +222,7 @@ const graphContainer = ref(null)
const graph = ref()
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
-const activeName = ref('process')
+const activeName = ref('workstation')
const formLoading = ref(false)
const dialogFormVisibleUser = ref(false)
const processData = ref([])
@@ -249,6 +260,7 @@ const workstationData=ref([])
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const graphJson =ref()
+const currentNode = ref({})
/*班组数据*/
const teamData = ref([])
/*班组弹窗搜索条件*/
@@ -309,9 +321,9 @@ const open = async (type: string, row?: any, titleName?: any) => {
queryParams.batchCode=row.batchCode
//获取配置的
if (titleName) {
- dialogTitle.value = t('action.' + titleName)
+ dialogTitle.value = titleName
} else {
- dialogTitle.value = t('action.' + type)
+ dialogTitle.value = type
}
nextTick?.(() => {
graph.value = createGraph(graphContainer.value as HTMLElement, true, 240, 320)
@@ -388,6 +400,7 @@ const nodeClick = (e, x, y, node, view) => {
getConfigProcessWorker(node.id)
getConfigProcessEquipment(node.id)
processCode.value = node.id
+ currentNode.value=node
}
const searchTableRef = ref()
@@ -453,9 +466,10 @@ const doPublishPlan= ()=>{
endTime: detailData.value.endTime,
taskMode: detailData.value.taskMode
}
- //console.log("-------",data)
+
let res = OrderDayApi.publishPlan(data)
- if(res.code==0){
+ console.log("---doPublishPlan-- 458--",res)
+ if(res.code===0){
message.success("计划发布成功")
}else {
message.error(res.msg)
diff --git a/src/views/mes/orderDay/index.vue b/src/views/mes/orderDay/index.vue
index a4b55b138..857c364a2 100644
--- a/src/views/mes/orderDay/index.vue
+++ b/src/views/mes/orderDay/index.vue
@@ -264,7 +264,7 @@ const openForm = (type: string, row?: any) => {
const formsSuccess = async (formType,data) => {
if (formType === 'create') {
- let ret=await OrderDayApi.createOrderDay(data)
+ let ret= OrderDayApi.createOrderDay(data)
if(ret===undefined || ret===null){
message.error(t('common.networkError'))
}else{
@@ -272,7 +272,7 @@ const formsSuccess = async (formType,data) => {
}
} else {
- let ret=await OrderDayApi.updateOrderDay(data)
+ let ret= OrderDayApi.updateOrderDay(data)
if(ret.code==0){
message.success(t('common.updateSuccess'))
}else{
diff --git a/src/views/mes/workScheduling/workScheduling.data.ts b/src/views/mes/workScheduling/workScheduling.data.ts
index 1ed99d358..242940602 100644
--- a/src/views/mes/workScheduling/workScheduling.data.ts
+++ b/src/views/mes/workScheduling/workScheduling.data.ts
@@ -1,5 +1,6 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
+import { ElTag } from 'element-plus'
// 表单校验
export const WorkSchedulingRules = reactive({
@@ -48,6 +49,13 @@ export const WorkScheduling = useCrudSchemas(reactive([
sort: 'custom',
isSearch: true,
isForm: true,
+ form:{
+ component: 'Input',
+ componentProps: {
+ placeholder: '请输入计划编号',
+ disabled:true
+ }
+ }
},
{
label: '工单编号',
@@ -88,7 +96,7 @@ export const WorkScheduling = useCrudSchemas(reactive([
label: '计划数量',
field: 'planCount',
sort: 'custom',
- isForm: true,
+ isForm: false,
},
{
label: '完工数量',
@@ -143,7 +151,7 @@ export const WorkScheduling = useCrudSchemas(reactive([
label: '工单模式',
field: 'formType',
sort: 'custom',
- isForm: true,
+ isForm: false,
dictType: DICT_TYPE.MES_WORKBILL_MODEL,
dictClass: 'string',
form: {
@@ -173,7 +181,7 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
field: 'id',
sort: 'custom',
isSearch: false,
- isTable: false,
+ isTable: true,
isForm:false,
isDetail:false,
},
@@ -186,15 +194,7 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
isForm:false,
isDetail:false,
},
- {
- label: '备注',
- field: 'remark',
- sort: 'custom',
- isSearch: false,
- isTable: false,
- isForm:false,
- isDetail:false,
- },
+
{
label: '创建时间',
field: 'createTime',
@@ -219,16 +219,16 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
sort: 'custom',
isSearch: true,
},
- {
- label: '任务ID',
- field: 'schedulingId',
- sort: 'custom',
- isSearch: true,
- form: {
- component: 'InputNumber',
- value: 0
- },
- },
+ // {
+ // label: '任务ID',
+ // field: 'schedulingId',
+ // sort: 'custom',
+ // isSearch: true,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0
+ // },
+ // },
{
label: '任务序号',
field: 'taskSort',
@@ -247,30 +247,55 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
{
label: '允许工位',
field: 'workstationValidate',
+ formatter: (_: Recordable, __: TableColumn, cellValue: String) => {
+ return h(
+ ElTag,
+ {
+ type:'primary'
+ },
+ () =>
+ JSON.parse(cellValue).map((item: any) => {
+ return '['+item.name+']'
+ }).join('\r\n')
+ )
+ },
sort: 'custom',
},
{
label: '允许设备',
field: 'deviceValidate',
+ formatter: (_: Recordable, __: TableColumn, cellValue: String) => {
+ return h(
+ ElTag,
+ {
+ type:'primary'
+ },
+ () =>
+ JSON.parse(cellValue).map((item: any) => {
+ return '['+item.name+']'
+ }).join('\r\n')
+ )
+ },
sort: 'custom',
},
{
label: '允许人员',
field: 'personValidate',
+ formatter: (_: Recordable, __: TableColumn, cellValue: String) => {
+ return h(
+ ElTag,
+ {
+ type:'primary'
+ },
+ () =>
+ JSON.parse(cellValue).map((item: any) => {
+ return '['+item.name+']'
+ }).join('\r\n')
+ )
+ },
sort: 'custom',
},
- {
- label: '报工人',
- field: 'reportPerson',
- sort: 'custom',
- isSearch: true,
- },
- {
- label: '生产人',
- field: 'receivePerson',
- sort: 'custom',
- isSearch: true,
- },
+
{
label: '计划数量',
field: 'planCount',
@@ -280,6 +305,12 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
value: 0
},
},
+ {
+ label: '报工人',
+ field: 'reportPerson',
+ sort: 'custom',
+ isSearch: true,
+ },
{
label: '报工数量',
field: 'reportCount',
@@ -328,10 +359,26 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([
sort: 'custom',
isSearch: true,
},
+
+ {
+ label: '生产人',
+ field: 'receivePerson',
+ sort: 'custom',
+ isSearch: true,
+ },
+ // {
+ // label: '生产物料',
+ // field: 'materialValidate',
+ // sort: 'custom',
+ // },
{
- label: '生产物料',
- field: 'materialValidate',
+ label: '备注',
+ field: 'remark',
sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
},
{
label: '操作',
diff --git a/src/views/mes/workSchedulingQaform/index.vue b/src/views/mes/workSchedulingQaform/index.vue
new file mode 100644
index 000000000..ac06996b3
--- /dev/null
+++ b/src/views/mes/workSchedulingQaform/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/mes/workSchedulingQaform/workSchedulingQaform.data.ts b/src/views/mes/workSchedulingQaform/workSchedulingQaform.data.ts
new file mode 100644
index 000000000..eaaf4d434
--- /dev/null
+++ b/src/views/mes/workSchedulingQaform/workSchedulingQaform.data.ts
@@ -0,0 +1,208 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const WorkSchedulingQaformRules = reactive({
+ concurrencyStamp: [required],
+})
+
+export const WorkSchedulingQaform = useCrudSchemas(reactive([
+ {
+ label: '删除时间',
+ field: 'deleteTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '主键',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ iisSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '删除用户名',
+ field: 'deleter',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '位置ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '主计划编号',
+ field: 'planMasterCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '工单编号',
+ field: 'schedulingCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '工序编号',
+ field: 'nodeCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '检验单编号',
+ field: 'qaFormNo',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '检验单名称',
+ field: 'qaFormName',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '检验类型',
+ field: 'qaFormType',
+ sort: 'custom',
+ isSearch: true,
+
+ },
+ {
+ label: '检验时间',
+ field: 'qaTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '检测数量',
+ field: 'qaCount',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '检测合格数量',
+ field: 'qaCountPassed',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '检测不合格数量',
+ field: 'qaCountNotpassed',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '合格率',
+ field: 'qaPassRate',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/qms/basicDataManage/inspectionScheme/addForm.vue b/src/views/qms/basicDataManage/inspectionScheme/addForm.vue
index a899e68ef..11bdaa3b4 100644
--- a/src/views/qms/basicDataManage/inspectionScheme/addForm.vue
+++ b/src/views/qms/basicDataManage/inspectionScheme/addForm.vue
@@ -845,6 +845,7 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
available: 'TRUE',
dynamicUpdateCode:'',
description:"",
+ samplePieceSize:"",
isWhole:"TRUE",
process: []
}
diff --git a/src/views/qms/basicDataManage/inspectionScheme/index.vue b/src/views/qms/basicDataManage/inspectionScheme/index.vue
index e6a591505..419b53f99 100644
--- a/src/views/qms/basicDataManage/inspectionScheme/index.vue
+++ b/src/views/qms/basicDataManage/inspectionScheme/index.vue
@@ -180,6 +180,8 @@ const submitForm = async (formType,data) => {
inspectionLevel: data.inspectionLevel,
effectiveDate: data.effectiveDate,
expirationDate: data.expirationDate,
+ samplePieceSize: data.samplePieceSize,
+ isWhole: data.isWhole,
available: data.available,
content:JSON.stringify(data.process)
}
diff --git a/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts b/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts
index 324caf813..a15fe2c9c 100644
--- a/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts
+++ b/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts
@@ -67,6 +67,7 @@ export const InspectionTemplateRules = reactive({
quantifyQuantifyCode: [
{ required: true, message: '请输入选择集编码', trigger: 'blur' }
],
+ isWhole: [{ required: true}],
})
export const InspectionSchemeMain = useCrudSchemas(reactive([
{
diff --git a/src/views/qms/inspection/inspectionRequest/index.vue b/src/views/qms/inspection/inspectionRequest/index.vue
index a25100b0e..be4b972ee 100644
--- a/src/views/qms/inspection/inspectionRequest/index.vue
+++ b/src/views/qms/inspection/inspectionRequest/index.vue
@@ -61,7 +61,7 @@