Browse Source

配料计划

quwangxin 2 years ago
parent
commit
73860efba6

+ 3 - 3
src/api/materialPlan/index.js

@@ -3,8 +3,8 @@ import request from '@/utils/request';
 /**
  * 列表
  */
-export async function getList (params) {
-  const res = await request.get('/aps/batchingplan/page', { params });
+export async function getList (data) {
+  const res = await request.post('/aps/batchingplan/page', data);
   if (res.data.code == 0) {
     return res.data.data;
   }
@@ -55,7 +55,7 @@ export async function getById (id) {
  * 发布信息返显
  */
 export async function getReleaseInfoById (id) {
-  const res = await request.get(`/aps/productionplan/getReleaseInfoById/${id}`);
+  const res = await request.get(`/aps/batchingplan/getReleaseInfoById/${id}`);
   if (res.data.code == 0) {
     return res.data.data;
   }

+ 4 - 3
src/views/materialPlan/components/materialPlan-search.vue

@@ -43,7 +43,6 @@
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
         <el-form-item label="计划状态:" label-width="80px">
           <el-select
-            clearable
             v-model="where.statusList"
             placeholder="请选择"
             class="w100"
@@ -137,7 +136,7 @@
       activeName: {
         handler () {
           if (this.activeName) {
-            this.where.status = this.statusOpt[this.activeName][0].value;
+            this.where.statusList = this.statusOpt[this.activeName][0].value;
             this.search();
           }
         },
@@ -148,7 +147,7 @@
     methods: {
       /* 搜索 */
       search () {
-        const where = this.where;
+        const where = { ...this.where };
 
         for (const key in where) {
           if (Array.isArray(where[key]) && where[key].length) {
@@ -160,6 +159,8 @@
         delete where.deliveryTime;
         delete where.createTime;
 
+        where.statusList = where.statusList.split(',');
+
         this.$emit('search', where);
       },
       /*  重置 */

+ 18 - 10
src/views/materialPlan/components/plan-edit-dialog.vue

@@ -9,6 +9,7 @@
   >
     <el-form
       :model="formData"
+      ref="formRef"
       label-width="120px"
       class="ele-body"
       :rules="rules"
@@ -137,6 +138,7 @@
           categoryId: '',
           unit: '',
           brandNo: '',
+          model: '',
           materialCode: '',
           materialName: ''
         }
@@ -156,23 +158,29 @@
         this.formData.categoryId = row.id;
         this.formData.materialCode = row.code;
         this.formData.brandNo = row.brandNum;
+        this.formData.model = row.modelType;
         this.formData.unit = row.measuringUnit;
       },
-      async confirm () {
-        const request = this.type == 'add' ? save : update;
+      confirm () {
+        this.$refs.formRef.validate(async (value) => {
+          if (value) {
+            const request = this.type == 'add' ? save : update;
 
-        if (this.type == 'add') {
-          this.formData.produceVersionId = '1684162877351866369';
-          this.formData.produceVersionName = '挤压合金生产';
-        }
-        await request(this.formData);
-        this.$message.success('保存成功!');
-        this.$emit('success');
-        this.cancel();
+            if (this.type == 'add') {
+              this.formData.produceVersionId = '1684162877351866369';
+              this.formData.produceVersionName = '挤压合金生产';
+            }
+            await request(this.formData);
+            this.$message.success('保存成功!');
+            this.$emit('success');
+            this.cancel();
+          }
+        });
       },
       cancel () {
         this.visible = false;
         this.formData = {};
+        this.$refs.formRef.resetFields();
       }
 
       // chooseVersion () {

+ 22 - 48
src/views/materialPlan/components/plan-view.vue

@@ -30,16 +30,12 @@
         {{ tableData.length }}条
       </div>
       <div class="items">
-        <span class="label">累计成型数量</span>
-        {{ sumData.formingNum }}pcs
-      </div>
-      <div class="items">
-        <span class="label">累计成型重量</span>
-        {{ sumData.formingWeight }}{{ infoData.productUnitWeight }}
+        <span class="label">累计生产重量</span>
+        {{ sumData.productNum }}{{ infoData.unit }}
       </div>
       <div class="items">
         <span class="label">设备数量</span>
-        {{ sumData.equipment }}
+        {{ sumData.equipment }}台
       </div>
       <!-- <div class="items">
         <span class="label">成型剂需求</span>
@@ -54,28 +50,15 @@
       <el-table :data="tableData">
         <el-table-column type="index" label="序号"></el-table-column>
         <el-table-column label="工单号" prop="code"></el-table-column>
-        <el-table-column label="成型数量" prop="">
-          <template v-slot="{ row, $index }">
-            <el-form-item
-              :prop="`tableData.${$index}.formingNum`"
-              :rules="rule.formingNum"
-            >
-              <el-input
-                type="number"
-                v-model.number="row.formingNum"
-              ></el-input>
-            </el-form-item>
-          </template>
-        </el-table-column>
-        <el-table-column label="成型重量" prop="">
+        <el-table-column label="生产重量" prop="">
           <template v-slot="{ row, $index }">
             <el-form-item
-              :prop="`tableData.${$index}.formingWeight`"
-              :rules="rule.formingWeight"
+              :prop="`tableData.${$index}.productNum`"
+              :rules="rule.productNum"
             >
               <el-input
                 type="number"
-                v-model.number="row.formingWeight"
+                v-model.number="row.productNum"
               ></el-input>
             </el-form-item>
           </template>
@@ -102,13 +85,13 @@
         <el-table-column label="班次" prop="">
           <template v-slot="{ row, $index }">
             <el-form-item
-              :prop="`tableData.${$index}.classeId`"
-              :rules="rule.classeId"
+              :prop="`tableData.${$index}.classesId`"
+              :rules="rule.classesId"
             >
               <classesSelect
                 ref="classesSelectRef"
                 :init="false"
-                v-model="row.classeId"
+                v-model="row.classesId"
                 @selfChange="(val) => handleClasseChange(val, row)"
               />
             </el-form-item>
@@ -181,16 +164,13 @@
         deleteList: [], //已保存删除项
         tableData: [],
         rule: {
-          formingNum: [
+          productNum: [
             { required: true, message: '请输入成型数量', trigger: 'blur' }
           ],
-          formingWeight: [
-            { required: true, message: '请输入成型重量', trigger: 'blur' }
-          ],
           planStartTime: [
             { required: true, message: '请选择开始日期', trigger: 'blur' }
           ],
-          classeId: [
+          classesId: [
             { required: true, message: '请选择班次', trigger: 'change' }
           ]
         },
@@ -232,19 +212,16 @@
     },
     computed: {
       sumData () {
-        let formingNum = 0;
-        let formingWeight = 0;
+        let productNum = 0;
         let equi = new Set();
         this.tableData.forEach((ele) => {
-          formingNum += +ele.formingNum || 0;
-          formingWeight += +ele.formingWeight || 0;
+          productNum += +ele.productNum || 0;
 
           equi.add(ele.deviceId);
         });
 
         return {
-          formingNum,
-          formingWeight: formingWeight.toFixed(2),
+          productNum,
           equipment: equi.size
         };
       }
@@ -297,7 +274,7 @@
                   } else {
                     this.$message.error('发布失败,请重新发布!');
                   }
-                  this.$router.go(-1);
+                  this.$router.back();
                 } catch (error) {
                   console.error(error);
                 }
@@ -341,7 +318,7 @@
       async equipmentSelect (list) {
         for (const pre of list) {
           const code = await getCode('product_order_code');
-          // classeId	班次id		false
+          // classesId	班次id		false
           // classeName	班次名称		false
           // code	工单号		false
           // deviceCode	设备编码		false
@@ -349,15 +326,14 @@
           // deviceName	设备名称		false
           // executorId	执行人id		false
           // executorName	执行人名称		false
-          // formingNum	成型数量		false
           // generativeRules	生成规则		false
           // planCompleteTime	计划完成时间		false
           // planStartTime	计划开始时间		false
-          // productionPlanCode	生产计划号		false
-          // productionPlanId	生产计划id		false
+          // batchingPlanId	生产计划号		false
+          // batchingPlanCode	生产计划id		false
           // workOrderType	工单类型
           this.tableData.push({
-            classeId: pre.classeId,
+            classesId: pre.classesId,
             code: code,
             deviceCode: pre.code,
             deviceId: pre.id,
@@ -367,10 +343,8 @@
             planCompleteTime: '', //当班下班时间,
             planStartTime: pre.planCompleteDate,
             planCompleteDate: pre.planCompleteDate,
-            formingNum: pre.formingNum,
-            formingWeight: '',
-            productionPlanId: this.infoData.id,
-            productionPlanCode: this.infoData.code,
+            batchingPlanId: this.infoData.id,
+            batchingPlanCode: this.infoData.code,
             produceVersionId: this.infoData.produceVersionId
           });
         }

+ 17 - 41
src/views/materialPlan/index.vue

@@ -120,7 +120,6 @@
             type: 'index',
             width: 55,
             align: 'center',
-            showOverflowTooltip: true,
             fixed: 'left'
           },
           {
@@ -128,30 +127,22 @@
             prop: 'code',
             action: 'code',
             label: '计划编号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'materialCode',
             label: '编号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'materialName',
             label: '物料名称',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'brandNo',
             label: '牌号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'num',
@@ -159,18 +150,14 @@
               this.activeName === 'second'
                 ? '计划生产重量(KG)'
                 : '生产重量(KG)',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
-                  prop: 'code',
+                  prop: 'releaseTime',
                   label: '已生产重量(KG)',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
@@ -191,18 +178,14 @@
           {
             prop: 'deliveryTime',
             label: '要求交付日期',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
                   prop: 'completeTime',
                   label: '实际完成时间',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
@@ -210,8 +193,6 @@
             prop: 'status',
             label: '状态',
             align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110,
             formatter: (row) => {
               const obj = this.statusOpt[this.activeName].find(
                 (i) => i.value == row.status
@@ -222,25 +203,19 @@
           {
             prop: 'createUserName',
             label: '创建人',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'createTime',
             label: '创建时间',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
-                  prop: 'code',
+                  prop: 'releaseTime',
                   label: '发布时间',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
@@ -253,8 +228,7 @@
                   align: 'center',
                   resizable: false,
                   fixed: 'right',
-                  slot: 'action',
-                  showOverflowTooltip: true
+                  slot: 'action'
                 }
               ]
             : [])
@@ -296,7 +270,9 @@
 
       /* 刷新表格 */
       reload (where = {}) {
-        this.$refs.table.reload({ page: 1, where });
+        this.$nextTick(() => {
+          this.$refs.table.reload({ page: 1, where });
+        });
       },
 
       goDetail (row) {

+ 13 - 18
src/views/materialPlan/workOrderPublish.vue

@@ -9,11 +9,11 @@
         <el-descriptions-item label="计划编号">{{
           infoData.code
         }}</el-descriptions-item>
-        <el-descriptions-item label="计划类型">{{
-          planType[infoData.planType]
+        <el-descriptions-item label="物料名称">{{
+          infoData.materialName
         }}</el-descriptions-item>
-        <el-descriptions-item label="产品编码">{{
-          infoData.productCode
+        <el-descriptions-item label="物料编码">{{
+          infoData.materialCode
         }}</el-descriptions-item>
         <el-descriptions-item label="牌号">{{
           infoData.brandNo
@@ -30,20 +30,15 @@
         <el-descriptions-item label="工艺路线版本">{{
           infoData.routingVersion
         }}</el-descriptions-item>
-        <el-descriptions-item label="产品数量"
-          >{{ infoData.productNum }}PCS</el-descriptions-item
-        >
-        <el-descriptions-item label="产品重量"
-          >{{ infoData.productWeight
-          }}{{ infoData.productUnitWeight }}</el-descriptions-item
-        >
-        <el-descriptions-item label="要求成型数量"
-          >{{ infoData.requiredFormingNum }}PCS</el-descriptions-item
-        >
-        <el-descriptions-item label="要求成型重量"
-          >{{ infoData.requiredFormingWeight
-          }}{{ infoData.productUnitWeight }}</el-descriptions-item
-        >
+        <el-descriptions-item label="生产重量">{{
+          infoData.num
+        }}</el-descriptions-item>
+        <el-descriptions-item label="要求交付日期">{{
+          infoData.deliveryTime
+        }}</el-descriptions-item>
+        <el-descriptions-item label="创建时间">{{
+          infoData.createTime
+        }}</el-descriptions-item>
       </el-descriptions>
 
       <!-- <div class="rules-box">

+ 2 - 2
src/views/productionPlan/components/plan-view.vue

@@ -39,7 +39,7 @@
       </div>
       <div class="items">
         <span class="label">设备数量</span>
-        {{ sumData.equipment }}
+        {{ sumData.equipment }}
       </div>
       <!-- <div class="items">
         <span class="label">成型剂需求</span>
@@ -297,7 +297,7 @@
                   } else {
                     this.$message.error('发布失败,请重新发布!');
                   }
-                  this.$router.go(-1);
+                  this.$router.back();
                 } catch (error) {
                   console.error(error);
                 }

+ 1 - 6
src/views/productionPlan/components/productionPlan-search.vue

@@ -50,12 +50,7 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="计划状态:" label-width="80px">
-          <el-select
-            clearable
-            v-model="where.status"
-            placeholder="请选择"
-            class="w100"
-          >
+          <el-select v-model="where.status" placeholder="请选择" class="w100">
             <el-option
               v-for="item in statusOpt[activeName]"
               :label="item.label"