| | |
| | | <result property="tenantId" column="tenant_id"/> |
| | | <result property="createTime" column="create_time"/> |
| | | <result property="status" column="status"/> |
| | | <result property="reportStartTime" column="report_start_time"/> |
| | | <result property="reportEndTime" column="report_end_time"/> |
| | | <result property="reportDurationMinutes" column="report_duration_minutes"/> |
| | | </resultMap> |
| | | |
| | | <select id="listPageProductionProductMainDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto"> |
| | | select ppm.*, |
| | | pwo.work_order_no as workOrderNo, |
| | | pwo.status as workOrderStatus, |
| | | u.nick_name as nickName, |
| | | p.product_name as productName, |
| | | pp.name as process, |
| | | pm.model as productModelName, |
| | | ppo.quantity, |
| | | ppo.scrap_qty, |
| | | pm.unit, |
| | | sl.sales_contract_no salesContractNo |
| | | select |
| | | min(ppm.id) as id, |
| | | null as productNo, |
| | | min(ppm.user_id) as userId, |
| | | min(ppm.work_order_id) as workOrderId, |
| | | min(ppm.status) as status, |
| | | min(ppm.report_start_time) as reportStartTime, |
| | | max(ppm.report_end_time) as reportEndTime, |
| | | sum(ifnull(ppm.report_duration_minutes, 0)) as reportDurationMinutes, |
| | | max(pwo.work_order_no) as workOrderNo, |
| | | max(po.nps_no) as productOrderNpsNo, |
| | | max(pwo.status) as workOrderStatus, |
| | | max(u.nick_name) as nickName, |
| | | max(p.product_name) as productName, |
| | | max(CASE pp.type |
| | | WHEN 1 THEN '加工' |
| | | WHEN 2 THEN '刮板冷芯制作' |
| | | WHEN 3 THEN '管路组对' |
| | | WHEN 4 THEN '罐体连接及调试' |
| | | WHEN 5 THEN '测试打压' |
| | | WHEN 6 THEN '其他' |
| | | ELSE pp.name |
| | | END) as process, |
| | | max(pm.model) as productModelName, |
| | | sum(ifnull(ppo.quantity, 0)) as quantity, |
| | | sum(ifnull(ppo.scrap_qty, 0)) as scrapQty, |
| | | sum(ifnull(ppo.quantity, 0)) as outputTotalQuantity, |
| | | sum(ifnull(ppo.scrap_qty, 0)) as scrapTotalQuantity, |
| | | round(ifnull(( |
| | | select sum(ifnull(pri.planned_work_hours, 0)) |
| | | from product_process_route_item pri |
| | | where pri.product_order_id = po.id |
| | | ), 0), 2) as projectTotalHours, |
| | | ifnull(max(pp.salary_quota), 0) as processStandardHours, |
| | | round(sum(ifnull(ppm.report_duration_minutes, 0)) / 60, 2) as actualReportHours, |
| | | round(ifnull(( |
| | | select sum(d.duration_minutes) |
| | | from production_product_report_daily d |
| | | where d.user_id = ppm.user_id |
| | | and d.report_date = curdate() |
| | | ), 0) / 60, 2) as dailyPersonHours, |
| | | max(pm.unit) as unit, |
| | | max(sl.sales_contract_no) as salesContractNo |
| | | from |
| | | production_product_main ppm |
| | | left join product_work_order pwo on pwo.id = ppm.work_order_id |
| | |
| | | <if test="c.status != null and c.status != ''"> |
| | | and ppm.status = #{c.status} |
| | | </if> |
| | | <if test="c.userId != null"> |
| | | and ppm.user_id = #{c.userId} |
| | | </if> |
| | | </where> |
| | | order by ppm.id |
| | | |
| | | group by ppm.work_order_id, po.sales_ledger_id, po.sale_ledger_product_id, ppm.user_id |
| | | order by max(ppm.id) desc |
| | | </select> |
| | | |
| | | <select id="listPageProductionProductMainDailyDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto"> |
| | | select |
| | | min(ppm.id) as id, |
| | | min(ppm.product_no) as productNo, |
| | | d.user_id as userId, |
| | | d.work_order_id as workOrderId, |
| | | max(pwo.work_order_no) as workOrderNo, |
| | | max(po.nps_no) as productOrderNpsNo, |
| | | max(pwo.status) as workOrderStatus, |
| | | max(u.nick_name) as nickName, |
| | | max(p.product_name) as productName, |
| | | max(CASE pp.type |
| | | WHEN 1 THEN '加工' |
| | | WHEN 2 THEN '刮板冷芯制作' |
| | | WHEN 3 THEN '管路组对' |
| | | WHEN 4 THEN '罐体连接及调试' |
| | | WHEN 5 THEN '测试打压' |
| | | WHEN 6 THEN '其他' |
| | | ELSE pp.name |
| | | END) as process, |
| | | max(pm.model) as productModelName, |
| | | max(pm.unit) as unit, |
| | | max(sl.sales_contract_no) as salesContractNo, |
| | | d.report_date as schedulingDate, |
| | | sum(d.duration_minutes) as reportDurationMinutes, |
| | | round(sum(d.duration_minutes) / 60, 2) as dailyPersonHours, |
| | | round(sum(d.duration_minutes) / 60, 2) as actualReportHours, |
| | | sum(ifnull(ppo.quantity, 0)) as quantity, |
| | | sum(ifnull(ppo.scrap_qty, 0)) as scrapQty, |
| | | sum(ifnull(ppo.quantity, 0)) as outputTotalQuantity, |
| | | sum(ifnull(ppo.scrap_qty, 0)) as scrapTotalQuantity, |
| | | round(ifnull(( |
| | | select sum(ifnull(pri.planned_work_hours, 0)) |
| | | from product_process_route_item pri |
| | | where pri.product_order_id = po.id |
| | | ), 0), 2) as projectTotalHours, |
| | | ifnull(max(pp.salary_quota), 0) as processStandardHours |
| | | from production_product_report_daily d |
| | | left join production_product_main ppm on ppm.id = d.product_main_id |
| | | left join product_work_order pwo on pwo.id = d.work_order_id |
| | | left join product_process_route_item ppri on ppri.id = pwo.product_process_route_item_id |
| | | left join product_process pp on pp.id = ppri.process_id |
| | | left join product_order po on po.id = pwo.product_order_id |
| | | left join production_product_output ppo |
| | | on ppm.id = ppo.product_main_id |
| | | and date(ppm.report_end_time) = d.report_date |
| | | left join product_model pm on pm.id = ppo.product_model_id |
| | | left join product p on p.id = pm.product_id |
| | | left join sales_ledger sl on sl.id = po.sales_ledger_id |
| | | left join sys_user u on u.user_id = d.user_id |
| | | <where> |
| | | <if test="c.workOrderId != null"> |
| | | and d.work_order_id = #{c.workOrderId} |
| | | </if> |
| | | <if test="c.nickName != null and c.nickName != ''"> |
| | | and u.nick_name like concat('%',#{c.nickName},'%') |
| | | </if> |
| | | <if test="c.workOrderNo != null and c.workOrderNo != ''"> |
| | | and pwo.work_order_no like concat('%',#{c.workOrderNo},'%') |
| | | </if> |
| | | <if test="c.workOrderStatus != null and c.workOrderStatus != ''"> |
| | | and pwo.status = #{c.workOrderStatus} |
| | | </if> |
| | | <if test="c.userId != null"> |
| | | and d.user_id = #{c.userId} |
| | | </if> |
| | | <if test="c.startDate != null"> |
| | | and d.report_date <![CDATA[ >= ]]> #{c.startDate} |
| | | </if> |
| | | <if test="c.endDate != null"> |
| | | and d.report_date <![CDATA[ <= ]]> #{c.endDate} |
| | | </if> |
| | | </where> |
| | | group by d.work_order_id, d.user_id, d.report_date, po.sales_ledger_id, po.sale_ledger_product_id |
| | | order by d.report_date desc, d.user_id |
| | | </select> |
| | | |
| | | <select id="listPageProductionProductMainDetailDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto"> |
| | | select |
| | | ppm.*, |
| | | pwo.work_order_no as workOrderNo, |
| | | po.nps_no as productOrderNpsNo, |
| | | pwo.status as workOrderStatus, |
| | | u.nick_name as nickName, |
| | | p.product_name as productName, |
| | | CASE pp.type |
| | | WHEN 1 THEN '加工' |
| | | WHEN 2 THEN '刮板冷芯制作' |
| | | WHEN 3 THEN '管路组对' |
| | | WHEN 4 THEN '罐体连接及调试' |
| | | WHEN 5 THEN '测试打压' |
| | | WHEN 6 THEN '其他' |
| | | ELSE pp.name |
| | | END as process, |
| | | pm.model as productModelName, |
| | | ppo.quantity, |
| | | ppo.scrap_qty as scrapQty, |
| | | ppo.quantity as outputTotalQuantity, |
| | | ppo.scrap_qty as scrapTotalQuantity, |
| | | pm.unit, |
| | | sl.sales_contract_no salesContractNo, |
| | | round(ifnull(( |
| | | select sum(ifnull(pri.planned_work_hours, 0)) |
| | | from product_process_route_item pri |
| | | where pri.product_order_id = po.id |
| | | ), 0), 2) as projectTotalHours, |
| | | ifnull(pp.salary_quota, 0) as processStandardHours, |
| | | round(ifnull(ppm.report_duration_minutes, 0) / 60, 2) as actualReportHours, |
| | | round(ifnull(( |
| | | select sum(d.duration_minutes) |
| | | from production_product_report_daily d |
| | | where d.user_id = ppm.user_id |
| | | and d.report_date = curdate() |
| | | ), 0) / 60, 2) as dailyPersonHours |
| | | from production_product_main ppm |
| | | left join product_work_order pwo on pwo.id = ppm.work_order_id |
| | | left join product_process_route_item ppri on ppri.id = pwo.product_process_route_item_id |
| | | left join product_process pp on pp.id = ppri.process_id |
| | | left join product_order po on po.id = pwo.product_order_id |
| | | left join production_product_output ppo on ppm.id = ppo.product_main_id |
| | | left join product_model pm on pm.id = ppo.product_model_id |
| | | left join product p on p.id = pm.product_id |
| | | left join sales_ledger sl on sl.id = po.sales_ledger_id |
| | | left join sys_user u on u.user_id = ppm.user_id |
| | | <where> |
| | | <if test="c.workOrderId != null"> |
| | | and ppm.work_order_id = #{c.workOrderId} |
| | | </if> |
| | | <if test="c.userId != null"> |
| | | and ppm.user_id = #{c.userId} |
| | | </if> |
| | | <if test="c.startDate != null"> |
| | | and date(ppm.report_end_time) <![CDATA[ >= ]]> #{c.startDate} |
| | | </if> |
| | | <if test="c.endDate != null"> |
| | | and date(ppm.report_end_time) <![CDATA[ <= ]]> #{c.endDate} |
| | | </if> |
| | | </where> |
| | | order by ppm.id desc |
| | | </select> |
| | | |
| | | <select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder"> |
| | | select po.* |
| | | from product_order po |