2213980799@qq.com пре 1 година
родитељ
комит
6d4570c74f

+ 28 - 0
src/views/exceptionManagement/components/create.vue

@@ -198,6 +198,34 @@
           </el-form-item>
         </el-col>
       </el-row>
+      <headerTitle
+        v-if="form.approvalProcess.length > 0"
+        title="异常判定结果"
+        style="margin-top: 15px"
+      ></headerTitle>
+      <el-row
+        :gutter="15"
+        v-for="(item, index) in form.approvalProcess"
+        :key="index"
+      >
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="审核人:">
+            <el-input :value="item.auditor" disabled />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="异常判定:">
+            <el-input :value="item.exceptionDetermine" disabled />
+          </el-form-item>
+        </el-col>
+        <el-col
+          v-if="item.exceptionDispose"
+          v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }"
+        >
+          <el-form-item label="异常处置:">
+            <el-input :value="item.exceptionDispose" disabled />
+          </el-form-item> </el-col
+      ></el-row>
     </el-form>
     <template v-slot:footer>
       <el-button @click="cancel">取消</el-button>

+ 58 - 31
src/views/exceptionManagement/components/dispose.vue

@@ -60,46 +60,62 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <headerTitle v-if="form.approvalProcess.length>0" title="异常判定结果" style="margin-top: 15px"></headerTitle>
-      <el-row :gutter="15" v-for="(item,index) in form.approvalProcess" :key="index">
+      <headerTitle
+        v-if="form.approvalProcess.length > 0"
+        title="异常判定结果"
+        style="margin-top: 15px"
+      ></headerTitle>
+      <el-row
+        :gutter="15"
+        v-for="(item, index) in form.approvalProcess"
+        :key="index"
+      >
         <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
-          <el-form-item label="审核人:" >
-            <el-input v-value="item.auditor" disabled />
+          <el-form-item label="审核人:">
+            <el-input :value="item.auditor" disabled />
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
-          <el-form-item label="异常判定:" >
-            <el-input v-value="item.exceptionDetermine" disabled />
+          <el-form-item label="异常判定:">
+            <el-input :value="item.exceptionDetermine" disabled />
           </el-form-item>
         </el-col>
-        <el-col v-if="item.exceptionDispose" v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
-          <el-form-item label="异常处置:" >
-            <el-input v-value="item.exceptionDispose" disabled />
+        <el-col
+          v-if="item.exceptionDispose"
+          v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }"
+        >
+          <el-form-item label="异常处置:">
+            <el-input :value="item.exceptionDispose" disabled />
           </el-form-item> </el-col
       ></el-row>
       <el-row :gutter="15">
-      <headerTitle title="异常处置" style="margin-top: 15px"></headerTitle>
+        <headerTitle title="异常处置" style="margin-top: 15px"></headerTitle>
 
-        <footBtn />
+        <footBtn @footBtn="footBtn" />
       </el-row>
     </el-form>
     <template v-slot:footer>
       <el-button @click="cancel">取消</el-button>
-      <el-button
+      <!-- <el-button
         type="primary"
         @click="save"
         :loading="loading"
       
       >
         确定
-      </el-button>
+      </el-button> -->
     </template>
+    <unacceptedProductCreate ref="unacceptedProductCreate" @refresh="refresh" />
   </ele-modal>
 </template>
 
 <script>
 import fileUpload from '@/components/upload/fileUpload';
+import unacceptedProductCreate from '@/views/unacceptedProduct/components/create';
 import footBtn from './footBtn';
