| | |
| | | p.product_name as productName, |
| | | pm.model as productModelName, |
| | | pm.unit, |
| | | sl.sales_contract_no as salesContractNo, |
| | | po_sales.salesContractNo, |
| | | date(ppm.create_time) as schedulingDate, |
| | | su.nick_name as schedulingUserName, |
| | | sl.customer_name as customerName, |
| | | top2.name as process |
| | | po_sales.customerName, |
| | | poro.operation_name as process |
| | | from production_product_main ppm |
| | | left join production_operation_task pot on ppm.production_operation_task_id = pot.id |
| | | left join production_order po on pot.production_order_id = po.id |
| | | left join sales_ledger sl on po.sales_ledger_id = sl.id |
| | | left join product_model pm on po.product_model_id = pm.id |
| | | left join production_order_routing_operation poro on pot.production_order_routing_operation_id = poro.id |
| | | left join ( |
| | | select po2.id as orderId, |
| | | group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as salesContractNo, |
| | | group_concat(distinct sl2.customer_name order by sl2.customer_name separator ',') as customerName |
| | | from production_order po2 |
| | | left join production_plan pp2 |
| | | on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0 |
| | | left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id |
| | | group by po2.id |
| | | ) po_sales on po_sales.orderId = po.id |
| | | left join product_model pm on pm.id = ifnull(poro.product_model_id, po.product_model_id) |
| | | left join product p on pm.product_id = p.id |
| | | left join technology_routing_operation tro on pot.technology_routing_operation_id = tro.id |
| | | left join technology_operation top2 on tro.technology_operation_id = top2.id |
| | | left join sys_user su on ppm.create_user = su.user_id |
| | | left join production_product_output ppo on ppo.production_product_main_id = ppm.id |
| | | <where> |
| | |
| | | and pot.work_order_no like concat('%', #{c.workOrderNo}, '%') |
| | | </if> |
| | | <if test="c.salesContractNo != null and c.salesContractNo != ''"> |
| | | and sl.sales_contract_no like concat('%', #{c.salesContractNo}, '%') |
| | | and po_sales.salesContractNo like concat('%', #{c.salesContractNo}, '%') |
| | | </if> |
| | | <if test="c.customerName != null and c.customerName != ''"> |
| | | and sl.customer_name like concat('%', #{c.customerName}, '%') |
| | | and po_sales.customerName like concat('%', #{c.customerName}, '%') |
| | | </if> |
| | | <if test="c.productName != null and c.productName != ''"> |
| | | and p.product_name like concat('%', #{c.productName}, '%') |
| | |
| | | and pm.model like concat('%', #{c.productModelName}, '%') |
| | | </if> |
| | | <if test="c.process != null and c.process != ''"> |
| | | and top2.name like concat('%', #{c.process}, '%') |
| | | and poro.operation_name like concat('%', #{c.process}, '%') |
| | | </if> |
| | | <if test="c.schedulingDate != null"> |
| | | and date(ppm.create_time) = #{c.schedulingDate} |
| | | </if> |
| | | <if test="c.productMainId != null"> |
| | | and ppm.id = #{c.productMainId} |
| | | </if> |
| | | </where> |
| | | order by ppm.create_time desc |
| | |
| | | p.product_name as productName, |
| | | pm.model as productModelName, |
| | | pm.unit, |
| | | top2.name as process, |
| | | pa.technology_operation_name as process, |
| | | ifnull(ppo.quantity, 0) as quantity, |
| | | ifnull(ppo.scrap_qty, 0) as scrapQty |
| | | from production_product_main ppm |
| | | ifnull(ppo.scrap_qty, 0) as scrapQty, |
| | | date(pa.scheduling_date) as schedulingDate, |
| | | pa.scheduling_user_name as schedulingUserName, |
| | | cast(ifnull(pa.work_hours, 0) as decimal(18,4)) as workHours, |
| | | cast( |
| | | ifnull(pa.work_hours, 0) * ifnull(pa.finished_num, 0) * |
| | | case |
| | | when substring_index(pm.model, '*', -1) regexp '^[0-9]+(\\.[0-9]+)?$' |
| | | then cast(substring_index(pm.model, '*', -1) as decimal(18,4)) |
| | | else 1 |
| | | end |
| | | as decimal(18,4) |
| | | ) as wages |
| | | from production_account pa |
| | | left join production_product_main ppm on ppm.id = pa.production_product_main_id |
| | | left join production_operation_task pot on ppm.production_operation_task_id = pot.id |
| | | left join production_order po on pot.production_order_id = po.id |
| | | left join product_model pm on po.product_model_id = pm.id |
| | | left join production_order_routing_operation poro on pot.production_order_routing_operation_id = poro.id |
| | | left join product_model pm on pm.id = ifnull(poro.product_model_id, po.product_model_id) |
| | | left join product p on pm.product_id = p.id |
| | | left join technology_routing_operation tro on pot.technology_routing_operation_id = tro.id |
| | | left join technology_operation top2 on tro.technology_operation_id = top2.id |
| | | left join product p_parent on p_parent.id = p.parent_id |
| | | left join production_product_output ppo on ppo.production_product_main_id = ppm.id |
| | | order by ppm.create_time desc |
| | | <where> |
| | | <if test="c != null"> |
| | | <if test="c.productCategory != null and c.productCategory != ''"> |
| | | and p_parent.product_name like concat('%', #{c.productCategory}, '%') |
| | | </if> |
| | | <if test="c.specificationModel != null and c.specificationModel != ''"> |
| | | and pm.model like concat('%', #{c.specificationModel}, '%') |
| | | </if> |
| | | <if test="c.schedulingUserId != null"> |
| | | and pa.scheduling_user_id = #{c.schedulingUserId} |
| | | </if> |
| | | <if test="c.schedulingUserName != null and c.schedulingUserName != ''"> |
| | | and pa.scheduling_user_name like concat('%', #{c.schedulingUserName}, '%') |
| | | </if> |
| | | <if test="c.process != null and c.process != ''"> |
| | | and pa.technology_operation_name like concat('%', #{c.process}, '%') |
| | | </if> |
| | | <if test="c.entryDate != null"> |
| | | and date(pa.scheduling_date) = #{c.entryDate} |
| | | </if> |
| | | <if test="c.entryDateStart != null"> |
| | | and date(pa.scheduling_date) >= #{c.entryDateStart} |
| | | </if> |
| | | <if test="c.entryDateEnd != null"> |
| | | and date(pa.scheduling_date) <= #{c.entryDateEnd} |
| | | </if> |
| | | </if> |
| | | </where> |
| | | order by pa.scheduling_date desc, pa.id desc |
| | | </select> |
| | | |
| | | <select id="listMain" resultType="java.lang.Long"> |