Browse Source

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/YangHuCost

vian 5 years atrás
parent
commit
37ef32c05a

+ 4 - 0
logs/online_logs.js

@@ -8,6 +8,7 @@ module.exports = {
 let mongoose = require("mongoose");
 const moment = require("moment");
 let logs_model = mongoose.model("online_logs");
+let user_model = mongoose.model("user");
 
 async function saveOnlineTime(req) {
     let online_times = 0;
@@ -26,14 +27,17 @@ async function saveOnlineTime(req) {
         if(!req.session.sessionUser||!req.session.sessionCompilation) return;
         let dataString = moment(end).format('YYYY-MM-DD');
         let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
+        let userCondition = {_id: mongoose.Types.ObjectId(req.session.sessionUser.id)};
         let record = await logs_model.findOne(condition);
         if(record){ //如果找到,则累加
             await logs_model.update(condition,{$inc:{'online_times' : online_times }});
+            await user_model.update(userCondition,{$inc:{'online_times' : online_times }});
         }else {//如果没找到,则新增一条记录
             condition["online_times"] = online_times;
             let today = moment(dataString).toDate();
             condition["dateTime"] = +today;
             await logs_model.create(condition);
+            await user_model.update(userCondition,{'online_times' : online_times});
         }
     }catch (e){
         console.log("统计登录时间错误,online_times值:"+online_times);

+ 1 - 0
modules/all_models/unit_price_file.js

@@ -28,6 +28,7 @@ let modelSchema = {
     root_project_id: Number,
     vvTaxFileID:String,//车船税文件ID
     assistProductionFeeRate:String,//辅助生产间接费费率
+    machineConstCoe:String,//机械不变费用系数
     deleteInfo: deleteSchema
 };
 mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 9 - 1
modules/all_models/user.js

@@ -120,6 +120,14 @@ let schema = {
         default: 0
     },
     welcomeShowTime:String,
-    token: String
+    token: String,
+    online_times: {
+        type: Number,
+        default: 0
+    }, //最近一天的登录时长累计
+    is_cld: {
+        type: Number,
+        default: 0, // 0为普通用户,时间戳代表CLD剔除用户并按时间戳排序
+    },
 };
 mongoose.model(collectionName, new Schema(schema, {versionKey: false}));

+ 1 - 1
modules/complementary_glj_lib/controllers/gljController.js

@@ -43,7 +43,7 @@ class GljController extends BaseController{
             versionName: req.session.compilationVersion,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
             overWriteUrl: overWriteUrl,
-            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
+            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"纵横公路养护云造价"
         });
     }
     getGljDistType (req, res) {

+ 3 - 3
modules/complementary_ration_lib/controllers/compleViewController.js

@@ -65,7 +65,7 @@ class CompleViewController extends BaseController{
             compilationName: req.session.sessionCompilation.name,
             versionName: req.session.compilationVersion,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
-            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
+            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"纵横公路养护云造价"
         });
     }
 
@@ -97,7 +97,7 @@ class CompleViewController extends BaseController{
             compilationName: req.session.sessionCompilation.name,
             versionName: req.session.compilationVersion,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
-            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
+            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"纵横公路养护云造价"
         });
     }
 
@@ -115,7 +115,7 @@ class CompleViewController extends BaseController{
             compilationName: req.session.sessionCompilation.name,
             versionName: req.session.compilationVersion,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
-            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
+            title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"纵横公路养护云造价"
         });
     }
 

+ 2 - 1
modules/glj/controllers/glj_controller.js

