更新修复了产羔页面

This commit is contained in:
zyk
2025-08-19 10:13:42 +08:00
parent 8bc26605e0
commit c11faeeace
5 changed files with 102 additions and 47 deletions

View File

@@ -15,6 +15,7 @@
<result property="score" column="score" />
<result property="comment" column="comment" />
<result property="createBy" column="create_by" />
<!-- 修复数据库字段是create_tme不是create_time -->
<result property="createTime" column="create_tme" />
</resultMap>
@@ -66,42 +67,47 @@
lr.id, lr.sheep_id, lr.parity, lr.lambs_born, lr.survival,
lr.technician, lr.score, lr.comment, lr.create_by, lr.create_tme,
-- 从bas_sheep获取母羊信息
mother.manage_tags as female_ear_number,
mother.variety_id as female_breed,
TIMESTAMPDIFF(MONTH, mother.birthday, NOW()) as month_age,
mother.sheepfold_id as current_shed,
mother.ranch_id as farm,
-- 从sheep_file视图获取母羊信息
mother.bs_manage_tags as female_ear_number,
mother.variety as female_breed,
mother.month_age as month_age,
mother.sheepfold_name as current_shed,
mother.dr_ranch as farm,
-- 从sc_breed_record表获取配种信息
br.create_time as breeding_date,
DATEDIFF(lr.create_tme, br.create_time) as pregnancy_days,
DATEDIFF(CURDATE(), br.create_time) as pregnancy_days,
-- 从bas_sheep获取公羊信息
father.manage_tags as male_ear_number,
father.variety_id as male_breed,
-- 从sheep_file视图获取公羊信息
father.bs_manage_tags as male_ear_number,
father.variety as male_breed,
-- 统计羔羊信息(从bas_sheep表统计根据母羊ID
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 1 AND lamb.is_delete = 0) as male_count,
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 0 AND lamb.is_delete = 0) as female_count,
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 1 AND lamb.status_id = 1 AND lamb.is_delete = 0) as retained_male_count,
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 0 AND lamb.status_id = 1 AND lamb.is_delete = 0) as retained_female_count,
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 1 AND lamb.status_id != 1 AND lamb.is_delete = 0) as unretained_male_count,
(SELECT COUNT(*) FROM bas_sheep lamb WHERE lamb.mother_id = lr.sheep_id AND lamb.gender = 0 AND lamb.status_id != 1 AND lamb.is_delete = 0) as unretained_female_count
-- 统计羔羊信息(从sc_lamb_detail表统计
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 1) as male_count,
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 0) as female_count,
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 1 AND sld.is_retained = 1) as retained_male_count,
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 0 AND sld.is_retained = 1) as retained_female_count,
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 1 AND sld.is_retained = 0) as unretained_male_count,
(SELECT COUNT(*) FROM sc_lamb_detail sld WHERE sld.lambing_record_id = lr.id AND sld.gender = 0 AND sld.is_retained = 0) as unretained_female_count
FROM sc_lambing_record lr
LEFT JOIN bas_sheep mother ON lr.sheep_id = mother.id
LEFT JOIN sc_breed_record br ON lr.sheep_id = br.ewe_id AND lr.parity = mother.parity
LEFT JOIN bas_sheep father ON br.ram_id = father.id
LEFT JOIN sheep_file mother ON lr.sheep_id = mother.id
LEFT JOIN sc_breed_record br ON lr.sheep_id = br.ewe_id AND br.create_time = (
SELECT MAX(br2.create_time)
FROM sc_breed_record br2
WHERE br2.ewe_id = lr.sheep_id
AND br2.create_time &lt;= lr.create_tme
)
LEFT JOIN sheep_file father ON br.ram_id = father.id
</sql>
<!-- 查询产羔记录列表(包含关联信息) -->
<select id="selectScLambingRecordList" parameterType="ScLambingRecord" resultMap="ScLambingRecordDetailResult">
<include refid="selectScLambingRecordDetailVo"/>
<where>
<if test="femaleEarNumber != null and femaleEarNumber != ''"> and mother.manage_tags LIKE CONCAT('%', #{femaleEarNumber}, '%')</if>
<if test="femaleBreed != null and femaleBreed != ''"> and mother.variety_id = #{femaleBreed}</if>
<if test="farm != null and farm != ''"> and mother.ranch_id = #{farm}</if>
<if test="femaleEarNumber != null and femaleEarNumber != ''"> and mother.bs_manage_tags LIKE CONCAT('%', #{femaleEarNumber}, '%')</if>
<if test="femaleBreed != null and femaleBreed != ''"> and mother.variety LIKE CONCAT('%', #{femaleBreed}, '%')</if>
<if test="farm != null and farm != ''"> and mother.dr_ranch LIKE CONCAT('%', #{farm}, '%')</if>
<if test="sheepId != null and sheepId != ''"> and lr.sheep_id = #{sheepId}</if>
<if test="parity != null"> and lr.parity = #{parity}</if>
<if test="lambsBorn != null"> and lr.lambs_born = #{lambsBorn}</if>
@@ -134,23 +140,29 @@
where lr.id = #{id} and mother.is_delete = 0
</select>
<!-- 查询羔羊详情从sc_lamb_detail表查询 -->
<select id="selectLambDetailByLambingRecordId" parameterType="Long" resultType="ScLambDetail">
<!-- 根据母羊耳号查询最新配种记录 -->
<select id="getLatestBreedingByEarNumber" parameterType="String" resultType="java.util.Map">
SELECT
id,
lambing_record_id as lambingRecordId,
lamb_ear_number as lambEarNumber,
lamb_breed as lambBreed,
gender,
birth_weight as birthWeight,
is_retained as isRetained,
lineage,
birthday,
create_by as createBy,
create_time as createTime
FROM sc_lamb_detail
WHERE lambing_record_id = #{lambingRecordId}
ORDER BY create_time ASC
sf.id as sheep_id,
sf.bs_manage_tags as female_ear_number,
sf.variety as female_breed,
sf.parity as parity,
br.ram_id as ram_id,
ram.bs_manage_tags as male_ear_number,
ram.variety as male_breed,
br.create_time as breeding_date,
DATEDIFF(CURDATE(), br.create_time) as pregnancy_days,
br.technician as technician
FROM sheep_file sf
LEFT JOIN sc_breed_record br ON sf.id = br.ewe_id
LEFT JOIN sheep_file ram ON br.ram_id = ram.id
WHERE sf.bs_manage_tags = #{earNumber}
AND sf.is_delete = 0
AND br.create_time = (
SELECT MAX(br2.create_time)
FROM sc_breed_record br2
WHERE br2.ewe_id = sf.id
)
</select>
<!-- 新增产羔记录 -->
@@ -191,8 +203,8 @@
<if test="technician != null">technician = #{technician},</if>
<if test="score != null">score = #{score},</if>
<if test="comment != null">comment = #{comment},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_tme = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>