Browse Source

1. 变更概况,本期已用变更问题
2. 中间计量,同编号、名称、单位,不同单价数据问题
3. 台账分解界面,初始化工具栏问题

MaiXinRong 5 years ago
parent
commit
dc1a95bb4f

+ 1 - 1
app/base/base_controller.js

@@ -133,7 +133,7 @@ class BaseController extends Controller {
         }
     }
 
-    async checkMeasureType (mt) {
+    checkMeasureType (mt) {
         if (this.ctx.tender.data.measure_type !== mt) {
             throw '该模式下不可提交此数据';
         }

+ 5 - 9
app/controller/ledger_controller.js

@@ -115,7 +115,6 @@ module.exports = app => {
                 const content = auditors.length > 0 ? await ctx.service.ledgerAuditContent.getAllDataByCondition({
                     where: { tender_id: tender.id, times, audit_id: auditors[0].audit_id },
                 }) : null;
-                const ledgerData = await ctx.service.ledger.getData(tender.id);
                 const user = await ctx.service.projectAccount.getAccountInfoById(ctx.tender.data.user_id);
                 const auditHistory = [];
                 if (ctx.tender.data.ledger_times > 1) {
@@ -133,7 +132,6 @@ module.exports = app => {
                     user,
                     auditHistory,
                     content,
-                    ledger: JSON.stringify(ledgerData),
                     ledgerSpreadSetting: JSON.stringify(ledgerSpread),
                     posSpreadSetting: JSON.stringify(posSpread),
                     tenderMenu,
@@ -423,14 +421,12 @@ module.exports = app => {
          * @param ctx
          * @return {Promise<void>}
          */
-        async pos(ctx) {
+        async loadExplodeData(ctx) {
             try {
-                await this.checkMeasureType(measureType.tz.value);
-                const condition = JSON.parse(ctx.request.body.data) || {};
-                condition.tid = ctx.tender.id;
-
-                const posData = await ctx.service.pos.getPosData(condition);
-                ctx.body = { err: 0, msg: '', data: posData };
+                const ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
+                const posData = this.ctx.tender.data.measure_type === measureType.tz.value
+                    ? await ctx.service.pos.getPosData({tid: ctx.tender.id}) : [];
+                ctx.body = { err: 0, msg: '', data: {bills: ledgerData, pos: posData} };
             } catch (err) {
                 this.log(err);
                 ctx.body = { err: 1, msg: err.toString(), data: [] };

+ 16 - 14
app/public/js/ledger.js

@@ -46,13 +46,6 @@ $(document).ready(function() {
         node.dgn_price = ZhCalc.round(ZhCalc.div(node.total_price, node.dgn_qty1), 2);
     };
     const ledgerTree = createNewPathTree('ledger', treeSetting);
-    ledgerTree.loadDatas(ledger);
-    treeCalc.calculateAll(ledgerTree);
-    ledgerTreeCol.initSpreadSetting(ledgerSpreadSetting);
-    SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting);
-    // 加载台账数据到界面
-    SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
-    SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread);
     // 初始化 部位明细
     const pos = new PosData({
         id: 'id', ledgerId: 'lid',
@@ -728,9 +721,12 @@ $(document).ready(function() {
             }
         }
     };
+    ledgerTreeCol.initSpreadSetting(ledgerSpreadSetting);
+    SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting);
     // 绑定事件
     ledgerSpread.bind(GC.Spread.Sheets.Events.SelectionChanged, treeOperationObj.selectionChanged);
     ledgerSpread.bind(spreadNS.Events.TopRowChanged, treeOperationObj.topRowChanged);
+
     if (!ledgerSpreadSetting.readOnly) {
         ledgerSpread.bind(GC.Spread.Sheets.Events.SelectionChanged, function (e, info) {
             treeOperationObj.refreshOperationValid(info.sheet, info.newSelections);
@@ -953,8 +949,6 @@ $(document).ready(function() {
         SpreadJsObj.forbiddenSpreadContextMenu('#ledger-spread', ledgerSpread);
     }
 
-    treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet());
-
     const posSearch = $.posSearch({selector: '#pos-search', searchSpread: posSpread});
     // 台账模式加载部位明细数据
     if (checkTzMeasureType()) {
@@ -968,11 +962,6 @@ $(document).ready(function() {
             }
         });
         SpreadJsObj.initSheet(posSpread.getActiveSheet(), posSpreadSetting);
-        postData('/tender/' + getTenderId() + '/pos', null, function (data) {
-            pos.loadDatas(data);
-            posOperationObj.loadCurPosData();
-            SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet());
-        });
     }
     // 绑定部位明细编辑事件
     const posOperationObj = {
@@ -1235,6 +1224,19 @@ $(document).ready(function() {
         SpreadJsObj.forbiddenSpreadContextMenu('#pos-spread', posSpread);
     }
 
+    postData(window.location.pathname + '/load', {}, function (data) {
+        ledgerTree.loadDatas(data.bills);
+        treeCalc.calculateAll(ledgerTree);
+        SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
+        SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread);
+
+        pos.loadDatas(data.pos);
+        posOperationObj.loadCurPosData();
+        SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet());
+
+        treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet());
+    }, null, true);
+
     let stdXmj, stdGcl, dealBills, searchLedger;
 
     $.divResizer({

+ 1 - 1
app/public/js/stage_im.js

@@ -334,7 +334,7 @@ const stageIm = (function () {
             }
             let imData = _.find(ImData, {lid: d.lid, uuid: d.uuid});
             if (!imData) {
-                imData = _.find(ImData, {lid: d.lid, code: d.code, name: d.name, unit: d.unit});
+                imData = _.find(ImData, {lid: d.lid, code: d.code, name: d.name, unit: d.unit, unit_price: d.unit_price});
             }
             if (imData) {
                 _.assignInWith(imData, d, function (oV, sV, key) {

+ 2 - 1
app/router.js

@@ -88,11 +88,12 @@ module.exports = app => {
 
     // 台账管理相关
     app.get('/tender/:id/ledger', sessionAuth, tenderCheck, 'ledgerController.explode');
+    app.post('/tender/:id/ledger/load', sessionAuth, tenderCheck, 'ledgerController.loadExplodeData');
     app.post('/tender/:id/ledger/get-children', sessionAuth, tenderCheck, 'ledgerController.getChildren');
     app.post('/tender/:id/ledger/update', sessionAuth, tenderCheck, 'ledgerController.update');
     app.post('/tender/:id/ledger/upload-excel', sessionAuth, tenderCheck, 'ledgerController.uploadExcel');
     app.get('/tender/:id/ledger/download/:file', sessionAuth, tenderCheck, 'ledgerController.download');
-    app.post('/tender/:id/pos', sessionAuth, tenderCheck, 'ledgerController.pos');
+    //app.post('/tender/:id/pos', sessionAuth, tenderCheck, 'ledgerController.pos');
     app.post('/tender/:id/pos/update', sessionAuth, tenderCheck, 'ledgerController.posUpdate');
     app.post('/tender/:id/pos/paste', sessionAuth, tenderCheck, 'ledgerController.posPaste');
     // 台账审批相关

+ 2 - 1
app/service/stage_change.js

@@ -304,7 +304,7 @@ module.exports = app => {
          * @returns {Promise<void>}
          */
         async getStageUsedChangeId(sid) {
-            const sql = 'SELECT c.`cid` FROM ' + this.tableName + ' As c' +
+            const sql = 'SELECT c.`cid`, sum(qty) As qty FROM ' + this.tableName + ' As c' +
                         '  INNER JOIN (' +
                         '    SELECT MAX(`stimes` * ' + timesLen + ' + `sorder`) As `flow`, `lid`, `pid`, `cbid` From ' + this.tableName +
                         '      WHERE sid = ?' +
@@ -314,6 +314,7 @@ module.exports = app => {
                         '  GROUP BY c.`cid`';
             const sqlParam = [sid];
             const result = await this.db.query(sql, sqlParam);
+            console.log(this.db.format(sql, sqlParam));
             return this._.map(this._.filter(result, 'qty'), 'cid');
         }
     }

+ 0 - 2
app/view/ledger/explode.ejs

@@ -150,8 +150,6 @@
     const tender = JSON.parse('<%- JSON.stringify(tender) %>');
     const tenderInfo = JSON.parse('<%- JSON.stringify(tenderInfo) %>');
     const measureType = JSON.parse('<%- JSON.stringify(measureType) %>');
-    let ledger = '<%- ledger %>';
-    ledger = JSON.parse(ledger);
     let ledgerSpreadSetting = '<%- ledgerSpreadSetting %>';
     ledgerSpreadSetting = JSON.parse(ledgerSpreadSetting);
     let posSpreadSetting = JSON.parse('<%- posSpreadSetting %>');