Przeglądaj źródła

unit price change file

zhangweicheng 7 lat temu
rodzic
commit
b1c772a8b2

+ 1 - 1
modules/glj/models/glj_list_model.js

@@ -77,7 +77,7 @@ class GLJListModel extends BaseModel {
     async getListByProjectId(projectId, unitPriceFileId) {
         let gljData = null;
         let decimal =await decimal_facade.getProjectDecimal(projectId);
-        let quantity_decimal = decimal.glj.quantity?decimal.glj.quantity:6;//取消耗量保留小数据位,默认6位
+        let quantity_decimal = decimal&&decimal.glj.quantity?decimal.glj.quantity:6;//取消耗量保留小数据位,默认6位
         let mixRatioConnectData = {};
         let mixRationMap={};
         let keyMap={};

+ 12 - 8
modules/glj/models/unit_price_model.js

@@ -91,7 +91,7 @@ class UnitPriceModel extends BaseModel {
         let unitPrice=null;
         if(operation=='add'){//新增操作时,要把code也一起判断,是否完全一样
             unitPrice =  this.isPropertyInclude(unitPriceData,['code','name','specs','unit','type'],data);
-        }else {//修改操作时,code不用加入判,因为code是需要改变的
+        }else {//修改操作时,code不用加入判,因为code是需要改变的
             unitPrice =  this.isPropertyInclude(unitPriceData,['name','specs','unit','type'],data);
         }
         if(unitPrice){
@@ -328,21 +328,27 @@ class UnitPriceModel extends BaseModel {
         currentUnitList = JSON.parse(currentUnitList);
 
         let codeList = [];
+        let nameList =[];
         for (let tmp of currentUnitList) {
             if (codeList.indexOf(tmp.code) >= 0) {
                 continue;
             }
             codeList.push(tmp.code);
+            if(nameList.indexOf(tmp.name)>=0){
+                continue
+            }
+            nameList.push(tmp.name);
         }
 
-        // 查找即将更替的单价文件是否存在对应的工料机数据
-        let condition = {unit_price_file_id: changeUnitPriceId, code: {"$in": codeList}};
-        let targetUnitList = await this.findDataByCondition(condition, null, false, 'code');
+        // 查找即将更替的单价文件是否存在对应的工料机数据 -- (这里只根据code和名称初步过滤,因为其它的几项更改的概率不大,在下一步的比较中再精确匹配)
+        let condition = {unit_price_file_id: changeUnitPriceId, code: {"$in": codeList},name:{"$in": nameList}};
+        let targetUnitList = await this.findDataByCondition(condition, null, false, ['code','name','specs','unit','type']);
 
         // 如果没有重叠的数据则原有的数据都复制一份
         let insertData = [];
         for (let tmp of currentUnitList) {
-            if (targetUnitList !== null && targetUnitList[tmp.code] !== undefined) {
+            let t_index = this.getIndex(tmp,['code','name','specs','unit','type']);
+            if (targetUnitList !== null && targetUnitList[t_index] !== undefined) {
                 continue;
             }
             // 删除原有id信息
@@ -351,9 +357,7 @@ class UnitPriceModel extends BaseModel {
             tmp.unit_price_file_id = changeUnitPriceId;
             insertData.push(tmp);
         }
-
-        return insertData.length > 0 ? this.add(currentUnitList) : true;
-
+        return insertData.length > 0 ? this.add(insertData) : true;
     }
 
 

+ 11 - 0
web/building_saas/glj/js/project_glj.js

@@ -179,6 +179,17 @@ $(document).ready(function () {
                     alert(msg);
                     return false;
                 }
+                projectObj.project.projectGLJ.loadData(function () {
+                    let projectGLJ = projectObj.project.projectGLJ;
+                    let data = projectGLJ.datas;
+                    projectGLJ.loadCacheData();
+                    let usedTenderList = data.usedTenderList !== undefined ? data.usedTenderList : [];
+                    let  usedUnitPriceInfo = data.constData.usedUnitPriceInfo !== undefined ?
+                        data.constData.usedUnitPriceInfo : {};
+
+                    unitPriceFileInit(usedUnitPriceInfo.name, usedTenderList);
+
+                });
                 $('#change-dj').modal("hide");
             }
         });

+ 0 - 1
web/building_saas/main/js/models/ration_glj.js

@@ -140,7 +140,6 @@ var ration_glj = {
             })
             _.forEach(doc, function(n, key) {
                 glj_list[glj_index][key] = n;
-                gljOprObj.sheetData[sheet_index][key]=n;
             });
             return glj_list[glj_index].rationID;
         };