feat: record group weight and allprice (#431)
Reviewed-on: daoyoucloud/tachycode#431 Reviewed-by: sealday <zhanglin@daoyoucloud.com> Co-authored-by: hello@lv <2256334253@qq.com> Co-committed-by: hello@lv <2256334253@qq.com>
This commit is contained in:
		
							parent
							
								
									486b51f2aa
								
							
						
					
					
						commit
						23fe420cf0
					
				| @ -90,6 +90,58 @@ export class RecordPreviewController { | |||||||
|         })); |         })); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |   @Action('allweight') | ||||||
|  |   async groupWeight(ctx: Context) { | ||||||
|  |     const { filter } = ctx.action.params.values; | ||||||
|  |     const { sequelize } = ctx.db; | ||||||
|  |     const records = await ctx.db.getRepository('records').find({ | ||||||
|  |       filter, | ||||||
|  |       attributes: [ | ||||||
|  |         [sequelize.fn('sum', sequelize.col('records.weight')), 'weight'], | ||||||
|  |         [sequelize.col('records.movement'), 'movement'], | ||||||
|  |       ], | ||||||
|  |       group: [sequelize.col('records.movement')], | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     const inNum = records.find((item) => item.movement === Movement.in)?.weight ?? 0; | ||||||
|  |     const outNum = records.find((item) => item.movement === Movement.out)?.weight ?? 0; | ||||||
|  |     const data = [ | ||||||
|  |       { | ||||||
|  |         label: '实际重量(吨)', | ||||||
|  |         value: { | ||||||
|  |           labels: ['出库数量(吨)', '入库数量(吨)', '小计(吨)'], | ||||||
|  |           values: [outNum, inNum, inNum - outNum], | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     ]; | ||||||
|  |     ctx.body = data; | ||||||
|  |   } | ||||||
|  |   @Action('allprice') | ||||||
|  |   async groupPrice(ctx: Context) { | ||||||
|  |     const { filter } = ctx.action.params.values; | ||||||
|  |     const { sequelize } = ctx.db; | ||||||
|  |     const records = await ctx.db.getRepository('records').find({ | ||||||
|  |       filter, | ||||||
|  |       attributes: [ | ||||||
|  |         [sequelize.fn('sum', sequelize.col('records.all_price')), 'all_price'], | ||||||
|  |         [sequelize.col('records.movement'), 'movement'], | ||||||
|  |       ], | ||||||
|  |       group: [sequelize.col('records.movement')], | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     const inNum = records.find((item) => item.movement === Movement.in)?.all_price ?? 0; | ||||||
|  |     const outNum = records.find((item) => item.movement === Movement.out)?.all_price ?? 0; | ||||||
|  |     const data = [ | ||||||
|  |       { | ||||||
|  |         label: '总金额', | ||||||
|  |         value: { | ||||||
|  |           labels: ['收入', '支出', '小计'], | ||||||
|  |           values: [outNum, inNum, outNum - inNum], | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     ]; | ||||||
|  |     ctx.body = data; | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
|   @Action('pdf') |   @Action('pdf') | ||||||
|   async printPreview(ctx: Context) { |   async printPreview(ctx: Context) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user