@@ -945,7 +945,8 @@ async function getGLJListByProjectID(projectId){
             usedUnitPriceInfo: usedUnitPriceInfo,
             gljTypeMap:gljTypeMap,
             vvTaxFileID:unitFileInfo.vvTaxFileID,
-            assistProductionFeeRate:unitFileInfo.assistProductionFeeRate?unitFileInfo.assistProductionFeeRate:3
+            assistProductionFeeRate:unitFileInfo.assistProductionFeeRate?unitFileInfo.assistProductionFeeRate:3,
+            machineConstCoe:unitFileInfo.machineConstCoe?unitFileInfo.machineConstCoe:1
         };
     } catch (error) {
         console.log(error);

+ 2 - 2
modules/glj/facade/glj_facade.js

@@ -126,9 +126,9 @@ async function changeVvTaxFile(data){//对于车船税,现在只是在组成
 }
 
 async function changeAssistProductionFeeRate(data){
-    let unitFileID = data.unitFileID,assistProductionFeeRate = data.assistProductionFeeRate;
+    let unitFileID = data.unitFileID;//assistProductionFeeRate = data.assistProductionFeeRate;
     let unitPriceFileModel = new UnitPriceFileModel();
-    await unitPriceFileModel.model.update({id:unitFileID},{assistProductionFeeRate:assistProductionFeeRate});
+    await unitPriceFileModel.model.update({id:unitFileID},data.updateData);
 }
 
 async function handleVvTaxForChang(unitFileID,newVvTaxFileID) {//切换车船税,选择共用的单价文件时调用

+ 1 - 1
modules/ration_glj/facade/glj_calculate_facade.js

@@ -405,7 +405,7 @@ function generateAdjustState(glj,coeList,adjustState,gljList,quantity) {
     }
 
     //自定义消耗量
-    if(glj.createType!='add'&&glj.hasOwnProperty('customQuantity')){
+    if(glj.createType!='add'&&glj._doc.hasOwnProperty('customQuantity')){
         if(glj.customQuantity!==null&&glj.customQuantity!=""){
             adjustState.push({index:stateSeq.cusQuantity,content:glj.code+'量'+parseFloat(glj.customQuantity)});
         }

+ 37 - 1
modules/users/controllers/cld_controller.js

@@ -253,6 +253,8 @@ class CLDController {
             let condition = userModel.getFilterCondition(request);
             //设置搜索普通用户:
             condition.user_type = 'normal';
+            //设置剔除CLD用户列表不显示
+            condition.is_cld = {$in: [null, 0]};
 
             //获取注册时间
             let regtime = request.query.regtime;
@@ -270,8 +272,14 @@ class CLDController {
             let sortType = request.query.sortType !== '' && request.query.sortType !== undefined ? request.query.sortType : -1;
 
             // 排序条件
+            // 排序条件
             let sortField = request.query.sortField;
-            let sort = sortField !== '' && sortField !== undefined && sortField === 'latest_login' ? {latest_login: sortType}: {_id: sortType};
+            let sort = {_id: sortType};
+            if (sortField !== '' && sortField !== undefined && sortField === 'latest_login') {
+                sort = {latest_login: sortType}
+            } else if(sortField !== '' && sortField !== undefined && sortField === 'online_times')  {
+                sort = {online_times: sortType}
+            }
 
             // 获取用户总数
             total = await userModel.count(condition);
@@ -316,6 +324,34 @@ class CLDController {
         }
         response.json(responseData);
     }
+
+    async getRejectUsers(request, response) {
+        let userModel = new UserModel();
+        let total = 0;
+        let pageSize = 12;
+        let pageData = {};
+        let userList = [];
+        try {
+            const condition = {
+                user_type: 'normal',
+                is_cld: {$exists:true, $ne: 0}
+            };
+            // 获取用户总数
+            total = await userModel.count(condition);
+            // 分页数据
+            let page = request.query.page === undefined ? 1 : request.query.page;
+            pageSize = request.query.pageSize === undefined ? 12 : parseInt(request.query.pageSize);
+            userList = await userModel.getList(condition, page, pageSize, {is_cld:-1});
+            pageData = {
+                current: page,
+                total: total,
+                queryData: response.locals.urlQuery
+            };
+            response.json({error: 0, msg: 'success', data: { userList: userList, pageData: pageData }});
+        } catch (error) {
+            response.json({error: 1, msg: error});
+        }
+    }
 }
 
 module.exports = CLDController;

+ 33 - 0
modules/users/models/user_model.js

@@ -485,6 +485,13 @@ class UserModel extends BaseModel {
             condition.latest_used = latestUsed;
         }
 
+        // 最近登录时长
+        let onlineTimes = request.query.onlineTimes;
+        onlineTimes = onlineTimes !== '' && onlineTimes !== undefined ? parseInt(onlineTimes) : 0;
+        if (onlineTimes !== 0) {
+            condition.online_times = this.getOnlineTimestamp(onlineTimes);
+        }
+
         let keyword = request.query.keyword;
         if (keyword !== '' && keyword !== undefined) {
             condition.$or = [{real_name : {$regex: keyword}},{email : {$regex: keyword}},{mobile : {$regex: keyword}},{qq : {$regex: keyword}},{company : {$regex: keyword}}];
@@ -521,6 +528,32 @@ class UserModel extends BaseModel {
     }
 
     /**
+     * 获取时间戳区间
+     *
+     * @return {Object}
+     */
+    getOnlineTimestamp(type) {
+        let startTime = 0;
+        switch (type) {
+            case 1 :
+                startTime = 1800*1000;
+                break;
+            case 2 :
+                startTime = 3600*1000;
+                break;
+            case 3 :
+                startTime = 3600*1000*2;
+                break;
+            case 4 :
+                startTime = 3600*1000*3;
+                break;
+            default :
+                break;
+        }
+        return startTime === 0 ? '' : {'$gte': startTime};
+    }
+
+    /**
      * 获取daymsg
      *
      */

+ 2 - 0
modules/users/routes/cld_route.js

@@ -30,5 +30,7 @@ module.exports = function (app) {
 
     router.post('/getUserOnlineInfo', cldController.getUserOnlineInfo);
 
+    router.get('/getRejectUsers', cldController.getRejectUsers);
+
     app.use('/cld',router)
 };

+ 13 - 4
public/web/gljUtil.js

@@ -314,11 +314,17 @@ let gljUtil = {
     let price_hasM_decimal = decimalObj.glj.unitPriceHasMix ? decimalObj.glj.unitPriceHasMix : decimalObj.glj.unitPrice;
     let quantity_decimal = decimalObj.glj.quantity;
     let process_decimal = this.isDef(decimalObj.marketPriceProcess) ? decimalObj.marketPriceProcess : decimalObj.process; //20200722  旧的项目还是默认6位,新的用两位
+    let feeRate_decimal = decimalObj.feeRate;
     let priceCoe = this.isDef(tenderCoe) ? tenderCoe : 1;
     if (priceCoe == '0' || priceCoe == 0) priceCoe = 1; // 这里加个保护
     if (['GLF', 'LR', 'FXF'].includes(glj.code)) priceCoe = 1; // 类型是“企业管理费”、“利润”、“一般风险费”的,不应调整单价。
     if (!this.isConcreteType(glj.unit_price.type) && this.notEditType.indexOf(glj.unit_price.type) != -1 && glj.ratio_data.length > 0) { //对于机械台班等有组成物的材料,价格需根据组成物计算得出(排除混凝土、配合比、砂浆这几个类型直接为0)。
       let p = 0;
+      let consSum = 0; //不变费用总和
+      let temSum = 0;//可变费用总和
+      //不变费用组成物包括:折旧费、检修费、维护费、安拆辅助费,这几个材料只能通过名称判断了,类型没有细分。
+      let constNames = ['折旧费','检修费','维护费','安拆辅助费'];
+      let constCoe = scMathUtil.roundForObj(projectGLJDatas.constData.machineConstCoe,feeRate_decimal);
       for (let ratio of glj.ratio_data) {
         let rIndex = gljUtil.getIndex(ratio);
         let tem = _.find(projectGLJDatas.gljList, function (item) {
@@ -329,15 +335,18 @@ let gljUtil = {
           if (ext && ext[tem.id] && this.isDef(ext[tem.id].marketPrice)) { //在修改组成物的价格或消耗量时,影响了父工料机的价格,这时以父工料机的价格应当用组成物的新值来记算
             tem_marketPrice = ext[tem.id].marketPrice;
           };
-
-
           let temP = scMathUtil.roundForObj(tem_marketPrice * priceCoe, price_decimal) * scMathUtil.roundForObj(ratio.consumption, quantity_decimal);
           if(decimalObj.temProcess) temP = scMathUtil.roundForObj(temP, decimalObj.temProcess);//取两次防止中间过程使用两位导致 4舍5入后少0.01的情况
           temP = scMathUtil.roundForObj(temP,process_decimal);
-          p = scMathUtil.roundForObj(temP + p, process_decimal);
+          if(constNames.includes(tem.name) && constCoe !== 1){//不等于1的时候才要另外计算
+            temP = scMathUtil.roundForObj(temP*constCoe,process_decimal);
+            consSum = scMathUtil.roundForObj(temP + consSum,process_decimal);
+          }else {
+            temSum = scMathUtil.roundForObj(temP + temSum, process_decimal);
+          }
         }
       }
-      return scMathUtil.roundForObj(p, price_hasM_decimal);
+      return scMathUtil.roundForObj(temSum + consSum, price_hasM_decimal);
     } else {
       let tem_decimal = price_decimal; //isRadio==true?process_decimal:price_decimal;
       let tem_price = scMathUtil.roundForObj(glj.unit_price.market_price, price_decimal);

+ 4 - 0
web/building_saas/glj/html/project_glj.html

@@ -252,6 +252,10 @@
             </div>
             <div class="modal-body">
                 <div class="form-group">
+                    <label id = "machineConstCoeLabel">机械不变费用系数</label>
+                    <input class="form-control" id="machineConstCoe" value="">
+                </div>
+                <div class="form-group">
                     <label id = "assistProductionLabel">辅助生产间接费费率(%)</label>
                     <input class="form-control" id="assistProductionFeeRate" value="">
                 </div>

+ 4 - 3
web/building_saas/main/js/models/project_glj.js

@@ -1,3 +1,4 @@
+
 /**
  * 工料机汇总相关数据
  *
@@ -831,11 +832,11 @@ ProjectGLJ.prototype.addMaterialRation = async function (code,type,parentID,conn
         await this.updateMaterialRation(datas);
 };
 
-ProjectGLJ.prototype.changeAssistProductionFeeRate = async function (newFeeRate) {
+ProjectGLJ.prototype.changeAssistProductionFeeRate = async function (updateData) {//newFeeRate  机械不变费用系数 和 辅助生产间接费费率(%) 计算放一起
     $.bootstrapLoading.start();
     try {
-        await ajaxPost("/glj/changeAssistProductionFeeRate",{unitFileID:projectObj.project.property.unitPriceFile.id,assistProductionFeeRate:newFeeRate});
-        this.datas.constData.assistProductionFeeRate = newFeeRate;
+        await ajaxPost("/glj/changeAssistProductionFeeRate",{unitFileID:projectObj.project.property.unitPriceFile.id,updateData:updateData});
+        gljUtil.setProperty(this.datas.constData,updateData) //this.datas.constData.assistProductionFeeRate = newFeeRate;
         //todo  调用材料计算方法,所有材料重算一遍
         let [unitPrices,sumMap] = this.calcAllMaterial([],true);
         sumMap["unitPrice"] = unitPrices;

+ 4 - 3
web/building_saas/main/js/models/ration.js

@@ -532,14 +532,14 @@ var Ration = {
                 }
             }
         };
-        ration.prototype.insertVolumePrice = function(type){
+        ration.prototype.insertVolumePrice = function(type,ext){
             this.addNewRation(null,rationType.volumePrice,function (newNode) {//插入人工不需要自动定位到编号列
                 projectObj.selectColAndFocus(newNode,null);
-            },true,type);
+            },true,type,true,ext);
         };
 
 
-        ration.prototype.addNewRation = function (itemQuery,rationType,callback=null,isEmpty=false,priceType,needCalcAndSave=true) {//priceType 是量价类型
+        ration.prototype.addNewRation = function (itemQuery,rationType,callback=null,isEmpty=false,priceType,needCalcAndSave=true,ext) {//priceType 是量价类型
             let me = this;
             let project = projectObj.project, sheetController = projectObj.mainController;
             let engineering = projectObj.project.projectInfo.property.engineering;
@@ -586,6 +586,7 @@ var Ration = {
                     let billsNode = project.mainTree.getNodeByID(billItemID);
                     needInstall = project.Bills.isFBFX(billsNode);//在分部分项插入的定额才需要定额安装增加费
                 }
+                if(ext) gljUtil.setProperty(newData,ext);
               $.bootstrapLoading.start();
                 let tdata = {
                   projectID: me.project.ID(),

+ 3 - 3
web/building_saas/main/js/views/block_lib.js

@@ -353,7 +353,7 @@ var blockLibObj = {
         };
         return new TreeCell();
     },
-    newNode: async function (nodeType, nodeName, categoryID, source){     // 1 分类(只用前两个参数)  2 块文件
+    newNode: async function (nodeType, nodeName, categoryID, source){     // nodeType: 1 分类(只用前两个参数)  2 块文件
         if (nodeName == '') return;
         let tree = blockLibObj.mainTree;
         let ID = uuid.v1();
@@ -463,12 +463,12 @@ var blockLibObj = {
     curIsCategory: function () {
         return this.mainTree.selected.data.type == 1;
     },
-    getSameNameNode: function(name){
+    getSameNameNode: function(name, categoryID){
         let rst = null;
         let nodes = blockLibObj.mainTree.items;
         for (let i = 0; i < nodes.length; i++) {
             let node = nodes[i];
-            if (node.data.nodeName == name){
+            if (node.data.nodeName == name && node.data.ParentID == categoryID){
                 rst = node;
                 break;
             }

+ 24 - 5
web/building_saas/main/js/views/divide_view.js

@@ -252,30 +252,49 @@ let divideObj = {
     this.execBillsSheet.setRowCount(this.execBillsDatas.length);
   },
 
-  getExeBillCode:function(ID){
+  getExeBillCode:function(ID){//从后面往前匹配好像简单一点,可能想得复杂了
     let bNode = projectObj.project.mainTree.findNode(ID);
     if(!bNode) return "";
     let nodes= [];
     getNodes(bNode);
     let newCode = "";
+    let index = 0;
     for(let n of nodes){
       if(n.data.code && n.data.code !=""){
         if(newCode == ""){
           newCode = n.data.code;
         }else{
           let exp = new RegExp("^"+newCode);
-          if(exp.test(n.data.code)){
+          if(exp.test(n.data.code)){//如果后一个直接包含前面所有,则直接使用全字段
             newCode = n.data.code
           }else{
-            let mid = "-"
-            if(newCode.substr(-1,1) == "-" ||n.data.code.substr(0,1)=="-")mid="";
-            newCode = newCode+mid+n.data.code
+            let mid = "-";
+            let tcode = n.data.code;
+            if(nodes[index-1]){//拿前一结点单独来匹配一下
+              let  preCode = removeSymble(nodes[index-1].data.code);
+              let code =  removeSymble(n.data.code);     
+              let preExp = new RegExp("^"+preCode);
+              if(preExp.test(code)){//如果后一个只包含前面一个节点,则忽略前一节点字段
+                tcode  = code.replace(preCode,"");
+              }
+            }  
+            if(newCode.substr(-1,1) == "-" ||tcode.substr(0,1)=="-")mid="";
+            newCode = newCode+mid+tcode    
           }
         }  
       }
+      index ++;
     }
     return newCode;
 
+    //去除前后的-
+    function removeSymble(str){
+      let pr = str.match(/^-(.+)/);
+      if(pr)str = pr[1];
+      let fr = str.match(/(.+)-$/);
+      if(fr)str = fr[1];
+      return str;
+    }
 
     function getNodes (node){
       nodes.unshift(node);

+ 17 - 3
web/building_saas/main/js/views/material_calc_view.js

@@ -1055,16 +1055,30 @@ $(function () {
     $('#calcCoeDiv').on('show.bs.modal', function () {
         if(materialCalcObj.getAssistProductionLabel) $("#assistProductionLabel").text(materialCalcObj.getAssistProductionLabel);
         $("#assistProductionFeeRate").val(scMathUtil.roundForObj(projectObj.project.projectGLJ.datas.constData.assistProductionFeeRate,getDecimal("feeRate")));
+        $("#machineConstCoe").val(scMathUtil.roundForObj(projectObj.project.projectGLJ.datas.constData.machineConstCoe,getDecimal("feeRate")));
+        
     })
     $("#calcCoeConfirm").click(function () {
         let feeRate =  $("#assistProductionFeeRate").val();
-        if(!number_util.isNum(feeRate)){
+        let constCoe = $("#machineConstCoe").val();
+        let rawFeeRate = scMathUtil.roundForObj(projectObj.project.projectGLJ.datas.constData.assistProductionFeeRate,getDecimal("feeRate"));
+        let rawConstCoe = scMathUtil.roundForObj(projectObj.project.projectGLJ.datas.constData.machineConstCoe,getDecimal("feeRate"));
+        if(!number_util.isNum(rawFeeRate)){
             alert("输入的数据类型不对,请重新输入!");
-           return $("#assistProductionFeeRate").val(scMathUtil.roundForObj(projectObj.project.projectGLJ.datas.constData.assistProductionFeeRate,getDecimal("feeRate")));
+           return $("#assistProductionFeeRate").val(rawFeeRate);
         }
+        if(!number_util.isNum(constCoe)){
+           alert("输入的数据类型不对,请重新输入!");
+           return $("#machineConstCoe").val(rawConstCoe);
+        }
+        let updateData = {};
         feeRate = scMathUtil.roundForObj(feeRate,getDecimal("feeRate"));
+        constCoe = scMathUtil.roundForObj(constCoe,getDecimal("feeRate"));
+        if(feeRate != rawFeeRate) updateData.assistProductionFeeRate = feeRate;
+        if(constCoe != rawConstCoe) updateData.machineConstCoe = constCoe;
+
         $("#calcCoeDiv").modal("hide");
-        projectObj.project.projectGLJ.changeAssistProductionFeeRate(feeRate);
+        if(!_.isEmpty(updateData))projectObj.project.projectGLJ.changeAssistProductionFeeRate(updateData);
     });
 
     $("#insertFreightconfirm").click(function () {

+ 26 - 3
web/building_saas/main/js/views/project_view.js

@@ -1188,6 +1188,7 @@ var projectObj = {
                 const newNodes = await ProjectController.addBillsByData(postData, true);
                 projectObj.mainController.setTreeSelected(newNodes[0]);
                 projectObj.selectColAndFocus(project.mainTree.selected);
+                projectObj.refreshBaseActn(project.mainTree);
             } catch (err) {
                 console.log(err);
                 if (!$('hintBox_form').is(':visible')) {
@@ -1214,7 +1215,7 @@ var projectObj = {
                     newData.push({ itemQuery: null, rationType: rationType.ration });
                 }
                 await project.Ration.addMultiRation(newData);
-                projectObj.setActiveCell('quantity', true);
+                projectObj.setActiveCell('code', true);
             } catch (err) {
                 console.log(err);
                 if (!$('hintBox_form').is(':visible')) {
@@ -1383,6 +1384,25 @@ var projectObj = {
                         return false
                     }
                 },
+                "insertMaterial": {
+                    name: "按清单名称插入材料",//插入量价不需要自动定位到编号列
+                    icon: 'fa-sign-in',
+                    disabled: function () {
+                        if (projectReadOnly) {
+                            return true;
+                        }
+                        return !project.Ration.canAdd(project.mainTree.selected);
+                    },
+                    callback: function (key, opt) {
+                        //名称取清单名称,单位取清单单位
+                        let selected = project.mainTree.selected;
+                        let billNode = selected;
+                        if(selected.sourceType==project.Ration.getSourceType()) billNode = selected.parent;
+                        let ext = {name:billNode.data.name,unit:billNode.data.unit};
+                        project.Ration.insertVolumePrice(gljType.GENERAL_MATERIAL,ext);
+                    },
+                },
+
                 "insertLJ": {
                     name: "插入量价",//插入量价不需要自动定位到编号列
                     icon: 'fa-sign-in',
@@ -3214,10 +3234,13 @@ $(function () {
                 let ration_glj_Map = _.groupBy(projectObj.project.ration_glj.datas, 'rationID');
                 vBlock_WC.datas.push(BlockController.getNodeDatas(node, ration_glj_Map));
                 vBlock_WC = JSON.parse(JSON.stringify(vBlock_WC));
-                let fileName = node.data.code + ' ' + node.data.name + ' ' + node.data.unit;
+                // 块文件名称:编号要根据实际情况对父清单的编号进行拼装。
+                 let newCode = divideObj.getExeBillCode(vBlock_WC.datas[0].ID);
+                 let unit = node.data.unit ? node.data.unit : '';
+                let fileName = newCode + ' ' + node.data.name + ' ' + unit;
                 fileName = fileName.replace(/^\s+|\s+$/g, "");    // 只去两头空格
 
-                let extN = blockLibObj.getSameNameNode(fileName);
+                let extN = blockLibObj.getSameNameNode(fileName, categoryID);
                 if (extN){
                     if (cover) blockLibObj.assignData(extN, vBlock_WC);
                 }