| | |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.production.mapper.ProductionProductInputMapper"> |
| | | |
| | | <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductInput"> |
| | | <id property="id" column="id"/> |
| | | <result property="productMainId" column="product_main_id"/> |
| | | <result property="productModelId" column="product_model_id"/> |
| | | <result property="quantity" column="quantity"/> |
| | | <result property="tenantId" column="tenant_id"/> |
| | | <result property="createTime" column="create_time"/> |
| | | </resultMap> |
| | | <select id="listPageProductionProductInputDto" resultType="com.ruoyi.production.dto.ProductionProductInputDto"> |
| | | select ppi.*, |
| | | pm.model as model, |
| | | ppm.product_no as productNo, |
| | | p.product_name, |
| | | pm.unit |
| | | from |
| | | production_product_input ppi |
| | | left join production_product_main ppm on ppm.id = ppi.product_main_id |
| | | left join product_model pm on pm.id = ppi.product_model_id |
| | | left join product p on p.id = pm.product_id |
| | | <where> |
| | | <if test="c.productMainId != null and c.productMainId > 0"> |
| | | and ppm.id = #{c.productMainId} |
| | | </if> |
| | | </where> |
| | | order by ppi.id |
| | | </select> |
| | | |
| | | <delete id="deleteByProductMainIds" parameterType="java.util.List"> |
| | | DELETE FROM production_product_input |
| | | WHERE product_main_id IN |
| | | <foreach collection="productMainIds" item="id" open="(" separator="," close=")"> |
| | | #{id} |
| | | </foreach> |
| | | |
| | | </delete> |
| | | |
| | | <select id="selectInputStats" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT(ppi.create_time, '%Y-%m-%d') AS date, |
| | | -- 报工数量 * 最小系数 |
| | | SUM(ppi.quantity * IFNULL(distinct_ps.unit_quantity, 1)) AS quantity |
| | | FROM production_product_input ppi |
| | | INNER JOIN production_product_main ppm ON ppm.id = ppi.product_main_id |
| | | INNER JOIN product_process_route_item ppri ON ppri.id = ppm.product_process_route_item_id |
| | | INNER JOIN product_process_route ppr ON ppr.id = ppri.product_route_id |
| | | INNER JOIN product_model pm ON pm.id = ppi.product_model_id |
| | | INNER JOIN ( |
| | | SELECT |
| | | bom_id, |
| | | process_id, |
| | | product_model_id, |
| | | CAST(SUBSTRING_INDEX(GROUP_CONCAT(unit_quantity ORDER BY id ASC), ',', 1) AS DECIMAL(16, 4)) AS unit_quantity |
| | | FROM product_structure |
| | | GROUP BY bom_id, process_id, product_model_id |
| | | ) distinct_ps ON distinct_ps.bom_id = ppr.bom_id |
| | | AND distinct_ps.process_id = ppri.process_id |
| | | AND distinct_ps.product_model_id = ppi.product_model_id |
| | | <where> |
| | | <if test="startDate != null"> |
| | | AND ppi.create_time >= #{startDate} |
| | | </if> |
| | | <if test="endDate != null"> |
| | | AND ppi.create_time <= #{endDate} |
| | | </if> |
| | | </where> |
| | | GROUP BY |
| | | DATE_FORMAT(ppi.create_time, '%Y-%m-%d'), |
| | | pm.id, |
| | | pm.model |
| | | ORDER BY |
| | | date DESC, |
| | | pm.id ASC |
| | | </select> |
| | | </mapper> |