Explorar o código

merge dev into test: 同步发货收货详情按钮逻辑、自动损耗累加、报工执行人默认修复

xieyong hai 1 mes
pai
achega
65294b8923

+ 3 - 11
src/views/beEntrusted/index.vue

@@ -109,10 +109,7 @@
             type="primary"
             :underline="false"
             @click="receiveGoos(row, 'send')"
-            v-if="
-              row.approvalStatus == 2 &&
-              (row.sendStatus == 3 || row.sendStatus == 4 || row.sendStatus == 10)
-            "
+            v-if="row.approvalStatus == 2"
           >
             发货详情
           </el-link>
@@ -121,11 +118,7 @@
             type="primary"
             :underline="false"
             @click="receiveGoos(row, 'detail')"
-            v-if="
-              row.approvalStatus == 2 &&
-              row.sendStatus != 1 &&
-              row.sendStatus != 5
-            "
+            v-if="row.approvalStatus == 2"
           >
             收货详情
           </el-link>
@@ -422,12 +415,11 @@
           {
             columnKey: 'action',
             label: '操作',
-            width: 180,
+            width: 230,
             align: 'center',
             resizable: false,
             fixed: 'right',
             slot: 'action',
-            showOverflowTooltip: true
           }
         ];
       },

+ 3 - 3
src/views/entrust/components/goodsDetail.vue

@@ -41,7 +41,7 @@
         <el-input
           placeholder=""
           v-model="row.receiveQuantity"
-          :disabled="type == 'receipt' && (itemData.sendStatus == 4 || itemData.sendStatus == 3)"
+          :disabled="(type == 'receipt' && (itemData.sendStatus == 4 || itemData.sendStatus == 3)) || isReceiptDetail"
         >
           <template slot="append">{{ row.measuringUnit }}</template>
         </el-input>
@@ -62,7 +62,7 @@
       </template>
     </ele-pro-table>
 
-    <template v-slot:footer v-if="type != 'detail' && itemData.sendStatus != 4">
+    <template v-slot:footer v-if="type != 'detail' && itemData.sendStatus != 4 && (!isReceiptDetail || type === 'add')">
       <el-button @click="cancel">取消</el-button>
       <el-button @click="rejectReason" type="primary" v-if="type == 'receipt'"
         >驳回</el-button
@@ -231,7 +231,7 @@
             label: '是否收货',
             align: 'center',
             showOverflowTooltip: true,
-            show: this.type == 'receipt' && !this.isReceiptDetail ? true : false
+            show: this.type == 'receipt' && this.isReceiptDetail
           }
         ];
       }

+ 2 - 7
src/views/entrust/index.vue

@@ -139,7 +139,7 @@
             type="primary"
             :underline="false"
             @click="sendGoods(row, 'receipt')"
-            v-if="row.approvalStatus == 2 && (row.sendStatus == 4 || row.sendStatus == 11)"
+            v-if="row.approvalStatus == 2"
           >
             收货详情
           </el-link>
@@ -148,12 +148,7 @@
             type="primary"
             :underline="false"
             @click="sendGoods(row, 'detail')"
-            v-if="
-              row.approvalStatus == 2 &&
-              row.sendStatus != 0 &&
-              row.sendStatus &&
-              row.sendStatus != 5
-            "
+            v-if="row.approvalStatus == 2"
           >
             发货详情
           </el-link>

+ 2 - 4
src/views/produce/components/outsourcing/details.vue

@@ -271,7 +271,7 @@
           type="primary"
           :underline="false"
           @click="sendGoods(row, 'receipt')"
-          v-if="row.approvalStatus == 2 && (row.sendStatus == 4 || row.sendStatus == 11)"
+          v-if="row.approvalStatus == 2"
         >
           收货详情
         </el-link>
@@ -280,9 +280,7 @@
           type="primary"
           :underline="false"
           @click="sendGoods(row, 'detail')"
-          v-if="
-            row.approvalStatus == 2 && (row.totalCount > row.sendOutQuantity)
-          "
+          v-if="row.approvalStatus == 2 "
         >
           发货详情
         </el-link>

+ 63 - 30
src/views/produce/components/workPlan/components/inspectionProjectReport.vue

@@ -430,11 +430,9 @@
             slot: 'sampleQualifiedNumber',
             align: 'center',
             formatter: (row) => {
-              if (row.sampleQualifiedNumber) {
-                return (
-                  row.sampleQualifiedNumber + (this.form.measureUnit || '')
-                );
-              }
+              let value = row.sampleQualifiedNumber || 0;
+              if(Number(value) < 0) value = 0;
+              return (value) + (this.form.measureUnit || '');
             },
             label: '样品合格数',
             showOverflowTooltip: true
@@ -454,9 +452,9 @@
             slot: 'lossNumber',
             align: 'center',
             formatter: (row) => {
-              if (row.lossNumber) {
-                return row.lossNumber + (this.form.measureUnit || '');
-              }
+              let value = row.lossNumber || 0;
+              if(Number(value) < 0) value = 0;
+              return (value) + (this.form.measureUnit || '');
             },
             label: '损耗数(合格品)',
             showOverflowTooltip: true
@@ -770,30 +768,54 @@
             this.form.sampleQualifiedNumber = this.form.sampleQuantity || 0;
             return;
           }
