「这是我参与2022首次更文挑战的第18天,活动详情查看:2022首次更文挑战」
ERP系统中有个功能,历史订单数据统计功能,这个功能,能更加直观的查看每个客户曾经下过的订单,另外还会对每个客户,每个订单数据进行管理和统计。
实现效果:
主要的数据获取:
1、找出所有的订单,包括橱柜订单,门板订单和全屋订单,订单类型为这3种。
2、找出客户的信息,下订单的日期,订单编号,金额等。在这里,需要统计每个客户在橱柜订单,门板订单和全屋订单的所有订单,取个最早下单时间,group by order_date,那么对应的订单编号和金额都能找出来。
3、生产单日期,生产单单号,生产单金额,跟上面的订单是不一样的。生产单必定是晚于订单日期的,我下了订单,工人进行加工,生产产品结束,那么就是生产单日期,生产单单号和订单编号不能一样,避免混淆。根据订单编号,能找到生产单单号,对应的,也可以找到生产单日期和生产单金额。生产单金额一般会比订单金额多,毕竟经过加工了。
4、出货订单号,出货日期,出货金额。出货金额跟前面的两个金额,订单金额,生产单金额不一样,出货金额是运输金额,出货订单号跟订单关联,找到对应的出货日期和出货金额。
查询橱柜订单,门板订单和全屋订单
select ord.customer_no,ord.created_date_time,ord.order_no ord_no,quo_order.order_no,quo_order.actual_amount from
(
--------柜体,门板表
select d.customer_no,d.created_date_time,d.order_no from dp_order d where d.frozen = false
union
select s.customer_no,s.created_date_time,s.order_no from split_order s
)ord inner join
---------橱柜单
(select qu.order_no,quo.actual_amount
from quotation_unified_order qu
inner join quotation_unified_order_quotation_unified_bodies quo
on qu.id = quo.quotation_unified_order_id
union
--------门板单
select dqo.order_no,dqo.final_amount from dp_quotation_order dqo) quo_order
on ord.order_no = quo_order.order_no ) order_quo
on c.customer_no = order_quo.customer_no
生产流程单(柜体,门板,单门板流程单记得要与订单关联)
select production.customer_no,production.make_date,production.order_no ord_no,quo_order.actual_amount from
(
--------柜体,门板,单门板流程单
select g.ref_order_no,g.customer_no,g.make_date,g.order_no from general_dp_pp_order g where g.frozen = false
union
select p.ref_order_no,p.customer_no,p.document_make_date,p.order_no from prod_process_cabinet_order p
union
select pr.ref_order_no,pr.customer_no,pr.document_make_date,pr.order_no from prod_process_door_panel_order pr
)production inner join
---------橱柜单
(select qu.order_no,quo.actual_amount
from quotation_unified_order qu
left join quotation_unified_order_quotation_unified_bodies quo
on qu.id = quo.quotation_unified_order_id
union
--------门板单
select dqo.order_no,dqo.final_amount from dp_quotation_order dqo) quo_order
on production.ref_order_no = quo_order.order_no
出货单(与订单关联)
select stock.customer_no,stock.stock_out_date,stock.order_no ord_no,quo_order.actual_amount from
(
--------出库,单门板出库单
select g_stock.customer_no,g_stock.stock_out_date,g_stock.order_no from gene_dp_stock_out_order g_stock where g_stock.frozen = false
union
select s_stock.customer_no,s_stock.stock_out_date,s_stock.order_no from stock_out_order s_stock
)stock inner join
---------橱柜单
(select qu.order_no,quo.actual_amount
from quotation_unified_order qu
left join quotation_unified_order_quotation_unified_bodies quo
on qu.id = quo.quotation_unified_order_id
union
--------门板单
select dqo.order_no,dqo.final_amount from dp_quotation_order dqo) quo_order
on stock.order_no = quo_order.order_no
上面是主要的sql语句,查询出来以后,直接被dao层调用就行了。