Przeglądaj źródła

导入消耗量为负数的处理

vian 5 lat temu
rodzic
commit
97c0d16536
1 zmienionych plików z 30 dodań i 1 usunięć
  1. 30 1
      modules/ration_repository/models/ration_item.js

+ 30 - 1
modules/ration_repository/models/ration_item.js

@@ -21,6 +21,35 @@ import stdgljutil  from "../../../public/cache/std_glj_type_util";
 
 var rationItemDAO = function(){};
 
+// 由于导入excel时,excel数据存在负的工程量,所以导入后一些定额人材机的消耗量可能为负,需要处理
+rationItemDAO.prototype.handleMinusQuantity = async function() {
+    const updateTask = [];
+    const repIDs = new Set();
+    const rations = await rationItemModel.find({'rationGljList.consumeAmt': {$lt: 0}}).lean();
+    for (const ration of rations) {
+        repIDs.add(ration.rationRepId);
+        const rationGLJList = [];
+        for (const rGLJ of ration.rationGljList) {
+            rationGLJList.push({
+                gljId: rGLJ.gljId,
+                consumeAmt: Math.abs(rGLJ.consumeAmt),
+                proportion: rGLJ.proportion
+            });
+        }
+        updateTask.push({
+            updateOne: {
+                filter: { ID: ration.ID },
+                update: { $set: { rationGljList: rationGLJList } }
+            }
+        });
+    }
+    if (updateTask.length) {
+        await rationItemModel.bulkWrite(updateTask);
+    }
+    console.log(`repIDs`);
+    console.log(repIDs);
+};
+
 rationItemDAO.prototype.prepareInitData = async function (rationRepId) {
     // 定额库
     const libTask = stdRationLibModel.findOne({ID: rationRepId}, '-_id ID dispName gljLib');
@@ -743,7 +772,7 @@ rationItemDAO.prototype.batchAddFromExcel = async function(rationRepId, data) {
             }
             const tmpRationGlj = {
                 gljId: stdGLJList[tmp[1]],
-                consumeAmt: tmp[4],
+                consumeAmt: Math.abs(tmp[4]),
                 proportion: 0,
             };
             lastData.rationGljList.push(tmpRationGlj);