+import { transitionUnacceptedProduct } from './transition';
+import { save } from '@/api/exceptionManagement/index';
+
 const defaultForm = function () {
   return {
     accessory: [],
@@ -123,20 +139,19 @@ const defaultForm = function () {
   };
 };
 export default {
-  components: { fileUpload, footBtn},
+  components: { fileUpload, footBtn, unacceptedProductCreate },
   data() {
     return {
       visible: false,
       loading: false,
-
+      type:'',
       form: { ...defaultForm() },
       // 表单验证规则
       rules: {
         type: [{ required: true, message: '请选择', trigger: 'change' }],
         name: [{ required: true, message: '请选择', trigger: 'change' }],
         relationType: [{ required: true, message: '请选择', trigger: 'change' }]
-      },
-
+      }
     };
   },
 
@@ -148,34 +163,46 @@ export default {
   },
   created() {},
   methods: {
-    open( row) {
+    open(row) {
       this.visible = true;
-        console.log(row,'row')
+
       this.form = JSON.parse(JSON.stringify(row));
       this.form.relationJson = this.form.relationJson[0];
       this.form.type = this.form.type + '';
     },
 
-   
+    footBtn(type) {
+      let data = JSON.parse(JSON.stringify(this.form));
+      this.type=type
+      if (type == '3') {
+        this.$refs.unacceptedProductCreate.open(
+          transitionUnacceptedProduct(data),
+          'add'
+        );
+      }
+    },
+    refresh() {
+      this.save()
+      this.cancel();
+      this.$emit('refresh');
+    },
     cancel() {
       this.form = { ...defaultForm() };
       this.visible = false;
     },
-   
+
     /* 保存编辑 */
     save() {
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return false;
-        }
-        if (!this.form.relationJson.code) {
-          this.$message.error('请选择' + this.getTitle());
-          return;
-        }
+ 
+  
 
         this.loading = true;
         let data = JSON.parse(JSON.stringify(this.form));
-        data.relationJson = [data.relationJson];
+        data={
+          id:data.id,
+          approvalStatus:4,
+          disposalStatus:this.type
+        }
         save(data)
           .then((res) => {
             this.loading = false;
@@ -186,7 +213,7 @@ export default {
           .catch((e) => {
             this.loading = false;
           });
-      });
+  
     }
   }
 };

+ 3 - 35
src/views/exceptionManagement/components/footBtn.vue

@@ -8,44 +8,12 @@
 </template>
 
 <script>
+import { btnList } from './transition';
+
 export default {
     data() {
         return {
-          btnList: [
-          {
-                name: '退料',
-                type: 'job',
-                bjColor: '#157A2C'
-            },
-            {
-                name: '变更',
-                type: '',
-                bjColor: '#3490DE'
-            },
-            
-            {
-                name: '不合格品处置',
-                type: '',
-                bjColor: '#39D9AC'
-            },
-            {
-                name: '补料',
-                type: '',
-                bjColor: '#6639A6'
-            },
-            {
-                name: '报修',
-                type: '',
-                bjColor: '#858585'
-            },
-            {
-                name: '报损',
-                type: '',
-                bjColor: '#FF4D4F'
-            },
-           
-
-          ]
+          btnList
         };
     },
     created() {

+ 80 - 15
src/views/exceptionManagement/components/transition.js

@@ -13,36 +13,101 @@ const planStatus = [
     { label: '已延期', value: '7' },
     { label: '待下达', value: '8' },
 ]
+export const btnList = [
+    {
+        name: '退料',
+        type: '1',
+        bjColor: '#157A2C'
+    },
+    {
+        name: '变更',
+        type: '2',
+        bjColor: '#3490DE'
+    },
 
+    {
+        name: '不良品',
+        type: '3',
+        bjColor: '#39D9AC'
+    },
+    {
+        name: '补料',
+        type: '4',
+        bjColor: '#6639A6'
+    },
+    {
+        name: '报修',
+        type: '5',
+        bjColor: '#858585'
+    },
+    {
+        name: '报损',
+        type: '6',
+        bjColor: '#FF4D4F'
+    },
 
-export function transitionData(data,type) {
+
+]
+
+export function transitionData(data, type) {
     return {
         code: data.code,//编码
-        productionPlanCode: data.productionPlanCode||data.code,//编码
-        planTypeName: data.planType&&planType.find((i) => i.value == data.planType).label,//计划类型
+        productionPlanCode: data.productionPlanCode || data.code,//编码
+        planTypeName: data.planType && planType.find((i) => i.value == data.planType).label,//计划类型
         planType: data.planType,//计划类型
         model: data.model,//型号
         relationId: data.id,//关联id
         productCode: data.productCode,//产品编码
         productName: data.productName,//产品名称
         specifications: data.specifications,//规格
-        requiredFormingNum: type==1?data.salesOrders[0]?.requiredFormingNum:(data.formingNum+' '+data.unit),//要求生产数量
-        sumOrderWeight: type==1?(data.sumOrderWeight+data.weightUnit):(data.formingWeight+' '+(data.newWeightUnit||data.weightUnit)),//要求生产重量
-        formedNum:data.formedNum&&(data.formedNum+' '+data.unit),//以生产数量
-        formedWeight:data.formedWeight&&(data.formedWeight+' '+data.weightUnit),//以生产数量
+        requiredFormingNum: type == 1 ? data.salesOrders[0]?.requiredFormingNum : (data.formingNum + ' ' + data.unit),//要求生产数量
+        sumOrderWeight: type == 1 ? (data.sumOrderWeight + data.weightUnit) : (data.formingWeight + ' ' + (data.newWeightUnit || data.weightUnit)),//要求生产重量
+        formedNum: data.formedNum && (data.formedNum + ' ' + data.unit),//以生产数量
+        formedWeight: data.formedWeight && (data.formedWeight + ' ' + data.weightUnit),//以生产数量
         batchNo: data.batchNo,//批号
         brandNo: data.brandNo,//牌号
-        priority: type==1?data.salesOrders[0]?.priority:data.priority,//优先级
+        priority: type == 1 ? data.salesOrders[0]?.priority : data.priority,//优先级
         produceRoutingId: data.produceRoutingId,//工艺id
         produceRoutingName: data.produceRoutingName,//工艺名称
-        produceVersionId:data.produceVersionId,//工序id
+        produceVersionId: data.produceVersionId,//工序id
         produceVersionName: data.produceVersionName,//工序
-        status: planStatus.find((i) => i.value == (type==1?data.salesOrders[0]?.status:data.status)).label,//状态
+        status: planStatus.find((i) => i.value == (type == 1 ? data.salesOrders[0]?.status : data.status)).label,//状态
         createTime: data.createTime,//
         createUserName: '',//创建人
-        deliveryTime:type==1?data.salesOrders[0]?.deliveryTime:data.planCompleteTime,//计划结束时间
-        reqMoldTime:type==1?data.salesOrders[0]?.reqMoldTime:data.planStartTime,//计划开始时间
-        teamName:data.teamName,//班组
-        teamId:data.teamId//班组
+        deliveryTime: type == 1 ? data.salesOrders[0]?.deliveryTime : data.planCompleteTime,//计划结束时间
+        reqMoldTime: type == 1 ? data.salesOrders[0]?.reqMoldTime : data.planStartTime,//计划开始时间
+        teamName: data.teamName,//班组
+        teamId: data.teamId//班组
+    }
+}
+export function transitionUnacceptedProduct(data) {
+    return {
+        poList: [
+            {
+                productName: data.relationJson.productName,
+                productCode: data.relationJson.productCode,
+                brandNo: data.relationJson.brandNo,
+                unqualifiedQuantity: parseInt(data.relationJson.requiredFormingNum),
+                produceRoutingId: data.relationJson.produceRoutingId,
+                produceRoutingName: data.relationJson.produceRoutingName,
+                produceTaskId: data.relationJson.produceVersionName,
+                produceTaskName: data.relationJson.produceVersionName,
+                unqualifiedReason: ''
+            }
+        ],
+        code: '',
+        unqualifiedQuantity: parseInt(data.relationJson.requiredFormingNum),
+        type: '',
+        status: null,
+        reviewerId: null,
+        reviewerName: '',
+        createUserName: '',
+        unqualifiedSourceCode: data.code,
+        unqualifiedSourceId: data.id,
+        produceRoutingId: data.relationJson.produceRoutingId,
+        produceRoutingName: data.relationJson.produceRoutingName,
+        produceTaskId: data.relationJson.produceVersionName,
+        produceTaskName: data.relationJson.produceVersionName,
+        batchNo: data.relationJson.batchNo
     }
-}
+}

+ 25 - 12
src/views/exceptionManagement/exceptionList/index.vue

@@ -14,6 +14,7 @@
         </template>
         <template v-slot:approvalStatus="{ row }">
           <span
+          v-if="row.exceptionClose==2||!row.exceptionClose"
             :style="{
               color:
                 row.approvalStatus == 1
@@ -29,12 +30,15 @@
               row.approvalStatus == 1
                 ? '审核中'
                 : row.approvalStatus == 2
-                ? '通过'
+                ? '审核通过'
                 : row.approvalStatus == 3
-                ? '不通过'
+                ? '审核不通过'
+                : row.approvalStatus == 4
+                ? '已处置'
                 : '草稿'
             }}
           </span>
+          <span v-else>关闭</span>
         </template>
         <template v-slot:code="{ row }">
           <el-link
@@ -86,7 +90,7 @@
           >
             导入
           </el-button>
-          <el-button
+          <!-- <el-button
             size="small"
             type="primary"
             icon="el-icon-circle-plus-outline"
@@ -95,7 +99,7 @@
             :disabled="selection.length == 0"
           >
             处置
-          </el-button>
+          </el-button> -->
         </template>
 
         <template v-slot:action="{ row }">
@@ -124,7 +128,7 @@
             type="primary"
             :underline="false"
             icon="el-icon-circle-plus-outline"
-            v-if="row.approvalStatus == 2"
+            v-if="row.approvalStatus == 2&&row.exceptionClose==2"
             @click="dispose(row)"
           >
             处置
@@ -133,7 +137,7 @@
             type="primary"
             :underline="false"
             icon="el-icon-circle-plus-outline"
-            v-if="row.approvalStatus == 0 || row.approvalStatus == 3"
+            v-if="(row.approvalStatus == 0 || row.approvalStatus == 3)&&(!row.exceptionClose||row.exceptionClose==2)"
             @click="submit(row.id)"
           >
             提交
@@ -182,6 +186,7 @@ import dispose from '../components/dispose';
 
 import { getList, remove,submit } from '@/api/exceptionManagement/index';
 import { listAllUserBind } from '@/api/bpm/index';
+import { btnList } from '../components/transition';
 
 export default {
   components: {
@@ -245,6 +250,14 @@ export default {
           label: '异常描述',
           align: 'center'
         },
+        {
+          prop: 'disposalStatus',
+          label: '处置类型',
+          align: 'center',
+          formatter: (row, column, cellValue) => {
+            return btnList.find(item=>item.type==cellValue)?.name
+          }
+        },
         {
           prop: 'relationType',
           label: '关联类型',
@@ -262,11 +275,11 @@ export default {
           label: '关联编码',
           align: 'center'
         },
-        {
-          prop: 'a',
-          label: '关联名称',
-          align: 'center'
-        },
+        // {
+        //   prop: 'a',
+        //   label: '关联名称',
+        //   align: 'center'
+        // },
 
         {
           prop: 'createUserName',
@@ -343,7 +356,7 @@ export default {
         return;
       }
       submit({businessId: this.viewId,approvalUserId:this.qualityInspector}).then((res) => {
-        this.$message.success('提交' + message);
+        this.$message.success('提交' + res.message);
         this.reload();
         this.visible=false
       });

+ 37 - 37
src/views/unacceptedProduct/components/create.vue

@@ -14,8 +14,8 @@
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-          <el-form-item label="工单号:">
-            <el-input :maxlength="20" v-model="form.workOrderId" disabled />
+          <el-form-item label="来源编码:">
+            <el-input :maxlength="20" v-model="form.unqualifiedSourceCode" disabled />
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
@@ -80,7 +80,6 @@
             <el-form-item
               label-width="0px"
               :prop="'poList.' + scope.$index + '.engravingCode'"
-             
             >
               <el-input
                 v-model="scope.row.engravingCode"
@@ -111,7 +110,7 @@
               ]"
             >
               <el-input
-              :disabled="!!scope.row.id"
+                :disabled="!!scope.row.id"
                 v-model.number="scope.row.unqualifiedQuantity"
                 size="small"
                 oninput="value=value.replace(/[^\d]/g,'')"
@@ -132,9 +131,7 @@
         </el-table-column>
         <el-table-column label="工序" align="center" prop="produceTaskName">
         </el-table-column>
-        <el-table-column label="来源方式" align="center" prop="unqualifiedSource">
-        </el-table-column>
-        
+
         <el-table-column label="原因" align="center" prop="unqualifiedReason">
           <template slot-scope="scope">
             <el-form-item
@@ -179,10 +176,7 @@
     </template>
 
     <!-- 选择产品 -->
-    <EquipmentDialog
-      ref="equipmentRefs"
-      @choose="confirmChoose"
-    >
+    <EquipmentDialog ref="equipmentRefs" @choose="confirmChoose">
     </EquipmentDialog>
     <ProductionVersion
       ref="versionRefs"
@@ -197,7 +191,8 @@ import ProductionVersion from '@/components/ProductionVersion/ProductionVersion.
 import { getProduceTaskList } from '@/api/aps';
 import {
   unqualifiedProductsAdd,
-  getDetail,deleteUnacceptedProductDetail
+  getDetail,
+  deleteUnacceptedProductDetail
 } from '@/api/unacceptedProduct/index';
 export default {
   components: {
@@ -219,10 +214,9 @@ export default {
       form: {
         poList: [],
         code: '',
-        workOrderId: '',
-        productCode: '',
-        productName: '',
-        specifications: '',
+        unqualifiedSourceCode: '',
+        unqualifiedSourceId: '',
+      
         unqualifiedQuantity: '',
         type: '',
         status: null,
@@ -255,8 +249,14 @@ export default {
   },
   created() {},
   methods: {
-    open(row) {
+    open(row, type) {
       this.visible = true;
+      if (type == 'add') {
+        this.title = '创建';
+        this.form = row;
+        this.getProduceTaskList();
+        return;
+      }
       if (row) {
         this.title = '修改';
         this.detail(row);
@@ -410,28 +410,28 @@ export default {
     confirmChoose(data) {
       let list = [];
       list = data.map((item, index) => {
-          if (item.productCode) {
-            return item;
-          } else {
-            return {
-              productCode: item.code,
-              productName: item.name,
-              // productUnitWeight: item.netWeight,
-              // weightUnit: item.weightUnit,
-              specification: item.specification,
-              brandNo: item.brandNum,
-              unqualifiedQuantity: '',
-              unqualifiedReason: '',
-              produceRoutingId: '',
-              produceRoutingName: '',
-              produceTaskId: '',
-              produceTaskName: ''
-            };
-          }
-        });
+        if (item.productCode) {
+          return item;
+        } else {
+          return {
+            productCode: item.code,
+            productName: item.name,
+            // productUnitWeight: item.netWeight,
+            // weightUnit: item.weightUnit,
+            specification: item.specification,
+            brandNo: item.brandNum,
+            unqualifiedQuantity: '',
+            unqualifiedReason: '',
+            produceRoutingId: '',
+            produceRoutingName: '',
+            produceTaskId: '',
+            produceTaskName: ''
+          };
+        }
+      });
 
       this.form.poList = this.form.poList.concat(list);
-    
+
       this.produceTaskChange();
       this.inputNumber();
     },

+ 1 - 0
src/views/unacceptedProduct/components/edit.vue

@@ -68,6 +68,7 @@
             >
               <el-input
                 v-model.number="scope.row.sumNew"
+                
                 size="small"
                 oninput="value=value.replace(/[^\d]/g,'')"
                 style="width: 100%"

+ 2 - 2
src/views/unacceptedProduct/components/order-search.vue

@@ -8,10 +8,10 @@
   >
     <el-row :gutter="15">
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-        <el-form-item label="工单号:">
+        <el-form-item label="来源编码:">
           <el-input
             clearable
-            v-model="where.workOrderCode"
+            v-model="where.unqualifiedSourceCode"
             placeholder="请输入"
           />
         </el-form-item>

+ 2 - 2
src/views/unacceptedProduct/index.vue

@@ -95,8 +95,8 @@
             align: 'center'
           },
           {
-            prop: 'workOrderCode',
-            label: '工单号',
+            prop: 'unqualifiedSourceCode',
+            label: '来源编码',
             align: 'center'
           },
           {