-          const maxNoQualified = newVal.reduce((max, item) => {
-            const val = Number(item.noQualifiedQuantity) || 0;
-            return val > max ? val : max;
-          }, 0);
-          this.$set(this.form, 'sampleNoQualifiedNumber', maxNoQualified);
-          const qualifiedNumber =
-            (Number(this.form.sampleQuantity) || 0) - maxNoQualified;
-          if (qualifiedNumber < 0) {
-            this.$message.warning('样品合格数不能小于0');
-            this.$set(this.form, 'sampleQualifiedNumber', 0);
+          if (this.qms_defaultDisposalType) {
+            // qms_defaultDisposalType为true时,sampleNoQualifiedNumber为下方noQualifiedQuantity累加值,最大为sampleQuantity数
+            const sumNoQualified = newVal.reduce((sum, item) => {
+              return sum + (Number(item.noQualifiedQuantity) || 0);
+            }, 0);
+            const sampleQuantity = Number(this.form.sampleQuantity) || 0;
+            this.$set(
+              this.form,
+              'sampleNoQualifiedNumber',
+              Math.min(sumNoQualified, sampleQuantity)
+            );
+            const qualifiedNumber = sampleQuantity - (Number(this.form.sampleNoQualifiedNumber) || 0);
+            if (qualifiedNumber < 0) {
+              this.$message.warning('样品合格数不能小于0');
+              this.$set(this.form, 'sampleQualifiedNumber', 0);
+            } else {
+              this.$set(this.form, 'sampleQualifiedNumber', qualifiedNumber);
+            }
           } else {
-            this.$set(this.form, 'sampleQualifiedNumber', qualifiedNumber);
+            const maxNoQualified = newVal.reduce((max, item) => {
+              const val = Number(item.noQualifiedQuantity) || 0;
+              return val > max ? val : max;
+            }, 0);
+            this.$set(this.form, 'sampleNoQualifiedNumber', maxNoQualified);
+            const qualifiedNumber =
+              (Number(this.form.sampleQuantity) || 0) - maxNoQualified;
+            if (qualifiedNumber < 0) {
+              this.$message.warning('样品合格数不能小于0');
+              this.$set(this.form, 'sampleQualifiedNumber', 0);
+            } else {
+              this.$set(this.form, 'sampleQualifiedNumber', qualifiedNumber);
+            }
           }
 
-          // 损耗数逻辑:从下方 lossNumberUnqualified 取最大值,lossNumberUnqualified = 总数量 - lossNumber
+          // 损耗数逻辑:qms_defaultDisposalType为true时获取下方lossNumberUnqualified累加值,
+          // 如果累加值大于sampleQuantity数,取最大sampleQuantity数,lossNumberUnqualified = 总数量 - lossNumber
           if(this.qms_defaultDisposalType) {
-            const maxLossNumberUnqualified = newVal.reduce((max, item) => {
+            let maxLossNumberUnqualified = newVal.reduce((max, item) => {
               const val = Number(item.lossNumberUnqualified) || 0;
-              return val > max ? val : max;
+              return val + max;
             }, 0);
-            this.$set(this.form, 'lossNumberUnqualified', maxLossNumberUnqualified);
             const lossNumber = Number(this.form.lossNumber) || 0;
             const sampleQuantity = Number(this.form.sampleQuantity) || 0;
             const maxLossNumber = sampleQuantity - maxLossNumberUnqualified;
+            if(maxLossNumberUnqualified > sampleQuantity) {
+              maxLossNumberUnqualified = sampleQuantity;
+            }
+            this.$set(this.form, 'lossNumberUnqualified', maxLossNumberUnqualified);
             if(lossNumber > maxLossNumber) {
               this.$set(this.form, 'lossNumber', maxLossNumber);
             }
@@ -967,13 +989,24 @@
           });
         }
         // 样品数变化后,重新计算合格数/不合格数
-        this.form.sampleNoQualifiedNumber = this.tableData.length
-          ? this.tableData.reduce(
-              (max, item) =>
-                Math.max(max, Number(item.noQualifiedQuantity) || 0),
-              0
-            )
-          : 0;
+        if (this.qms_defaultDisposalType) {
+          // qms_defaultDisposalType为true时,sampleNoQualifiedNumber为下方noQualifiedQuantity累加值,最大为sampleQuantity数
+          const sumNoQualified = this.tableData.reduce((sum, item) => {
+            return sum + (Number(item.noQualifiedQuantity) || 0);
+          }, 0);
+          this.form.sampleNoQualifiedNumber = Math.min(
+            sumNoQualified,
+            this.form.sampleQuantity
+          );
+        } else {
+          this.form.sampleNoQualifiedNumber = this.tableData.length
+            ? this.tableData.reduce(
+                (max, item) =>
+                  Math.max(max, Number(item.noQualifiedQuantity) || 0),
+                0
+              )
+            : 0;
+        }
         this.form.sampleQualifiedNumber =
           this.form.sampleQuantity - this.form.sampleNoQualifiedNumber;
       },

+ 10 - 1
src/views/produce/components/workPlan/edit.vue

@@ -1297,7 +1297,16 @@
           console.log(this.form, 'this.form');
           this.form.executeUserIdList = this.form.executeUserId
             ? this.form.executeUserId.split(',')
-            : [];
+            : [this.form.jobList[0].leaderUserId || ''];
+          if (
+            (!this.form.executeUserName ||
+              this.form.executeUserName.split(',').length !==
+                this.form.executeUserIdList.length) &&
+            this.$store.state.user.info.userId ==
+              this.form.executeUserIdList[0]
+          ) {
+            this.form.executeUserName = this.form.jobList[0].leaderUserName || '';
+          }
 
           this.form.qualityIdList = this.form.qualityId
             ? this.form.qualityId.split(',')