From fa65442f58b482925063af56d8d491709184faeb Mon Sep 17 00:00:00 2001 From: wyt <414651037@qq.com> Date: Mon, 2 Feb 2026 16:19:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BE=8A=E8=88=8D?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DaSheepfoldController.java | 11 +++ .../zhyc/module/base/domain/DaSheepfold.java | 5 + .../zhyc/module/base/domain/ExportConfig.java | 28 ++++++ .../module/base/mapper/DaSheepfoldMapper.java | 6 ++ .../base/service/IDaSheepfoldService.java | 2 + .../service/impl/DaSheepfoldServiceImpl.java | 42 ++++++++ .../mapper/base/DaSheepfoldMapper.xml | 98 +++++++++++++++---- 7 files changed, 173 insertions(+), 19 deletions(-) create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/domain/ExportConfig.java diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/controller/DaSheepfoldController.java b/zhyc-module/src/main/java/com/zhyc/module/base/controller/DaSheepfoldController.java index 0e3275c..0af047c 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/controller/DaSheepfoldController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/controller/DaSheepfoldController.java @@ -44,6 +44,17 @@ public class DaSheepfoldController extends BaseController List list = daSheepfoldService.selectDaSheepfoldList(daSheepfold); return getDataTable(list); } + + + /** + * 主表格:羊舍级别汇总列表 + */ + @GetMapping("/summaryList") + public TableDataInfo summaryList(DaSheepfold daSheepfold) { + startPage(); + List list = daSheepfoldService.selectDaSheepfoldSummaryList(daSheepfold); + return getDataTable(list); + } /* * 根据羊舍ids查询羊只id * */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/DaSheepfold.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/DaSheepfold.java index ab30928..8d48269 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/domain/DaSheepfold.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/DaSheepfold.java @@ -115,5 +115,10 @@ public class DaSheepfold extends BaseEntity @Excel(name = "备注") private String comment; + // 非数据库字段:单栏位羊数(子表格用) + private Integer sheepCount; + // 非数据库字段:羊舍总羊数(主表格用) + private Integer totalSheepCount; + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/ExportConfig.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/ExportConfig.java new file mode 100644 index 0000000..0b55bc0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/ExportConfig.java @@ -0,0 +1,28 @@ +// 创建文件:ExportConfig.java +package com.zhyc.module.base.domain; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * 导出配置类 + */ +@Data +public class ExportConfig { + /** + * 要导出的列名列表(前端传递的驼峰命名) + */ + private List columnNames; + + /** + * 查询条件 + */ + private Map queryParams; + + /** + * 自定义筛选条件 + */ + private Map customFilterParams; +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/DaSheepfoldMapper.java b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/DaSheepfoldMapper.java index 9b690ce..caa0a2c 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/DaSheepfoldMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/DaSheepfoldMapper.java @@ -30,6 +30,12 @@ public interface DaSheepfoldMapper */ public List selectDaSheepfoldList(DaSheepfold daSheepfold); + + /** + * 羊舍级别汇总查询(主表格) + */ + List selectDaSheepfoldSummaryList(DaSheepfold daSheepfold); + /** * 新增羊舍管理 * diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/IDaSheepfoldService.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/IDaSheepfoldService.java index 26bac8f..54a38e5 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/service/IDaSheepfoldService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/IDaSheepfoldService.java @@ -29,6 +29,8 @@ public interface IDaSheepfoldService */ public List selectDaSheepfoldList(DaSheepfold daSheepfold); + public List selectDaSheepfoldSummaryList(DaSheepfold daSheepfold); + /** * 新增羊舍管理 * diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/DaSheepfoldServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/DaSheepfoldServiceImpl.java index 4753929..dc303ed 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/DaSheepfoldServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/DaSheepfoldServiceImpl.java @@ -5,6 +5,8 @@ import com.zhyc.module.base.domain.DaSheepfold; import com.zhyc.module.base.mapper.BasSheepMapper; import com.zhyc.module.base.mapper.DaSheepfoldMapper; import com.zhyc.module.base.service.IDaSheepfoldService; +import org.slf4j.Logger; // 核心修正:导入SLF4J的Logger +import org.slf4j.LoggerFactory; // 核心修正:导入SLF4J的LoggerFactory import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +26,11 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService @Autowired private BasSheepMapper basSheepMapper; + + // 新增:创建日志对象 + private static final Logger log = LoggerFactory.getLogger(DaSheepfoldServiceImpl.class); + + /** * 查询羊舍管理 * @@ -45,9 +52,44 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService @Override public List selectDaSheepfoldList(DaSheepfold daSheepfold) { + + List sheepfoldList = daSheepfoldMapper.selectDaSheepfoldList(daSheepfold); + + // 新增调试打印:输出每个栏位的羊数 + log.info("===== 栏位羊数调试 ====="); + log.info("查询条件:牧场ID={}, 羊舍类型ID={}, 羊舍编号={}", + daSheepfold.getRanchId(), daSheepfold.getSheepfoldTypeId(), daSheepfold.getSheepfoldNo()); + log.info("共查询到{}个栏位", sheepfoldList.size()); + + for (DaSheepfold fold : sheepfoldList) { + log.info("栏位ID={}, 羊舍编号={}, 排号={}, 栏数={}, 羊数={}", + fold.getId(), fold.getSheepfoldNo(), fold.getRowNo(), fold.getColumns(), fold.getSheepCount()); + } + log.info("===== 调试结束 =====\n"); return daSheepfoldMapper.selectDaSheepfoldList(daSheepfold); } + + /** + * 羊舍级别汇总查询(主表格) + */ + public List selectDaSheepfoldSummaryList(DaSheepfold daSheepfold) { +// List summaryList = daSheepfoldMapper.selectDaSheepfoldSummaryList(daSheepfold); +// +// // 新增调试打印:输出羊舍汇总羊数 +// log.info("===== 羊舍汇总羊数调试 ====="); +// log.info("查询条件:牧场ID={}, 羊舍类型ID={}", +// daSheepfold.getRanchId(), daSheepfold.getSheepfoldTypeId()); +// log.info("共查询到{}个羊舍", summaryList.size()); +// +// for (DaSheepfold fold : summaryList) { +// log.info("羊舍编号={}, 羊舍名称={}, 总羊数={}", +// fold.getSheepfoldNo(), fold.getSheepfoldName(), fold.getTotalSheepCount()); +// } +// log.info("===== 汇总调试结束 =====\n"); + return daSheepfoldMapper.selectDaSheepfoldSummaryList(daSheepfold); + } + /** * 新增羊舍管理 * diff --git a/zhyc-module/src/main/resources/mapper/base/DaSheepfoldMapper.xml b/zhyc-module/src/main/resources/mapper/base/DaSheepfoldMapper.xml index 4bf15cc..df7ae76 100644 --- a/zhyc-module/src/main/resources/mapper/base/DaSheepfoldMapper.xml +++ b/zhyc-module/src/main/resources/mapper/base/DaSheepfoldMapper.xml @@ -13,33 +13,93 @@ + + + - select id, - ranch_id, - sheepfold_name, - sheepfold_type_id, - sheepfold_no, - row_no, - columns, - comment - from da_sheepfold - + SELECT + ds.id, + ds.ranch_id, + ds.sheepfold_name, + ds.sheepfold_type_id, + ds.sheepfold_no, + ds.row_no, + ds.columns, + ds.comment + FROM da_sheepfold ds - + SELECT + ds.ranch_id, + ds.sheepfold_type_id, + ds.sheepfold_no, + -- 提取羊舍名称(截取栏位名称的羊舍部分,保证唯一) + CONCAT(ds.sheepfold_no, '号', (SELECT dict_label FROM sys_dict_data WHERE dict_value = ds.sheepfold_type_id AND dict_type = 'bas_sheepfold_type')) as sheepfoldName, + MAX(ds.comment) as comment, + -- 汇总该羊舍下所有栏位的羊数总和 + SUM(IFNULL(sheep_group.sheep_count, 0)) as totalSheepCount + FROM da_sheepfold ds + -- 左关联羊只表,统计每个栏位的羊数 + LEFT JOIN ( + SELECT sheepfold_id, COUNT(id) as sheep_count + FROM bas_sheep -- 羊只表 + GROUP BY sheepfold_id -- 按栏位ID分组统计羊数 + ) sheep_group ON ds.id = sheep_group.sheepfold_id -- 关联字段修正为sheepfold_id + + and ds.ranch_id = #{ranchId} + and ds.sheepfold_type_id = #{sheepfoldTypeId} + + -- 按羊舍维度分组(牧场+羊舍类型+羊舍编号 唯一标识一个羊舍) + GROUP BY ds.ranch_id, ds.sheepfold_type_id, ds.sheepfold_no + ORDER BY ds.sheepfold_no + + + + + + + + + + + + + + + @@ -321,6 +324,8 @@ where br.id = #{id} + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + insert into sc_breed_record @@ -477,13 +482,14 @@ technician, breed_drugs, breed_type, - frozen_semen_no, + frozen_sperm_no, create_by, create_time, comment, embryo_count, donor_ewe, donor_ram, + embryoSubType, #{sheepId}, @@ -503,20 +509,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + update sc_breed_record @@ -526,13 +532,14 @@ technician = #{technician}, breed_drugs = #{breedDrugs}, breed_type = #{breedType}, - frozen_semen_no = #{frozenSemenNo}, + frozen_sperm_no = #{frozenSemenNo}, create_by = #{createBy}, create_time = #{createTime}, comment = #{comment}, embryo_count = #{embryoCount}, donor_ewe = #{donorEweNo}, donor_ram = #{donorRamNo}, + embryoSubType = #{embryoSubType}, where id = #{id} @@ -548,8 +555,8 @@ -- Assuming linking via recipient tags is complicated, -- usually this is done by matching a recent flush record -- For now, this mimics the logic in your ServiceImpl - SELECT id FROM sc_embryo_flush WHERE recipient_list LIKE concat('%', #{manageTags}, '%') - ORDER BY created_at DESC LIMIT 1 + SELECT id FROM sc_embryo_flush WHERE donor_female_no LIKE concat('%', #{manageTags}, '%') + ORDER BY flush_time DESC LIMIT 1 ) -- Note: If your sc_embryo_flush structure is different (one row per recipient), adjust accordingly. -- Based on provided file, it has `recipient_cnt`. diff --git a/zhyc-module/src/main/resources/mapper/produce/breed/ScEmbryoFlushMapper.xml b/zhyc-module/src/main/resources/mapper/produce/breed/ScEmbryoFlushMapper.xml index fbad983..8382209 100644 --- a/zhyc-module/src/main/resources/mapper/produce/breed/ScEmbryoFlushMapper.xml +++ b/zhyc-module/src/main/resources/mapper/produce/breed/ScEmbryoFlushMapper.xml @@ -203,13 +203,9 @@