|
@@ -67,10 +67,10 @@ const importXML = (() => {
|
|
|
// 默认、中间过程
|
|
|
PROCESS: 6
|
|
|
};
|
|
|
- // 根据上方精度要求得到的项目属性,小数位数的值
|
|
|
+ // 根据上方精度要求得到的项目属性,小数位数的值(定额工程量小数位数需求改成六位)
|
|
|
const tenderPropertyDecimal = {
|
|
|
bills: { unitPrice: Decimal.FEE, totalPrice: Decimal.FEE },
|
|
|
- ration: { quantity: Decimal.QUANTITY, unitPrice: Decimal.FEE, totalPrice: Decimal.FEE },
|
|
|
+ ration: { quantity: Decimal.PROCESS, unitPrice: Decimal.FEE, totalPrice: Decimal.FEE },
|
|
|
glj: { quantity: Decimal.GLJ, unitPriceHasMix: Decimal.FEE, unitPrice: Decimal.FEE },
|
|
|
feeRate: Decimal.RATE,
|
|
|
quantity_detail: 4,
|
|
@@ -125,6 +125,7 @@ const importXML = (() => {
|
|
|
const bidderInfo = getValue(projectSrc, ['ConstructionInfo', 'BidderInfo']); // 投标信息
|
|
|
return [
|
|
|
{ key: 'projNum', value: getValue(projectSrc, ['_Number']) }, // 编码
|
|
|
+ { key: 'projectType', value: getValue(projectSrc, ['_ProjectType']) }, // 工程类型
|
|
|
{ key: 'projectCategory', value: getValue(projectSrc, ['_ProjectCategory']) }, // 工程类别
|
|
|
{ key: 'constructionType', value: getValue(projectSrc, ['_ConstructionType']) }, // 建设性质
|
|
|
{ key: 'regionalCategories', value: AreaKind[getValue(projectSrc, ['_AreaKind'])] }, // 地区类被
|
|
@@ -744,6 +745,12 @@ const importXML = (() => {
|
|
|
'3': commonConstants.supplyType.WQJG
|
|
|
};
|
|
|
|
|
|
+ // 获取原始编码
|
|
|
+ function getOriginalCode(code) {
|
|
|
+ //编码后面有-\d+的形式,去掉-\d+取前面的字符串作为原始代码
|
|
|
+ return code.replace(/(.*)-\d+$/, '$1');
|
|
|
+ }
|
|
|
+
|
|
|
// 提取人材机汇总相关(人材机汇总表、承包材料表)
|
|
|
function extractGLJSummary(tenderSrc) {
|
|
|
const initData = { gljSummary: [], differentiaSummary: [], exponentialSummary: [] };
|
|
@@ -765,11 +772,6 @@ const importXML = (() => {
|
|
|
return acc;
|
|
|
}, initData);
|
|
|
|
|
|
- // 获取原始编码
|
|
|
- function getOriginalCode(code) {
|
|
|
- //编码后面有-\d+的形式,去掉-\d+取前面的字符串作为原始代码
|
|
|
- return code.replace(/(.*)-\d+$/, '$1');
|
|
|
- }
|
|
|
// TODO (不靠谱) 获取人材机类型数据
|
|
|
// 导入的源文件没有细化区分人材机类型,这里只是暂时大概给个值。后续会在后端与标准人材机进行配对。也因此无法准确处理补充人材机
|
|
|
function getTypeData(gljSrc) {
|
|
@@ -821,6 +823,9 @@ const importXML = (() => {
|
|
|
function extractGLJ(gljSrc) {
|
|
|
countData.projectGLJCount++;
|
|
|
const code = getValue(gljSrc, ['_Number']);
|
|
|
+ /* if (code.includes('99450680')) {
|
|
|
+ debugger;
|
|
|
+ } */
|
|
|
return {
|
|
|
code,
|
|
|
original_code: getOriginalCode(code),
|
|
@@ -1047,6 +1052,19 @@ const importXML = (() => {
|
|
|
mergeCSXM(tenderData.csxm);
|
|
|
mergeOther(tenderData.other);
|
|
|
mergeTax(tenderData.tax);
|
|
|
+ // 需要清空各种原因导入的父项的工程量
|
|
|
+ const parentMap = {};
|
|
|
+ mergedBills.forEach(bills => {
|
|
|
+ if (bills.ParentID !== -1) {
|
|
|
+ parentMap[bills.ParentID] = 1;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ mergedBills.forEach(bills => {
|
|
|
+ if (parentMap[bills.ID] && commonUtil.isDef(bills.quantity)) {
|
|
|
+ delete bills.quantity;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(mergedBills);
|
|
|
return mergedBills;
|
|
|
|
|
|
// 合并清单数据
|
|
@@ -1376,6 +1394,10 @@ const importXML = (() => {
|
|
|
projectGLJ.ratios.forEach(ratio => {
|
|
|
const matched = projectGLJMap[ratio.code];
|
|
|
ratio.code = matched.code;
|
|
|
+ // 为了后端匹配标准数据,如易达有组成物"99450680-0001"
|
|
|
+ // 项目人材机、单价文件根据original_code匹配上了标准人材机,修改了gljType等
|
|
|
+ // mixRatio根据code匹配标准数据匹配不上标准数据,因此type与项目人材机的type不同,导致组成物丢失
|
|
|
+ ratio.original_code = getOriginalCode(ratio.code);
|
|
|
ratio.projectGLJID = projectGLJ.id;
|
|
|
ratio.id = IDPlaceholder.ratio++;
|
|
|
ratio.unit_price_file_id = tenderData.property.unitPriceFile.id;
|