Преглед изворни кода

解决计量数量和保存舍入误差问题

huang_an пре 2 година
родитељ
комит
c4c8d2bda0

+ 31 - 11
src/views/bpm/handleTask/components/productionWarehousing/productionWarehousing.vue

@@ -322,7 +322,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column
@@ -1373,7 +1373,12 @@
           outInNum: Number(outInNum > 0 ? outInNum : 0),
           univalence: Number(univalence == undefined ? 0 : univalence)
         };
-        return total.PackingCount * total.outInNum * total.univalence;
+        return Number(
+          this.$math.format(
+            total.PackingCount * total.outInNum * total.univalence,
+            14
+          )
+        );
       },
       handleRowUnit(row) {
         return row.measuringUnit;
@@ -1738,11 +1743,10 @@
               let arr = this.warehousingMaterialList.map((item) => {
                 console.log(item, 'item');
                 return {
-                  netWeight: item.netWeight,
-                  num: item.num,
+                  netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                  num: item.num > 0 ? item.num : 0,
                   manualBatchNo: item.manualBatchNo,
                   batchNo: item.batchNo,
-                  code: item.productCode,
                   categoryId:
                     this.formData.bizType == 2
                       ? item.categoryId
@@ -1750,21 +1754,37 @@
                         : item.id
                       : item.id,
                   count:
-                    parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                  minPackingCount: item.minPackingCount,
-                  packingCount: item.outInNum,
-                  price: item.univalence,
+                    item.outInNum > 0 && item.minPackingCount > 0
+                      ? this.$math.format(
+                          parseInt(item.outInNum) *
+                            parseInt(item.minPackingCount),
+                          14
+                        )
+                      : 0,
+                  minPackingCount:
+                    item.minPackingCount > 0 ? item.minPackingCount : 0,
+                  packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                  price: item.univalence > 0 ? item.univalence : 0,
                   outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                   position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                   remark: '',
                   pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                   pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                   totalMoney:
-                    item.outInNum * item.minPackingCount * item.univalence,
+                    item.outInNum > 0 &&
+                    item.minPackingCount > 0 &&
+                    item.univalence > 0
+                      ? this.$math.format(
+                          item.outInNum *
+                            item.minPackingCount *
+                            item.univalence,
+                          14
+                        )
+                      : 0,
                   weightUnit: item.weightUnit,
                   customCode: item.customCode,
                   supplierCode: item.supplierCode,
-                  weight: item.weight,
+                  weight: item.weight > 0 ? item.weight : 0,
                   houseList: [
                     `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`
                   ]

+ 31 - 11
src/views/bpm/handleTask/components/purchaseOrder/invoice/procurementStorage.vue

@@ -276,7 +276,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column
@@ -1325,7 +1325,12 @@
           outInNum: Number(outInNum > 0 ? outInNum : 0),
           univalence: Number(univalence == undefined ? 0 : univalence)
         };
-        return total.PackingCount * total.outInNum * total.univalence;
+        return Number(
+          this.$math.format(
+            total.PackingCount * total.outInNum * total.univalence,
+            14
+          )
+        );
       },
       handleRowUnit(row) {
         return row.measuringUnit;
@@ -1690,11 +1695,10 @@
               let arr = this.warehousingMaterialList.map((item) => {
                 console.log(item, 'item');
                 return {
-                  netWeight: item.netWeight,
-                  num: item.num,
+                  netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                  num: item.num > 0 ? item.num : 0,
                   manualBatchNo: item.manualBatchNo,
                   batchNo: item.batchNo,
-                  code: item.productCode,
                   categoryId:
                     this.formData.bizType == 2
                       ? item.categoryId
@@ -1702,21 +1706,37 @@
                         : item.id
                       : item.id,
                   count:
-                    parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                  minPackingCount: item.minPackingCount,
-                  packingCount: item.outInNum,
-                  price: item.univalence,
+                    item.outInNum > 0 && item.minPackingCount > 0
+                      ? this.$math.format(
+                          parseInt(item.outInNum) *
+                            parseInt(item.minPackingCount),
+                          14
+                        )
+                      : 0,
+                  minPackingCount:
+                    item.minPackingCount > 0 ? item.minPackingCount : 0,
+                  packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                  price: item.univalence > 0 ? item.univalence : 0,
                   outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                   position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                   remark: '',
                   pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                   pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                   totalMoney:
-                    item.outInNum * item.minPackingCount * item.univalence,
+                    item.outInNum > 0 &&
+                    item.minPackingCount > 0 &&
+                    item.univalence > 0
+                      ? this.$math.format(
+                          item.outInNum *
+                            item.minPackingCount *
+                            item.univalence,
+                          14
+                        )
+                      : 0,
                   weightUnit: item.weightUnit,
                   customCode: item.customCode,
                   supplierCode: item.supplierCode,
-                  weight: item.weight,
+                  weight: item.weight > 0 ? item.weight : 0,
                   houseList: [
                     `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`
                   ]

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/invoice/procurementWarehousing.vue

@@ -313,7 +313,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column

+ 34 - 12
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/inboundDetails.vue

@@ -249,9 +249,11 @@
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
                   <span v-if="formData.isStorage">{{
-                    row.packingCount * row.minPackingCount
+                    $math.format(row.packingCount * row.minPackingCount, 14)
+                  }}</span>
+                  <span v-else>{{
+                    $math.format(row.minPackingCount * row.outInNum, 14)
                   }}</span>
-                  <span v-else>{{ row.minPackingCount * row.outInNum }}</span>
                 </template>
               </el-table-column>
               <el-table-column
@@ -1327,7 +1329,12 @@
           outInNum: Number(outInNum >= 0 ? outInNum : 0),
           univalence: Number(univalence >= 0 ? univalence : 0)
         };
-        return total.PackingCount * total.outInNum * total.univalence;
+        return Number(
+          this.$math.format(
+            total.PackingCount * total.outInNum * total.univalence,
+            14
+          )
+        );
       },
       handleRowUnit(row) {
         return row.measuringUnit;
@@ -1794,11 +1801,10 @@
               let arr = this.warehousingMaterialList.map((item) => {
                 console.log(item, 'item');
                 return {
-                  netWeight: item.netWeight,
-                  num: item.num,
+                  netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                  num: item.num > 0 ? item.num : 0,
                   manualBatchNo: item.manualBatchNo,
                   batchNo: item.batchNo,
-                  code: item.productCode,
                   categoryId:
                     this.formData.bizType == 2
                       ? item.categoryId
@@ -1806,21 +1812,37 @@
                         : item.id
                       : item.id,
                   count:
-                    parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                  minPackingCount: item.minPackingCount,
-                  packingCount: item.outInNum,
-                  price: item.univalence,
+                    item.outInNum > 0 && item.minPackingCount > 0
+                      ? this.$math.format(
+                          parseInt(item.outInNum) *
+                            parseInt(item.minPackingCount),
+                          14
+                        )
+                      : 0,
+                  minPackingCount:
+                    item.minPackingCount > 0 ? item.minPackingCount : 0,
+                  packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                  price: item.univalence > 0 ? item.univalence : 0,
                   outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                   position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                   remark: '',
                   pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                   pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                   totalMoney:
-                    item.outInNum * item.minPackingCount * item.univalence,
+                    item.outInNum > 0 &&
+                    item.minPackingCount > 0 &&
+                    item.univalence > 0
+                      ? this.$math.format(
+                          item.outInNum *
+                            item.minPackingCount *
+                            item.univalence,
+                          14
+                        )
+                      : 0,
                   weightUnit: item.weightUnit,
                   customCode: item.customCode,
                   supplierCode: item.supplierCode,
-                  weight: item.weight,
+                  weight: item.weight > 0 ? item.weight : 0,
                   houseList: [
                     `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`
                   ]

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/innerFillWeight.vue

@@ -284,7 +284,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column

+ 57 - 21
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/interiorProductionStorage.vue

@@ -257,9 +257,11 @@
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
                   <span v-if="formData.isStorage">{{
-                    row.packingCount * row.minPackingCount
+                    $math.format(row.packingCount * row.minPackingCount, 14)
+                  }}</span>
+                  <span v-else>{{
+                    $math.format(row.minPackingCount * row.outInNum, 14)
                   }}</span>
-                  <span v-else>{{ row.minPackingCount * row.outInNum }}</span>
                 </template>
               </el-table-column>
               <el-table-column
@@ -1492,7 +1494,12 @@
           outInNum: Number(outInNum > 0 ? outInNum : 0),
           univalence: Number(univalence > 0 ? univalence : 0)
         };
-        return total.PackingCount * total.outInNum * total.univalence;
+        return Number(
+          this.$math.format(
+            total.PackingCount * total.outInNum * total.univalence,
+            14
+          )
+        );
       },
       handleRowUnit(row) {
         return row.measuringUnit;
@@ -2039,11 +2046,10 @@
               let arr = this.warehousingMaterialList.map((item) => {
                 console.log(item, 'item');
                 return {
-                  netWeight: item.netWeight,
-                  num: item.num,
+                  netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                  num: item.num > 0 ? item.num : 0,
                   manualBatchNo: item.manualBatchNo,
                   batchNo: item.batchNo,
-                  code: item.productCode,
                   categoryId:
                     this.formData.bizType == 2
                       ? item.categoryId
@@ -2051,21 +2057,37 @@
                         : item.id
                       : item.id,
                   count:
-                    parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                  minPackingCount: item.minPackingCount,
-                  packingCount: item.outInNum,
-                  price: item.univalence,
+                    item.outInNum > 0 && item.minPackingCount > 0
+                      ? this.$math.format(
+                          parseInt(item.outInNum) *
+                            parseInt(item.minPackingCount),
+                          14
+                        )
+                      : 0,
+                  minPackingCount:
+                    item.minPackingCount > 0 ? item.minPackingCount : 0,
+                  packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                  price: item.univalence > 0 ? item.univalence : 0,
                   outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                   position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                   remark: '',
                   pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                   pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                   totalMoney:
-                    item.outInNum * item.minPackingCount * item.univalence,
+                    item.outInNum > 0 &&
+                    item.minPackingCount > 0 &&
+                    item.univalence > 0
+                      ? this.$math.format(
+                          item.outInNum *
+                            item.minPackingCount *
+                            item.univalence,
+                          14
+                        )
+                      : 0,
                   weightUnit: item.weightUnit,
                   customCode: item.customCode,
                   supplierCode: item.supplierCode,
-                  weight: item.weight,
+                  weight: item.weight > 0 ? item.weight : 0,
                   houseList: [
                     `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`
                   ]
@@ -2110,32 +2132,46 @@
             let arr = this.warehousingMaterialList.map((item) => {
               console.log(item, 'item');
               return {
-                netWeight: item.netWeight,
-                num: item.num,
+                netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                num: item.num > 0 ? item.num : 0,
                 manualBatchNo: item.manualBatchNo,
                 batchNo: item.batchNo,
-                code: item.productCode,
                 categoryId:
                   this.formData.bizType == 2
                     ? item.categoryId
                       ? item.categoryId
                       : item.id
                     : item.id,
-                count: parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                minPackingCount: item.minPackingCount,
-                packingCount: item.outInNum,
-                price: item.univalence,
+                count:
+                  item.outInNum > 0 && item.minPackingCount > 0
+                    ? this.$math.format(
+                        parseInt(item.outInNum) *
+                          parseInt(item.minPackingCount),
+                        14
+                      )
+                    : 0,
+                minPackingCount:
+                  item.minPackingCount > 0 ? item.minPackingCount : 0,
+                packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                price: item.univalence > 0 ? item.univalence : 0,
                 outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                 position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                 remark: '',
                 pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                 pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                 totalMoney:
-                  item.outInNum * item.minPackingCount * item.univalence,
+                  item.outInNum > 0 &&
+                  item.minPackingCount > 0 &&
+                  item.univalence > 0
+                    ? this.$math.format(
+                        item.outInNum * item.minPackingCount * item.univalence,
+                        14
+                      )
+                    : 0,
                 weightUnit: item.weightUnit,
                 customCode: item.customCode,
                 supplierCode: item.supplierCode,
-                weight: item.weight
+                weight: item.weight > 0 ? item.weight : 0
               };
             });
             arr.forEach((item) => {

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/interiorProductionStorageQuality.vue

@@ -281,7 +281,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column

+ 57 - 21
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/interiorStorageToOutsourcing.vue

@@ -245,9 +245,11 @@
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
                   <span v-if="formData.isStorage">{{
-                    row.packingCount * row.minPackingCount
+                    $math.format(row.packingCount * row.minPackingCount, 14)
+                  }}</span>
+                  <span v-else>{{
+                    $math.format(row.minPackingCount * row.outInNum, 14)
                   }}</span>
-                  <span v-else>{{ row.minPackingCount * row.outInNum }}</span>
                 </template>
               </el-table-column>
               <el-table-column
@@ -1457,7 +1459,12 @@
           outInNum: Number(outInNum > 0 ? outInNum : 0),
           univalence: Number(univalence > 0 ? univalence : 0)
         };
-        return total.PackingCount * total.outInNum * total.univalence;
+        return Number(
+          this.$math.format(
+            total.PackingCount * total.outInNum * total.univalence,
+            14
+          )
+        );
       },
       handleRowUnit(row) {
         return row.measuringUnit;
@@ -2005,11 +2012,10 @@
               let arr = this.warehousingMaterialList.map((item) => {
                 console.log(item, 'item');
                 return {
-                  netWeight: item.netWeight,
-                  num: item.num,
+                  netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                  num: item.num > 0 ? item.num : 0,
                   manualBatchNo: item.manualBatchNo,
                   batchNo: item.batchNo,
-                  code: item.productCode,
                   categoryId:
                     this.formData.bizType == 2
                       ? item.categoryId
@@ -2017,21 +2023,37 @@
                         : item.id
                       : item.id,
                   count:
-                    parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                  minPackingCount: item.minPackingCount,
-                  packingCount: item.outInNum,
-                  price: item.univalence,
+                    item.outInNum > 0 && item.minPackingCount > 0
+                      ? this.$math.format(
+                          parseInt(item.outInNum) *
+                            parseInt(item.minPackingCount),
+                          14
+                        )
+                      : 0,
+                  minPackingCount:
+                    item.minPackingCount > 0 ? item.minPackingCount : 0,
+                  packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                  price: item.univalence > 0 ? item.univalence : 0,
                   outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                   position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                   remark: '',
                   pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                   pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                   totalMoney:
-                    item.outInNum * item.minPackingCount * item.univalence,
+                    item.outInNum > 0 &&
+                    item.minPackingCount > 0 &&
+                    item.univalence > 0
+                      ? this.$math.format(
+                          item.outInNum *
+                            item.minPackingCount *
+                            item.univalence,
+                          14
+                        )
+                      : 0,
                   weightUnit: item.weightUnit,
                   customCode: item.customCode,
                   supplierCode: item.supplierCode,
-                  weight: item.weight,
+                  weight: item.weight > 0 ? item.weight : 0,
                   houseList: [
                     `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`
                   ]
@@ -2076,32 +2098,46 @@
             let arr = this.warehousingMaterialList.map((item) => {
               console.log(item, 'item');
               return {
-                netWeight: item.netWeight,
-                num: item.num,
+                netWeight: item.netWeight > 0 ? item.netWeight : 0,
+                num: item.num > 0 ? item.num : 0,
                 manualBatchNo: item.manualBatchNo,
                 batchNo: item.batchNo,
-                code: item.productCode,
                 categoryId:
                   this.formData.bizType == 2
                     ? item.categoryId
                       ? item.categoryId
                       : item.id
                     : item.id,
-                count: parseInt(item.outInNum) * parseInt(item.minPackingCount),
-                minPackingCount: item.minPackingCount,
-                packingCount: item.outInNum,
-                price: item.univalence,
+                count:
+                  item.outInNum > 0 && item.minPackingCount > 0
+                    ? this.$math.format(
+                        parseInt(item.outInNum) *
+                          parseInt(item.minPackingCount),
+                        14
+                      )
+                    : 0,
+                minPackingCount:
+                  item.minPackingCount > 0 ? item.minPackingCount : 0,
+                packingCount: item.outInNum > 0 ? item.outInNum : 0,
+                price: item.univalence > 0 ? item.univalence : 0,
                 outInDetailRecordAddPOList: item.warehouseLedgerDetails,
                 position: `${item.warehouseName}-${item.areaName}-${item.shelfCode}-${item.cargoSpaceCode}`,
                 remark: '',
                 pathIds: `${item.warehouseId},${item.areaId},${item.shelfId},${item.cargoSpaceId}`,
                 pathName: `${item.warehouseName},${item.areaName},${item.shelfCode},${item.cargoSpaceCode}`,
                 totalMoney:
-                  item.outInNum * item.minPackingCount * item.univalence,
+                  item.outInNum > 0 &&
+                  item.minPackingCount > 0 &&
+                  item.univalence > 0
+                    ? this.$math.format(
+                        item.outInNum * item.minPackingCount * item.univalence,
+                        14
+                      )
+                    : 0,
                 weightUnit: item.weightUnit,
                 customCode: item.customCode,
                 supplierCode: item.supplierCode,
-                weight: item.weight
+                weight: item.weight > 0 ? item.weight : 0
               };
             });
             arr.forEach((item) => {

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/interiorStorageToOutsourcingQuality.vue

@@ -281,7 +281,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/outerFillWeight.vue

@@ -284,7 +284,7 @@
               </el-table-column>
               <el-table-column label="计量数量" prop="counts">
                 <template slot-scope="{ row, $index }">
-                  {{ row.minPackingCount * row.outInNum }}
+                  {{ $math.format(row.minPackingCount * row.outInNum, 14) }}
                 </template>
               </el-table-column>
               <el-table-column