|
@@ -329,6 +329,10 @@ class Rpt_Data_Extractor {
|
|
|
//把显示在清单中的量材转移到工料机去, 顺带把项目工料机的组成物工料机分解出来,分解的工料机作为定额工料机保存(02表用)
|
|
|
moveRationData(srcData, rawDataObj);
|
|
|
break;
|
|
|
+ case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
|
|
|
+ //把定额下的组成物的工料机分解出来,分解的工料机作为定额工料机保存(02表用)
|
|
|
+ moveRationComponentData(srcData, rawDataObj);
|
|
|
+ break;
|
|
|
case JV.PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT:
|
|
|
//重庆2018 09-x表专用,机械数据用 组成物替换掉 ^_^!
|
|
|
componentReplacement(rawDataObj);
|
|
@@ -870,52 +874,56 @@ function moveRationData(rationData, rawDataObj) {
|
|
|
//无
|
|
|
}
|
|
|
}
|
|
|
- //这里考虑到项目工料机有组成物,那么这些组成物应该要归类到定额工料机下
|
|
|
- let newComponentItem = [];
|
|
|
- for (let rationGljItem of getActDataArr(rationGljData)) {
|
|
|
- for (let prjGljItem of prjGljData.data.gljList) {
|
|
|
- if (prjGljItem.id === rationGljItem.projectGLJID) {
|
|
|
- if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0 && !gljUtil.isConcreteType(prjGljItem.type)) {
|
|
|
- //有组成物
|
|
|
- for (let comItem of prjGljItem.ratio_data) {
|
|
|
- let copyItem = {};
|
|
|
- copyItem.ID = comItem._id.toString();
|
|
|
- copyItem.projectID = rationGljItem.projectID;
|
|
|
- copyItem.rationID = rationGljItem.rationID;
|
|
|
- // copyItem.rationItemQuantity = rationGljItem.quantity;
|
|
|
- copyItem.quantity = parseFloat(rationGljItem.quantity) * parseFloat(comItem.consumption);
|
|
|
- copyItem.name = comItem.name;
|
|
|
- copyItem.code = comItem.code;
|
|
|
- copyItem.unit = comItem.unit;
|
|
|
- copyItem.specs = comItem.specs;
|
|
|
- // copyItem.shortName = comItem.shortName;
|
|
|
- copyItem.billsItemID = rationGljItem.billsItemID;
|
|
|
- copyItem.type = comItem.type;
|
|
|
- //其他属性,要根据工料机ID来查找
|
|
|
- for (let gljIdx = 0; gljIdx < prjGljData.data.gljList.length; gljIdx++) {
|
|
|
- if (prjGljData.data.gljList[gljIdx].code === comItem.code) {
|
|
|
- copyItem.projectGLJID = prjGljData.data.gljList[gljIdx].id;
|
|
|
- copyItem.original_code = prjGljData.data.gljList[gljIdx].original_code;
|
|
|
- copyItem.is_main_material = prjGljData.data.gljList[gljIdx].is_main_material;
|
|
|
- copyItem.is_adjust_price = prjGljData.data.gljList[gljIdx].is_adjust_price;
|
|
|
- copyItem.unit_price = {};
|
|
|
- copyItem.unit_price.base_price = prjGljData.data.gljList[gljIdx].unit_price.base_price;
|
|
|
- copyItem.unit_price.market_price = prjGljData.data.gljList[gljIdx].unit_price.market_price;
|
|
|
- break;
|
|
|
- }
|
|
|
+ // fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//有些项目工料机有组成物,有些表需要显示这些组成物,此函数把这些组成物抽出并归类到定额工料机下
|
|
|
+function moveRationComponentData(rationData, rawDataObj) {
|
|
|
+ let rationGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.RATION_GLJ);
|
|
|
+ let prjGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.PROJECTGLJ);
|
|
|
+ let newComponentItem = [];
|
|
|
+ for (let rationGljItem of getActDataArr(rationGljData)) {
|
|
|
+ for (let prjGljItem of prjGljData.data.gljList) {
|
|
|
+ if (prjGljItem.id === rationGljItem.projectGLJID) {
|
|
|
+ if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0 && !gljUtil.isConcreteType(prjGljItem.type)) {
|
|
|
+ //有组成物
|
|
|
+ for (let comItem of prjGljItem.ratio_data) {
|
|
|
+ let copyItem = {};
|
|
|
+ copyItem.ID = comItem._id.toString();
|
|
|
+ copyItem.projectID = rationGljItem.projectID;
|
|
|
+ copyItem.rationID = rationGljItem.rationID;
|
|
|
+ // copyItem.rationItemQuantity = rationGljItem.quantity;
|
|
|
+ copyItem.quantity = parseFloat(rationGljItem.quantity) * parseFloat(comItem.consumption);
|
|
|
+ copyItem.name = comItem.name;
|
|
|
+ copyItem.code = comItem.code;
|
|
|
+ copyItem.unit = comItem.unit;
|
|
|
+ copyItem.specs = comItem.specs;
|
|
|
+ // copyItem.shortName = comItem.shortName;
|
|
|
+ copyItem.billsItemID = rationGljItem.billsItemID;
|
|
|
+ copyItem.type = comItem.type;
|
|
|
+ //其他属性,要根据工料机ID来查找
|
|
|
+ for (let gljIdx = 0; gljIdx < prjGljData.data.gljList.length; gljIdx++) {
|
|
|
+ if (prjGljData.data.gljList[gljIdx].code === comItem.code) {
|
|
|
+ copyItem.projectGLJID = prjGljData.data.gljList[gljIdx].id;
|
|
|
+ copyItem.original_code = prjGljData.data.gljList[gljIdx].original_code;
|
|
|
+ copyItem.is_main_material = prjGljData.data.gljList[gljIdx].is_main_material;
|
|
|
+ copyItem.is_adjust_price = prjGljData.data.gljList[gljIdx].is_adjust_price;
|
|
|
+ copyItem.unit_price = {};
|
|
|
+ copyItem.unit_price.base_price = prjGljData.data.gljList[gljIdx].unit_price.base_price;
|
|
|
+ copyItem.unit_price.market_price = prjGljData.data.gljList[gljIdx].unit_price.market_price;
|
|
|
+ break;
|
|
|
}
|
|
|
- newComponentItem.push(copyItem);
|
|
|
}
|
|
|
+ newComponentItem.push(copyItem);
|
|
|
}
|
|
|
- break;
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- rationGljData.data = rationGljData.data.concat(newComponentItem);
|
|
|
- // fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
|
|
|
}
|
|
|
+ rationGljData.data = rationGljData.data.concat(newComponentItem);
|
|
|
}
|
|
|
-
|
|
|
function getDupGrpKeyVals(sourceData, segKeys) {
|
|
|
let rst = [];
|
|
|
function pushKeyVal(item) {
|