浏览代码

多单价相关部分更新

zhongzewei 7 年之前
父节点
当前提交
aea10e10f1

+ 9 - 1
modules/all_models/stdGlj_glj.js

@@ -8,7 +8,11 @@ const Schema = mongoose.Schema;
 const std_gljComponent = new Schema(
     {
         ID: Number,
-        consumeAmt: Number
+        consumeAmt: Number,
+        consumeAmtProperty: {
+            type: Schema.Types.Mixed,
+            default: {}
+        }
     },
     {_id: false},
     {versionKey: false}
@@ -22,6 +26,10 @@ const std_glj = new Schema({
     name: String,
     specs: String,
     basePrice: Number,
+    priceProperty: {
+        type: Schema.Types.Mixed,
+        default: {}
+    },
     gljClass: Number,
     gljType: Number,
     shortName: String,

+ 7 - 1
modules/ration_repository/models/ration_item.js

@@ -376,7 +376,13 @@ rationItemDAO.prototype.updateRationBasePrc = function (basePrcArr, callback) {
                                         gljArr.push({gljId: theGlj.ID, basePrice: adjBasePrice, gljParentType: gljParentType});
                                     }
                                     else {
-                                        gljArr.push({gljId: theGlj.ID, basePrice: parseFloat(theGlj.basePrice), gljParentType: gljParentType});
+                                        if(theGlj.priceProperty && Object.keys(theGlj.priceProperty).length > 0){
+                                            let priceKeys = Object.keys(theGlj.priceProperty);
+                                            gljArr.push({gljId: theGlj.ID, basePrice: parseFloat(theGlj.priceProperty[priceKeys[0]]), gljParentType: gljParentType});
+                                        }
+                                        else {
+                                            gljArr.push({gljId: theGlj.ID, basePrice: parseFloat(theGlj.basePrice), gljParentType: gljParentType});
+                                        }
                                     }
                                 }
                             }

+ 9 - 2
modules/std_glj_lib/controllers/viewsController.js

@@ -8,6 +8,7 @@ import mongoose from 'mongoose';
 const compilationModel = mongoose.model('compilation');
 const stdGljLibModel = mongoose.model('std_glj_lib_map');
 let config = require("../../../config/config.js");
+const fs = require('fs');
 class ViewsController extends BaseController{
     redirectMain(req, res){
         res.render('maintain/std_glj_lib/html/main.html',
@@ -18,15 +19,21 @@ class ViewsController extends BaseController{
     async redirectGlj(req, res){
         let overWriteUrl = null;
         let stdGljLib = await stdGljLibModel.findOne({ID: req.query.gljLibId, deleted: false});
+        let priceProperties = [],
+            consumeAmtProperties = [];
         if(stdGljLib){
            let compilation = await compilationModel.findOne({_id: mongoose.Types.ObjectId(stdGljLib.compilationId)});
-           overWriteUrl = stdGljLib.compilationId === '5b4d581023a924000b760f2d' ? null : compilation.overWriteUrl;
-           console.log(overWriteUrl);
+           priceProperties = compilation.priceProperties ? compilation.priceProperties : [];
+           consumeAmtProperties = compilation.consumeAmtProperties ? compilation.consumeAmtProperties : [];
+           let absoluteUrl = compilation.overWriteUrl ? req.app.locals.rootDir + compilation.overWriteUrl : req.app.locals.rootDir;
+           overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilation.overWriteUrl : null;
         }
         res.render('maintain/std_glj_lib/html/gongliao.html',
         {
             userAccount: req.session.managerData.username,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
+            priceProperties: JSON.stringify(priceProperties),
+            consumeAmtProperties: JSON.stringify(consumeAmtProperties),
             overWriteUrl: overWriteUrl
         });
     }

+ 17 - 1
modules/users/controllers/compilation_controller.js

@@ -22,6 +22,7 @@ const billsGuidanceFc = require('../../std_billsGuidance_lib/facade/facades');
 import mainColFacade from "../../main_col_lib/facade/main_col_facade";
 import billTemplateFacade from "../../bills_template_lib/facade/bills_template_facade";
 let config = require("../../../config/config.js");
+const fs = require('fs');
 
 class CompilationController extends BaseController {
 
@@ -518,10 +519,25 @@ class CompilationController extends BaseController {
         let overWriteUrl = request.body.overWriteUrl;
         try{
             let compilationModel = new CompilationModel();
-            await compilationModel.setOverWriteUrl(compilationId, overWriteUrl);
+            //绝对路径
+            let absoluteUrl = request.app.locals.rootDir + overWriteUrl;
+            //文件是否存在
+            let fileExists = fs.existsSync(absoluteUrl);
+            let pricePropertiesTemplate = [],
+                consumeAmtPropertiesTemplate = [];
+            if(fileExists && fs.statSync(absoluteUrl).isFile()){
+                //读取配置文件并赋值
+                let overWriteExports = require(absoluteUrl);
+                if(overWriteExports){
+                    pricePropertiesTemplate = overWriteExports.pricePropertiesTemplate ? overWriteExports.pricePropertiesTemplate : [];
+                    consumeAmtPropertiesTemplate = overWriteExports.consumeAmtPropertiesTemplate ? overWriteExports.consumeAmtPropertiesTemplate : [];
+                }
+            }
+            await compilationModel.setOverWriteUrl(compilationId, overWriteUrl, pricePropertiesTemplate, consumeAmtPropertiesTemplate);
             response.json({err: 0, msg: '', data: null});
         }
         catch (err){
+            console.log(err);
             response.json({err: 1, msg: err, data: null});
         }
     }

+ 2 - 2
modules/users/models/compilation_model.js

@@ -91,8 +91,8 @@ class CompilationModel extends BaseModel {
     /*
         设置代码覆盖路径
      */
-    async setOverWriteUrl(compilationId, overWriteUrl){
-        return await this.updateById(compilationId, {overWriteUrl: overWriteUrl});
+    async setOverWriteUrl(compilationId, overWriteUrl, priceProp, consumeAmtProp){
+        return await this.updateById(compilationId, {overWriteUrl: overWriteUrl, priceProperties: priceProp, consumeAmtProperties: consumeAmtProp});
     }
 
     /**

+ 0 - 1
modules/users/routes/compilation_route.js

@@ -10,7 +10,6 @@ import CompilationController from "../controllers/compilation_controller";
 
 const router = Express.Router();
 const compilationController = new CompilationController();
-
 module.exports = function (app) {
     // action定义区域
     router.get('/', compilationController.auth, compilationController.init, compilationController.index);

+ 10 - 1
web/maintain/std_glj_lib/html/gongliao.html

@@ -18,6 +18,10 @@
     </style>
     <!--zTree-->
   	<link rel="stylesheet" href="/lib/ztree/css/zTreeStyle.css" type="text/css">
+    <script type="text/javascript">
+        let priceProperties = JSON.parse('<%- priceProperties %>');
+        let consumeAmtProperties = JSON.parse('<%- consumeAmtProperties %>');
+    </script>
 </head>
 
 <body>
@@ -214,7 +218,9 @@
     <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
     <script type="text/javascript" src="/web/maintain/std_glj_lib/js/sheetsOpr.js"></script>
     <script type="text/javascript" src="/public/web/storageUtil.js"></script>
+    <% if(overWriteUrl){ %>
     <script type="text/javascript" src="<%= overWriteUrl %>"></script>
+    <% } %>
     <SCRIPT type="text/javascript">
         let userAccount = '<%=userAccount %>';
         let gljSetting = {
@@ -293,7 +299,10 @@
             }
         };
         $(document).ready(function(){
-            console.log(scMathUtil.roundTo(268.89472, -2));
+            let a = {a: 1, b: 2};
+            let b = {b:2, a: 1};
+            console.log(_.isEqual(a, b));
+            console.log(Object.keys(a));
             //解决spreadjs sheet初始化没高度宽度
             $('#modalCon').width($(window).width()*0.5);
             $('#componentTreeDiv').height($(window).height() - 300);

+ 8 - 8
web/over_write/js/chongqing_2018.js

@@ -3,30 +3,30 @@
  */
 //允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、其他材料费、机械台班、机上人工、机械组成物、仪器仪表、燃料动力费、折旧费、
 // 检修费、维护费、安拆费及场外运费、校验费、其他费用、其他施工机具使用费、主材、企业管理费、利润、一般风险费
-if(allowGljType){
+if(typeof allowGljType !== 'undefined'){
     allowGljType = [1, 201, 202, 203, 204, 205, 206, 207, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 4, 6, 7, 8];
 }
-if(allowComponent){
+if(typeof allowComponent !== 'undefined'){
     //允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、仪器仪表、主材
     allowComponent = [202, 203, 204, 301, 304, 4];
 }
-if(componentType){
+if(typeof componentType !== 'undefined'){
     //可以作为组成物的工料机类型:普通材料、机械组成物、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用、主材
     componentType = [201, 303, 305, 306, 307, 308, 309, 310, 311, 4];
 }
-if(machineAllowComponent){
+if(typeof machineAllowComponent !== 'undefined'){
     //允许含有组成物的机械工料机类型:机械台班、仪器仪表
     machineAllowComponent = [301, 304];
 }
-if(machineComponent){
+if(typeof machineComponent !== 'undefined'){
     //可以作为机械工料机组成物的工料机类型:机械组成物、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用
     machineComponent = [303, 305, 306, 307, 308, 309, 310, 311];
 }
-if(materialAllowComponent){
+if(typeof materialAllowComponent !== 'undefined'){
     //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
     materialAllowComponent = [202, 203, 204];
 }
-if(materialComponent){
+if(typeof materialComponent !== 'undefined'){
     //可以作为材料工料机组成物的工料机类型:普通材料
     materialComponent = [201];
-}
+}