Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

TonyKang 8 years ago
parent
commit
96598fe097

BIN
documents/分析设计/ConstructCost项目数据下载提交设计.docx


+ 8 - 7
modules/rationRepository/models/coeList.js

@@ -7,14 +7,15 @@ var mongoose = require("mongoose");
 var dbm = require("../../../config/db/db_manager");
 var db = dbm.getCfgConnection("rationRepository")
 
-var gljCoeSchema = mongoose.Schema({
-    coeType: String,                // 系数作用范围:
-                                    // 0 针对本定额所有工料机。如:定额×0.925
+var coeSchema = mongoose.Schema({
+    coeType: String,                // 系数类型,指作用范围:
+                                    // 0 针对单个工料机。如:111量0.001
                                     // 1 人工类。 2 材料类。 3 机械类。
-                                    // 9 针对单个工料机。如:111量0.001
-    gljID: Number,                  // 要调整的工料机ID(当coeType=9时有效)
+                                    // 9 针对本定额所有工料机。如:定额×0.925 (可以用123代替,但9的好处是前端不用做多余的过滤判断,提高效率)
+    gljID: Number,                  // 要调整的工料机ID(当coeType=0时有效)
     operator: String,               // 运算符(*、+、-、=)
-    amount: String                  // 调整的量
+    amount: String,                 // 调整的量
+    _id: false
 });
 
 var coeListSchema = mongoose.Schema({
@@ -22,7 +23,7 @@ var coeListSchema = mongoose.Schema({
     ID: Number,                         // 系数ID(流水号ID)
     name: String,                       // 名称
     content: String,                    // 说明
-    gljCoe: [gljCoeSchema]
+    coes: [coeSchema]
 });
 
 var coeListModel = db.model("coeLists",coeListSchema, "coeLists")

+ 45 - 0
modules/rationRepository/models/rationAssist.js

@@ -0,0 +1,45 @@
+/**
+ * Created by CSL on 2017/5/5.
+ * 辅助定额调整。
+ */
+
+var mongoose = require("mongoose");
+var dbm = require("../../../config/db/db_manager");
+var db = dbm.getCfgConnection("rationRepository")
+
+// eg:重庆CQJZDE-2008,P28,AA0116机械装运土方全程运距100米内(主定额)20米内(会根据用户实际录入值变化),AA0117每增加10米(辅助定额)。
+// 建筑中的主定额只有一条辅助定额。(公路的主定额会对应多条辅助定额)
+var assistSchema = mongoose.Schema({
+    libID: Number,                      // 所属定额定ID
+    mainRationID: Number,               // 主定额ID
+    assistRationID: Number,             // 辅助定额ID
+    assistDisplayName: String,          // 辅助定额显示名称 (eg:每增加10米)
+    minValue: String,                   // 下限值(eg:20)
+    maxValue: String,                   // 上限值(eg:100,也可能没有)
+    stepValue: String                   // 步距值 (eg:10)
+});
+
+var assistModel = db.model("rationAssists",assistSchema, "rationAssists")
+
+var assistDAO = function(){};
+
+assistDAO.prototype.getAssist = function (data, callback) {
+    assistModel.findOne({
+            "libID": data.libID,
+            "mainRationID": data.mainRationID,
+            "$or": [{"isDeleted": null}, {"isDeleted": false}]
+        },
+        function (err, doc) {
+            if (err) callback(true, "获取辅助定额错误!", "")
+            else callback(false, "获取辅助定额成功", doc);
+        })
+};
+
+// test datas.
+//function callbackExec(err) {if (err) {console.log(err);} else {console.log('saved.')};};
+//assistModel.create({"libID": 1, "mainRationID":1, assistRationID: 2, assistDisplayName: "每增加10米", minValue:"20", maxValue: "100", stepValue:"10"}, callbackExec);
+//assistModel.create({"libID": 1, "mainRationID":3, assistRationID: 4, assistDisplayName: "每增加100米", minValue:"200", maxValue: "500", stepValue:"100"}, callbackExec);
+//assistModel.create({"libID": 1, "mainRationID":5, assistRationID: 6, assistDisplayName: "每增加100米", minValue:"1000", maxValue: null, stepValue:"1000"}, callbackExec);
+
+
+module.exports = new assistDAO();

+ 2 - 1
modules/rationRepository/models/rationCoe.js

@@ -1,6 +1,8 @@
 /**
  * Created by CSL on 2017/5/3.
  * 定额系数关系表。(即附注条件。系数会被定额公用,如同一个分枝下的兄弟定额。)
+ * 公路上,定额章节点上也会挂系数(关系数据库可减少数据冗余),该系数作用于该章节下的所有定额。每条定额还有自己特有的系数。
+ * 建筑上,简化逻辑设计,把章节点上的系数移到具体的定额上。
  */
 var mongoose = require("mongoose");
 var dbm = require("../../../config/db/db_manager");
@@ -10,7 +12,6 @@ var rationCoeSchema = mongoose.Schema({
     ID:Number,
     libID: Number,
     rationID: Number,
-    //rationCode: String,
     coeIDs: Array
 });