zhongzewei 6 лет назад
Родитель
Сommit
c3d0973681

+ 72 - 41
web/building_saas/main/js/models/exportStandardInterface.js

@@ -902,17 +902,23 @@ const XMLStandard = (function () {
         function DifferentiaGlj() {
             element.call(this, '承包人材料差额法表', []);
         }
+        const AdjustType = {
+            info: 'priceInfo',
+            coe: 'priceCoe'
+        };
         //承包人材料差额法明细
-        function DifferentiaGljDetail(source) {
+        //如果是“控制价”、“招标”,则不导出;
+        //如果是“投标”,且采用了信息价差额法,则导出;如果采用了指数法,则导出,但数量、风险系数、基准单价、投标单价,都取0。
+        function DifferentiaGljDetail(adjustType, source) {
             let attrs = [
                 {name: '关联材料号', value: getGljCode(source.id), minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '名称', value: source.name, minLen: 1, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '规格', value: source.specs, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE},
                 {name: '单位', value: source.unit, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
-                {name: '数量', value: source.quantity, type: TYPE.DECIMAL, required: true},
-                {name: '风险系数', value: source.riskCoe, type: TYPE.DECIMAL, require: true},
+                {name: '数量', value: adjustType === AdjustType.info ? source.quantity : '0', type: TYPE.DECIMAL, required: true},
+                {name: '风险系数', value: adjustType === AdjustType.info ? source.riskCoe : '0', type: TYPE.DECIMAL, require: true},
                 {name: '基准单价', value: source.standardPrice, type: TYPE.DECIMAL, require: true},
-                {name: '投标单价', value: source.marketPrice, type: TYPE.DECIMAL},
+                {name: '投标单价', value: adjustType === AdjustType.info ? source.marketPrice : '0', type: TYPE.DECIMAL},
                 {name: '确认单价', value: '0', type: TYPE.DECIMAL},
                 {name: '备注', value: source.remark, maxLen: 255,
                     failHint: `承包人材料${source.code}-“备注”`},
@@ -920,18 +926,23 @@ const XMLStandard = (function () {
             element.call(this, '承包人材料差额法明细', attrs);
         }
         //承包人材料指数法表
-        function ExponentialGlj(source) {
-            element.call(this, '承包人材料指数法表', []);
+        function ExponentialGlj() {
+            let attrs = [
+                {name: '定值权重A', value: '', required: true, type: TYPE.DECIMAL}
+            ];
+            element.call(this, '承包人材料指数法表', attrs);
         }
         //承包人材料指数法明细
-        function ExponentialGljDetail(source) {
+        //如果是“控制价”、“招标”,则不导出;
+        //如果是“投标”,且采用了指数法,则导出;如果采用了信息价差额法,则导出,但定值权重A取1,变值权重B、基本价格指数、现行价格指数取0。
+        function ExponentialGljDetail(adjustType, source) {
             let attrs = [
                 {name: '关联材料号', value: getGljCode(source.id), minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '名称', value: source.name, minLen: 1, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '规格', value: source.specs, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE},
-                {name: '变值权重B', value: source.varWeight, type: TYPE.DECIMAL, required: true},
-                {name: '基本价格指数', value: source.FO, type: TYPE.DECIMAL, require: true},
-                {name: '现行价格指数', value: source.FI, type: TYPE.DECIMAL, require: true},
+                {name: '变值权重B', value: adjustType === AdjustType.coe ? source.varWeight : '0', type: TYPE.DECIMAL, required: true},
+                {name: '基本价格指数', value: adjustType === AdjustType.coe ? source.FO : '0', type: TYPE.DECIMAL, require: true},
+                {name: '现行价格指数', value: adjustType === AdjustType.coe ? source.FI : '0', type: TYPE.DECIMAL, require: true},
                 {name: '备注', value: source.remark, maxLen: 255,
                     failHint: `承包人材料${source.code}-“备注”`},
             ];
@@ -999,7 +1010,7 @@ const XMLStandard = (function () {
         function MaterialDetail(source) {
             let attrs = [
                 {name: '序号', value: source.serialNo, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
-                {name: '关联材料号', value: source.orgCode, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE},
+                {name: '关联材料号', value: source.code, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE},
                 {name: '材料名称', value: source.name, minLen: 1, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '规格型号', value: source.specs, maxLen: 255},
                 {name: '计量单位', value: source.unit, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
@@ -1065,7 +1076,7 @@ const XMLStandard = (function () {
         //评审材料明细定义
         function AppraisalDetail(source) {
             let attrs = [
-                {name: '代码', value: source.orgCode, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
+                {name: '代码', value: source.code, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '名称', value: source.name, minLen: 1, maxLen: 255, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
                 {name: '规格', value: source.specs, maxLen: 255},
                 {name: '单位', value: source.unit, minLen: 1, maxLen: 20, whiteSpace: WHITE_SPACE.COLLAPSE, required: true},
@@ -1159,11 +1170,14 @@ const XMLStandard = (function () {
             return true;
         }
         //检测唯一性
-        //@param {Object}constraints(约束池) {All}data(检测的数据) {String}hint(提示已存在的内容)
+        //@param {Object}constraints(约束池) {All}data(检测的数据) {String}hint(提示已存在的内容) {String}subHint(额外提示,有额外提示时,不用data提示)
         //@return {void}
-        function checkUnique(constraints, data, hint) {
+        function checkUnique(constraints, data, hint, subHint) {
             if (constraints.includes(data)) {
-                failList.push(`${hint}“${data}”已存在`);
+                let failHint = subHint
+                    ? `${hint}“${subHint}”已存在`
+                    : `${hint}“${data}”已存在`;
+                failList.push(failHint);
             } else if (data) {
                 constraints.push(data);
             }
@@ -1491,22 +1505,32 @@ const XMLStandard = (function () {
             //人材机汇总相关
             let gljSumarryInfo = loadGlj(curAppraisalSummary, tenderDetail);
             if (gljSumarryInfo) {
-                //承包人材料差额法表
-                let diffGljs = materialAdjustObj.getPirceInfoDatas(tenderDetail.projectGLJ.datas.gljList);
-                if (diffGljs.length) {
-                    let diffP = new DifferentiaGlj();
-                    diffGljs.forEach(data => diffP.children.push(new DifferentiaGljDetail(data)));
-                    tender.children.push(diffP);
-                }
-                //承包人材料指数法表
-                let engineeringCostNode = tenderDetail.Bills.tree.roots.find(node => getNodeFlag(node) === fixedFlag.ENGINEERINGCOST);
-                if (engineeringCostNode) {
-                    let ecTotalFee = getFee(engineeringCostNode.data.fees, 'common.totalFee');
-                    let exponentialGljs = materialAdjustObj.getPriceCoeDatas(tenderDetail.projectGLJ.datas.gljList, ecTotalFee);
-                    if (exponentialGljs.length) {
-                        let exP = new ExponentialGlj();
-                        exponentialGljs.forEach(data => exP.children.push(new ExponentialGljDetail(data)));
-                        tender.children.push(exP);
+                //投标导出承包人材料相关
+                if (exportKind === ExportKind.Tender) {
+                    let adjustType = tenderData.property.gljAdjustType || AdjustType.info;
+                    //承包人材料差额法表
+                    let diffGljs = materialAdjustObj.getPirceInfoDatas(tenderDetail.projectGLJ.datas.gljList);
+                    if (diffGljs.length) {
+                        let diffP = new DifferentiaGlj();
+                        diffGljs.forEach(data => diffP.children.push(new DifferentiaGljDetail(adjustType, data)));
+                        tender.children.push(diffP);
+                    }
+                    //承包人材料指数法表
+                    let engineeringCostNode = tenderDetail.Bills.tree.roots.find(node => getNodeFlag(node) === fixedFlag.ENGINEERINGCOST);
+                    if (engineeringCostNode) {
+                        let ecTotalFee = getFee(engineeringCostNode.data.fees, 'common.totalFee');
+                        let exponentialGljs = materialAdjustObj.getPriceCoeDatas(tenderDetail.projectGLJ.datas.gljList, ecTotalFee);
+                        if (exponentialGljs.length) {
+                            let exP = new ExponentialGlj();
+                            //权重B累加
+                            let totalVarWeight = 0;
+                            exponentialGljs.forEach(data => {
+                                totalVarWeight += data.varWeight || 0;
+                                exP.children.push(new ExponentialGljDetail(adjustType, data));
+                            });
+                            exP.attrs.find(attr => attr.name === '定值权重A').value = adjustType === AdjustType.coe ? 1 - totalVarWeight : '1';
+                            tender.children.push(exP);
+                        }
                     }
                 }
                 let {gljSummary, evalBidMaterial, evalEstimateMaterial} = gljSumarryInfo;
@@ -1587,7 +1611,7 @@ const XMLStandard = (function () {
             };
             let bills = new FXbills(source);
             //清单项目项目编码要在单位工程中唯一
-            checkUnique(curTenderEle.constraints.billsCode, source.code, '清单项目项目编号');
+            checkUnique(curTenderEle.constraints.billsCode, source.code, `第${source.row}行`,`“清单项目编码${source.code}”`);
             //加载特征及内容
             function loadFeatureContent() {
                 let job = [],
@@ -1997,6 +2021,7 @@ const XMLStandard = (function () {
                 } else {    //加载暂列金额明细
                     for (let n of node.children) {
                         let pDetailSource = {
+                                row: detail.mainTree.nodes[detail.mainTree.prefix + n.data.ID].serialNo() + 1,
                                 code: n.data.code,
                                 name: n.data.name,
                                 unit: n.data.unit,
@@ -2005,7 +2030,8 @@ const XMLStandard = (function () {
                             },
                             pDetailEle = new ProvisionalDetail(pDetailSource);
                         //暂列金额明细编号在单位工程中唯一
-                        checkUnique(curTenderEle.constraints.provisionalDetailCode, pDetailSource.code, '暂列金额明细编号');
+                        checkUnique(curTenderEle.constraints.provisionalDetailCode, pDetailSource.code,
+                            `第${pDetailSource.row}行`, `暂列金额明细编码${pDetailSource.code}`);
                         provisionalEle.children.push(pDetailEle);
                     }
                 }
@@ -2021,6 +2047,7 @@ const XMLStandard = (function () {
                 } else {    //加载专业工程暂估明细
                     for (let n of node.children) {
                         let eDetailSource = {
+                                row: detail.mainTree.nodes[detail.mainTree.prefix + n.data.ID].serialNo() + 1,
                                 code: n.data.code,
                                 name: n.data.name,
                                 engineeringContent: n.data.engineeringContent,
@@ -2029,7 +2056,8 @@ const XMLStandard = (function () {
                             },
                             eDetailEle = new EngEstimateDetail(eDetailSource);
                         //暂列金额明细编号在单位工程中唯一
-                        checkUnique(curTenderEle.constraints.engEstimateDetailCode, eDetailSource.code, '专业工程暂估明细编号');
+                        checkUnique(curTenderEle.constraints.engEstimateDetailCode, eDetailSource.code,
+                            `第${eDetailSource.row}行`, `专业工程暂估明细编码${eDetailSource.code}`);
                         engEstimateEle.children.push(eDetailEle);
                     }
                 }
@@ -2046,7 +2074,7 @@ const XMLStandard = (function () {
                     fees: node.data.fees,
                     remark: node.data.remark
                 };
-                checkUnique(constraints, source.code, hint);
+                checkUnique(constraints, source.code, `第${source.row}行`, `计日工项目编码${source.code}`);
                 return new DayWorkItem(source);
             }
             //加载服务费项
@@ -2101,7 +2129,7 @@ const XMLStandard = (function () {
                     //汇总其他列项金额
                     let totalFee = getFee(node.data.fees, 'common.totalFee');
                     summaryFee = scMathUtil.roundForObj(summaryFee + totalFee, curPMData.tender.property.decimal.bills.totalPrice);
-                    let otherItemEle = new OtherItem({
+                    let otherItemSource = {
                         row: detail.mainTree.nodes[detail.mainTree.prefix + node.data.ID].serialNo() + 1,
                         code: node.data.code,
                         name: node.data.name,
@@ -2110,9 +2138,11 @@ const XMLStandard = (function () {
                         commonTotalFee: totalFee,
                         notSummary: belongFlag && belongFlag === fixedFlag.MATERIAL_PROVISIONAL,   //不计入合价,只有材料(工程设备)暂估价固定节点
                         remark: node.data.remark
-                    });
+                    };
+                    let otherItemEle = new OtherItem(otherItemSource);
                     otherItems.push(otherItemEle);
-                    checkUnique(curTenderEle.constraints.otherItemNo, node.data.code, '其他列项编号');
+                    checkUnique(curTenderEle.constraints.otherItemNo, otherItemSource.code,
+                        `第${otherItemSource.row}行`, `清单编码${otherItemSource.code}`);
                 }
                 let otherEle = new Other({commonTotalFee: summaryFee});
                 for (let ele of otherItems) {
@@ -2153,7 +2183,8 @@ const XMLStandard = (function () {
                 };
                 source.calcBaseState = transformCalcBaseState(detail, source.calcBase);
                 //序号唯一
-                checkUnique(curTenderEle.constraints.feeItemNo, source.code, '规费和税金费用项编号');
+                checkUnique(curTenderEle.constraints.feeItemNo, source.code,
+                    `第${source.row}行`, `清单编码${source.code}`);
                 chargeTaxEle.children.push(new FeeItem(source));
             }
             return chargeTaxEle;
@@ -2260,7 +2291,7 @@ const XMLStandard = (function () {
                     };
                     let gljEle = new Glj(gljSource);
                     //人材机代码唯一
-                    checkUnique(curTenderEle.constraints.gljCode, gljSource.code, '人材机代码');
+                    checkUnique(curTenderEle.constraints.gljCode, gljSource.code, '人材机代码', gljSource.orgCode);
                     //人材机配比
                     let connectKey = gljUtil.getIndex(glj, gljKeyArray),
                         ratioData = detail.projectGLJ.datas.mixRatioMap[connectKey];
@@ -2282,7 +2313,7 @@ const XMLStandard = (function () {
                         evalBidMaterial.children.push(new MaterialDetail(gljSource));
                         //给建设项目下的评审材料汇总设置明细数据,这里需要检测代码(编号)唯一性,因为是汇总所有单位工程的,要求所有单位工程内评审材料代码唯一
                         appraisalSummary.children.push(new AppraisalDetail(gljSource));
-                        checkUnique(curTenderEle.constraints.appraisalDetailCode, gljSource.code, '评审材料明细代码');
+                        checkUnique(curTenderEle.constraints.appraisalDetailCode, gljSource.code, '评审材料明细代码', gljSource.orgCode);
                     }
                     if (glj.is_evaluate) {  //暂估
                         gljSource.serialNo = evalEstSeq++;

+ 81 - 3
web/building_saas/main/js/models/importStandardInterface.js

@@ -112,6 +112,11 @@ const ImportXML = (() => {
         Engineering: 'Engineering',
         Tender: 'Tender'
     };
+    //人材机调整法
+    const AdjustType = {
+        info: 'priceInfo',  //造价信息差额调整法
+        coe: 'priceCoe'     //价格指数调整法
+    };
 
     //读取文件转换为utf-8编码的字符串
     function readAsTextSync(file) {
@@ -256,7 +261,10 @@ const ImportXML = (() => {
                     csxm: loadCSXM(src),
                     other: loadOther(src),
                     chargeTax: loadChargeTax(src),
-                    gljSummary: loadGljSummary(src)
+                    gljSummary: loadGljSummary(src),
+                    differentiaSummary: loadDifferentiaSummary(src) ,//承包人材料差额法表
+                    exponentialSummary: loadExponentialSummary(src) ,//承包人材料指数法表
+                    evalBidSummary: loadEvalBidSummary(src),    //评标材料表
                 };
             });
         }
@@ -798,12 +806,54 @@ const ImportXML = (() => {
                 return gljData;
             });
         }
+        //承包人材料差额法表
+        function loadDifferentiaSummary(tenderSrc) {
+            let gljsSrc = arrayValue(tenderSrc, ['承包人材料差额法表', '承包人材料差额法明细']);
+            return gljsSrc.map(gljSrc => {
+                return {
+                    code: getValue(gljSrc, ['_关联材料号']),
+                    riskCoe: getValue(gljSrc, ['_风险系数']),
+                    standardPrice: getValue(gljSrc, ['_基准单价']),
+                    remark: getValue(gljSrc, ['_备注']),
+                };
+            });
+        }
+        //承包人材料指数法表
+        function loadExponentialSummary(tenderSrc) {
+            let gljsSrc = arrayValue(tenderSrc, ['承包人材料指数法表', '承包人材料指数法明细']);
+            return gljsSrc.map(gljSrc => {
+                return {
+                    code: getValue(gljSrc, ['_关联材料号']),
+                    varWeight: getValue(gljSrc, ['_变值权重B']),
+                    FO: getValue(gljSrc, ['_基本价格指数']),
+                    FI: getValue(gljSrc, ['_现行价格指数']),
+                    remark: getValue(gljSrc, ['_备注']),
+                };
+            });
+        }
+        //评标材料
+        function loadEvalBidSummary(tenderSrc) {
+            let gljsSrc = arrayValue(tenderSrc, ['评标材料表', '材料明细']);
+            return gljsSrc.map(gljSrc => {
+                return {code: getValue(gljSrc, ['_关联材料号'])};
+            });
+        }
 
         //-------------------------提取数据后的数据处理
 
         function getFlag(data) {
             return data.flags && data.flags[0] && data.flags[0].flag || 0;
         }
+        
+        //获取人材机调整法(差额法还是指数法)
+        function getAdjustType(tenderData) {
+            //如果承包人材料指数法里,所有数据的,变值权重B、基本价额指数,现行价格指数全为0,则为指数法,否则为差额法
+            let isCoe = tenderData.exponentialSummary.length && tenderData.exponentialSummary.every(data =>
+                    !(data.varWeight === '0' && data.FO === '0' && data.FI === '0')
+            );
+            return isCoe ? AdjustType.coe : AdjustType.info;
+        }
+        
         let toMatches = [
             {reg: /分部分项/, flag: fixedFlag.SUB_ENGINERRING},
             {reg: /^措施项目/, flag: fixedFlag.MEASURE},
@@ -1259,7 +1309,7 @@ const ImportXML = (() => {
                     postEngData.tenders.push(postTenderData);
                 }
             }
-            console.log(postConstructData);
+            //console.log(postConstructData);
             return postConstructData;
         };
 
@@ -1281,6 +1331,7 @@ const ImportXML = (() => {
                 gljLibIDs: tenderData.gljLibIDs,
                 shareInfo: []
             };
+            tender.property.gljAdjustType = getAdjustType(tenderData);
             detailData.tender = tender;
             return detailData;
         }
@@ -1312,7 +1363,6 @@ const ImportXML = (() => {
                 mixRatio: []    //组成物
             };
             //工料机汇总code-数据映射
-            //let gljCodeMap = {};
             //项目人材机customCode-原始代码数据映射
             let projectGLJMap = {};
             //投标文件才需要导入定额等数据
@@ -1345,6 +1395,34 @@ const ImportXML = (() => {
                     rst.unitPrice.push(getUnitPrice(pGLJ));
 
                 });
+                //处理评标材料
+                tenderData.evalBidSummary.forEach(glj => {
+                    let pGLJ = projectGLJMap[glj.code];
+                    if (pGLJ) {
+                        pGLJ.is_eval_material = true;
+                    }
+                });
+                //处理承包人材料差额法表
+                tenderData.differentiaSummary.forEach(glj => {
+                    let pGLJ = projectGLJMap[glj.code];
+                    if (pGLJ) {
+                        pGLJ.is_info_adjust = 1;
+                        pGLJ.riskCoe = glj.riskCoe;
+                        pGLJ.standardPrice = glj.standardPrice;
+                        pGLJ.remark = glj.remark;
+                    }
+                });
+                //处理承包人材料指数法表
+                tenderData.exponentialSummary.forEach(glj => {
+                    let pGLJ = projectGLJMap[glj.code];
+                    if (pGLJ) {
+                        pGLJ.is_coe_adjust = 1;
+                        pGLJ.varWeight = glj.varWeight;
+                        pGLJ.FO = glj.FO;
+                        pGLJ.FI = glj.FI;
+                        pGLJ.remark = glj.remark;
+                    }
+                });
                 //处理定额数据
                 //获取含有定额数据的清单
                 handleRation(billsData);

+ 14 - 1
web/building_saas/main/js/views/material_adjust_view.js

@@ -45,7 +45,13 @@ let materialAdjustObj = {
         view:{ lockColumns: ["code","name","specs","unit","quantity","totalPrice","originPlace","vender","supply","remark"]}
     },
     refreshSheetDatas:function () {
-        $("#adjustType").val() == "priceInfo" ? materialAdjustObj.showPriceInfoDatas():materialAdjustObj.showPriceCoeDatas();
+        //读项目属性的值,若没有则默认为造价信息差额调整法
+        let adjustType = $('#adjustType').val();
+        if (adjustType === 'priceInfo') {
+            materialAdjustObj.showPriceInfoDatas();
+        } else {
+            materialAdjustObj.showPriceCoeDatas();
+        }
         //let sheetIndex = $("#adjustType").val()
     },
     initSpread:function () {
@@ -374,6 +380,13 @@ let gljFromObj={
 $(function () {
     $("#adjustType").change(function () {
         materialAdjustObj.refreshSheetDatas();
+        let val = $(this).val();
+        let mixDatas = {projectID: projectObj.project.projectInfo.ID, updateType: 'update',
+            properties: {'property.gljAdjustType': val},
+            options: {}, labourCoes: {}, rations: [], bills: []};
+        CommonAjax.post('/pm/api/updateMixDatas', {user_id: userID, mixDataArr: mixDatas}, function (rstData) {
+            projectObj.project.projectInfo.property.gljAdjustType = val;
+        });
     });
     $('#selectFromGLJ').on('shown.bs.modal',function(e){
         gljFromObj.checkType="取消";

+ 2 - 0
web/building_saas/main/js/views/project_glj_view.js

@@ -522,6 +522,8 @@ projectGljObject={
         if(me.displayType == filterType.AMAE){
             $('#material_adjust').show();
             $('#adjustType').show();
+            let adjustType = projectObj.project.projectInfo.property.gljAdjustType || 'priceInfo';
+            $('#adjustType').val(adjustType);
             $('#project-glj-main').hide();
         } else {
             $('#material_adjust').hide();

+ 8 - 10
web/building_saas/main/js/views/project_view.js

@@ -2369,7 +2369,7 @@ $('#tab_compilation_illustration').on('show.bs.tab', function () {
     let v = projectObj.project.property.compilationIllustration ? projectObj.project.property.compilationIllustration : '';
     $('#compilationIllustration textarea').val(v);
 });
-$('#property_ok').click(async function () {
+$('#property_ok').click(function () {
     let project = projectObj.project,
         projectID = project.ID(),
         properties = {},
@@ -3338,7 +3338,7 @@ $('#export-check').click(async function () {
             }
         }
         //设置提示弹窗
-        if (xmlObj.failList.length * 16 > 400) {
+        if (xmlObj.failList.length * 20 > 400) {
             $('#hintBox_caption').addClass('export-check');
         }
         if (xmlObj.failList.length) {
@@ -3367,24 +3367,22 @@ $('#export-confirm').click(async function () {
             }
         }
         //设置提示弹窗
-        if (xmlObj.failList.length * 16 > 400) {
-            $('#hintBox_caption').addClass('export-check');
-        }
-        if (xmlObj.failList.length) {
-            throw xmlObj.failList.join('<br/>');
-        }
+        if (xmlObj.failList.length * 20 > 400) {
+         $('#hintBox_caption').addClass('export-check');
+         }
+         if (xmlObj.failList.length) {
+         throw xmlObj.failList.join('<br/>');
+         }
         //可能先执行过自检了,已经有组装好的数据了,可以直接导出
         pr.end();
         await xmlObj.exportFile();
         console.log(xmlObj);
         $('#export').modal('hide');
     } catch (err) {
-        console.log(err);
         pr.end();
         alert(err);
     }
 });
-
 $('#export').on('show.bs.modal', function () {
     xmlObj = null;
 });

+ 1 - 1
web/building_saas/pm/js/pm_import.js

@@ -406,7 +406,7 @@ const importView = (() => {
             if (sameDepthProjs.find(node => node.data.name === xmlObj.name)) {
                 xmlObj.name += `(${moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')})`;
             }
-            console.log(xmlObj);
+            //console.log(xmlObj);
             $('#importInterface').modal('hide');
             //let importData = await importXML.transformData(xmlObj);
             let pr = new SCComponent.InitProgressBar($('#progress'), $('#progress-title'), $('#progress-content'), $('#progressBar'));

+ 1 - 0
web/building_saas/pm/js/pm_newMain.js

@@ -3470,6 +3470,7 @@ function AddTender() {
         //地区
         let region = $('#regionDiv').find('select').val() || '全省';
         let tenderInfo = {
+            gljAdjustType: 'priceInfo', //默认为造价信息差额调整法
             valuation: valuation,
             valuationType: valuationType,
             valuationName: valuationName,