Browse Source

fix:生产随工单

lupeng 10 tháng trước cách đây
mục cha
commit
cc635c134f

+ 3 - 3
src/api/order/index.ts

@@ -242,10 +242,10 @@ export function refreshPrepareCheckInfo(
     method: "get",
   });
 }
-export function zipWorkOrder(data: object): AxiosPromise<any> {
+export function excelWorkOrder(data: object): AxiosPromise<any> {
   return request({
-    url: "/api/v1/workOrder/data/zip",
+    url: "/api/v1/ProcessFormData/workOrderExcel/add",
     method: "post",
-    data:data,
+    data: data,
   });
 }

+ 2 - 0
src/common/configs/dictDataUtil.ts

@@ -66,6 +66,8 @@ const DictDataUtil = {
     escalation_fault_state: "escalation_fault_state",
     //报故追踪状态状态
     fault_current_state: "fault_current_state",
+    //报故追踪状态状态
+    produce_type: "produce_type",
   },
   EXPAND_FIELD_TABLE: {
     //字段类型

+ 195 - 143
src/views/base/information/index.vue

@@ -1,74 +1,72 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #drawingPath-form="scope">
-<!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
+        <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
         <FilesUpload
-            v-model:src-list="srcList"
-            v-model:pdf-list="pdfUrlList"
-            v-model:file-name-list="fileNameList"
-            :limit="10"
-            :generate-pdf="true"
-            @finished="testFiles"
+          v-model:src-list="srcList"
+          v-model:pdf-list="pdfUrlList"
+          v-model:file-name-list="fileNameList"
+          :limit="10"
+          :generate-pdf="true"
+          @finished="testFiles"
         />
       </template>
       <template #enable="scope">
         <el-switch
-            active-value="1"
-            inactive-value="0"
-            inline-prompt
-            active-text="启用"
-            inactive-text="禁用"
-            v-model="scope.row.enable"
-            @click="changeItem(scope.row)"
-            class="ml-2"
-            style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+          active-value="1"
+          inactive-value="0"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="scope.row.enable"
+          @click="changeItem(scope.row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
         />
       </template>
-      <template #menu="{row,index,type}">
+      <template #menu="{ row, index, type }">
         <PDFView
-            :need-to-show-pdf="true"
-            content-type="button"
-            :is-link="true"
-            :pdf-source="filePath + row.pdfPath"
+          :need-to-show-pdf="true"
+          content-type="button"
+          :is-link="true"
+          :pdf-source="filePath + row.pdfPath"
         />
-        <el-button @click="deleteRecord(row,index,done)"
-                   text
-                   type="primary"
-        >删除</el-button>
+        <el-button @click="deleteRecord(row, index, done)" text type="primary"
+          >删除</el-button
+        >
       </template>
     </avue-crud>
 
-
     <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
   </div>
   <CommonTable
-      ref="ctableRef"
-      tableTitle="BOM添加"
-      tableType="MARTERIAL"
-      @selected-sure="onSelectedFinish"
+    ref="ctableRef"
+    tableTitle="BOM添加"
+    tableType="MARTERIAL"
+    @selected-sure="onSelectedFinish"
   />
 </template>
 <script setup lang="ts">
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import { useCommonStoreHook, useDictionaryStore } from "@/store";
-import {updateDrawaing} from "@/api/drawing";
+import { updateDrawaing } from "@/api/drawing";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import PDFView from "@/components/PDFView/index.vue";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -78,34 +76,39 @@ const fileUrl = ref(""); //单文件
 const pdfUrlList = ref([]);
 const srcList = ref([]);
 const fileNameList = ref([]);
-const testFiles =()=>{
+const testFiles = () => {
   form.value.pdfPathList = pdfUrlList.value;
   form.value.drawingPathList = srcList.value;
   form.value.drawingPath = srcList.value[0];
-  form.value.fileNameList=fileNameList.value;
-}
+  form.value.fileNameList = fileNameList.value;
+};
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const ctableRef=ref(null);
-const changeItem = (row)=>{
-  updateDrawaing(row).then(
-      ()=>{
-        ElMessage.success("操作成功")
-        dataList()
-      }
-  );
-}
+const ctableRef = ref(null);
+const changeItem = (row) => {
+  updateDrawaing(row).then(() => {
+    ElMessage.success("操作成功");
+    dataList();
+  });
+};
 
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/drawing",
-    });
-const { dataEditList, createRow, updateRow, deleteRow, searchChange, dataList,resetChange } =
-    Methords; //增删改查
+  useCrud({
+    src: "/api/v1/base/drawing",
+  });
+const {
+  dataEditList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  dataList,
+  resetChange,
+} = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -125,12 +128,11 @@ onMounted?.(() => {
 });
 
 const onSelectedFinish = (selectedValue) => {
-  form.value.associationCode=selectedValue.materialCode;
-  form.value.associationName=selectedValue.materialCode;
-  form.value.materialCode=selectedValue.materialCode;
+  form.value.associationCode = selectedValue.materialCode;
+  form.value.associationName = selectedValue.materialName;
+  form.value.materialCode = selectedValue.materialCode;
 };
 
