|
@@ -14,6 +14,7 @@ import GLJTypeConst from "../../common/const/glj_type_const";
|
|
|
import RationGLJFacade from "../../ration_glj/facade/ration_glj_facade";
|
|
|
import STDGLJLibGLJListModel from "../../common/std/std_glj_lib_glj_list_model";
|
|
|
import MixRatioModel from "./mix_ratio_model";
|
|
|
+import GljModel from "../../complementary_glj_lib/models/gljModel";
|
|
|
const ProjectModel = require('../../pm/models/project_model').project;
|
|
|
|
|
|
class GLJListModel extends BaseModel {
|
|
@@ -204,19 +205,16 @@ class GLJListModel extends BaseModel {
|
|
|
glj.quantity = totalComposition[glj.code] !== undefined ? totalComposition[glj.code] : glj.quantity;
|
|
|
glj.quantity = compositionConsumption[gljId] !== undefined ? glj.quantity + compositionConsumption[gljId] : glj.quantity;
|
|
|
|
|
|
- // 消耗值为0的数据不显示
|
|
|
- if (glj.quantity === 0) {
|
|
|
- delete gljList[index];
|
|
|
- continue;
|
|
|
- }
|
|
|
// 组成物数据
|
|
|
gljList[index].ratio_data = mixRatioData[gljId] !== undefined ? mixRatioData[gljId] : [];
|
|
|
|
|
|
+ glj.unit_price.base_price = parseFloat(glj.unit_price.base_price).toFixed(2);
|
|
|
+ glj.unit_price.market_price = parseFloat(glj.unit_price.market_price).toFixed(2);
|
|
|
// 计算调整基价
|
|
|
switch (glj.unit_price.type + '') {
|
|
|
// 人工: 调整基价=基价单价*调整系数
|
|
|
case GLJTypeConst.LABOUR:
|
|
|
- glj.adjust_price = glj.adjustment * glj.unit_price.base_price;
|
|
|
+ glj.adjust_price = parseFloat(glj.adjustment * glj.unit_price.base_price).toFixed(2);
|
|
|
break;
|
|
|
// 机械类型的算法
|
|
|
case GLJTypeConst.MACHINE:
|
|
@@ -266,7 +264,7 @@ class GLJListModel extends BaseModel {
|
|
|
// 判断类型,如果是混凝土、砂浆或者配合比则查找对应的组成物(前提是没有对应的项目工料机数据)
|
|
|
if (isAddProjectGLJ && (data.type === GLJTypeConst.CONCRETE || data.type === GLJTypeConst.MORTAR ||
|
|
|
data.type === GLJTypeConst.MIX_RATIO || data.type === GLJTypeConst.GENERAL_MACHINE)) {
|
|
|
- this.compositionInit(data.code, data.project_id, unitPriceFileId);
|
|
|
+ this.compositionInit(data, unitPriceFileId);
|
|
|
}
|
|
|
|
|
|
// 新增单价文件
|
|
@@ -416,14 +414,20 @@ class GLJListModel extends BaseModel {
|
|
|
* 工料机中组成物操作
|
|
|
* 该方法只在确保没有对应项目工料机的时候才会调用
|
|
|
*
|
|
|
- * @param {String} code
|
|
|
+ * @param {Object} data
|
|
|
* @param {Number} projectId
|
|
|
- * @param {Number} unitPriceFileId
|
|
|
* @return {void}
|
|
|
*/
|
|
|
- async compositionInit(code, projectId, unitPriceFileId) {
|
|
|
+ async compositionInit(data, unitPriceFileId) {
|
|
|
+ let gljId = data.glj_id === undefined ? 0 : data.glj_id;
|
|
|
+ let projectId = data.project_id === undefined ? 0 : data.project_id;
|
|
|
+ if (code === 0 || projectId === 0) {
|
|
|
+ throw '参数错误';
|
|
|
+ }
|
|
|
+ let fromTable = data.from === undefined ? 'std' : data.from;
|
|
|
+
|
|
|
// 查找对应组成物的项目工料机数据
|
|
|
- let [projectGljList, compositionGljList] = await this.getCompositionGLJList(code, projectId, 'name');
|
|
|
+ let [projectGljList, compositionGljList] = await this.getCompositionGLJList(gljId, projectId, 'name', fromTable);
|
|
|
|
|
|
// 整理配合比待插入数据
|
|
|
let mixRatioInsertData = [];
|
|
@@ -567,15 +571,16 @@ class GLJListModel extends BaseModel {
|
|
|
/**
|
|
|
* 获取混凝土等有组成物相关工料机对应的组成物项目工料机数据
|
|
|
*
|
|
|
- * @param {String} code
|
|
|
+ * @param {Number} gljId
|
|
|
* @param {Number} projectId
|
|
|
* @param {String} indexBy
|
|
|
+ * @param {String} fromTable
|
|
|
* @return {Promise} 返回组成物工料机数据和组成物列表数据
|
|
|
*/
|
|
|
- async getCompositionGLJList(code, projectId, indexBy = null) {
|
|
|
+ async getCompositionGLJList(gljId, projectId, indexBy = null, fromTable = 'std') {
|
|
|
// 获取对应的组成物数据
|
|
|
- let stdGljLibGljListModel = new STDGLJLibGLJListModel();
|
|
|
- let componentGljList = await stdGljLibGljListModel.getComponent(code);
|
|
|
+ let gljListModel = fromTable === 'std' ? new STDGLJLibGLJListModel() : new GljModel();
|
|
|
+ let componentGljList = await gljListModel.getComponent(gljId);
|
|
|
|
|
|
if (componentGljList.length <= 0) {
|
|
|
throw '不存在对应的组成物';
|