From 2f0e80868e4bf424d554eb1495d3dd29005df8f1 Mon Sep 17 00:00:00 2001 From: zyk Date: Mon, 2 Feb 2026 07:48:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=A7=8D=E8=AE=A1=E5=88=92=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BF=AE=E5=A4=8D=EF=BC=8C=E5=8A=9F=E8=83=BD=E5=8A=A0?= =?UTF-8?q?=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ScBreedRecordController.java | 2 + .../produce/breed/domain/ScBreedRecord.java | 180 ++++++------ .../breed/mapper/ScBreedRecordMapper.java | 8 + .../impl/ScBreedRecordServiceImpl.java | 215 +++++++++++--- .../produce/breed/ScBreedRecordMapper.xml | 275 +++++++++++++++--- 5 files changed, 498 insertions(+), 182 deletions(-) diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScBreedRecordController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScBreedRecordController.java index 499be05..b32aa76 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScBreedRecordController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScBreedRecordController.java @@ -239,4 +239,6 @@ public class ScBreedRecordController extends BaseController List records = scBreedRecordService.getBreedRecordsByTimeRange(sheepId, startDate, endDate); return success(records); } + + } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScBreedRecord.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScBreedRecord.java index 72565f2..0636f59 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScBreedRecord.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScBreedRecord.java @@ -20,135 +20,133 @@ public class ScBreedRecord extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键ID */ + // ===================== 基础主键/关联ID字段 ===================== + // 基础关联ID private Long id; - - /** 羊只id */ - @Excel(name = "羊只id") private Long sheepId; - - /** 配种公羊id */ - @Excel(name = "配种公羊id") private String ramId; - - /** 配种母羊id */ - @Excel(name = "配种母羊id") private String eweId; - /** 技术员 */ - @Excel(name = "技术员") - private String technician; - - /** 繁殖用药/耗精量 */ - @Excel(name = "耗精量") - private String breedDrugs; - - /** 配种方式 1-同期发情 2-本交 */ - @Excel(name = "配种方式", readConverterExp = "1=同期发情,2=本交") - private Integer breedType; - - // ============ 显示字段 ============ - - /** 母羊耳号 */ + // --- 导出及表单顺序 --- @Excel(name = "耳号") - private String eweManageTags; + private String eweManageTags; // 母羊耳号 - /** 母羊品种 */ @Excel(name = "品种") private String eweVariety; - /** 公羊耳号 */ + @Excel(name = "事件类型") + private String eventType = "配种"; + + @Excel(name = "配种日期", dateFormat = "yyyy-MM-dd") + private Date createTime; + @Excel(name = "配种公羊") private String ramManageTags; - /** 公羊品种 */ @Excel(name = "配种公羊品种") private String ramVariety; - /** 胎次 */ - @Excel(name = "胎次") - private Integer eweParity; + @Excel(name = "供体母羊") + private String donorEweNo; + + @Excel(name = "供体母羊品种") + private String donorEweVariety; + + @Excel(name = "供体公羊") + private String donorRamNo; + + @Excel(name = "供体公羊品种") + private String donorRamVariety; + + @Excel(name = "移胚数") + private Integer embryoCount; + + /** 1-同期发情, 2-本交, 3-自然发情, 4-胚胎移植 */ + @Excel(name = "配种方式", readConverterExp = "1=同期发情,2=本交,3=自然发情,4=胚胎移植") + private Integer breedType; + + @Excel(name = "配种子类型") + private String embryoSubType; // 体内/体外 + 冻胚/鲜胚 - /** 月龄 */ @Excel(name = "月龄") private Integer eweMonthAge; - /** 羊舍名称 */ - @Excel(name = "当前羊舍") - private String eweSheepfoldName; - - /** 繁育状态 */ - @Excel(name = "繁育状态") - private String eweBreedStatus; - - /** 是否性控 */ - @Excel(name = "是否性控", readConverterExp = "0=否,1=是") - private Integer eweControlled; - - /** 羊只备注 */ - @Excel(name = "羊只备注") - private String eweComment; - - /** 牧场名称 */ - @Excel(name = "所在牧场") - private String ranchName; - - /** 配种方式显示 */ - @Excel(name = "配种方式") - private String matingType; - - /** 羊只类别 */ @Excel(name = "配种时羊只类别") private String sheepType; - /** 配次 */ + @Excel(name = "胎次") + private Integer eweParity; + + @Excel(name = "孕检记录id") + private Integer pregnancyRecordId; + @Excel(name = "配次") private Integer matingCount; - /** 发情后配种时间 */ - @Excel(name = "发情后配种时间(小时)") + @Excel(name = "发情后配种时间") private Long timeSincePlanning; - /** 牧场ID */ - private Long ranchId; + @Excel(name = "当前羊舍") + private String eweSheepfoldName; - /** 配种计划ID */ - private Long planId; + @Excel(name = "技术员") + private String technician; - // ============ 新增孕检相关字段 ============ + @Excel(name = "繁殖用药") + private String breedDrugs; + + @Excel(name = "羊只备注") + private String eweComment; + + @Excel(name = "繁育状态") + private String eweBreedStatus; - /** 孕检日期 */ @Excel(name = "孕检日期") private Date pregnancyCheckDate; - /** 孕检结果 */ @Excel(name = "孕检结果") private String pregnancyResult; - /** 孕检方式 */ - @Excel(name = "孕检方式") - private String pregnancyWay; - - /** 胎数 */ - @Excel(name = "胎数") - private Integer fetusCount; - - /** 孕检技术员 */ - @Excel(name = "孕检技术员") - private String pregnancyTechnician; - - /** 孕检备注 */ - @Excel(name = "孕检备注") - private String pregnancyRemark; - - /** 孕检记录ID */ - private Long pregnancyRecordId; - - /** 配种到孕检间隔天数 */ @Excel(name = "配种到孕检间隔(天)") private Integer daysToPregnancyCheck; - /** 是否已孕检 */ - @Excel(name = "是否已孕检", readConverterExp = "0=否,1=是") - private Integer isPregnancyChecked; + + @Excel(name = "预产日期") + private Date expectedDate; + + @Excel(name = "实产日期") + private Date actualLambingDate; + + @Excel(name = "配种时产后天数") + private Long daysPostLambing; // 距离上一次产羔 + + @Excel(name = "配种时泌乳天数") + private Long daysLactation; // 距离上一次孕检且怀孕 + + @Excel(name = "配种时配后天数") + private Long daysPostMating; // 距离上一次配种 + + @Excel(name = "上次配种日期") + private Date lastMatingDate; + + @Excel(name = "冻精号") + private String frozenSemenNo; // 新增字段:自行输入 + + @Excel(name = "是否性控", readConverterExp = "0=否,1=是") + private Integer eweControlled; + + @Excel(name = "耗精量") + private String spermConsumption; + + @Excel(name = "创建人") + private String createBy; + + @Excel(name = "创建日期") + private Date createDate; + + @Excel(name = "所在牧场") + private String ranchName; + + @Excel(name = "备注") + private String comment; } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java index 13be12c..f630531 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java @@ -145,4 +145,12 @@ public interface ScBreedRecordMapper * @return 配种母羊数 */ Long countMatedEwesByRamId(String ramManageTags); + + /** + * 根据受体(母羊)耳号查询最新的冲胚记录信息 + * 用于胚胎移植时自动填充供体和移胚数 + * @param manageTags 受体母羊耳号 + * @return 冲胚记录Map + */ + public Map getFlushRecordByEweNo(@Param("manageTags") String manageTags); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java index c861d1e..3f53c1d 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java @@ -1,5 +1,6 @@ package com.zhyc.module.produce.breed.service.impl; +import java.util.HashMap; import java.util.List; import java.util.Map; import com.zhyc.common.utils.DateUtils; @@ -44,31 +45,47 @@ public class ScBreedRecordServiceImpl implements IScBreedRecordService * @param scBreedRecord 配种记录 * @return 配种记录 */ +// @Override +// public List selectScBreedRecordList(ScBreedRecord scBreedRecord) +// { +// // 如果查询条件中有耳号,需要先转换为ID +// if (StringUtils.isNotEmpty(scBreedRecord.getEweManageTags())) +// { +// Long eweId = scBreedRecordMapper.getSheepIdByManageTags(scBreedRecord.getEweManageTags()); +// if (eweId != null) +// { +// scBreedRecord.setEweId(eweId.toString()); +// } +// } +// +// if (StringUtils.isNotEmpty(scBreedRecord.getRamManageTags())) +// { +// Long ramId = scBreedRecordMapper.getRamIdByManageTags(scBreedRecord.getRamManageTags()); +// if (ramId != null) +// { +// scBreedRecord.setRamId(ramId.toString()); +// } +// } +// +// return scBreedRecordMapper.selectScBreedRecordList(scBreedRecord); +// } @Override - public List selectScBreedRecordList(ScBreedRecord scBreedRecord) - { - // 如果查询条件中有耳号,需要先转换为ID + public List selectScBreedRecordList(ScBreedRecord scBreedRecord) { + // ... (耳号转ID逻辑保持不变) ... + // 如果查询条件中有耳号,需要先转换为ID (注意:供体母羊/公羊是直接存字符串的,不需要转ID,只有作为受体的eweId需要转) if (StringUtils.isNotEmpty(scBreedRecord.getEweManageTags())) { Long eweId = scBreedRecordMapper.getSheepIdByManageTags(scBreedRecord.getEweManageTags()); if (eweId != null) { + // 注意:这里仅设置eweId用于查询作为受体的记录 + // 如果用户想搜"供体母羊"是xxx,Mapper XML中的 OR 逻辑会处理 scBreedRecord.setEweId(eweId.toString()); } } - - if (StringUtils.isNotEmpty(scBreedRecord.getRamManageTags())) - { - Long ramId = scBreedRecordMapper.getRamIdByManageTags(scBreedRecord.getRamManageTags()); - if (ramId != null) - { - scBreedRecord.setRamId(ramId.toString()); - } - } - + // ... return scBreedRecordMapper.selectScBreedRecordList(scBreedRecord); } - /** * 新增配种记录 * @@ -172,34 +189,89 @@ public class ScBreedRecordServiceImpl implements IScBreedRecordService * @param manageTags 母羊管理耳号 * @return 配种计划信息 */ +// @Override +// public Map getLatestBreedPlanByEweTags(String manageTags) +// { +// try { +// // 优先从配种计划生成表获取最新计划 +// Map latestPlan = scBreedRecordMapper.getLatestBreedPlanByEweTags(manageTags); +// +// if (latestPlan != null && !latestPlan.isEmpty()) { +// log.info("从配种计划生成表获取到配种计划: {}", latestPlan); +// return latestPlan; +// } +// +// // 如果生成表中没有,则从普通配种计划表获取 +// Map normalPlan = scBreedRecordMapper.getBreedPlanByEweTags(manageTags); +// if (normalPlan != null && !normalPlan.isEmpty()) { +// log.info("从配种计划表获取到配种计划: {}", normalPlan); +// return normalPlan; +// } +// +// log.warn("未找到母羊耳号 {} 的配种计划信息", manageTags); +// return null; +// +// } catch (Exception e) { +// log.error("获取配种计划信息时发生异常,母羊耳号: {}", manageTags, e); +// return null; +// } +// } + /** + * 根据母羊耳号获取最新的配种计划信息 + * 修改逻辑:优先查配种计划 -> 其次查冲胚记录(作为受体) + */ @Override public Map getLatestBreedPlanByEweTags(String manageTags) { try { - // 优先从配种计划生成表获取最新计划 + // 1. 优先从配种计划生成表获取最新计划 (同期发情/本交等) Map latestPlan = scBreedRecordMapper.getLatestBreedPlanByEweTags(manageTags); - if (latestPlan != null && !latestPlan.isEmpty()) { log.info("从配种计划生成表获取到配种计划: {}", latestPlan); return latestPlan; } - // 如果生成表中没有,则从普通配种计划表获取 + // 2. 如果生成表中没有,从普通配种计划表获取 Map normalPlan = scBreedRecordMapper.getBreedPlanByEweTags(manageTags); if (normalPlan != null && !normalPlan.isEmpty()) { log.info("从配种计划表获取到配种计划: {}", normalPlan); return normalPlan; } - log.warn("未找到母羊耳号 {} 的配种计划信息", manageTags); + // 3. 【新增逻辑】如果都没有,尝试从冲胚记录中查找(该羊是否作为受体) + // 这里的业务逻辑是:如果这只羊在冲胚记录的"受体列表"中,且是最近的操作,则认为它是去做胚胎移植 + Map flushRecord = scBreedRecordMapper.getFlushRecordByEweNo(manageTags); + if (flushRecord != null && !flushRecord.isEmpty()) { + log.info("从冲胚记录获取到移植信息: {}", flushRecord); + + // 构造一个符合前端预期的Map结构 + Map etPlan = new HashMap<>(); + etPlan.put("breed_type", 5); // 设定 5 为胚胎移植 + etPlan.put("breedType", 5); // 驼峰兼容 + etPlan.put("breed_type_name", "胚胎移植"); + + // 填充冲胚记录带来的数据 + etPlan.put("donorEweNo", flushRecord.get("donor_female_no")); // 供体母羊 + etPlan.put("donorRamNo", flushRecord.get("donor_male_no")); // 供体公羊 + etPlan.put("embryoCount", flushRecord.get("transferred")); // 移胚数 + + // 拼接配种子类型 (例如: 体内供体 鲜胚) + String subType = ""; + if (flushRecord.get("embryo_type") != null) subType += flushRecord.get("embryo_type"); + if (flushRecord.get("storage_method") != null) subType += " " + flushRecord.get("storage_method"); + etPlan.put("embryoSubType", subType.trim()); + + return etPlan; + } + + log.warn("未找到母羊耳号 {} 的配种或移植计划信息", manageTags); return null; } catch (Exception e) { - log.error("获取配种计划信息时发生异常,母羊耳号: {}", manageTags, e); + log.error("获取配种/移植计划信息时发生异常,母羊耳号: {}", manageTags, e); return null; } } - /** * 同步孕检结果到配种记录 * @@ -246,47 +318,102 @@ public class ScBreedRecordServiceImpl implements IScBreedRecordService return scBreedRecordMapper.selectBreedRecordByMatingTime(sheepId, startDate, endDate); } +// /** +// * 新增配种记录 +// * +// * @param scBreedRecord 配种记录 +// * @return 结果 +// */ +// @Override +// public int insertScBreedRecord(ScBreedRecord scBreedRecord) +// { +// // 设置创建时间 +// scBreedRecord.setCreateTime(DateUtils.getNowDate()); +// +// // 插入配种记录 +// int result = scBreedRecordMapper.insertScBreedRecord(scBreedRecord); +// +// // 如果插入成功,同步更新羊只的配种日期 +// if (result > 0 && scBreedRecord.getEweId() != null) { +// try { +// Long eweId = Long.parseLong(scBreedRecord.getEweId()); +// +//// // 方案1:只更新配种日期(推荐) +//// scBreedRecordMapper.updateSheepMatingDate( +//// eweId, +//// scBreedRecord.getCreateTime(), +//// scBreedRecord.getCreateBy() +//// ); +// +//// 方案2:同时更新配种日期和配种次数(如果需要的话,取消下面注释) +// scBreedRecordMapper.incrementSheepMatingCount( +// eweId, +// scBreedRecord.getCreateTime(), +// scBreedRecord.getCreateBy() +// ); +// +// log.info("同步更新羊只 {} 的配种日期成功", eweId); +// } catch (Exception e) { +// log.error("同步更新羊只配种日期失败", e); +// // 不影响主流程,只记录日志 +// } +// } +// +// return result; +// } /** * 新增配种记录 - * - * @param scBreedRecord 配种记录 - * @return 结果 */ @Override public int insertScBreedRecord(ScBreedRecord scBreedRecord) { - // 设置创建时间 scBreedRecord.setCreateTime(DateUtils.getNowDate()); - // 插入配种记录 + // 如果是胚胎移植(5),且前端没有传移胚数等信息,可以在这里做一次兜底查询 + // 但通常前端 form 表单提交时应该已经通过 getLatestBreedPlanByEweTags 填好了 + + // 插入记录 int result = scBreedRecordMapper.insertScBreedRecord(scBreedRecord); - // 如果插入成功,同步更新羊只的配种日期 + // 同步更新羊只的基础信息(配种次数、配种日期) if (result > 0 && scBreedRecord.getEweId() != null) { try { Long eweId = Long.parseLong(scBreedRecord.getEweId()); - -// // 方案1:只更新配种日期(推荐) -// scBreedRecordMapper.updateSheepMatingDate( -// eweId, -// scBreedRecord.getCreateTime(), -// scBreedRecord.getCreateBy() -// ); - -// 方案2:同时更新配种日期和配种次数(如果需要的话,取消下面注释) - scBreedRecordMapper.incrementSheepMatingCount( - eweId, - scBreedRecord.getCreateTime(), - scBreedRecord.getCreateBy() - ); - - log.info("同步更新羊只 {} 的配种日期成功", eweId); + scBreedRecordMapper.incrementSheepMatingCount( + eweId, + scBreedRecord.getCreateTime(), + scBreedRecord.getCreateBy() + ); } catch (Exception e) { log.error("同步更新羊只配种日期失败", e); - // 不影响主流程,只记录日志 } } - return result; } + @Override + public ScBreedRecord getAutomaticBreedMatch(String manageTags) { + // 1. 尝试从配种计划获取 (breed_type: 1, 2, 3, 4) + Map plan = scBreedRecordMapper.getLatestBreedPlanByEweTags(manageTags); + if (plan != null) { + ScBreedRecord record = new ScBreedRecord(); + record.setBreedType(Integer.parseInt(plan.get("breed_type").toString())); + record.setRamManageTags((String) plan.get("ram_manage_tags")); + return record; + } + + // 2. 尝试从冲胚记录获取 + Map flushRecord = scBreedRecordMapper.getFlushRecordByEweNo(manageTags); + if (flushRecord != null) { + ScBreedRecord record = new ScBreedRecord(); + record.setBreedType(5); // 设定 5 为胚胎移植(您可根据实际调整枚举) + record.setEmbryoCount(Integer.parseInt(flushRecord.get("transferred").toString())); + record.setDonorEweNo((String) flushRecord.get("donor_female_no")); + record.setDonorRamNo((String) flushRecord.get("donor_male_no")); + // 根据冲胚记录的存储方式和类型拼接“配种子类型” + record.setEmbryoSubType(flushRecord.get("embryo_type") + " " + flushRecord.get("storage_method")); + return record; + } + + return null; // 均未找到 + } } \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml b/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml index bbe7a85..1971e02 100644 --- a/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml +++ b/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml @@ -4,6 +4,43 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12,9 +49,14 @@ - + - + + + + + + @@ -26,24 +68,26 @@ - + - + + + + + - - - - + + + - - + - + @@ -68,7 +112,8 @@ - + + @@ -99,15 +144,15 @@ - - - - - - - - - + + + + + + + + + @@ -119,9 +164,19 @@ br.technician, br.breed_drugs, br.breed_type, + br.frozen_sperm_no, -- 冻精号 + br.comment, br.create_by, br.create_time, - -- 母羊信息(从视图获取) + + -- 胚胎移植相关字段 (如果不存表里,需要join sc_embryo_flush,这里假设存表或已有字段,如需Join请参考下方注释) + -- 假设表里已有这些列,或者我们通过Join sheep_file 拿(但sheep_file没有donor信息) + -- 这里按照最佳实践,应在插入时将Donor信息固化在breed_record表中 + br.donor_ewe, + br.donor_ram, + br.embryo_count, + + -- 母羊信息 ewe_view.bs_manage_tags as ewe_manage_tags, ewe_view.variety as ewe_variety, ewe_view.parity as ewe_parity, @@ -133,19 +188,51 @@ ewe_view.dr_ranch as ranch_name, ewe_view.name as sheep_type, ewe_view.mating_total as mating_count, - -- 公羊信息(从视图获取) + + -- 公羊信息 ram_view.bs_manage_tags as ram_manage_tags, ram_view.variety as ram_variety, - -- 配种方式显示 - CASE br.breed_type - WHEN 1 THEN '同期发情' - WHEN 2 THEN '本交' - WHEN 3 THEN '冲胚' - WHEN 4 THEN '自然发情人工授精' - ELSE '未知' - END as mating_type, + -- 发情后配种时间(小时数) TIMESTAMPDIFF(HOUR, br.create_time, NOW()) as time_since_planning, + + -- ================= 计算字段实现 ================= + + -- 1. 配种时产后天数 (距离上一次产羔: 找最近一次小于配种时间的产羔日期) + DATEDIFF(br.create_time, ( + SELECT lambing_date + FROM sheep_file + WHERE id = br.ewe_id + )) as days_post_lambing, + + -- 2. 配种时泌乳天数 (距离上一次孕检且怀孕) + DATEDIFF(br.create_time, ( + SELECT MAX(pr_sub.datetime) + FROM sc_pregnancy_record pr_sub + WHERE pr_sub.sheep_id = br.ewe_id + AND pr_sub.result = '怀孕' + AND pr_sub.is_delete = 0 + AND pr_sub.datetime < br.create_time + )) as days_lactation, + + -- 3. 配种时配后天数 (距离上一次配种) + DATEDIFF(br.create_time, ( + SELECT MAX(br_sub.create_time) + FROM sc_breed_record br_sub + WHERE br_sub.ewe_id = br.ewe_id + AND br_sub.create_time < br.create_time + )) as days_post_mating, + + -- 4. 上次配种日期 + ( + SELECT MAX(br_sub.create_time) + FROM sc_breed_record br_sub + WHERE br_sub.ewe_id = br.ewe_id + AND br_sub.create_time < br.create_time + ) as last_mating_date, + + -- =============================================== + -- 孕检相关信息 pr.datetime as pregnancy_check_date, pr.result as pregnancy_result, @@ -164,10 +251,10 @@ WHEN pr.id IS NOT NULL THEN 1 ELSE 0 END as is_pregnancy_checked + from sc_breed_record br left join sheep_file ewe_view on br.ewe_id = ewe_view.id left join sheep_file ram_view on br.ram_id = ram_view.id - -- 修复:使用子查询确保只返回一条孕检记录 left join sc_pregnancy_record pr on pr.id = ( select pr2.id from sc_pregnancy_record pr2 @@ -178,6 +265,32 @@ limit 1 ) + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -334,6 +445,29 @@ limit 1 + + + + + + + + + + + + + + + + + + + + + + + insert into sc_breed_record @@ -343,8 +477,13 @@ technician, breed_drugs, breed_type, + frozen_semen_no, create_by, create_time, + comment, + embryo_count, + donor_ewe, + donor_ram, #{sheepId}, @@ -353,11 +492,31 @@ #{technician}, #{breedDrugs}, #{breedType}, + #{frozenSemenNo}, #{createBy}, #{createTime}, + #{comment}, + #{embryoCount}, + #{donorEweNo}, + #{donorRamNo}, + #{embryoSubType}, + + + + + + + + + + + + + + update sc_breed_record @@ -367,12 +526,34 @@ technician = #{technician}, breed_drugs = #{breedDrugs}, breed_type = #{breedType}, + frozen_semen_no = #{frozenSemenNo}, create_by = #{createBy}, create_time = #{createTime}, + comment = #{comment}, + embryo_count = #{embryoCount}, + donor_ewe = #{donorEweNo}, + donor_ram = #{donorRamNo}, where id = #{id} - + delete from sc_breed_record where id = #{id}