|
@@ -407,21 +407,16 @@ module.exports = app => {
|
|
|
* @return {Promise<void>}
|
|
|
*/
|
|
|
async getStagesData(tid, stage_id_list) {
|
|
|
- let stage_id_listSql = '';
|
|
|
- stage_id_list = stage_id_list.indexOf(',') !== -1 ? stage_id_list.split(',') : stage_id_list;
|
|
|
- if (stage_id_list) {
|
|
|
- if (stage_id_list instanceof Array) {
|
|
|
- stage_id_listSql = stage_id_list.length > 0 ? ' And sid in (' + this.ctx.helper.getInArrStrSqlFilter(stage_id_list) + ')' : '';
|
|
|
- } else {
|
|
|
- stage_id_listSql = ' And sid in (' + this.db.escape(stage_id_list) + ')';
|
|
|
- }
|
|
|
- }
|
|
|
- const sql = 'SELECT `lid`, `tid`, `sid`, SUM(`contract_qty`) as `contract_qty`, SUM(`contract_tp`) as `contract_tp`, ' +
|
|
|
- 'SUM(`qc_qty`) as `qc_qty`, SUM(`qc_tp`) as `qc_tp` FROM ' + this.tableName + ' WHERE `tid` = ? ' +
|
|
|
- stage_id_listSql + ' GROUP BY `lid`';
|
|
|
- const sqlParam = [tid];
|
|
|
- const result = await this.db.query(sql, sqlParam);
|
|
|
- console.log('result', result);
|
|
|
+ const whereSql = this.ctx.helper.whereSql({tid: tid, sid: stage_id_list.split(',')});
|
|
|
+ const sql = 'SELECT Bills.lid, Bills.tid, Bills.sid,' +
|
|
|
+ ' Sum(Bills.contract_qty) As contract_qty, Sum(Bills.contract_tp) As contract_tp,' +
|
|
|
+ ' Sum(Bills.qc_qty) As qc_qty, Sum(Bills.qc_tp) As qc_tp' +
|
|
|
+ ' FROM ' + this.tableName + ' As Bills ' +
|
|
|
+ ' INNER JOIN ( ' +
|
|
|
+ ' SELECT MAX(`times` * ' + timesLen + ' + `order`) As `progress`, `tid`, `lid`, `sid` From ' + this.tableName + whereSql + ' GROUP BY `lid`, `sid`' +
|
|
|
+ ' ) As MaxFilter ' +
|
|
|
+ ' ON (Bills.times * ' + timesLen + ' + `order`) = MaxFilter.progress And Bills.tid = MaxFilter.tid And Bills.lid = MaxFilter.lid And Bills.`sid` = MaxFilter.`sid`';
|
|
|
+ const result = await this.db.query(sql);
|
|
|
return result;
|
|
|
}
|
|
|
|