| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
| | | <mapper namespace="com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper"> |
| | | |
| | | <resultMap id="baseMap" type="com.mes.edgstoragecage.entity.EdgStorageCageDetails"> |
| | | <id column="id" property="id"/> |
| | | <result column="engineer_id" property="engineerId"/> |
| | | <result column="device_id" property="deviceId"/> |
| | | <result column="slot" property="slot"/> |
| | | <result column="glass_id" property="glassId"/> |
| | | <result column="sequence" property="sequence"/> |
| | | <result column="flow_card_id" property="flowCardId"/> |
| | | <result column="glass_type" property="glassType"/> |
| | | <result column="width" property="width"/> |
| | | <result column="height" property="height"/> |
| | | <result column="thickness" property="thickness"/> |
| | | <result column="edg_width" property="edgWidth"/> |
| | | <result column="edg_height" property="edgHeight"/> |
| | | <result column="tempering_layout_id" property="temperingLayoutId"/> |
| | | <result column="tempering_feed_sequence" property="temperingFeedSequence"/> |
| | | <result column="pattern_sequence" property="patternSequence"/> |
| | | <result column="state" property="state"/> |
| | | <result column="gap" property="gap"/> |
| | | <result column="glass_count" property="count"/> |
| | | </resultMap> |
| | | |
| | | <select id="queryEdgStorageDetailsBySize" resultMap="baseMap"> |
| | | with min_id_temp as ( |
| | | select slot, min(id) as id, count(*) as glass_count |
| | | from edg_storage_cage_details |
| | | where state = 100 |
| | | group by slot |
| | | ), |
| | | size_max_temp as ( |
| | | select width, height, count(*) as total_count |
| | | from edg_storage_cage_details t |
| | | inner join min_id_temp t1 on t.id = t1.id |
| | | group by width, height |
| | | ), |
| | | slot_temp as ( |
| | | select t.*, t1.glass_count |
| | | from edg_storage_cage_details t |
| | | inner join min_id_temp t1 on t.id = t1.id |
| | | inner join size_max_temp t2 on t.width = t2.width and t.height = t2.height |
| | | <where> |
| | | <if test="width != 0"> |
| | | and t.width = #{width} |
| | | </if> |
| | | <if test="height != 0"> |
| | | and t.height = #{height} |
| | | </if> |
| | | </where> |
| | | order by total_count desc, glass_count, abs(t.slot - 10) |
| | | ) |
| | | select * |
| | | from slot_temp limit 1 |
| | | </select> |
| | | </mapper> |