-
 /**
  * 上传excel相关
  */
@@ -141,98 +143,147 @@ const uploadFinished = () => {
   dataEditList();
 };
 
-
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   selection: false,
-  viewBtn:false,
-  editBtn:false,
-  delBtn:false,
-  menu:true,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: true,
   column: [
-    { label: "图纸编号", prop: "drawingCode", width: 150,search: true,overHidden: true ,rules: [{
-        required: true,
-        message: "请填写图纸编号",
-        trigger: "blur"
-      }],},
-    { label: "图纸名称", prop: "drawingTitle", width: 150,overHidden: true,search: true ,rules: [{
-        required: true,
-        message: "请填写图纸名称",
-        trigger: "blur"
-      }],},
-    { label: "物料编号", prop: "associationCode", width: 150,search: true,overHidden: true ,editDisplay: false,addDisplay: false,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-     },
+    {
+      label: "图纸编号",
+      prop: "drawingCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸编号",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "图纸名称",
+      prop: "drawingTitle",
+      width: 150,
+      overHidden: true,
+      search: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸名称",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "物料编号",
+      prop: "associationCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      editDisplay: false,
+      addDisplay: false,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+    },
 
-    { label: "物料编号", prop: "materialCode", width: 150,overHidden: true ,editDisplay: false,hide:true,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-      click(){
+    {
+      label: "物料编号",
+      prop: "materialCode",
+      width: 150,
+      overHidden: true,
+      editDisplay: false,
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+      click() {
         if (ctableRef.value) {
           ctableRef.value.startSelect();
         }
-      }},
-    { label: "物料名称", prop: "associationName", width: 180,search: true,overHidden: true ,disabled:true,rules: [{
-        required: true,
-        message: "请填写物料名称",
-        trigger: "blur"
-      }] },
+      },
+    },
+    {
+      label: "物料名称",
+      prop: "associationName",
+      width: 180,
+      search: true,
+      overHidden: true,
+      disabled: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料名称",
+          trigger: "blur",
+        },
+      ],
+    },
     {
       label: "图纸类型",
       prop: "drawingDictValue",
       search: true,
       filterable: true,
-      type: 'select',
-      width: 100,overHidden: true,
+      type: "select",
+      width: 100,
+      overHidden: true,
       dicUrl: dictDataUtil.request_url + "drawing_type",
       props: { label: "dictLabel", value: "dictValue" },
-      rules: [{
-        required: true,
-        message: "请选择物料属性",
-        trigger: "blur"
-      }],
+      rules: [
+        {
+          required: true,
+          message: "请选择物料属性",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件",
       prop: "drawingPath",
       span: 24,
       slot: true,
-      hide:true,
-      rules: [{
-        required: true,
-        message: "请选择文件",
-        trigger: "blur"
-      }],
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请选择文件",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件名称",
       prop: "fileName",
       span: 24,
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
     {
       label: "文件数组",
       prop: "drawingPathList",
       span: 24,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     {
       label: "pdf数组",
       prop: "pdfPathList",
       span: 24,
-      hide:true,
-      display:false,
-
+      hide: true,
+      display: false,
     },
 
     {
@@ -240,8 +291,8 @@ option.value = Object.assign(option.value, {
       prop: "fileNameList",
       span: 24,
       slot: true,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     /*{ label: "文件",
       prop: "drawing",
@@ -254,35 +305,36 @@ option.value = Object.assign(option.value, {
     {
       label: "版本",
       prop: "drawingVersion",
-      type:"number",
-      precision:1,
-      rules: [{
-        required: true,
-        message: "版本号不能为空",
-        trigger: "blur"
-      }]
-
-
+      type: "number",
+      precision: 1,
+      rules: [
+        {
+          required: true,
+          message: "版本号不能为空",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "创建时间",
       prop: "created",
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
-    { label: "启用状态",
-      slot:true,
-      headerAlign: 'center',
+    {
+      label: "启用状态",
+      slot: true,
+      headerAlign: "center",
       prop: "enable",
       width: 100,
-      addDisplay: false
+      addDisplay: false,
     },
   ],
 });
 
-const deleteRecord=(row,index,done)=>{
-  deleteRow(row,index,done);
+const deleteRecord = (row, index, done) => {
+  deleteRow(row, index, done);
   dataEditList();
-}
+};
 </script>

+ 19 - 0
src/views/plan/order/index.vue

@@ -554,6 +554,25 @@ option.value = {
       value: 0,
     },
     {
+      label: "生产类型",
+      prop: "produceType",
+      width: 100,
+      overHidden: true,
+      type: "select", //类型为下拉选择框
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.produce_type,
+      props: {
+        label: "dictLabel",
+        value: "dictValue",
+      },
+      rules: [
+        {
+          required: true,
+          message: "请选择生产类型",
+          trigger: "trigger",
+        },
+      ],
+    },
+    {
       label: "备注",
       prop: "remark",
       width: 100,

+ 12 - 10
src/views/plan/workOrder/index.vue

@@ -136,15 +136,17 @@
           :size="size"
           >生产随工单</el-button
         >
-        <!-- <el-button
+        <el-button
           icon="el-icon-notebook"
           text
-          v-if="row.workOrderState === '6'&&row.packageUrl==='0'"
-          @click="zipData(row.workOrderCode)"
+          v-if="row.workOrderState === '6' && row.isExcel == 0"
+          @click="workOrderData(row.id)"
           type="primary"
           v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_data]"
-          :size="size">生成数据包</el-button>
-        <el-button
+          :size="size"
+          >生成生产随工单</el-button
+        >
+        <!--        <el-button
           icon="el-icon-download"
           text
           v-if="row.workOrderState === '6'&&row.packageUrl!=='0'"
@@ -296,7 +298,7 @@ import {
   distributeWorkOrder,
   revokeWorkOrder,
   lockWorkOrder,
-  zipWorkOrder,
+  excelWorkOrder,
 } from "@/api/order";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
@@ -423,11 +425,11 @@ const lockOrUnLockWorkOrder = (id, status) => {
     });
 };
 const loading = ref(false);
-const zipWork = ref({});
-const zipData = (workOrderCode) => {
+const excelWork = ref({});
+const workOrderData = (id) => {
   loading.value = true;
-  zipWork.value.workOrderCode = workOrderCode;
-  zipWorkOrder(zipWork.value).then((data) => {
+  excelWork.value.workOrderId = id;
+  excelWorkOrder(excelWork.value).then((data) => {
     if (data.code === "200") {
       loading.value = false;
       ElMessage.success(data.msg);