BBusiWishUniversitySubmitMarjorsUpdateMapper.xml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruoyi.syzy.mapper.BBusiWishUniversitySubmitMarjorsUpdateMapper">
  6. <resultMap type="BBusiWishUniversitySubmitMarjorsUpdate" id="BBusiWishUniversitySubmitMarjorsUpdateResult">
  7. <result property="udid" column="udid" />
  8. <result property="minScore" column="minScore" />
  9. <result property="minRank" column="minRank" />
  10. <result property="location" column="location" />
  11. <result property="corrRank" column="corrRank" />
  12. <result property="version" column="version" />
  13. <result property="planNum" column="planNum" />
  14. <result property="enterLine" column="enterLine" />
  15. <result property="enterNum" column="enterNum" />
  16. <result property="maxScore" column="maxScore" />
  17. <result property="avgScore" column="avgScore" />
  18. <result property="maxRank" column="maxRank" />
  19. <result property="avgRank" column="avgRank" />
  20. <result property="collect" column="collect" />
  21. <result property="collectDesc" column="collectDesc" />
  22. </resultMap>
  23. <sql id="selectBBusiWishUniversitySubmitMarjorsUpdateVo">
  24. select udid, minScore, minRank, location, corrRank, version,planNum,enterLine,enterNum,maxScore,avgScore,maxRank,avgRank,collect,collectDesc from b_busi_wish_university_submit_marjors_update
  25. </sql>
  26. <select id="selectUpdateLocationList" resultMap="BBusiWishUniversitySubmitMarjorsUpdateResult">
  27. SELECT u.`version`, u.`udid`, u.`minScore`, u.`minRank`, sm.`location` FROM `b_busi_wish_university_submit_marjors_update` u
  28. JOIN `b_busi_wish_university_submit_marjors` sm ON u.`udid` = sm.`udid`
  29. WHERE u.version = #{version} and sm.location in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach> LIMIT #{offset}, #{limit}
  30. </select>
  31. <insert id="insertUpdateBatch">
  32. replace into b_busi_wish_university_submit_marjors_update(udid,minScore,minRank,version,planNum,enterLine,enterNum,maxScore,avgScore,maxRank,avgRank,collect,collectDesc) VALUES
  33. <foreach collection="list" item="o" index="index" separator=",">(#{o.udid}, #{o.minScore}, #{o.minRank}, #{o.version}, #{o.planNum}, #{o.enterLine}, #{o.enterNum}, #{o.maxScore}, #{o.avgScore}, #{o.maxRank}, #{o.avgRank}, #{o.collect}, #{o.collectDesc})</foreach>
  34. </insert>
  35. <insert id="updateCorrRankBatch">
  36. insert into b_busi_wish_university_submit_marjors_update(udid, version, location, corrRank) VALUES
  37. <foreach collection="list" item="o" index="index" separator=",">(#{o.udid}, #{o.version}, #{o.location}, #{o.corrRank})</foreach>
  38. on duplicate key update location = values(location), corrRank = values(corrRank)
  39. </insert>
  40. <update id="updateSubmitMarjors"><!-- ,sm.`collect` = mu.`collect`,sm.`collectDesc` = mu.`collectDesc` -->
  41. UPDATE `b_busi_wish_university_submit_marjors` sm, `b_busi_wish_university_submit_marjors_update` mu
  42. SET sm.`score` = mu.`minScore`, sm.`seat` = mu.`minRank`, sm.`corrScore` = mu.`minScore`, sm.`corrSeat` = mu.`corrRank`,sm.`num` = mu.`planNum`,sm.`numReal` = mu.`enterNum`
  43. ,sm.`scoreRealTop` = mu.`maxScore`,sm.`scoreRealAverage` = mu.`avgScore`,sm.`seatRealTop` = mu.`maxRank`,sm.`seatRealAverage` = mu.`avgRank`
  44. WHERE sm.`udid` = mu.`udid` AND mu.`version` = #{version} AND sm.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  45. </update>
  46. <insert id="insertUpdatePlanSubmit">
  47. REPLACE INTO `b_busi_wish_university_marjors_plan_submit`(`plan_id`,`submit_id`,last_submit_id, `plan_submit_id`,`group_id`,`year`,`universityId`,`location`,`collegeCode`,`level`,`liberalScience`,`course`,
  48. `course0`,`course1`,`course2`,`marjorName`, `marjorCollegeId`,`createTime`,`status`, `uCode`)
  49. SELECT rp.`id`, t.submit_id, t3.submit_id, t2.submit_id, pg.`group_id`, rp.`year`, rp.`universityId`, rp.`location`, rp.`collegeCode`, rp.`level`, rp.`liberalScience`, rp.`course`,
  50. IF(rp.`Course` IS NOT NULL AND rp.`Course` != '', SUBSTRING_INDEX(rp.`Course`, '+', 1), NULL) `course0`,
  51. IF(rp.`Course` IS NOT NULL AND rp.`Course` != '' AND rp.`Course` NOT LIKE '%不限%' AND rp.`Course` NOT LIKE '%和%', REPLACE(SUBSTRING_INDEX(REPLACE(rp.`Course`, '思想政治', '政治'), '+', -1), '或', ','), NULL) `course1`,
  52. IF(rp.`Course` IS NOT NULL AND rp.`Course` != '' AND rp.`Course` NOT LIKE '%不限%' AND rp.`Course` LIKE '%和%', REPLACE(SUBSTRING_INDEX(REPLACE(rp.`Course`, '思想政治', '政治'), '+', -1), '和', ','), NULL) `course2`,
  53. rp.`marjorName`, c.`id`, NOW(), 1, REPLACE(SUBSTRING_INDEX(rp.`universityName`, '(', -1), ')', '')
  54. FROM `b_busi_wish_university_submit_recruit_plan` rp
  55. LEFT JOIN `b_busi_wish_university_marjors_college` c ON rp.`universityId` = c.`universityId` AND rp.`location` = c.`location` AND rp.`year` = c.`year` AND rp.`level` = c.`level` AND rp.`liberalScience` = c.`liberalScience` AND rp.`collegeCode` = c.`collegeCode` AND REPLACE(SUBSTRING_INDEX(rp.`universityName`, '(', -1), ')', '') = c.uCode
  56. JOIN `b_busi_wish_university_match_plan_group` pg ON rp.`id` = pg.`plan_id` AND pg.`group_id` > 0
  57. LEFT JOIN `b_busi_wish_university_match_submit` t ON t.group_id = pg.`group_id` AND t.year + 1 = rp.`year` -- 去年
  58. LEFT JOIN `b_busi_wish_university_match_submit` t2 ON t2.group_id = pg.`group_id` AND t2.year = rp.`year` -- 本年
  59. LEFT JOIN `b_busi_wish_university_match_submit` t3 ON t3.group_id = pg.`group_id` AND t3.year + 2 = rp.`year` -- 前年
  60. WHERE rp.`id` IN <foreach item="o" collection="list" open="(" separator="," close=")">#{o}</foreach>
  61. </insert>
  62. <insert id="insertCollegeStats">
  63. truncate table `b_busi_wish_university_tmp_stat_college`;
  64. INSERT INTO b_busi_wish_university_tmp_stat_college
  65. SELECT T.marjorCollegeId, CONCAT('{"year":', T.year, ',"stats":[', GROUP_CONCAT(CONCAT('{"year":', T.submit_year,
  66. ',"score":', IF(score IS NULL, 0, score), ',"corrScore":', IF(corrScore IS NULL, 0, corrScore),
  67. ',"seat":', IF(seat IS NULL, 0, seat), ',"corrSeat":', IF(corrSeat IS NULL, 0, corrSeat),
  68. ',"numReal":',IF(numReal IS NULL, 0, numReal), ',"matchCount":',IF(matchCount IS NULL, 0, matchCount),
  69. ',"collect":',collect, ',"collectDesc":"',collectDesc, '","sinoForeign":',sinoForeign, ',"sinoForeignDesc":"',sinoForeignDesc, '"}') ORDER BY T.submit_year DESC), ']}') cnt FROM (
  70. SELECT ps.`marjorCollegeId`, ps.`year` `year`, ps.`year` submit_year,
  71. <choose><when test="newGaoKao">MIN(IF(sm.`score` = 0, NULL, sm.`score`)) score, MIN(IF(sm.`corrScore` = 0, NULL, sm.`corrScore`)) corrScore, MAX(IF(sm.`score`>0,sm.`seat`,0)) seat, MAX(IF(sm.`corrScore`>0,sm.`corrSeat`,0)) corrSeat, MAX(IF(sm.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(sm.`collect` = '有征集', sm.`collectDesc`, '')) `collectDesc`,
  72. </when><otherwise>MIN(IF(s.`score` = 0, NULL, s.`score`)) score, MIN(IF(s.`curr_score` = 0, NULL, s.`curr_score`)) corrScore, MAX(IF(s.`score`>0,s.`seat`,0)) seat, MAX(IF(s.`curr_score`>0,s.`curr_seat`,0)) corrSeat, MAX(IF(s.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(s.`collect` = '有征集', s.`collectDesc`, '')) `collectDesc`,
  73. </otherwise></choose>SUM(IF(sm.`numReal` IS NULL, 0, sm.`numReal`)) numReal, IF(SUM(IF(sm.`sinoForeign`, 0, 1)) > 0, 0, 1) sinoForeign, MAX(DISTINCT IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '')) `sinoForeignDesc`, COUNT(*) matchCount
  74. FROM `b_busi_wish_university_marjors_plan_submit` ps
  75. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`plan_submit_id` = sm.`id`
  76. JOIN `b_busi_wish_university_submits` s ON sm.`location` = s.`location` AND sm.year = s.year AND sm.`universityId` = s.`universityId` AND sm.`level` = s.`level` AND sm.`liberalScience` = s.`liberalScience` AND sm.`collegeCode` = s.`collegeCode` AND sm.uCode = s.uCode
  77. WHERE ps.`marjorCollegeId` IS NOT NULL AND ps.`plan_submit_id` IS NOT NULL
  78. AND ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  79. <if test="collegeIds != null"> and ps.`marjorCollegeId` in <foreach item="o" collection="collegeIds" open="(" separator="," close=")">#{o}</foreach></if>
  80. GROUP BY ps.`marjorCollegeId`, ps.`year`
  81. UNION
  82. SELECT ps.`marjorCollegeId`, ps.`year` `year`, ps.`year` - 1 submit_year,
  83. <choose><when test="newGaoKao">MIN(IF(sm.`score` = 0, NULL, sm.`score`)) score, MIN(IF(sm.`corrScore` = 0, NULL, sm.`corrScore`)) corrScore, MAX(IF(sm.`score`>0,sm.`seat`,0)) seat, MAX(IF(sm.`corrScore`>0,sm.`corrSeat`,0)) corrSeat, MAX(IF(sm.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(sm.`collect` = '有征集', sm.`collectDesc`, '')) `collectDesc`,
  84. </when><otherwise>MIN(IF(s.`score` = 0, NULL, s.`score`)) score, MIN(IF(s.`curr_score` = 0, NULL, s.`curr_score`)) corrScore, MAX(IF(s.`score`>0,s.`seat`,0)) seat, MAX(IF(s.`curr_score`>0,s.`curr_seat`,0)) corrSeat, MAX(IF(s.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(s.`collect` = '有征集', s.`collectDesc`, '')) `collectDesc`,
  85. </otherwise></choose>SUM(IF(sm.`numReal` IS NULL, 0, sm.`numReal`)) numReal, IF(SUM(IF(sm.`sinoForeign`, 0, 1)) > 0, 0, 1) sinoForeign, MAX(DISTINCT IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '')) `sinoForeignDesc`, COUNT(*) matchCount
  86. FROM `b_busi_wish_university_marjors_plan_submit` ps
  87. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`submit_id` = sm.`id`
  88. JOIN `b_busi_wish_university_submits` s ON sm.`location` = s.`location` AND sm.year = s.year AND sm.`universityId` = s.`universityId` AND sm.`level` = s.`level` AND sm.`liberalScience` = s.`liberalScience` AND sm.`collegeCode` = s.`collegeCode` AND sm.uCode = s.uCode
  89. WHERE ps.`marjorCollegeId` IS NOT NULL AND ps.`submit_id` IS NOT NULL
  90. AND ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  91. <if test="collegeIds != null"> and ps.`marjorCollegeId` in <foreach item="o" collection="collegeIds" open="(" separator="," close=")">#{o}</foreach></if>
  92. GROUP BY ps.`marjorCollegeId`, ps.`year`
  93. UNION
  94. SELECT ps.`marjorCollegeId`, ps.`year` `year`, ps.`year` - 2 submit_year,
  95. <choose><when test="newGaoKao">MIN(IF(sm.`score` = 0, NULL, sm.`score`)) score, MIN(IF(sm.`corrScore` = 0, NULL, sm.`corrScore`)) corrScore, MAX(IF(sm.`score`>0,sm.`seat`,0)) seat, MAX(IF(sm.`corrScore`>0,sm.`corrSeat`,0)) corrSeat, MAX(IF(sm.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(sm.`collect` = '有征集', sm.`collectDesc`, '')) `collectDesc`,
  96. </when><otherwise>MIN(IF(s.`score` = 0, NULL, s.`score`)) score, MIN(IF(s.`curr_score` = 0, NULL, s.`curr_score`)) corrScore, MAX(IF(s.`score`>0,s.`seat`,0)) seat, MAX(IF(s.`curr_score`>0,s.`curr_seat`,0)) corrSeat, MAX(IF(s.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(s.`collect` = '有征集', s.`collectDesc`, '')) `collectDesc`,
  97. </otherwise></choose>SUM(IF(sm.`numReal` IS NULL, 0, sm.`numReal`)) numReal, IF(SUM(IF(sm.`sinoForeign`, 0, 1)) > 0, 0, 1) sinoForeign, MAX(DISTINCT IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '')) `sinoForeignDesc`, COUNT(*) matchCount
  98. FROM `b_busi_wish_university_marjors_plan_submit` ps
  99. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`last_submit_id` = sm.`id`
  100. JOIN `b_busi_wish_university_submits` s ON sm.`location` = s.`location` AND sm.year = s.year AND sm.`universityId` = s.`universityId` AND sm.`level` = s.`level` AND sm.`liberalScience` = s.`liberalScience` AND sm.`collegeCode` = s.`collegeCode` AND sm.uCode = s.uCode
  101. WHERE ps.`marjorCollegeId` IS NOT NULL AND ps.`last_submit_id` IS NOT NULL
  102. AND ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  103. <if test="collegeIds != null"> and ps.`marjorCollegeId` in <foreach item="o" collection="collegeIds" open="(" separator="," close=")">#{o}</foreach></if>
  104. GROUP BY ps.`marjorCollegeId`, ps.`year`
  105. UNION
  106. SELECT ps.`marjorCollegeId`, ps.`year` `year`, ps.`year` - 3 submit_year,
  107. <choose><when test="newGaoKao">MIN(IF(sm.`score` = 0, NULL, sm.`score`)) score, MIN(IF(sm.`corrScore` = 0, NULL, sm.`corrScore`)) corrScore, MAX(IF(sm.`score`>0,sm.`seat`,0)) seat, MAX(IF(sm.`corrScore`>0,sm.`corrSeat`,0)) corrSeat, MAX(IF(sm.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(sm.`collect` = '有征集', sm.`collectDesc`, '')) `collectDesc`,
  108. </when><otherwise>MIN(IF(s.`score` = 0, NULL, s.`score`)) score, MIN(IF(s.`curr_score` = 0, NULL, s.`curr_score`)) corrScore, MAX(IF(s.`score`>0,s.`seat`,0)) seat, MAX(IF(s.`curr_score`>0,s.`curr_seat`,0)) corrSeat, MAX(IF(s.`collect` = '有征集', 1, 0)) `collect`, MAX(IF(s.`collect` = '有征集', s.`collectDesc`, '')) `collectDesc`,
  109. </otherwise></choose>SUM(IF(sm.`numReal` IS NULL, 0, sm.`numReal`)) numReal, IF(SUM(IF(sm.`sinoForeign`, 0, 1)) > 0, 0, 1) sinoForeign, MAX(DISTINCT IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '')) `sinoForeignDesc`, COUNT(*) matchCount
  110. FROM `b_busi_wish_university_marjors_plan_submit` ps
  111. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`old_submit_id` = sm.`id`
  112. JOIN `b_busi_wish_university_submits` s ON sm.`location` = s.`location` AND sm.year = s.year AND sm.`universityId` = s.`universityId` AND sm.`level` = s.`level` AND sm.`liberalScience` = s.`liberalScience` AND sm.`collegeCode` = s.`collegeCode` AND sm.uCode = s.uCode
  113. WHERE ps.`marjorCollegeId` IS NOT NULL AND ps.`old_submit_id` IS NOT NULL
  114. AND ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  115. <if test="collegeIds != null"> and ps.`marjorCollegeId` in <foreach item="o" collection="collegeIds" open="(" separator="," close=")">#{o}</foreach></if>
  116. GROUP BY ps.`marjorCollegeId`, ps.`year`
  117. ) T
  118. GROUP BY T.marjorCollegeId;
  119. </insert>
  120. <update id="updateCollegeStats">
  121. UPDATE `b_busi_wish_university_marjors_college` c, b_busi_wish_university_tmp_stat_college t
  122. SET c.`stats` = t.`stats`, c.`score` = 0, c.`seat` = 0, c.`matchCount`=0
  123. WHERE c.`id` = t.`marjorCollegeId` AND c.year = #{currYear} AND c.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>;
  124. UPDATE `b_busi_wish_university_marjors_college` c SET
  125. c.`score` = IF(c.`stats` LIKE CONCAT('%', c.`year`, ',"score"%') OR c.`stats` LIKE CONCAT('%', c.`year` - 1, ',"score"%'), json_extract(c.`stats`, '$.stats[0].corrScore'), NULL),
  126. c.`seat` = IF(c.`stats` LIKE CONCAT('%', c.`year`, ',"score"%') OR c.`stats` LIKE CONCAT('%', c.`year` - 1, ',"score"%'), json_extract(c.`stats`, '$.stats[0].corrSeat'), NULL),
  127. c.`matchCount` = IF(c.`stats` LIKE CONCAT('%', c.`year`, ',"score"%') OR c.`stats` LIKE CONCAT('%', c.`year` - 1, ',"score"%'), json_extract(c.`stats`, '$.stats[0].matchCount'), NULL)
  128. -- c.`score` = IF(c.`stats` LIKE CONCAT('%', c.`year`, ',"score"%') OR c.`stats` LIKE CONCAT('%', c.`year` - 1, ',"score"%'), json_extract(c.`stats`, '$.stats[0].score'), NULL),
  129. -- c.`seat` = IF(c.`stats` LIKE CONCAT('%', c.`year`, ',"score"%') OR c.`stats` LIKE CONCAT('%', c.`year` - 1, ',"score"%'), json_extract(c.`stats`, '$.stats[0].seat'), NULL)
  130. WHERE c.`stats` IS NOT NULL AND c.year = #{currYear} AND c.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  131. <if test="collegeIds != null"> and c.`id` in <foreach item="o" collection="collegeIds" open="(" separator="," close=")">#{o}</foreach></if>
  132. </update>
  133. <insert id="insertStats">
  134. truncate table `b_busi_wish_university_tmp_stat`;
  135. SET SESSION group_concat_max_len = 1024000;
  136. INSERT INTO b_busi_wish_university_tmp_stat
  137. SELECT T.`plan_id`, CONCAT('{"year":', T.`year`, ',"stats":[',
  138. GROUP_CONCAT(CONCAT('{"year":', T.submit_year, ',"submit_id":', T.`submit_id`, ',"score":', T.`score`, ',"corrScore":', T.`corrScore`, ',"seat":', T.`seat`, ',"corrSeat":', T.`corrSeat`, ',"numReal":', T.`numReal`,
  139. ',"collect":', T.`collect`, ',"collectDesc":"', T.`collectDesc`, '","sinoForeign":', T.`sinoForeign`, ',"sinoForeignDesc":"', T.`sinoForeignDesc`, '"}') ORDER BY T.submit_year DESC),
  140. ']}') FROM (
  141. SELECT ps.`plan_id`, ps.`year`, ps.`year` submit_year, ps.`plan_submit_id` submit_id, IF(sm.`score`>0,sm.`score`,0) score, IF(sm.`corrScore`>0,sm.`corrScore`,0) corrScore,
  142. IF(sm.`score`&gt;0,sm.`seat`,0) seat, IF(sm.`corrScore`&gt;0,sm.`corrSeat`,0) corrSeat,
  143. IF(sm.`numReal` IS NULL, 0, sm.`numReal`) numReal,
  144. IF(sm.`collect` = '有征集', 1, 0) `collect`, IF(sm.`collect` = '有征集', sm.`collectDesc`, '') `collectDesc`,
  145. IF(sm.`sinoForeign`, 1, 0) sinoForeign, IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '') `sinoForeignDesc`
  146. FROM `b_busi_wish_university_marjors_plan_submit` ps
  147. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`plan_submit_id` = sm.`id`
  148. WHERE ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  149. <if test="planIds != null"> and ps.`plan_id` in <foreach item="o" collection="planIds" open="(" separator="," close=")">#{o}</foreach></if>
  150. UNION
  151. SELECT ps.`plan_id`, ps.`year`, ps.`year` - 1 submit_year, ps.`submit_id` submit_id, IF(sm.`score`>0,sm.`score`,0) score, IF(sm.`corrScore`>0,sm.`corrScore`,0) corrScore,
  152. IF(sm.`score`&gt;0,sm.`seat`,0) seat, IF(sm.`corrScore`&gt;0,sm.`corrSeat`,0) corrSeat,
  153. IF(sm.`numReal` IS NULL, 0, sm.`numReal`),
  154. IF(sm.`collect` = '有征集', 1, 0) `collect`, IF(sm.`collect` = '有征集', sm.`collectDesc`, '') `collectDesc`,
  155. IF(sm.`sinoForeign`, 1, 0) sinoForeign, IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '') `sinoForeignDesc`
  156. FROM `b_busi_wish_university_marjors_plan_submit` ps
  157. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`submit_id` = sm.`id`
  158. WHERE ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  159. <if test="planIds != null"> and ps.`plan_id` in <foreach item="o" collection="planIds" open="(" separator="," close=")">#{o}</foreach></if>
  160. UNION
  161. SELECT ps.`plan_id`, ps.`year`, ps.`year` - 2 submit_year, ps.`last_submit_id` submit_id, IF(sm.`score`>0,sm.`score`,0) score, IF(sm.`corrScore`>0,sm.`corrScore`,0) corrScore,
  162. IF(sm.`score`&gt;0,sm.`seat`,0) seat, IF(sm.`corrScore`&gt;0,sm.`corrSeat`,0) corrSeat,
  163. IF(sm.`numReal` IS NULL, 0, sm.`numReal`),
  164. IF(sm.`collect` = '有征集', 1, 0) `collect`, IF(sm.`collect` = '有征集', sm.`collectDesc`, '') `collectDesc`,
  165. IF(sm.`sinoForeign`, 1, 0) sinoForeign, IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '') `sinoForeignDesc`
  166. FROM `b_busi_wish_university_marjors_plan_submit` ps
  167. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`last_submit_id` = sm.`id`
  168. WHERE ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  169. <if test="planIds != null"> and ps.`plan_id` in <foreach item="o" collection="planIds" open="(" separator="," close=")">#{o}</foreach></if>
  170. UNION
  171. SELECT ps.`plan_id`, ps.`year`, ps.`year` - 3 submit_year, ps.`old_submit_id` submit_id, IF(sm.`score`>0,sm.`score`,0) score, IF(sm.`corrScore`>0,sm.`corrScore`,0) corrScore,
  172. IF(sm.`score`&gt;0,sm.`seat`,0) seat, IF(sm.`corrScore`&gt;0,sm.`corrSeat`,0) corrSeat,
  173. IF(sm.`numReal` IS NULL, 0, sm.`numReal`),
  174. IF(sm.`collect` = '有征集', 1, 0) `collect`, IF(sm.`collect` = '有征集', sm.`collectDesc`, '') `collectDesc`,
  175. IF(sm.`sinoForeign`, 1, 0) sinoForeign, IF(sm.`sinoForeign`, sm.`sinoForeignDesc`, '') `sinoForeignDesc`
  176. FROM `b_busi_wish_university_marjors_plan_submit` ps
  177. JOIN `b_busi_wish_university_submit_marjors` sm ON ps.`old_submit_id` = sm.`id`
  178. WHERE ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  179. <if test="planIds != null"> and ps.`plan_id` in <foreach item="o" collection="planIds" open="(" separator="," close=")">#{o}</foreach></if>
  180. ) T
  181. GROUP BY T.`plan_id`;
  182. </insert>
  183. <update id="updateStats">
  184. UPDATE `b_busi_wish_university_marjors_plan_submit` ps, b_busi_wish_university_tmp_stat t
  185. SET ps.`stats` = t.`stats`
  186. WHERE ps.`plan_id` = t.`planId` AND ps.year = #{currYear} AND ps.`location` in <foreach item="o" collection="locations" open="(" separator="," close=")">#{o}</foreach>
  187. <if test="planIds != null"> and ps.`plan_id` in <foreach item="o" collection="planIds" open="(" separator="," close=")">#{o}</foreach></if>
  188. </update>
  189. <delete id="deleteUpdateVersion">
  190. DELETE mu FROM `b_busi_wish_university_submit_marjors_update` mu
  191. WHERE mu.`version` = #{version} and mu.location is not null and mu.location = #{location}
  192. </delete>
  193. </mapper>