Browse Source

定额库编辑器导入内部数据,重复则更新相关字段

zhongzewei 6 years ago
parent
commit
91336adb97

+ 1 - 0
modules/ration_repository/controllers/ration_repository_controller.js

@@ -205,6 +205,7 @@ class RationRepositoryController extends baseController {
                 response.json(responseData);
             }
             catch (error){
+                console.log(error);
                 if(uploadFullName && fs.existsSync(uploadFullName)){
                     fs.unlink(uploadFullName);
                 }

+ 19 - 0
modules/ration_repository/models/ration_item.js

@@ -855,12 +855,31 @@ rationItemDAO.prototype.batchAddFromExcel = async function(rationRepId, data) {
     const existCodeList = await this.getRationItemByCondition(condition, ['code'], 'code');
     // 过滤插入数据
     let insertData = [];
+    //已存在定额,则更新价格及rationGLjList字段
+    let updateData = [];
     for (const ration of rationData) {
         if (existCodeList[ration.code] !== undefined) {
+            updateData.push(ration);
             continue;
         }
         insertData.push(ration);
     }
+    //更新定额
+    let updateBulk = [];
+    for(let ration of updateData){
+        this.calcForRation(stdGLJListByID, ration);
+        updateBulk.push({
+            updateOne: {
+                filter: {rationRepId: rationRepId, code: ration.code},
+                update: {$set: {rationGljList: ration.rationGljList, labourPrice: ration.labourPrice, materialPrice: ration.materialPrice,
+                    machinePrice: ration.machinePrice, basePrice: ration.basePrice}}
+            }
+        });
+    }
+    //更新数据库
+    if(updateBulk.length > 0){
+        await rationItemModel.bulkWrite(updateBulk);
+    }
     // 如果都已经存在,直接返回
     if (insertData.length <= 0) {
         return true;