diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScDryMilkController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScDryMilkController.java index 7b8913e..a00bcd4 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScDryMilkController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScDryMilkController.java @@ -79,14 +79,20 @@ public class ScDryMilkController extends BaseController /** * 远程搜索耳号列表 */ + /** + * 模糊查询母羊耳号列表 + */ + @PreAuthorize("@ss.hasPermi('drymilk:drymilk:query')") // 根据实际权限修改 @GetMapping("/searchEarNumbers") - public AjaxResult searchEarNumbers(@RequestParam(value = "query", required = false) String query) - { - if (query == null) query = ""; - List list = scDryMilkService.selectSheepEarNumberList(query); - return AjaxResult.success(list); + public AjaxResult searchEarNumbers(@RequestParam("query") String query) { + try { + List earNumbers = scDryMilkService.searchEarNumbers(query); + return success(earNumbers); + } catch (Exception e) { + logger.error("搜索耳号异常", e); + return error("搜索耳号失败:" + e.getMessage()); + } } - /** * 远程搜索技术员列表 */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java index 8a62b95..22e7daf 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java @@ -41,6 +41,20 @@ public class ScSheepDeathController extends BaseController @Autowired private ISwDiseaseService swDiseaseService; + /** + * 模糊查询母羊耳号列表 + */ + @PreAuthorize("@ss.hasPermi('/sheep_death/death:query')") // 根据实际权限修改 + @GetMapping("/search_ear_numbers") + public AjaxResult searchEarNumbers(@RequestParam("query") String query) { + try { + List earNumbers = scSheepDeathService.searchEarNumbers(query); + return success(earNumbers); + } catch (Exception e) { + logger.error("搜索耳号异常", e); + return error("搜索耳号失败:" + e.getMessage()); + } + } /** * 查询羊只死淘记录列表 */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScWeanRecordController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScWeanRecordController.java index 4579927..3d15de7 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScWeanRecordController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScWeanRecordController.java @@ -36,15 +36,6 @@ public class ScWeanRecordController extends BaseController { return getDataTable(list); } - /** - * 【新增】模糊查询耳号列表 (用于前端下拉框远程搜索) - */ - @PreAuthorize("@ss.hasPermi('Weaning:weaning_record:list')") - @GetMapping("/search_ear_numbers") - public AjaxResult searchEarNumbers(@RequestParam("query") String query) { - List list = scWeanRecordService.searchEarNumbers(query); - return success(list); - } /** * 导出断奶记录列表 @@ -129,5 +120,19 @@ public class ScWeanRecordController extends BaseController { return toAjax(scWeanRecordService.deleteScWeanRecordByIds(ids)); } + /** + * 模糊查询母羊耳号列表 + */ + @PreAuthorize("@ss.hasPermi('breed:lambing_records:query')") // 根据实际权限修改 + @GetMapping("/search_ear_numbers") + public AjaxResult searchEarNumbers(@RequestParam("query") String query) { + try { + List earNumbers = scWeanRecordService.searchEarNumbers(query); + return success(earNumbers); + } catch (Exception e) { + logger.error("搜索耳号异常", e); + return error("搜索耳号失败:" + e.getMessage()); + } + } } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScDryMilk.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScDryMilk.java index 5c0f51f..26747cd 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScDryMilk.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScDryMilk.java @@ -18,6 +18,16 @@ public class ScDryMilk extends BaseEntity { private static final long serialVersionUID = 1L; + /** 全部羊耳号列表(用于多耳号查询) */ + private List allEarNumbers; + + public List getAllEarNumbers() { + return allEarNumbers; + } + + public void setAllEarNumbers(List allEarNumbers) { + this.allEarNumbers = allEarNumbers; + } /** 主键id */ private Long id; diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java index 54e7171..dc51324 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java @@ -18,6 +18,7 @@ public class ScSheepDeath extends BaseEntity { private static final long serialVersionUID = 1L; + /** 主键ID */ private Long id; diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScWeanRecord.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScWeanRecord.java index 9c5088a..76b5951 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScWeanRecord.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScWeanRecord.java @@ -22,6 +22,17 @@ public class ScWeanRecord extends BaseEntity { /** 主键ID */ private Long id; + /** 全部羊耳号列表(用于多耳号查询) */ + private List allEarNumbers; + + public List getAllEarNumbers() { + return allEarNumbers; + } + + public void setAllEarNumbers(List allEarNumbers) { + this.allEarNumbers = allEarNumbers; + } + /** 羊只ID */ @Excel(name = "羊只ID") private Long sheepId; @@ -51,10 +62,6 @@ public class ScWeanRecord extends BaseEntity { @Excel(name = "电子耳号") private String electronicTags; - // --- 新增查询字段 --- - - /** 多耳号查询列表 */ - private List allEarNumbers; /** 是否在群 (1是 0否) */ private String isInHerd; diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScDryMilkMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScDryMilkMapper.java index 2fbeff2..cbe1bad 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScDryMilkMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScDryMilkMapper.java @@ -69,4 +69,11 @@ public interface ScDryMilkMapper * 远程搜索技术员列表 */ public List searchTechnicianList(@Param("query") String query); + /** + * 模糊查询母羊耳号列表 + * + * @param query 查询关键字 + * @return 耳号列表 + */ + List searchEarNumbers(@Param("query") String query); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java index b0e1a9d..9a36129 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java @@ -85,4 +85,12 @@ public interface ScSheepDeathMapper * 远程搜索:处理人 */ public List selectDistinctHandler(@Param("query") String query); + + /** + * 模糊查询母羊耳号列表 + * + * @param query 查询关键字 + * @return 耳号列表 + */ + List searchEarNumbers(@Param("query") String query); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScWeanRecordMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScWeanRecordMapper.java index 3958729..591e74c 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScWeanRecordMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScWeanRecordMapper.java @@ -68,9 +68,10 @@ public interface ScWeanRecordMapper public int updateBasSheepWeaningInfo(ScWeanRecord scWeanRecord); /** - * 【新增】模糊查询耳号列表 (用于前端远程搜索) + * 模糊查询母羊耳号列表 + * * @param query 查询关键字 * @return 耳号列表 */ - public List searchEarNumbers(@Param("query") String query); + List searchEarNumbers(@Param("query") String query); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScDryMilkService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScDryMilkService.java index 5b3b4e7..b70ca40 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScDryMilkService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScDryMilkService.java @@ -66,4 +66,12 @@ public interface IScDryMilkService * 远程搜索技术员列表 */ public List selectTechnicianList(String query); + + /** + * 模糊查询母羊耳号列表 + * + * @param query 查询关键字 + * @return 耳号列表 + */ + public List searchEarNumbers(String query); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java index b0f6bfb..dc48433 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java @@ -82,4 +82,12 @@ public interface IScSheepDeathService * 远程搜索:处理人 */ public List selectDistinctHandler(String query); + + /** + * 模糊查询母羊耳号列表 + * + * @param query 查询关键字 + * @return 耳号列表 + */ + public List searchEarNumbers(String query); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScWeanRecordService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScWeanRecordService.java index ee113bb..e038f91 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScWeanRecordService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScWeanRecordService.java @@ -61,7 +61,8 @@ public interface IScWeanRecordService public Long selectSheepIdByEarNumber(String earNumber); /** - * 【新增】模糊查询耳号列表 + * 模糊查询母羊耳号列表 + * * @param query 查询关键字 * @return 耳号列表 */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScDryMilkServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScDryMilkServiceImpl.java index d699682..8b514aa 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScDryMilkServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScDryMilkServiceImpl.java @@ -104,4 +104,9 @@ public class ScDryMilkServiceImpl implements IScDryMilkService public List selectTechnicianList(String query) { return scDryMilkMapper.searchTechnicianList(query); } + + @Override + public List searchEarNumbers(String query) { + return scDryMilkMapper.searchEarNumbers(query); + } } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java index 1ae2435..b0fff0c 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java @@ -49,6 +49,10 @@ public class ScSheepDeathServiceImpl implements IScSheepDeathService { return scSheepDeathMapper.selectSheepFileByManageTags(manageTags); } + @Override + public List searchEarNumbers(String query) { + return scSheepDeathMapper.searchEarNumbers(query); + } @Override @Transactional diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScWeanRecordServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScWeanRecordServiceImpl.java index 7931efc..baf2eec 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScWeanRecordServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScWeanRecordServiceImpl.java @@ -114,11 +114,6 @@ public class ScWeanRecordServiceImpl implements IScWeanRecordService return scWeanRecordMapper.selectSheepIdByEarNumber(earNumber); } - /** - * 【新增】模糊查询耳号列表 (用于前端远程搜索) - * @param query 查询关键字 - * @return 耳号列表 - */ @Override public List searchEarNumbers(String query) { return scWeanRecordMapper.searchEarNumbers(query); diff --git a/zhyc-module/src/main/resources/mapper/produce/breed/ScDryMilkMapper.xml b/zhyc-module/src/main/resources/mapper/produce/breed/ScDryMilkMapper.xml index 8b0f903..564f6cd 100644 --- a/zhyc-module/src/main/resources/mapper/produce/breed/ScDryMilkMapper.xml +++ b/zhyc-module/src/main/resources/mapper/produce/breed/ScDryMilkMapper.xml @@ -33,6 +33,16 @@ \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/produce/breed/ScSheepDeathMapper.xml b/zhyc-module/src/main/resources/mapper/produce/breed/ScSheepDeathMapper.xml index b5ba0c9..49f390f 100644 --- a/zhyc-module/src/main/resources/mapper/produce/breed/ScSheepDeathMapper.xml +++ b/zhyc-module/src/main/resources/mapper/produce/breed/ScSheepDeathMapper.xml @@ -39,15 +39,52 @@ select d.id, d.sheep_id, d.manage_tags, d.event_type, d.death_date, d.disease_type_id, d.disease_subtype_id, d.disposal_direction, d.technician, d.handler, d.work_group, d.create_by, d.create_time, d.comment, d.update_by, d.update_time, d.is_delete, - s.variety, s.name as sheep_type_name, s.gender, s.day_age, s.parity, s.sheepfold_name, - s.breed as breed_status, s.post_lambing_day, s.lactation_day, s.gestation_day + + /* --- 关联数据获取 --- */ + /* 1. 品种名称 (假设品种表是 bas_variety) */ + (SELECT variety FROM bas_sheep_variety WHERE id = s.variety_id) as variety, + + /* 2. 羊只类型名称 (从字典表获取) */ + (SELECT dict_label FROM sys_dict_data WHERE dict_type = 'sys_sheep_type' AND dict_value = s.type_id) as sheep_type_name, + + /* 3. 性别直接获取 */ + s.gender, + + /* 4. 计算日龄 (当前日期 - 出生日期) */ + DATEDIFF(NOW(), s.birthday) as day_age, + + /* 5. 胎次 */ + s.parity, + + /* 6. 羊舍名称 (假设羊舍表是 bas_sheepfold) */ + (SELECT sheepfold_name FROM da_sheepfold WHERE id = s.sheepfold_id) as sheepfold_name, + + /* 7. 繁育状态 (从字典表获取) */ + (SELECT breed FROM bas_breed_status WHERE id = s.status_id) as breed, + + /* 8. 其他数值字段 */ + s.post_lambing_day, + s.lactation_day, + s.gestation_day + from sc_sheep_death d - left join sheep_file s on d.manage_tags = s.bs_manage_tags + /* 关键修改:直接关联 bas_sheep 表,而不是视图 */ + /* 同时只通过 manage_tags 关联,忽略 status_id 的限制 */ + left join bas_sheep s on d.manage_tags = s.manage_tags AND s.is_delete = 0 - + SELECT DISTINCT sf.bs_manage_tags + FROM sheep_file sf + WHERE sf.bs_manage_tags LIKE CONCAT(#{query}, '%') + AND sf.is_delete = 0 + ORDER BY sf.bs_manage_tags + LIMIT 50