|
@@ -892,14 +892,19 @@ const ImportXML = (() => {
|
|
|
return gljsSrc.map(gljSrc => {
|
|
return gljsSrc.map(gljSrc => {
|
|
|
countData.projectGLJCount++;
|
|
countData.projectGLJCount++;
|
|
|
//编码都取原始编码,如果原始编码为空,都取编码
|
|
//编码都取原始编码,如果原始编码为空,都取编码
|
|
|
- let orgCode = getValue(gljSrc, ['_原始代码']),
|
|
|
|
|
|
|
+ let sourceCode = getValue(gljSrc, ['_原始代码']),
|
|
|
code = getValue(gljSrc, ['_代码']);
|
|
code = getValue(gljSrc, ['_代码']);
|
|
|
- if (!orgCode) {
|
|
|
|
|
- orgCode = code;
|
|
|
|
|
|
|
+ if (!sourceCode) {
|
|
|
|
|
+ sourceCode = code;
|
|
|
}
|
|
}
|
|
|
|
|
+ // 人材机的真正原始编号应按规矩处理,不能直接读取编码。
|
|
|
|
|
+ // 应取sourceCode,qtf文件中原始代码的最后一个“-”前面的文本;如果没有“-”则直接取原始代码
|
|
|
|
|
+ const orgCodeReg = /.*(?=-\d+$)/;
|
|
|
|
|
+ const match = sourceCode.match(orgCodeReg);
|
|
|
|
|
+ const orgCode = match ? match[0] : sourceCode;
|
|
|
let gljData = {
|
|
let gljData = {
|
|
|
customCode: code, //处理自定义的代码 (有的公司定额人材机代码、人材机代码是用自动生成的代码)
|
|
customCode: code, //处理自定义的代码 (有的公司定额人材机代码、人材机代码是用自动生成的代码)
|
|
|
- code: orgCode,
|
|
|
|
|
|
|
+ code: sourceCode,
|
|
|
original_code: orgCode,
|
|
original_code: orgCode,
|
|
|
name: getValue(gljSrc, ['_名称']),
|
|
name: getValue(gljSrc, ['_名称']),
|
|
|
specs: getValue(gljSrc, ['_规格']),
|
|
specs: getValue(gljSrc, ['_规格']),
|
|
@@ -1441,6 +1446,7 @@ const ImportXML = (() => {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
// 模板映射:{[templateLibID]: data}
|
|
// 模板映射:{[templateLibID]: data}
|
|
|
|
|
+ debugger;
|
|
|
let templateMapping = await ajaxPost('/template/bills/api/getNeedfulTemplate', {allTemplateLibIDs});
|
|
let templateMapping = await ajaxPost('/template/bills/api/getNeedfulTemplate', {allTemplateLibIDs});
|
|
|
for (let i = 0; i < xmlObj.engs.length; i++) {
|
|
for (let i = 0; i < xmlObj.engs.length; i++) {
|
|
|
let curEng = xmlObj.engs[i],
|
|
let curEng = xmlObj.engs[i],
|
|
@@ -1531,8 +1537,8 @@ const ImportXML = (() => {
|
|
|
mixRatio: [] //组成物
|
|
mixRatio: [] //组成物
|
|
|
};
|
|
};
|
|
|
//工料机汇总code-数据映射
|
|
//工料机汇总code-数据映射
|
|
|
- // 项目人材机customCode、original_code-原始数据映射,有的导入数据中,有一部分关联自生成材料号CX,有的关联原始代码...
|
|
|
|
|
- // 因此customCode、original_code都需要跟原始数据映射,通过customCode取不到数据的时候,通过orgCode获取
|
|
|
|
|
|
|
+ // 项目人材机customCode、code-原始数据映射,有的导入数据中,有一部分关联自生成材料号CX,有的关联代码...
|
|
|
|
|
+ // 因此customCode、code都需要跟原始数据映射,通过customCode取不到数据的时候,通过orgCode获取
|
|
|
let projectGLJMap = {};
|
|
let projectGLJMap = {};
|
|
|
//投标文件才需要导入定额等数据
|
|
//投标文件才需要导入定额等数据
|
|
|
if (importFileKind === FileKind.tender) {
|
|
if (importFileKind === FileKind.tender) {
|
|
@@ -1544,14 +1550,14 @@ const ImportXML = (() => {
|
|
|
pGLJ.shortName = pGLJ.shortName || '材';
|
|
pGLJ.shortName = pGLJ.shortName || '材';
|
|
|
//gljCodeMap[pGLJ.code] = pGLJ;
|
|
//gljCodeMap[pGLJ.code] = pGLJ;
|
|
|
projectGLJMap[pGLJ.customCode] = pGLJ;
|
|
projectGLJMap[pGLJ.customCode] = pGLJ;
|
|
|
- projectGLJMap[pGLJ.original_code] = pGLJ;
|
|
|
|
|
|
|
+ projectGLJMap[pGLJ.code] = pGLJ;
|
|
|
});
|
|
});
|
|
|
//处理项目人材机数据
|
|
//处理项目人材机数据
|
|
|
tenderData.gljSummary.forEach(pGLJ => {
|
|
tenderData.gljSummary.forEach(pGLJ => {
|
|
|
//组成物数据
|
|
//组成物数据
|
|
|
pGLJ.ratios.forEach(ratio => {
|
|
pGLJ.ratios.forEach(ratio => {
|
|
|
let matchData = projectGLJMap[ratio.code];
|
|
let matchData = projectGLJMap[ratio.code];
|
|
|
- ratio.code = matchData.original_code;
|
|
|
|
|
|
|
+ ratio.code = matchData.code;
|
|
|
ratio.projectGLJID = pGLJ.id; //后端查找标准数据后,方便更新组成物数据
|
|
ratio.projectGLJID = pGLJ.id; //后端查找标准数据后,方便更新组成物数据
|
|
|
ratio.id = IDPlaceholder.ratio++;
|
|
ratio.id = IDPlaceholder.ratio++;
|
|
|
ratio.unit_price_file_id = tenderData.property.unitPriceFile.id;
|
|
ratio.unit_price_file_id = tenderData.property.unitPriceFile.id;
|
|
@@ -1559,7 +1565,7 @@ const ImportXML = (() => {
|
|
|
ratio.name = matchData ? matchData.name : '';
|
|
ratio.name = matchData ? matchData.name : '';
|
|
|
ratio.specs = matchData ? matchData.specs : '';
|
|
ratio.specs = matchData ? matchData.specs : '';
|
|
|
ratio.type = matchData ? matchData.type : 1;
|
|
ratio.type = matchData ? matchData.type : 1;
|
|
|
- ratio.connect_key = [pGLJ.original_code || 'null', pGLJ.name || 'null', pGLJ.specs || 'null', pGLJ.unit || 'null', pGLJ.type].join('|-|');
|
|
|
|
|
|
|
+ ratio.connect_key = [pGLJ.code || 'null', pGLJ.name || 'null', pGLJ.specs || 'null', pGLJ.unit || 'null', pGLJ.type].join('|-|');
|
|
|
rst.mixRatio.push(ratio);
|
|
rst.mixRatio.push(ratio);
|
|
|
});
|
|
});
|
|
|
delete pGLJ.ratios;
|
|
delete pGLJ.ratios;
|
|
@@ -1663,12 +1669,14 @@ const ImportXML = (() => {
|
|
|
? scMathUtil.roundForObj(ration.quantity * unitNum[0], qDecimal ? qDecimal[0] - 1 : 0)
|
|
? scMathUtil.roundForObj(ration.quantity * unitNum[0], qDecimal ? qDecimal[0] - 1 : 0)
|
|
|
: ration.quantity;
|
|
: ration.quantity;
|
|
|
}*/
|
|
}*/
|
|
|
|
|
+ // 问题
|
|
|
|
|
+ debugger;
|
|
|
//处理定额人材机,添加需要的数据
|
|
//处理定额人材机,添加需要的数据
|
|
|
ration.rationGljs.forEach(rGLJ => {
|
|
ration.rationGljs.forEach(rGLJ => {
|
|
|
let matchGLJ = projectGLJMap[rGLJ.code];
|
|
let matchGLJ = projectGLJMap[rGLJ.code];
|
|
|
if (matchGLJ) {
|
|
if (matchGLJ) {
|
|
|
rGLJ.projectGLJID = matchGLJ.id;
|
|
rGLJ.projectGLJID = matchGLJ.id;
|
|
|
- rGLJ.code = matchGLJ.original_code;
|
|
|
|
|
|
|
+ rGLJ.code = matchGLJ.code;
|
|
|
rGLJ.type = matchGLJ.type;
|
|
rGLJ.type = matchGLJ.type;
|
|
|
rGLJ.shortName = matchGLJ.shortName;
|
|
rGLJ.shortName = matchGLJ.shortName;
|
|
|
rGLJ.name = matchGLJ.name;
|
|
rGLJ.name = matchGLJ.name;
|