|
@@ -931,17 +931,49 @@ module.exports = app => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ async _getLedgerColumn() {
|
|
|
|
+ const tender = this.ctx.tender;
|
|
|
|
+ const ledgerColumn = [
|
|
|
|
+ 'id', 'tender_id', 'ledger_id', 'ledger_pid', 'level', 'order', 'full_path', 'is_leaf',
|
|
|
|
+ 'code', 'b_code', 'name', 'unit', 'unit_price', 'quantity', 'total_price',
|
|
|
|
+ 'sgfh_qty', 'sgfh_expr', 'sgfh_tp', 'memo', 'features', 'drawing_code', 'node_type', 'ex_qty1', 'ex_tp1', 'ccid'];
|
|
|
|
+ if (tender.info.display.ledger.deal) ledgerColumn.push('deal_qty', 'deal_tp');
|
|
|
|
+ if (tender.info.display.ledger.dgnQty) ledgerColumn.push('dgn_qty1', 'dgn_qty2');
|
|
|
|
+ if (tender.info.display.ledger.clQty) ledgerColumn.push('sjcl_qty', 'qtcl_qty', 'sjcl_expr', 'qtcl_expr', 'sjcl_tp', 'qtcl_tp');
|
|
|
|
+ const posColumn = ['id', 'tid', 'lid', 'name', 'position', 'porder', 'sgfh_qty', 'sgfh_expr', 'add_stage_order', 'drawing_code', 'quantity', 'ex_qty1', 'ccid'];
|
|
|
|
+ if (tender.info.display.ledger.clQty) posColumn.push('sjcl_qty', 'qtcl_qty', 'sjcl_expr', 'qtcl_expr');
|
|
|
|
+
|
|
|
|
+ const extraFields = await spreadSetting.getExtraFields(this.ctx, tender.id);
|
|
|
|
+ if (extraFields.length > 0) {
|
|
|
|
+ ledgerColumn.push(...extraFields);
|
|
|
|
+ posColumn.push(...extraFields);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return [ledgerColumn, posColumn];
|
|
|
|
+ }
|
|
|
|
+
|
|
async defaultBills(ctx) {
|
|
async defaultBills(ctx) {
|
|
try {
|
|
try {
|
|
|
|
+ const filterField = true;
|
|
|
|
+ const [ledgerColumn, posColumn] = await this._getLedgerColumn();
|
|
// 判断是否台账修订中,修订中则不获取changeLedger及changePos值
|
|
// 判断是否台账修订中,修订中则不获取changeLedger及changePos值
|
|
const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(ctx.tender.id);
|
|
const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(ctx.tender.id);
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
const readySettle = await ctx.service.settle.getReadySettle(ctx.tender.id);
|
|
const readySettle = await ctx.service.settle.getReadySettle(ctx.tender.id);
|
|
if (data.from === 'revise') await ctx.service.change.checkSettleUpdate(ctx.tender.id, readySettle);
|
|
if (data.from === 'revise') await ctx.service.change.checkSettleUpdate(ctx.tender.id, readySettle);
|
|
- const ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
|
|
|
|
- const changeLedgerData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changeLedger.getData(ctx.tender.id);
|
|
|
|
- const posData = await ctx.service.pos.getPosData({ tid: ctx.tender.id });
|
|
|
|
- const changePosData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changePos.getPosData({ tid: ctx.tender.id });
|
|
|
|
|
|
+
|
|
|
|
+ const ledgerData = await ctx.service.ledger.getAllDataByCondition({ columns: ledgerColumn, where: { tender_id: ctx.tender.id } });
|
|
|
|
+ ledgerColumn.push('formc');
|
|
|
|
+ const changeLedgerData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changeLedger.getAllDataByCondition({ columns: ledgerColumn, where: { tender_id: ctx.tender.id} });
|
|
|
|
+ const posData = await ctx.service.pos.getPosData({tid: ctx.tender.id}, posColumn);
|
|
|
|
+ posColumn.push('formc');
|
|
|
|
+ const changePosData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changePos.getPosData({ tid: ctx.tender.id }, posColumn);
|
|
|
|
+
|
|
|
|
+ // const ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
|
|
|
|
+ // const changeLedgerData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changeLedger.getData(ctx.tender.id);
|
|
|
|
+ // const posData = await ctx.service.pos.getPosData({ tid: ctx.tender.id });
|
|
|
|
+ // const changePosData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changePos.getPosData({ tid: ctx.tender.id });
|
|
|
|
+
|
|
const dealBills = await ctx.service.dealBills.getAllDataByCondition({ where: { tender_id: ctx.tender.id } });
|
|
const dealBills = await ctx.service.dealBills.getAllDataByCondition({ where: { tender_id: ctx.tender.id } });
|
|
// const settleStatus = ctx.service.settle.settleStatus;
|
|
// const settleStatus = ctx.service.settle.settleStatus;
|
|
const settleBills = readySettle ? await this.ctx.service.settleBills.getAllDataByCondition({ where: { settle_id: readySettle.id } }) : [];
|
|
const settleBills = readySettle ? await this.ctx.service.settleBills.getAllDataByCondition({ where: { settle_id: readySettle.id } }) : [];
|
|
@@ -1003,7 +1035,15 @@ module.exports = app => {
|
|
bodyData.changeLedgerList = changeLedgerData;
|
|
bodyData.changeLedgerList = changeLedgerData;
|
|
bodyData.changePosList = changePosData;
|
|
bodyData.changePosList = changePosData;
|
|
}
|
|
}
|
|
- ctx.body = { err: 0, msg: '', data: bodyData };
|
|
|
|
|
|
+ // hpack压缩数据
|
|
|
|
+ const hpack = true;
|
|
|
|
+ if (hpack) {
|
|
|
|
+ bodyData.bills = this.ctx.helper.hpackArr(bodyData.bills);
|
|
|
|
+ bodyData.pos = this.ctx.helper.hpackArr(bodyData.pos);
|
|
|
|
+ ctx.body = { err: 0, msg: '', data: bodyData, hpack: ['bills', 'pos'] };
|
|
|
|
+ } else {
|
|
|
|
+ ctx.body = { err: 0, msg: '', data: bodyData };
|
|
|
|
+ }
|
|
} catch (err) {
|
|
} catch (err) {
|
|
console.log(err);
|
|
console.log(err);
|
|
this.log(err);
|
|
this.log(err);
|