|
|
@@ -78,6 +78,18 @@ const ImportXML = (() => {
|
|
|
//组织措施费
|
|
|
ORGANIZATION:32
|
|
|
};
|
|
|
+ // 限定取值的取费类别与固定ID对应
|
|
|
+ const FEE_TYPE_FLAG = {
|
|
|
+ '120201': fixedFlag.CONSTRUCTION_ORGANIZATION,
|
|
|
+ '1204': fixedFlag.SAFETY_CONSTRUCTION,
|
|
|
+ '10041': fixedFlag.PROJECT_COMPLETE_ARCH_FEE,
|
|
|
+ '1206': fixedFlag.HOUSE_QUALITY_ACCEPT_FEE,
|
|
|
+ '800': fixedFlag.CHARGE,
|
|
|
+ '900': fixedFlag.TAX,
|
|
|
+ '9001': fixedFlag.ADDED_VALUE_TAX,
|
|
|
+ '9002': fixedFlag.ADDITIONAL_TAX,
|
|
|
+ '9003': fixedFlag.ENVIRONMENTAL_PROTECTION_TAX
|
|
|
+ };
|
|
|
//导入的文件类型,界面选的文件类型是生成项目的文件类型,这里的文件类型指的是,要导入文件的类型,
|
|
|
//导入文件类型不同,导入数据不同
|
|
|
let importFileKind = '';
|
|
|
@@ -198,6 +210,13 @@ const ImportXML = (() => {
|
|
|
function plainType(v) {
|
|
|
return Object.prototype.toString.call(v).slice(8, -1);
|
|
|
}
|
|
|
+ // 根据费用类别给清单数据设置flags字段
|
|
|
+ function initFlags(feeType) {
|
|
|
+ let flag = FEE_TYPE_FLAG[feeType];
|
|
|
+ return flag
|
|
|
+ ? [{fieldName: 'fixed', flag: flag}]
|
|
|
+ : [];
|
|
|
+ }
|
|
|
return function () {
|
|
|
let countData = {
|
|
|
projectCount: 0, //项目数量
|
|
|
@@ -645,7 +664,8 @@ const ImportXML = (() => {
|
|
|
calcBase: getValue(itemSrc, ['_计算基础表达式']),
|
|
|
feeRate: getValue(itemSrc, ['_费率']),
|
|
|
isEstimate: getValue(itemSrc, ['_暂估价标志']) === 'true' ? true : false,
|
|
|
- remark: getValue(itemSrc, ['_备注'])
|
|
|
+ remark: getValue(itemSrc, ['_备注']),
|
|
|
+ flags: initFlags(getValue(itemSrc, ['_费用类别']))
|
|
|
};
|
|
|
}
|
|
|
if (importFileKind === FileKind.tender) {
|
|
|
@@ -813,7 +833,8 @@ const ImportXML = (() => {
|
|
|
name: getValue(src, ['_名称']),
|
|
|
calcBase: getValue(src, ['_计算基础表达式']),
|
|
|
feeRate: getValue(src, ['_费率']),
|
|
|
- remark: getValue(src, ['_备注'])
|
|
|
+ remark: getValue(src, ['_备注']),
|
|
|
+ flags: initFlags(getValue(src, ['费用类别']))
|
|
|
};
|
|
|
if (importFileKind === FileKind.tender) {
|
|
|
obj.fees = [{fieldName: 'common', totalFee: getValue(src, ['_金额']) || '0'}];
|
|
|
@@ -1093,6 +1114,9 @@ const ImportXML = (() => {
|
|
|
matchBills.calcBase = curBills.calcBase;
|
|
|
matchBills.feeRate = curBills.feeRate;
|
|
|
matchBills.fees = curBills.fees || [];
|
|
|
+ if (curBills.flags && curBills.flags.length) {
|
|
|
+ matchBills.flags = curBills.flags;
|
|
|
+ }
|
|
|
} else { //新增
|
|
|
if (!charge && !tax) {
|
|
|
continue;
|
|
|
@@ -1127,6 +1151,10 @@ const ImportXML = (() => {
|
|
|
//需要添加的组织措施子项
|
|
|
function updateZZCSItem(org, tar) {
|
|
|
for(let [k, v] of Object.entries(tar)) {
|
|
|
+ // 如果匹配到的清单自身已有固定ID,不更新固定ID
|
|
|
+ if (k === 'flags' && Array.isArray(tar.flags) && tar.flags.length) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
org[k] = v;
|
|
|
}
|
|
|
}
|