From 347364ecd67809a677e2d4ed1d2b2cf5555824c0 Mon Sep 17 00:00:00 2001
From: piaobo <1913856125@qq.com>
Date: Fri, 11 Jul 2025 16:40:46 +0800
Subject: [PATCH 1/9] =?UTF-8?q?=E8=8D=AF=E5=93=81=E4=BF=A1=E6=81=AF=20lomb?=
=?UTF-8?q?ok=E4=BE=9D=E8=B5=96=20=E4=BD=BF=E7=94=A8@Data=E6=B3=A8?=
=?UTF-8?q?=E8=A7=A3=E7=9C=81=E7=95=A5getset=E6=96=B9=E6=B3=95=E4=B9=A6?=
=?UTF-8?q?=E5=86=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 --
zhyc-module/pom.xml | 4 +
.../controller/SwMedicTypeController.java | 105 ++++++++++++++++++
.../controller/SwMedicineController.java | 105 ++++++++++++++++++
.../controller/SwUsageController.java | 105 ++++++++++++++++++
.../module/biosafety/domain/SwMedicType.java | 52 +++++++++
.../module/biosafety/domain/SwMedicine.java | 45 ++++++++
.../zhyc/module/biosafety/domain/SwUsage.java | 37 ++++++
.../biosafety/mapper/SwMedicTypeMapper.java | 62 +++++++++++
.../biosafety/mapper/SwMedicineMapper.java | 61 ++++++++++
.../biosafety/mapper/SwUsageMapper.java | 61 ++++++++++
.../service/ISwMedicTypeService.java | 62 +++++++++++
.../biosafety/service/ISwMedicineService.java | 62 +++++++++++
.../biosafety/service/ISwUsageService.java | 61 ++++++++++
.../service/impl/SwMedicTypeServiceImpl.java | 94 ++++++++++++++++
.../service/impl/SwMedicineServiceImpl.java | 94 ++++++++++++++++
.../service/impl/SwUsageServiceImpl.java | 94 ++++++++++++++++
.../SwDiseaseMapper.xml | 0
.../mapper/biosafety/SwMedicTypeMapper.xml | 56 ++++++++++
.../mapper/biosafety/SwMedicineMapper.xml | 76 +++++++++++++
.../mapper/biosafety/SwUsageMapper.xml | 56 ++++++++++
21 files changed, 1292 insertions(+), 7 deletions(-)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicTypeController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUsageController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicType.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicine.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUsage.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicTypeMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUsageMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicTypeService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUsageService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicTypeServiceImpl.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineServiceImpl.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUsageServiceImpl.java
rename zhyc-module/src/main/resources/mapper/{disease => biosafety}/SwDiseaseMapper.xml (100%)
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwMedicTypeMapper.xml
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwMedicineMapper.xml
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwUsageMapper.xml
diff --git a/pom.xml b/pom.xml
index 90f91a3..46faae5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,13 +175,6 @@
jjwt
${jwt.version}
-
-
- org.springframework.boot
- spring-boot-devtools
- 3.4.0
- true
-
diff --git a/zhyc-module/pom.xml b/zhyc-module/pom.xml
index a7beefd..a0b435f 100644
--- a/zhyc-module/pom.xml
+++ b/zhyc-module/pom.xml
@@ -17,6 +17,10 @@
zhyc
zhyc-common
+
+ org.projectlombok
+ lombok
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicTypeController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicTypeController.java
new file mode 100644
index 0000000..0a4f67b
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicTypeController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.domain.SwMedicType;
+import com.zhyc.module.biosafety.service.ISwMedicTypeService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 药品类型Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/biosafety/type")
+public class SwMedicTypeController extends BaseController
+{
+ @Autowired
+ private ISwMedicTypeService swMedicTypeService;
+
+ /**
+ * 查询药品类型列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwMedicType swMedicType)
+ {
+ startPage();
+ List list = swMedicTypeService.selectSwMedicTypeList(swMedicType);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出药品类型列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:export')")
+ @Log(title = "药品类型", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwMedicType swMedicType)
+ {
+ List list = swMedicTypeService.selectSwMedicTypeList(swMedicType);
+ ExcelUtil util = new ExcelUtil(SwMedicType.class);
+ util.exportExcel(response, list, "药品类型数据");
+ }
+
+ /**
+ * 获取药品类型详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swMedicTypeService.selectSwMedicTypeById(id));
+ }
+
+ /**
+ * 新增药品类型
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:add')")
+ @Log(title = "药品类型", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwMedicType swMedicType)
+ {
+ return toAjax(swMedicTypeService.insertSwMedicType(swMedicType));
+ }
+
+ /**
+ * 修改药品类型
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:edit')")
+ @Log(title = "药品类型", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwMedicType swMedicType)
+ {
+ return toAjax(swMedicTypeService.updateSwMedicType(swMedicType));
+ }
+
+ /**
+ * 删除药品类型
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:type:remove')")
+ @Log(title = "药品类型", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swMedicTypeService.deleteSwMedicTypeByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineController.java
new file mode 100644
index 0000000..c6cbc0f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.domain.SwMedicine;
+import com.zhyc.module.biosafety.service.ISwMedicineService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 药品Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/system/medicine")
+public class SwMedicineController extends BaseController
+{
+ @Autowired
+ private ISwMedicineService swMedicineService;
+
+ /**
+ * 查询药品列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwMedicine swMedicine)
+ {
+ startPage();
+ List list = swMedicineService.selectSwMedicineList(swMedicine);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出药品列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:export')")
+ @Log(title = "药品", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwMedicine swMedicine)
+ {
+ List list = swMedicineService.selectSwMedicineList(swMedicine);
+ ExcelUtil util = new ExcelUtil(SwMedicine.class);
+ util.exportExcel(response, list, "药品数据");
+ }
+
+ /**
+ * 获取药品详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swMedicineService.selectSwMedicineById(id));
+ }
+
+ /**
+ * 新增药品
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:add')")
+ @Log(title = "药品", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwMedicine swMedicine)
+ {
+ return toAjax(swMedicineService.insertSwMedicine(swMedicine));
+ }
+
+ /**
+ * 修改药品
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:edit')")
+ @Log(title = "药品", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwMedicine swMedicine)
+ {
+ return toAjax(swMedicineService.updateSwMedicine(swMedicine));
+ }
+
+ /**
+ * 删除药品
+ */
+ @PreAuthorize("@ss.hasPermi('system:medicine:remove')")
+ @Log(title = "药品", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swMedicineService.deleteSwMedicineByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUsageController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUsageController.java
new file mode 100644
index 0000000..ea0c207
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUsageController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.domain.SwUsage;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.module.biosafety.service.ISwUsageService;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 药品使用方法Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/biosafety/usage")
+public class SwUsageController extends BaseController
+{
+ @Autowired
+ private ISwUsageService swUsageService;
+
+ /**
+ * 查询药品使用方法列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwUsage swUsage)
+ {
+ startPage();
+ List list = swUsageService.selectSwUsageList(swUsage);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出药品使用方法列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:export')")
+ @Log(title = "药品使用方法", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwUsage swUsage)
+ {
+ List list = swUsageService.selectSwUsageList(swUsage);
+ ExcelUtil util = new ExcelUtil(SwUsage.class);
+ util.exportExcel(response, list, "药品使用方法数据");
+ }
+
+ /**
+ * 获取药品使用方法详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swUsageService.selectSwUsageById(id));
+ }
+
+ /**
+ * 新增药品使用方法
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:add')")
+ @Log(title = "药品使用方法", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwUsage swUsage)
+ {
+ return toAjax(swUsageService.insertSwUsage(swUsage));
+ }
+
+ /**
+ * 修改药品使用方法
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:edit')")
+ @Log(title = "药品使用方法", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwUsage swUsage)
+ {
+ return toAjax(swUsageService.updateSwUsage(swUsage));
+ }
+
+ /**
+ * 删除药品使用方法
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usage:remove')")
+ @Log(title = "药品使用方法", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swUsageService.deleteSwUsageByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicType.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicType.java
new file mode 100644
index 0000000..7bfcc56
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicType.java
@@ -0,0 +1,52 @@
+package com.zhyc.module.biosafety.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品类型对象 sw_medic_type
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public class SwMedicType extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 编号 */
+ private Long id;
+
+ /** 药品类型 */
+ @Excel(name = "药品类型")
+ private String name;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("name", getName())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicine.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicine.java
new file mode 100644
index 0000000..8536c1b
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicine.java
@@ -0,0 +1,45 @@
+package com.zhyc.module.biosafety.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品对象 sw_medicine
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+
+@Data
+public class SwMedicine extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** */
+ private Long id;
+
+ /** 药品编号 */
+ @Excel(name = "药品编号")
+ private String medica;
+
+ /** 药品名称 */
+ @Excel(name = "药品名称")
+ private String name;
+
+ /** 药品类型 */
+ @Excel(name = "药品类型")
+ private Long medicType;
+
+ /** 使用方法 */
+ @Excel(name = "使用方法")
+ private Long usageId;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUsage.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUsage.java
new file mode 100644
index 0000000..91c065f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUsage.java
@@ -0,0 +1,37 @@
+package com.zhyc.module.biosafety.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品使用方法对象 sw_usage
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Data
+public class SwUsage extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 编号 */
+ private Long id;
+
+ /** 使用方法 */
+ @Excel(name = "使用方法")
+ private String name;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicTypeMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicTypeMapper.java
new file mode 100644
index 0000000..764c735
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicTypeMapper.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.biosafety.mapper;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicType;
+
+/**
+ * 药品类型Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface SwMedicTypeMapper
+{
+ /**
+ * 查询药品类型
+ *
+ * @param id 药品类型主键
+ * @return 药品类型
+ */
+ public SwMedicType selectSwMedicTypeById(Long id);
+
+ /**
+ * 查询药品类型列表
+ *
+ * @param swMedicType 药品类型
+ * @return 药品类型集合
+ */
+ public List selectSwMedicTypeList(SwMedicType swMedicType);
+
+ /**
+ * 新增药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ public int insertSwMedicType(SwMedicType swMedicType);
+
+ /**
+ * 修改药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ public int updateSwMedicType(SwMedicType swMedicType);
+
+ /**
+ * 删除药品类型
+ *
+ * @param id 药品类型主键
+ * @return 结果
+ */
+ public int deleteSwMedicTypeById(Long id);
+
+ /**
+ * 批量删除药品类型
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicTypeByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineMapper.java
new file mode 100644
index 0000000..fc44d44
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineMapper.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.biosafety.mapper;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwMedicine;
+
+/**
+ * 药品Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface SwMedicineMapper
+{
+ /**
+ * 查询药品
+ *
+ * @param id 药品主键
+ * @return 药品
+ */
+ public SwMedicine selectSwMedicineById(Long id);
+
+ /**
+ * 查询药品列表
+ *
+ * @param swMedicine 药品
+ * @return 药品集合
+ */
+ public List selectSwMedicineList(SwMedicine swMedicine);
+
+ /**
+ * 新增药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ public int insertSwMedicine(SwMedicine swMedicine);
+
+ /**
+ * 修改药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ public int updateSwMedicine(SwMedicine swMedicine);
+
+ /**
+ * 删除药品
+ *
+ * @param id 药品主键
+ * @return 结果
+ */
+ public int deleteSwMedicineById(Long id);
+
+ /**
+ * 批量删除药品
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicineByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUsageMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUsageMapper.java
new file mode 100644
index 0000000..cb0706d
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUsageMapper.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.biosafety.mapper;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwUsage;
+
+/**
+ * 药品使用方法Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface SwUsageMapper
+{
+ /**
+ * 查询药品使用方法
+ *
+ * @param id 药品使用方法主键
+ * @return 药品使用方法
+ */
+ public SwUsage selectSwUsageById(Long id);
+
+ /**
+ * 查询药品使用方法列表
+ *
+ * @param swUsage 药品使用方法
+ * @return 药品使用方法集合
+ */
+ public List selectSwUsageList(SwUsage swUsage);
+
+ /**
+ * 新增药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ public int insertSwUsage(SwUsage swUsage);
+
+ /**
+ * 修改药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ public int updateSwUsage(SwUsage swUsage);
+
+ /**
+ * 删除药品使用方法
+ *
+ * @param id 药品使用方法主键
+ * @return 结果
+ */
+ public int deleteSwUsageById(Long id);
+
+ /**
+ * 批量删除药品使用方法
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwUsageByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicTypeService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicTypeService.java
new file mode 100644
index 0000000..186af6c
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicTypeService.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicType;
+
+/**
+ * 药品类型Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ISwMedicTypeService
+{
+ /**
+ * 查询药品类型
+ *
+ * @param id 药品类型主键
+ * @return 药品类型
+ */
+ public SwMedicType selectSwMedicTypeById(Long id);
+
+ /**
+ * 查询药品类型列表
+ *
+ * @param swMedicType 药品类型
+ * @return 药品类型集合
+ */
+ public List selectSwMedicTypeList(SwMedicType swMedicType);
+
+ /**
+ * 新增药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ public int insertSwMedicType(SwMedicType swMedicType);
+
+ /**
+ * 修改药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ public int updateSwMedicType(SwMedicType swMedicType);
+
+ /**
+ * 批量删除药品类型
+ *
+ * @param ids 需要删除的药品类型主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicTypeByIds(Long[] ids);
+
+ /**
+ * 删除药品类型信息
+ *
+ * @param id 药品类型主键
+ * @return 结果
+ */
+ public int deleteSwMedicTypeById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineService.java
new file mode 100644
index 0000000..abc52b5
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineService.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicine;
+
+/**
+ * 药品Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ISwMedicineService
+{
+ /**
+ * 查询药品
+ *
+ * @param id 药品主键
+ * @return 药品
+ */
+ public SwMedicine selectSwMedicineById(Long id);
+
+ /**
+ * 查询药品列表
+ *
+ * @param swMedicine 药品
+ * @return 药品集合
+ */
+ public List selectSwMedicineList(SwMedicine swMedicine);
+
+ /**
+ * 新增药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ public int insertSwMedicine(SwMedicine swMedicine);
+
+ /**
+ * 修改药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ public int updateSwMedicine(SwMedicine swMedicine);
+
+ /**
+ * 批量删除药品
+ *
+ * @param ids 需要删除的药品主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicineByIds(Long[] ids);
+
+ /**
+ * 删除药品信息
+ *
+ * @param id 药品主键
+ * @return 结果
+ */
+ public int deleteSwMedicineById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUsageService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUsageService.java
new file mode 100644
index 0000000..e6d3152
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUsageService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwUsage;
+
+/**
+ * 药品使用方法Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ISwUsageService
+{
+ /**
+ * 查询药品使用方法
+ *
+ * @param id 药品使用方法主键
+ * @return 药品使用方法
+ */
+ public SwUsage selectSwUsageById(Long id);
+
+ /**
+ * 查询药品使用方法列表
+ *
+ * @param swUsage 药品使用方法
+ * @return 药品使用方法集合
+ */
+ public List selectSwUsageList(SwUsage swUsage);
+
+ /**
+ * 新增药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ public int insertSwUsage(SwUsage swUsage);
+
+ /**
+ * 修改药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ public int updateSwUsage(SwUsage swUsage);
+
+ /**
+ * 批量删除药品使用方法
+ *
+ * @param ids 需要删除的药品使用方法主键集合
+ * @return 结果
+ */
+ public int deleteSwUsageByIds(Long[] ids);
+
+ /**
+ * 删除药品使用方法信息
+ *
+ * @param id 药品使用方法主键
+ * @return 结果
+ */
+ public int deleteSwUsageById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicTypeServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicTypeServiceImpl.java
new file mode 100644
index 0000000..2e1b20a
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicTypeServiceImpl.java
@@ -0,0 +1,94 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicType;
+import com.zhyc.module.biosafety.mapper.SwMedicTypeMapper;
+import com.zhyc.module.biosafety.service.ISwMedicTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 药品类型Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class SwMedicTypeServiceImpl implements ISwMedicTypeService
+{
+ @Autowired
+ private SwMedicTypeMapper swMedicTypeMapper;
+
+ /**
+ * 查询药品类型
+ *
+ * @param id 药品类型主键
+ * @return 药品类型
+ */
+ @Override
+ public SwMedicType selectSwMedicTypeById(Long id)
+ {
+ return swMedicTypeMapper.selectSwMedicTypeById(id);
+ }
+
+ /**
+ * 查询药品类型列表
+ *
+ * @param swMedicType 药品类型
+ * @return 药品类型
+ */
+ @Override
+ public List selectSwMedicTypeList(SwMedicType swMedicType)
+ {
+ return swMedicTypeMapper.selectSwMedicTypeList(swMedicType);
+ }
+
+ /**
+ * 新增药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ @Override
+ public int insertSwMedicType(SwMedicType swMedicType)
+ {
+ return swMedicTypeMapper.insertSwMedicType(swMedicType);
+ }
+
+ /**
+ * 修改药品类型
+ *
+ * @param swMedicType 药品类型
+ * @return 结果
+ */
+ @Override
+ public int updateSwMedicType(SwMedicType swMedicType)
+ {
+ return swMedicTypeMapper.updateSwMedicType(swMedicType);
+ }
+
+ /**
+ * 批量删除药品类型
+ *
+ * @param ids 需要删除的药品类型主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwMedicTypeByIds(Long[] ids)
+ {
+ return swMedicTypeMapper.deleteSwMedicTypeByIds(ids);
+ }
+
+ /**
+ * 删除药品类型信息
+ *
+ * @param id 药品类型主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwMedicTypeById(Long id)
+ {
+ return swMedicTypeMapper.deleteSwMedicTypeById(id);
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineServiceImpl.java
new file mode 100644
index 0000000..78d9ba5
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineServiceImpl.java
@@ -0,0 +1,94 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicine;
+import com.zhyc.module.biosafety.mapper.SwMedicineMapper;
+import com.zhyc.module.biosafety.service.ISwMedicineService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 药品Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class SwMedicineServiceImpl implements ISwMedicineService
+{
+ @Autowired
+ private SwMedicineMapper swMedicineMapper;
+
+ /**
+ * 查询药品
+ *
+ * @param id 药品主键
+ * @return 药品
+ */
+ @Override
+ public SwMedicine selectSwMedicineById(Long id)
+ {
+ return swMedicineMapper.selectSwMedicineById(id);
+ }
+
+ /**
+ * 查询药品列表
+ *
+ * @param swMedicine 药品
+ * @return 药品
+ */
+ @Override
+ public List selectSwMedicineList(SwMedicine swMedicine)
+ {
+ return swMedicineMapper.selectSwMedicineList(swMedicine);
+ }
+
+ /**
+ * 新增药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ @Override
+ public int insertSwMedicine(SwMedicine swMedicine)
+ {
+ return swMedicineMapper.insertSwMedicine(swMedicine);
+ }
+
+ /**
+ * 修改药品
+ *
+ * @param swMedicine 药品
+ * @return 结果
+ */
+ @Override
+ public int updateSwMedicine(SwMedicine swMedicine)
+ {
+ return swMedicineMapper.updateSwMedicine(swMedicine);
+ }
+
+ /**
+ * 批量删除药品
+ *
+ * @param ids 需要删除的药品主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwMedicineByIds(Long[] ids)
+ {
+ return swMedicineMapper.deleteSwMedicineByIds(ids);
+ }
+
+ /**
+ * 删除药品信息
+ *
+ * @param id 药品主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwMedicineById(Long id)
+ {
+ return swMedicineMapper.deleteSwMedicineById(id);
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUsageServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUsageServiceImpl.java
new file mode 100644
index 0000000..203445b
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUsageServiceImpl.java
@@ -0,0 +1,94 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwUsage;
+import com.zhyc.module.biosafety.mapper.SwUsageMapper;
+import com.zhyc.module.biosafety.service.ISwUsageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 药品使用方法Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class SwUsageServiceImpl implements ISwUsageService
+{
+ @Autowired
+ private SwUsageMapper swUsageMapper;
+
+ /**
+ * 查询药品使用方法
+ *
+ * @param id 药品使用方法主键
+ * @return 药品使用方法
+ */
+ @Override
+ public SwUsage selectSwUsageById(Long id)
+ {
+ return swUsageMapper.selectSwUsageById(id);
+ }
+
+ /**
+ * 查询药品使用方法列表
+ *
+ * @param swUsage 药品使用方法
+ * @return 药品使用方法
+ */
+ @Override
+ public List selectSwUsageList(SwUsage swUsage)
+ {
+ return swUsageMapper.selectSwUsageList(swUsage);
+ }
+
+ /**
+ * 新增药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ @Override
+ public int insertSwUsage(SwUsage swUsage)
+ {
+ return swUsageMapper.insertSwUsage(swUsage);
+ }
+
+ /**
+ * 修改药品使用方法
+ *
+ * @param swUsage 药品使用方法
+ * @return 结果
+ */
+ @Override
+ public int updateSwUsage(SwUsage swUsage)
+ {
+ return swUsageMapper.updateSwUsage(swUsage);
+ }
+
+ /**
+ * 批量删除药品使用方法
+ *
+ * @param ids 需要删除的药品使用方法主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwUsageByIds(Long[] ids)
+ {
+ return swUsageMapper.deleteSwUsageByIds(ids);
+ }
+
+ /**
+ * 删除药品使用方法信息
+ *
+ * @param id 药品使用方法主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwUsageById(Long id)
+ {
+ return swUsageMapper.deleteSwUsageById(id);
+ }
+}
diff --git a/zhyc-module/src/main/resources/mapper/disease/SwDiseaseMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwDiseaseMapper.xml
similarity index 100%
rename from zhyc-module/src/main/resources/mapper/disease/SwDiseaseMapper.xml
rename to zhyc-module/src/main/resources/mapper/biosafety/SwDiseaseMapper.xml
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwMedicTypeMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicTypeMapper.xml
new file mode 100644
index 0000000..11d29ac
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicTypeMapper.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+ select id, name from sw_medic_type
+
+
+
+
+
+
+
+ insert into sw_medic_type
+
+ name,
+
+
+ #{name},
+
+
+
+
+ update sw_medic_type
+
+ name = #{name},
+
+ where id = #{id}
+
+
+
+ delete from sw_medic_type where id = #{id}
+
+
+
+ delete from sw_medic_type where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineMapper.xml
new file mode 100644
index 0000000..663ff94
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineMapper.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, medica, name, medic_type, usage_id, comment from sw_medicine
+
+
+
+
+
+
+
+ insert into sw_medicine
+
+ medica,
+ name,
+ medic_type,
+ usage_id,
+ comment,
+
+
+ #{medica},
+ #{name},
+ #{medicType},
+ #{usageId},
+ #{comment},
+
+
+
+
+ update sw_medicine
+
+ medica = #{medica},
+ name = #{name},
+ medic_type = #{medicType},
+ usage_id = #{usageId},
+ comment = #{comment},
+
+ where id = #{id}
+
+
+
+ delete from sw_medicine where id = #{id}
+
+
+
+ delete from sw_medicine where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwUsageMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwUsageMapper.xml
new file mode 100644
index 0000000..ed4c37a
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwUsageMapper.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+ select id, name from sw_usage
+
+
+
+
+
+
+
+ insert into sw_usage
+
+ name,
+
+
+ #{name},
+
+
+
+
+ update sw_usage
+
+ name = #{name},
+
+ where id = #{id}
+
+
+
+ delete from sw_usage where id = #{id}
+
+
+
+ delete from sw_usage where id in
+
+ #{id}
+
+
+
\ No newline at end of file
From 60fd054e8bb04fd25137d2a0a8879c388f29b954 Mon Sep 17 00:00:00 2001
From: piaobo <1913856125@qq.com>
Date: Sat, 12 Jul 2025 12:15:25 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E5=A4=84=E6=96=B9=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 8 --
.../controller/SwPrescriptionController.java | 105 ++++++++++++++
.../controller/SwUnitController.java | 105 ++++++++++++++
.../module/biosafety/domain/SwPresDetail.java | 107 ++++++++++++++
.../biosafety/domain/SwPrescription.java | 131 +++++++++++++++++
.../zhyc/module/biosafety/domain/SwUnit.java | 29 ++++
.../mapper/SwPrescriptionMapper.java | 87 ++++++++++++
.../module/biosafety/mapper/SwUnitMapper.java | 62 ++++++++
.../service/ISwPrescriptionService.java | 61 ++++++++
.../biosafety/service/ISwUnitService.java | 62 ++++++++
.../impl/SwPrescriptionServiceImpl.java | 134 ++++++++++++++++++
.../service/impl/SwUnitServiceImpl.java | 95 +++++++++++++
.../mapper/biosafety/SwPrescriptionMapper.xml | 129 +++++++++++++++++
.../mapper/biosafety/SwUnitMapper.xml | 59 ++++++++
14 files changed, 1166 insertions(+), 8 deletions(-)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwPrescriptionController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUnitController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPresDetail.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPrescription.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUnit.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwPrescriptionMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUnitMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwPrescriptionService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUnitService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwPrescriptionServiceImpl.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUnitServiceImpl.java
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwPrescriptionMapper.xml
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwUnitMapper.xml
diff --git a/pom.xml b/pom.xml
index 90f91a3..b4f8e0f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,14 +175,6 @@
jjwt
${jwt.version}
-
-
- org.springframework.boot
- spring-boot-devtools
- 3.4.0
- true
-
-
pro.fessional
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwPrescriptionController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwPrescriptionController.java
new file mode 100644
index 0000000..44eed9b
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwPrescriptionController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.service.ISwPrescriptionService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.module.biosafety.domain.SwPrescription;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 处方Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/biosafety/prescription")
+public class SwPrescriptionController extends BaseController
+{
+ @Autowired
+ private ISwPrescriptionService swPrescriptionService;
+
+ /**
+ * 查询处方列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwPrescription swPrescription)
+ {
+ startPage();
+ List list = swPrescriptionService.selectSwPrescriptionList(swPrescription);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出处方列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:export')")
+ @Log(title = "处方", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwPrescription swPrescription)
+ {
+ List list = swPrescriptionService.selectSwPrescriptionList(swPrescription);
+ ExcelUtil util = new ExcelUtil(SwPrescription.class);
+ util.exportExcel(response, list, "处方数据");
+ }
+
+ /**
+ * 获取处方详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swPrescriptionService.selectSwPrescriptionById(id));
+ }
+
+ /**
+ * 新增处方
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:add')")
+ @Log(title = "处方", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwPrescription swPrescription)
+ {
+ return toAjax(swPrescriptionService.insertSwPrescription(swPrescription));
+ }
+
+ /**
+ * 修改处方
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:edit')")
+ @Log(title = "处方", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwPrescription swPrescription)
+ {
+ return toAjax(swPrescriptionService.updateSwPrescription(swPrescription));
+ }
+
+ /**
+ * 删除处方
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:prescription:remove')")
+ @Log(title = "处方", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swPrescriptionService.deleteSwPrescriptionByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUnitController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUnitController.java
new file mode 100644
index 0000000..db8dfe5
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwUnitController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.domain.SwUnit;
+import com.zhyc.module.biosafety.service.ISwUnitService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 药品单位Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/biosafety/unit")
+public class SwUnitController extends BaseController
+{
+ @Autowired
+ private ISwUnitService swUnitService;
+
+ /**
+ * 查询药品单位列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwUnit swUnit)
+ {
+ startPage();
+ List list = swUnitService.selectSwUnitList(swUnit);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出药品单位列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:export')")
+ @Log(title = "药品单位", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwUnit swUnit)
+ {
+ List list = swUnitService.selectSwUnitList(swUnit);
+ ExcelUtil util = new ExcelUtil(SwUnit.class);
+ util.exportExcel(response, list, "药品单位数据");
+ }
+
+ /**
+ * 获取药品单位详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swUnitService.selectSwUnitById(id));
+ }
+
+ /**
+ * 新增药品单位
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:add')")
+ @Log(title = "药品单位", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwUnit swUnit)
+ {
+ return toAjax(swUnitService.insertSwUnit(swUnit));
+ }
+
+ /**
+ * 修改药品单位
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:edit')")
+ @Log(title = "药品单位", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwUnit swUnit)
+ {
+ return toAjax(swUnitService.updateSwUnit(swUnit));
+ }
+
+ /**
+ * 删除药品单位
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:unit:remove')")
+ @Log(title = "药品单位", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swUnitService.deleteSwUnitByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPresDetail.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPresDetail.java
new file mode 100644
index 0000000..ba52c9e
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPresDetail.java
@@ -0,0 +1,107 @@
+package com.zhyc.module.biosafety.domain;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 处方详情对象 sw_pres_detail
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public class SwPresDetail extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 处方id */
+ private Long persId;
+
+ /** 药品id */
+ @Excel(name = "药品id")
+ private Integer mediId;
+
+ /** 用量 */
+ @Excel(name = "用量")
+ private BigDecimal dosage;
+
+ /** 单位 */
+ @Excel(name = "单位")
+ private Integer unitId;
+
+ /** 使用方法 */
+ @Excel(name = "使用方法")
+ private Integer usageId;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setPersId(Long persId)
+ {
+ this.persId = persId;
+ }
+
+ public Long getPersId()
+ {
+ return persId;
+ }
+ public void setMediId(Integer mediId)
+ {
+ this.mediId = mediId;
+ }
+
+ public Integer getMediId()
+ {
+ return mediId;
+ }
+ public void setDosage(BigDecimal dosage)
+ {
+ this.dosage = dosage;
+ }
+
+ public BigDecimal getDosage()
+ {
+ return dosage;
+ }
+ public void setUnitId(Integer unitId)
+ {
+ this.unitId = unitId;
+ }
+
+ public Integer getUnitId()
+ {
+ return unitId;
+ }
+ public void setUsageId(Integer usageId)
+ {
+ this.usageId = usageId;
+ }
+
+ public Integer getUsageId()
+ {
+ return usageId;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("persId", getPersId())
+ .append("mediId", getMediId())
+ .append("dosage", getDosage())
+ .append("unitId", getUnitId())
+ .append("usageId", getUsageId())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPrescription.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPrescription.java
new file mode 100644
index 0000000..9afe41d
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwPrescription.java
@@ -0,0 +1,131 @@
+package com.zhyc.module.biosafety.domain;
+
+import java.util.List;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 处方对象 sw_prescription
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public class SwPrescription extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 处方编号 */
+ @Excel(name = "处方编号")
+ private String no;
+
+ /** 处方名称 */
+ @Excel(name = "处方名称")
+ private String name;
+
+ /** 类型(免疫/保健/驱虫/消毒/疾病治疗) */
+ @Excel(name = "类型", readConverterExp = "免=疫/保健/驱虫/消毒/疾病治疗")
+ private Integer persType;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ /** 状态(0禁用1启用) */
+ @Excel(name = "状态(0禁用1启用)")
+ private Integer status;
+
+ /** 处方详情信息 */
+ private List swPresDetailList;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setNo(String no)
+ {
+ this.no = no;
+ }
+
+ public String getNo()
+ {
+ return no;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setPersType(Integer persType)
+ {
+ this.persType = persType;
+ }
+
+ public Integer getPersType()
+ {
+ return persType;
+ }
+
+ public void setComment(String comment)
+ {
+ this.comment = comment;
+ }
+
+ public String getComment()
+ {
+ return comment;
+ }
+
+ public void setStatus(Integer status)
+ {
+ this.status = status;
+ }
+
+ public Integer getStatus()
+ {
+ return status;
+ }
+
+ public List getSwPresDetailList()
+ {
+ return swPresDetailList;
+ }
+
+ public void setSwPresDetailList(List swPresDetailList)
+ {
+ this.swPresDetailList = swPresDetailList;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("no", getNo())
+ .append("name", getName())
+ .append("persType", getPersType())
+ .append("comment", getComment())
+ .append("status", getStatus())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("swPresDetailList", getSwPresDetailList())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUnit.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUnit.java
new file mode 100644
index 0000000..2942b49
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwUnit.java
@@ -0,0 +1,29 @@
+package com.zhyc.module.biosafety.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品单位对象 sw_unit
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Data
+public class SwUnit extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 编号 */
+ private Long id;
+
+ /** 单位 */
+ @Excel(name = "单位")
+ private String name;
+
+/* 国际单位*/
+ private String unit;
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwPrescriptionMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwPrescriptionMapper.java
new file mode 100644
index 0000000..ee1c462
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwPrescriptionMapper.java
@@ -0,0 +1,87 @@
+package com.zhyc.module.biosafety.mapper;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwPrescription;
+import com.zhyc.module.biosafety.domain.SwPresDetail;
+
+/**
+ * 处方Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface SwPrescriptionMapper
+{
+ /**
+ * 查询处方
+ *
+ * @param id 处方主键
+ * @return 处方
+ */
+ public SwPrescription selectSwPrescriptionById(Long id);
+
+ /**
+ * 查询处方列表
+ *
+ * @param swPrescription 处方
+ * @return 处方集合
+ */
+ public List selectSwPrescriptionList(SwPrescription swPrescription);
+
+ /**
+ * 新增处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ public int insertSwPrescription(SwPrescription swPrescription);
+
+ /**
+ * 修改处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ public int updateSwPrescription(SwPrescription swPrescription);
+
+ /**
+ * 删除处方
+ *
+ * @param id 处方主键
+ * @return 结果
+ */
+ public int deleteSwPrescriptionById(Long id);
+
+ /**
+ * 批量删除处方
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwPrescriptionByIds(Long[] ids);
+
+ /**
+ * 批量删除处方详情
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwPresDetailByPersIds(Long[] ids);
+
+ /**
+ * 批量新增处方详情
+ *
+ * @param swPresDetailList 处方详情列表
+ * @return 结果
+ */
+ public int batchSwPresDetail(List swPresDetailList);
+
+
+ /**
+ * 通过处方主键删除处方详情信息
+ *
+ * @param id 处方ID
+ * @return 结果
+ */
+ public int deleteSwPresDetailByPersId(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUnitMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUnitMapper.java
new file mode 100644
index 0000000..2d3cf64
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwUnitMapper.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.biosafety.mapper;
+
+import com.zhyc.module.biosafety.domain.SwUnit;
+
+import java.util.List;
+
+/**
+ * 药品单位Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface SwUnitMapper
+{
+ /**
+ * 查询药品单位
+ *
+ * @param id 药品单位主键
+ * @return 药品单位
+ */
+ public SwUnit selectSwUnitById(Long id);
+
+ /**
+ * 查询药品单位列表
+ *
+ * @param swUnit 药品单位
+ * @return 药品单位集合
+ */
+ public List selectSwUnitList(SwUnit swUnit);
+
+ /**
+ * 新增药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ public int insertSwUnit(SwUnit swUnit);
+
+ /**
+ * 修改药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ public int updateSwUnit(SwUnit swUnit);
+
+ /**
+ * 删除药品单位
+ *
+ * @param id 药品单位主键
+ * @return 结果
+ */
+ public int deleteSwUnitById(Long id);
+
+ /**
+ * 批量删除药品单位
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwUnitByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwPrescriptionService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwPrescriptionService.java
new file mode 100644
index 0000000..97c79fc
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwPrescriptionService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwPrescription;
+
+/**
+ * 处方Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ISwPrescriptionService
+{
+ /**
+ * 查询处方
+ *
+ * @param id 处方主键
+ * @return 处方
+ */
+ public SwPrescription selectSwPrescriptionById(Long id);
+
+ /**
+ * 查询处方列表
+ *
+ * @param swPrescription 处方
+ * @return 处方集合
+ */
+ public List selectSwPrescriptionList(SwPrescription swPrescription);
+
+ /**
+ * 新增处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ public int insertSwPrescription(SwPrescription swPrescription);
+
+ /**
+ * 修改处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ public int updateSwPrescription(SwPrescription swPrescription);
+
+ /**
+ * 批量删除处方
+ *
+ * @param ids 需要删除的处方主键集合
+ * @return 结果
+ */
+ public int deleteSwPrescriptionByIds(Long[] ids);
+
+ /**
+ * 删除处方信息
+ *
+ * @param id 处方主键
+ * @return 结果
+ */
+ public int deleteSwPrescriptionById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUnitService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUnitService.java
new file mode 100644
index 0000000..13ee078
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwUnitService.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwUnit;
+
+/**
+ * 药品单位Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ISwUnitService
+{
+ /**
+ * 查询药品单位
+ *
+ * @param id 药品单位主键
+ * @return 药品单位
+ */
+ public SwUnit selectSwUnitById(Long id);
+
+ /**
+ * 查询药品单位列表
+ *
+ * @param swUnit 药品单位
+ * @return 药品单位集合
+ */
+ public List selectSwUnitList(SwUnit swUnit);
+
+ /**
+ * 新增药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ public int insertSwUnit(SwUnit swUnit);
+
+ /**
+ * 修改药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ public int updateSwUnit(SwUnit swUnit);
+
+ /**
+ * 批量删除药品单位
+ *
+ * @param ids 需要删除的药品单位主键集合
+ * @return 结果
+ */
+ public int deleteSwUnitByIds(Long[] ids);
+
+ /**
+ * 删除药品单位信息
+ *
+ * @param id 药品单位主键
+ * @return 结果
+ */
+ public int deleteSwUnitById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwPrescriptionServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwPrescriptionServiceImpl.java
new file mode 100644
index 0000000..62058e8
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwPrescriptionServiceImpl.java
@@ -0,0 +1,134 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import com.zhyc.module.biosafety.domain.SwPresDetail;
+import com.zhyc.module.biosafety.domain.SwPrescription;
+import com.zhyc.module.biosafety.mapper.SwPrescriptionMapper;
+import com.zhyc.module.biosafety.service.ISwPrescriptionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import com.zhyc.common.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 处方Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class SwPrescriptionServiceImpl implements ISwPrescriptionService
+{
+ @Autowired
+ private SwPrescriptionMapper swPrescriptionMapper;
+
+ /**
+ * 查询处方
+ *
+ * @param id 处方主键
+ * @return 处方
+ */
+ @Override
+ public SwPrescription selectSwPrescriptionById(Long id)
+ {
+ return swPrescriptionMapper.selectSwPrescriptionById(id);
+ }
+
+ /**
+ * 查询处方列表
+ *
+ * @param swPrescription 处方
+ * @return 处方
+ */
+ @Override
+ public List selectSwPrescriptionList(SwPrescription swPrescription)
+ {
+ return swPrescriptionMapper.selectSwPrescriptionList(swPrescription);
+ }
+
+ /**
+ * 新增处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int insertSwPrescription(SwPrescription swPrescription)
+ {
+ swPrescription.setCreateTime(DateUtils.getNowDate());
+ int rows = swPrescriptionMapper.insertSwPrescription(swPrescription);
+ insertSwPresDetail(swPrescription);
+ return rows;
+ }
+
+ /**
+ * 修改处方
+ *
+ * @param swPrescription 处方
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int updateSwPrescription(SwPrescription swPrescription)
+ {
+ swPrescription.setUpdateTime(DateUtils.getNowDate());
+ swPrescriptionMapper.deleteSwPresDetailByPersId(swPrescription.getId());
+ insertSwPresDetail(swPrescription);
+ return swPrescriptionMapper.updateSwPrescription(swPrescription);
+ }
+
+ /**
+ * 批量删除处方
+ *
+ * @param ids 需要删除的处方主键
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int deleteSwPrescriptionByIds(Long[] ids)
+ {
+ swPrescriptionMapper.deleteSwPresDetailByPersIds(ids);
+ return swPrescriptionMapper.deleteSwPrescriptionByIds(ids);
+ }
+
+ /**
+ * 删除处方信息
+ *
+ * @param id 处方主键
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int deleteSwPrescriptionById(Long id)
+ {
+ swPrescriptionMapper.deleteSwPresDetailByPersId(id);
+ return swPrescriptionMapper.deleteSwPrescriptionById(id);
+ }
+
+ /**
+ * 新增处方详情信息
+ *
+ * @param swPrescription 处方对象
+ */
+ public void insertSwPresDetail(SwPrescription swPrescription)
+ {
+ List swPresDetailList = swPrescription.getSwPresDetailList();
+ Long id = swPrescription.getId();
+ if (StringUtils.isNotNull(swPresDetailList))
+ {
+ List list = new ArrayList();
+ for (SwPresDetail swPresDetail : swPresDetailList)
+ {
+ swPresDetail.setPersId(id);
+ list.add(swPresDetail);
+ }
+ if (list.size() > 0)
+ {
+ swPrescriptionMapper.batchSwPresDetail(list);
+ }
+ }
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUnitServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUnitServiceImpl.java
new file mode 100644
index 0000000..513c76d
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwUnitServiceImpl.java
@@ -0,0 +1,95 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwUnit;
+import com.zhyc.module.biosafety.mapper.SwUnitMapper;
+import com.zhyc.module.biosafety.service.ISwUnitService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 药品单位Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class SwUnitServiceImpl implements ISwUnitService
+{
+ @Autowired
+ private SwUnitMapper swUnitMapper;
+
+ /**
+ * 查询药品单位
+ *
+ * @param id 药品单位主键
+ * @return 药品单位
+ */
+ @Override
+ public SwUnit selectSwUnitById(Long id)
+ {
+ return swUnitMapper.selectSwUnitById(id);
+ }
+
+ /**
+ * 查询药品单位列表
+ *
+ * @param swUnit 药品单位
+ * @return 药品单位
+ */
+ @Override
+ public List selectSwUnitList(SwUnit swUnit)
+ {
+ return swUnitMapper.selectSwUnitList(swUnit);
+ }
+
+ /**
+ * 新增药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ @Override
+ public int insertSwUnit(SwUnit swUnit)
+ {
+ return swUnitMapper.insertSwUnit(swUnit);
+ }
+
+ /**
+ * 修改药品单位
+ *
+ * @param swUnit 药品单位
+ * @return 结果
+ */
+ @Override
+ public int updateSwUnit(SwUnit swUnit)
+ {
+ return swUnitMapper.updateSwUnit(swUnit);
+ }
+
+ /**
+ * 批量删除药品单位
+ *
+ * @param ids 需要删除的药品单位主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwUnitByIds(Long[] ids)
+ {
+ return swUnitMapper.deleteSwUnitByIds(ids);
+ }
+
+ /**
+ * 删除药品单位信息
+ *
+ * @param id 药品单位主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSwUnitById(Long id)
+ {
+ return swUnitMapper.deleteSwUnitById(id);
+ }
+}
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwPrescriptionMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwPrescriptionMapper.xml
new file mode 100644
index 0000000..1bc45df
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwPrescriptionMapper.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, no, name, pers_type, comment, status, update_by, update_time, create_by, create_time from sw_prescription
+
+
+
+
+
+
+
+
+
+ insert into sw_prescription
+
+ no,
+ name,
+ pers_type,
+ comment,
+ status,
+ update_by,
+ update_time,
+ create_by,
+ create_time,
+
+
+ #{no},
+ #{name},
+ #{persType},
+ #{comment},
+ #{status},
+ #{updateBy},
+ #{updateTime},
+ #{createBy},
+ #{createTime},
+
+
+
+
+ update sw_prescription
+
+ no = #{no},
+ name = #{name},
+ pers_type = #{persType},
+ comment = #{comment},
+ status = #{status},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from sw_prescription where id = #{id}
+
+
+
+ delete from sw_prescription where id in
+
+ #{id}
+
+
+
+
+ delete from sw_pres_detail where pers_id in
+
+ #{persId}
+
+
+
+
+ delete from sw_pres_detail where pers_id = #{persId}
+
+
+
+ insert into sw_pres_detail( id, pers_id, medi_id, dosage, unit_id, usage_id) values
+
+ ( #{item.id}, #{item.persId}, #{item.mediId}, #{item.dosage}, #{item.unitId}, #{item.usageId})
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwUnitMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwUnitMapper.xml
new file mode 100644
index 0000000..6943c33
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwUnitMapper.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+ select id, name,unit from sw_unit
+
+
+
+
+
+
+
+ insert into sw_unit
+
+ name,
+ unit,
+
+
+ #{name},
+ #{unit},
+
+
+
+
+ update sw_unit
+
+ name = #{name},
+ unit = #{unit},
+
+ where id = #{id}
+
+
+
+ delete from sw_unit where id = #{id}
+
+
+
+ delete from sw_unit where id in
+
+ #{id}
+
+
+
\ No newline at end of file
From ba73a6ef5f1f89a90e47de8b37e70894546e78fd Mon Sep 17 00:00:00 2001
From: piaobo <1913856125@qq.com>
Date: Sat, 12 Jul 2025 17:25:03 +0800
Subject: [PATCH 3/9] =?UTF-8?q?=E8=8D=AF=E5=93=81=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/SwMedicineUsageController.java | 105 ++++++++++++++
.../biosafety/domain/SwMedicineUsage.java | 86 +++++++++++
.../domain/SwMedicineUsageDetails.java | 55 +++++++
.../mapper/SwMedicineUsageMapper.java | 88 ++++++++++++
.../service/ISwMedicineUsageService.java | 61 ++++++++
.../impl/SwMedicineUsageServiceImpl.java | 134 ++++++++++++++++++
.../biosafety/SwMedicineUsageMapper.xml | 121 ++++++++++++++++
7 files changed, 650 insertions(+)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineUsageController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsage.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsageDetails.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineUsageMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineUsageService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineUsageServiceImpl.java
create mode 100644 zhyc-module/src/main/resources/mapper/biosafety/SwMedicineUsageMapper.xml
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineUsageController.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineUsageController.java
new file mode 100644
index 0000000..fef0f3f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/controller/SwMedicineUsageController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.biosafety.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.biosafety.domain.SwMedicineUsage;
+import com.zhyc.module.biosafety.service.ISwMedicineUsageService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 药品使用记录Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+@RestController
+@RequestMapping("/biosafety/usageInfo")
+public class SwMedicineUsageController extends BaseController
+{
+ @Autowired
+ private ISwMedicineUsageService swMedicineUsageService;
+
+ /**
+ * 查询药品使用记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SwMedicineUsage swMedicineUsage)
+ {
+ startPage();
+ List list = swMedicineUsageService.selectSwMedicineUsageList(swMedicineUsage);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出药品使用记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:export')")
+ @Log(title = "药品使用记录", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SwMedicineUsage swMedicineUsage)
+ {
+ List list = swMedicineUsageService.selectSwMedicineUsageList(swMedicineUsage);
+ ExcelUtil util = new ExcelUtil(SwMedicineUsage.class);
+ util.exportExcel(response, list, "药品使用记录数据");
+ }
+
+ /**
+ * 获取药品使用记录详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(swMedicineUsageService.selectSwMedicineUsageById(id));
+ }
+
+ /**
+ * 新增药品使用记录
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:add')")
+ @Log(title = "药品使用记录", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SwMedicineUsage swMedicineUsage)
+ {
+ return toAjax(swMedicineUsageService.insertSwMedicineUsage(swMedicineUsage));
+ }
+
+ /**
+ * 修改药品使用记录
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:edit')")
+ @Log(title = "药品使用记录", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SwMedicineUsage swMedicineUsage)
+ {
+ return toAjax(swMedicineUsageService.updateSwMedicineUsage(swMedicineUsage));
+ }
+
+ /**
+ * 删除药品使用记录
+ */
+ @PreAuthorize("@ss.hasPermi('biosafety:usageInfo:remove')")
+ @Log(title = "药品使用记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(swMedicineUsageService.deleteSwMedicineUsageByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsage.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsage.java
new file mode 100644
index 0000000..bc442d0
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsage.java
@@ -0,0 +1,86 @@
+package com.zhyc.module.biosafety.domain;
+
+import java.util.List;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品使用记录对象 sw_medicine_usage
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+public class SwMedicineUsage extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 使用名称 */
+ @Excel(name = "使用名称")
+ private String name;
+
+ /** 使用类型 */
+ @Excel(name = "使用类型")
+ private String useType;
+
+ /** 药品使用记录详情信息 */
+ private List swMedicineUsageDetailsList;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setUseType(String useType)
+ {
+ this.useType = useType;
+ }
+
+ public String getUseType()
+ {
+ return useType;
+ }
+
+ public List getSwMedicineUsageDetailsList()
+ {
+ return swMedicineUsageDetailsList;
+ }
+
+ public void setSwMedicineUsageDetailsList(List swMedicineUsageDetailsList)
+ {
+ this.swMedicineUsageDetailsList = swMedicineUsageDetailsList;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("name", getName())
+ .append("useType", getUseType())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("swMedicineUsageDetailsList", getSwMedicineUsageDetailsList())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsageDetails.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsageDetails.java
new file mode 100644
index 0000000..b3e24c6
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/domain/SwMedicineUsageDetails.java
@@ -0,0 +1,55 @@
+package com.zhyc.module.biosafety.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 药品使用记录详情对象 sw_medicine_usage_details
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+@Data
+public class SwMedicineUsageDetails extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 药品使用记录id */
+ @Excel(name = "药品使用记录id")
+ private Long mediUsage;
+
+ /** 药品id */
+ @Excel(name = "药品id")
+ private Long mediId;
+
+/** 药品名称*/
+ @Excel(name = "药品名称")
+ private String mediName;
+
+ /** 用量 */
+ @Excel(name = "用量")
+ private String dosage;
+
+ /** 单位 */
+ @Excel(name = "单位")
+ private String unit;
+
+ /** 使用方法 */
+ @Excel(name = "使用方法")
+ private String usageId;
+
+ /** 生产厂家 */
+ @Excel(name = "生产厂家")
+ private String manufacturer;
+
+ /** 生产批号 */
+ @Excel(name = "生产批号")
+ private String batchNumber;
+
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineUsageMapper.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineUsageMapper.java
new file mode 100644
index 0000000..a58cdb8
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/mapper/SwMedicineUsageMapper.java
@@ -0,0 +1,88 @@
+package com.zhyc.module.biosafety.mapper;
+
+import java.util.List;
+
+import com.zhyc.module.biosafety.domain.SwMedicineUsage;
+import com.zhyc.module.biosafety.domain.SwMedicineUsageDetails;
+
+/**
+ * 药品使用记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+public interface SwMedicineUsageMapper
+{
+ /**
+ * 查询药品使用记录
+ *
+ * @param id 药品使用记录主键
+ * @return 药品使用记录
+ */
+ public SwMedicineUsage selectSwMedicineUsageById(Long id);
+
+ /**
+ * 查询药品使用记录列表
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 药品使用记录集合
+ */
+ public List selectSwMedicineUsageList(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 新增药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ public int insertSwMedicineUsage(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 修改药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ public int updateSwMedicineUsage(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 删除药品使用记录
+ *
+ * @param id 药品使用记录主键
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageById(Long id);
+
+ /**
+ * 批量删除药品使用记录
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageByIds(Long[] ids);
+
+ /**
+ * 批量删除药品使用记录详情
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageDetailsByMediUsages(Long[] ids);
+
+ /**
+ * 批量新增药品使用记录详情
+ *
+ * @param swMedicineUsageDetailsList 药品使用记录详情列表
+ * @return 结果
+ */
+ public int batchSwMedicineUsageDetails(List swMedicineUsageDetailsList);
+
+
+ /**
+ * 通过药品使用记录主键删除药品使用记录详情信息
+ *
+ * @param id 药品使用记录ID
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageDetailsByMediUsage(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineUsageService.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineUsageService.java
new file mode 100644
index 0000000..d10ee3a
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/ISwMedicineUsageService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.biosafety.service;
+
+import java.util.List;
+import com.zhyc.module.biosafety.domain.SwMedicineUsage;
+
+/**
+ * 药品使用记录Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+public interface ISwMedicineUsageService
+{
+ /**
+ * 查询药品使用记录
+ *
+ * @param id 药品使用记录主键
+ * @return 药品使用记录
+ */
+ public SwMedicineUsage selectSwMedicineUsageById(Long id);
+
+ /**
+ * 查询药品使用记录列表
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 药品使用记录集合
+ */
+ public List selectSwMedicineUsageList(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 新增药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ public int insertSwMedicineUsage(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 修改药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ public int updateSwMedicineUsage(SwMedicineUsage swMedicineUsage);
+
+ /**
+ * 批量删除药品使用记录
+ *
+ * @param ids 需要删除的药品使用记录主键集合
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageByIds(Long[] ids);
+
+ /**
+ * 删除药品使用记录信息
+ *
+ * @param id 药品使用记录主键
+ * @return 结果
+ */
+ public int deleteSwMedicineUsageById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineUsageServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineUsageServiceImpl.java
new file mode 100644
index 0000000..684454e
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/biosafety/service/impl/SwMedicineUsageServiceImpl.java
@@ -0,0 +1,134 @@
+package com.zhyc.module.biosafety.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import com.zhyc.module.biosafety.service.ISwMedicineUsageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import com.zhyc.common.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import com.zhyc.module.biosafety.domain.SwMedicineUsageDetails;
+import com.zhyc.module.biosafety.mapper.SwMedicineUsageMapper;
+import com.zhyc.module.biosafety.domain.SwMedicineUsage;
+
+/**
+ * 药品使用记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-12
+ */
+@Service
+public class SwMedicineUsageServiceImpl implements ISwMedicineUsageService
+{
+ @Autowired
+ private SwMedicineUsageMapper swMedicineUsageMapper;
+
+ /**
+ * 查询药品使用记录
+ *
+ * @param id 药品使用记录主键
+ * @return 药品使用记录
+ */
+ @Override
+ public SwMedicineUsage selectSwMedicineUsageById(Long id)
+ {
+ return swMedicineUsageMapper.selectSwMedicineUsageById(id);
+ }
+
+ /**
+ * 查询药品使用记录列表
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 药品使用记录
+ */
+ @Override
+ public List selectSwMedicineUsageList(SwMedicineUsage swMedicineUsage)
+ {
+ return swMedicineUsageMapper.selectSwMedicineUsageList(swMedicineUsage);
+ }
+
+ /**
+ * 新增药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int insertSwMedicineUsage(SwMedicineUsage swMedicineUsage)
+ {
+ swMedicineUsage.setCreateTime(DateUtils.getNowDate());
+ int rows = swMedicineUsageMapper.insertSwMedicineUsage(swMedicineUsage);
+ insertSwMedicineUsageDetails(swMedicineUsage);
+ return rows;
+ }
+
+ /**
+ * 修改药品使用记录
+ *
+ * @param swMedicineUsage 药品使用记录
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int updateSwMedicineUsage(SwMedicineUsage swMedicineUsage)
+ {
+ swMedicineUsage.setUpdateTime(DateUtils.getNowDate());
+ swMedicineUsageMapper.deleteSwMedicineUsageDetailsByMediUsage(swMedicineUsage.getId());
+ insertSwMedicineUsageDetails(swMedicineUsage);
+ return swMedicineUsageMapper.updateSwMedicineUsage(swMedicineUsage);
+ }
+
+ /**
+ * 批量删除药品使用记录
+ *
+ * @param ids 需要删除的药品使用记录主键
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int deleteSwMedicineUsageByIds(Long[] ids)
+ {
+ swMedicineUsageMapper.deleteSwMedicineUsageDetailsByMediUsages(ids);
+ return swMedicineUsageMapper.deleteSwMedicineUsageByIds(ids);
+ }
+
+ /**
+ * 删除药品使用记录信息
+ *
+ * @param id 药品使用记录主键
+ * @return 结果
+ */
+ @Transactional
+ @Override
+ public int deleteSwMedicineUsageById(Long id)
+ {
+ swMedicineUsageMapper.deleteSwMedicineUsageDetailsByMediUsage(id);
+ return swMedicineUsageMapper.deleteSwMedicineUsageById(id);
+ }
+
+ /**
+ * 新增药品使用记录详情信息
+ *
+ * @param swMedicineUsage 药品使用记录对象
+ */
+ public void insertSwMedicineUsageDetails(SwMedicineUsage swMedicineUsage)
+ {
+ List swMedicineUsageDetailsList = swMedicineUsage.getSwMedicineUsageDetailsList();
+ Long id = swMedicineUsage.getId();
+ if (StringUtils.isNotNull(swMedicineUsageDetailsList))
+ {
+ List list = new ArrayList();
+ for (SwMedicineUsageDetails swMedicineUsageDetails : swMedicineUsageDetailsList)
+ {
+ swMedicineUsageDetails.setMediUsage(id);
+ list.add(swMedicineUsageDetails);
+ }
+ if (list.size() > 0)
+ {
+ swMedicineUsageMapper.batchSwMedicineUsageDetails(list);
+ }
+ }
+ }
+}
diff --git a/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineUsageMapper.xml b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineUsageMapper.xml
new file mode 100644
index 0000000..20ce9f6
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/biosafety/SwMedicineUsageMapper.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, name, use_type, update_by, update_time, create_by, create_time from sw_medicine_usage
+
+
+
+
+
+
+
+
+
+ insert into sw_medicine_usage
+
+ name,
+ use_type,
+ update_by,
+ update_time,
+ create_by,
+ create_time,
+
+
+ #{name},
+ #{useType},
+ #{updateBy},
+ #{updateTime},
+ #{createBy},
+ #{createTime},
+
+
+
+
+ update sw_medicine_usage
+
+ name = #{name},
+ use_type = #{useType},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from sw_medicine_usage where id = #{id}
+
+
+
+ delete from sw_medicine_usage where id in
+
+ #{id}
+
+
+
+
+ delete from sw_medicine_usage_details where medi_usage in
+
+ #{mediUsage}
+
+
+
+
+ delete from sw_medicine_usage_details where medi_usage = #{mediUsage}
+
+
+
+ insert into sw_medicine_usage_details( id, medi_usage, medi_id, dosage, unit, usageId, manufacturer, batch_number) values
+
+ ( #{item.id}, #{item.mediUsage}, #{item.mediId}, #{item.dosage}, #{item.unit}, #{item.usageId}, #{item.manufacturer}, #{item.batchNumber})
+
+
+
\ No newline at end of file
From 12c4e874a6673d5df76413a914de81476b750945 Mon Sep 17 00:00:00 2001
From: zyh <2066096076@qq.com>
Date: Sat, 12 Jul 2025 17:56:28 +0800
Subject: [PATCH 4/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BE=8A=E5=8F=AA?=
=?UTF-8?q?=EF=BC=8C=E8=BD=AC=E5=9C=BA=EF=BC=8C=E8=BD=AC=E7=BE=A4=EF=BC=8C?=
=?UTF-8?q?=E4=BF=AE=E8=B9=84=EF=BC=8C=E5=8E=BB=E5=8A=BF=E7=9A=84=E5=9F=BA?=
=?UTF-8?q?=E6=9C=AC=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/ScAddSheepController.java | 90 ++++++++
.../add_sheep/domain/ScAddSheep.java | 192 ++++++++++++++++++
.../add_sheep/mapper/ScAddSheepMapper.java | 15 ++
.../add_sheep/service/IScAddSheepService.java | 17 ++
.../service/impl/ScAddSheepServiceImpl.java | 67 ++++++
.../controller/ScTransGroupController.java | 105 ++++++++++
.../trans_group/domain/ScTransGroup.java | 144 +++++++++++++
.../mapper/ScTransGroupMapper.java | 61 ++++++
.../service/IScTransGroupService.java | 61 ++++++
.../service/impl/ScTransGroupServiceImpl.java | 96 +++++++++
.../ScTransitionInfoController.java | 104 ++++++++++
.../domain/ScTransitionInfo.java | 144 +++++++++++++
.../mapper/ScTransitionInfoMapper.java | 62 ++++++
.../service/IScTransitionInfoService.java | 62 ++++++
.../impl/ScTransitionInfoServiceImpl.java | 96 +++++++++
.../controller/ScCastrateController.java | 8 +-
.../other/castrate/domain/ScCastrate.java | 112 ++++++++++
.../castrate}/mapper/ScCastrateMapper.java | 5 +-
.../castrate}/service/IScCastrateService.java | 5 +-
.../service/impl/ScCastrateServiceImpl.java | 8 +-
.../controller/ScFixHoofController.java | 108 ++++++++++
.../fixHoof/domain/ScFixHoof.java} | 14 +-
.../other/fixHoof/mapper/ScFixHoofMapper.java | 61 ++++++
.../fixHoof/service/IScFixHoofService.java | 61 ++++++
.../service/impl/ScFixHoofServiceImpl.java | 95 +++++++++
.../mapper/DaSheepfoldMapper.java | 1 +
.../add_sheep/ScAddSheepMapper.xml | 71 +++++++
.../trans_group/ScTransGroupMapper.xml | 92 +++++++++
.../ScTransitionInfoMapper.xml | 91 +++++++++
.../{ => other/castrate}/ScCastrateMapper.xml | 59 +++---
.../produce/other/fixHoof/ScFixHoofMapper.xml | 78 +++++++
...ininforMapper.xml => ScAddSheepMapper.xml} | 0
32 files changed, 2143 insertions(+), 42 deletions(-)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/controller/ScAddSheepController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/domain/ScAddSheep.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/mapper/ScAddSheepMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/IScAddSheepService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/impl/ScAddSheepServiceImpl.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/controller/ScTransGroupController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/domain/ScTransGroup.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/mapper/ScTransGroupMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/IScTransGroupService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/impl/ScTransGroupServiceImpl.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/controller/ScTransitionInfoController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/domain/ScTransitionInfo.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/mapper/ScTransitionInfoMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/IScTransitionInfoService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/impl/ScTransitionInfoServiceImpl.java
rename zhyc-module/src/main/java/com/zhyc/module/produce/{ => other/castrate}/controller/ScCastrateController.java (93%)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/domain/ScCastrate.java
rename zhyc-module/src/main/java/com/zhyc/module/produce/{ => other/castrate}/mapper/ScCastrateMapper.java (90%)
rename zhyc-module/src/main/java/com/zhyc/module/produce/{ => other/castrate}/service/IScCastrateService.java (90%)
rename zhyc-module/src/main/java/com/zhyc/module/produce/{ => other/castrate}/service/impl/ScCastrateServiceImpl.java (87%)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/controller/ScFixHoofController.java
rename zhyc-module/src/main/java/com/zhyc/module/produce/{domain/ScCastrate.java => other/fixHoof/domain/ScFixHoof.java} (88%)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/mapper/ScFixHoofMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/IScFixHoofService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/impl/ScFixHoofServiceImpl.java
create mode 100644 zhyc-module/src/main/resources/mapper/produce/manage_sheep/add_sheep/ScAddSheepMapper.xml
create mode 100644 zhyc-module/src/main/resources/mapper/produce/manage_sheep/trans_group/ScTransGroupMapper.xml
create mode 100644 zhyc-module/src/main/resources/mapper/produce/manage_sheep/transition_info/ScTransitionInfoMapper.xml
rename zhyc-module/src/main/resources/mapper/produce/{ => other/castrate}/ScCastrateMapper.xml (63%)
create mode 100644 zhyc-module/src/main/resources/mapper/produce/other/fixHoof/ScFixHoofMapper.xml
rename zhyc-system/src/main/resources/mapper/system/{SysLogininforMapper.xml => ScAddSheepMapper.xml} (100%)
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/controller/ScAddSheepController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/controller/ScAddSheepController.java
new file mode 100644
index 0000000..d205ae0
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/controller/ScAddSheepController.java
@@ -0,0 +1,90 @@
+package com.zhyc.module.produce.manage_sheep.add_sheep.controller;
+
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.module.produce.manage_sheep.add_sheep.domain.ScAddSheep;
+import com.zhyc.module.produce.manage_sheep.add_sheep.service.IScAddSheepService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.zhyc.common.core.domain.AjaxResult.success;
+import static com.zhyc.common.utils.SecurityUtils.getUsername;
+
+@RestController
+@RequestMapping("produce/manage_sheep/add_sheep")
+public class ScAddSheepController {
+ @Autowired
+ private IScAddSheepService scAddSheepService;
+
+ //新增羊只验证
+ @PreAuthorize("@ss.hasPermi('produce:add_sheep:add')")
+ @Log(title = "新增", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult addSheep(@RequestBody ScAddSheep scAddSheep) {
+ if (scAddSheep.getSheepId() == null || scAddSheep.getSheepId().isEmpty()) {
+ return AjaxResult.error("羊只id不能为空");
+ }
+ if (scAddSheep.getSheepfold() == null || scAddSheep.getSheepfold() == 0) {
+ return AjaxResult.error("羊舍不能为空");
+ }
+ if (scAddSheep.getBornWeight() == null) {
+ return AjaxResult.error("出生体重不能为空");
+ }
+ if (scAddSheep.getBirthday() == null) {
+ return AjaxResult.error("出生日期不能为空");
+ }
+ if (scAddSheep.getGender() == null) {
+ return AjaxResult.error("性别不能为空");
+ }
+ if (scAddSheep.getVarietyId() == null) {
+ return AjaxResult.error("品种不能为空");
+ }
+
+ boolean success = scAddSheepService.insertScAddSheep(scAddSheep);
+ if (success) {
+ return success("新增成功");
+ } else {
+ return AjaxResult.error("新增失败");
+ }
+ }
+
+ //导出表单
+ @PostMapping("/exportForm")
+ @Log(title = "羊只信息", businessType = BusinessType.EXPORT)
+ public void exportForm(HttpServletResponse response, @RequestBody ScAddSheep scAddSheep) throws IOException {
+ ExcelUtil util = new ExcelUtil<>(ScAddSheep.class);
+ List list = new ArrayList<>();
+ list.add(scAddSheep);
+ util.exportExcel(response, list, "羊只信息");
+ }
+
+ //导入
+ @PostMapping("/importData")
+ @PreAuthorize("@ss.hasPermi('produce:add_sheep:import')")
+ @Log(title = "羊只信息", businessType = BusinessType.IMPORT)
+ public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+ ExcelUtil util = new ExcelUtil<>(ScAddSheep.class);
+ List list = util.importExcel(file.getInputStream());
+ String message = scAddSheepService.importSheep(list, updateSupport, getUsername());
+ return success(message);
+ }
+
+ @PostMapping("/importTemplate")
+ @PreAuthorize("@ss.hasPermi('produce:add_sheep:import')")
+ public void importTemplate(HttpServletResponse response) {
+ ExcelUtil util = new ExcelUtil<>(ScAddSheep.class);
+ util.importTemplateExcel(response, "羊只信息模板");
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/domain/ScAddSheep.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/domain/ScAddSheep.java
new file mode 100644
index 0000000..dd3f662
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/domain/ScAddSheep.java
@@ -0,0 +1,192 @@
+package com.zhyc.module.produce.manage_sheep.add_sheep.domain;
+
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class ScAddSheep extends BaseEntity {
+ /**
+ * 羊只
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+ private static final long serialVersionUID = 1L;
+ @Excel(name = "主键")
+ private Long id; // 如果数据库主键叫 id,就加这一行
+ /** 羊只ID */
+ @Excel(name = "羊只ID")
+ private String sheepId;
+
+ /** 羊舍编号 */
+ @Excel(name = "羊舍")
+ private Integer sheepfold;
+
+ /** 父号 */
+ @Excel(name = "父号")
+ private String father;
+
+ /** 母号 */
+ @Excel(name = "母号")
+ private String mother;
+
+ /** 出生体重 */
+ @Excel(name = "出生体重")
+ private BigDecimal bornWeight;
+
+ /** 出生日期 */
+ @Excel(name = "出生日期", dateFormat = "yyyy-MM-dd")
+ private Date birthday;
+
+ /** 性别 1公 0母 */
+ @Excel(name = "性别", readConverterExp = "1=公,0=母")
+ private Integer gender;
+
+ /** 胎次 */
+ @Excel(name = "胎次")
+ private Integer parity;
+
+ /** 品种编号 */
+ @Excel(name = "品种编号")
+ private Integer varietyId;
+
+ /** 入群日期 */
+ @Excel(name = "入群日期", dateFormat = "yyyy-MM-dd")
+ private Date joinDate;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ /** 技术员 */
+ @Excel(name = "技术员")
+ private String technician;
+
+ /* 以下字段不导出 */
+ private String createBy;
+ private Date createTime;
+
+ // Getters and Setters
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getSheepId() {
+ return sheepId;
+ }
+
+ public void setSheepId(String sheepId) {
+ this.sheepId = sheepId;
+ }
+
+ public Integer getSheepfold() {
+ return sheepfold;
+ }
+
+ public void setSheepfold(Integer sheepfold) {
+ this.sheepfold = sheepfold;
+ }
+
+ public String getFather() {
+ return father;
+ }
+
+ public void setFather(String father) {
+ this.father = father;
+ }
+
+ public String getMother() {
+ return mother;
+ }
+
+ public void setMother(String mother) {
+ this.mother = mother;
+ }
+
+ public BigDecimal getBornWeight() {
+ return bornWeight;
+ }
+
+ public void setBornWeight(BigDecimal bornWeight) {
+ this.bornWeight = bornWeight;
+ }
+
+ public Date getBirthday() {
+ return birthday;
+ }
+
+ public void setBirthday(Date birthday) {
+ this.birthday = birthday;
+ }
+
+ public Integer getGender() {
+ return gender;
+ }
+
+ public void setGender(Integer gender) {
+ this.gender = gender;
+ }
+
+ public Integer getParity() {
+ return parity;
+ }
+
+ public void setParity(Integer parity) {
+ this.parity = parity;
+ }
+
+ public Integer getVarietyId() {
+ return varietyId;
+ }
+
+ public void setVarietyId(Integer varietyId) {
+ this.varietyId = varietyId;
+ }
+
+ public Date getJoinDate() {
+ return joinDate;
+ }
+
+ public void setJoinDate(Date joinDate) {
+ this.joinDate = joinDate;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public String getTechnician() {
+ return technician;
+ }
+
+ public void setTechnician(String technician) {
+ this.technician = technician;
+ }
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+}
+
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/mapper/ScAddSheepMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/mapper/ScAddSheepMapper.java
new file mode 100644
index 0000000..877b8eb
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/mapper/ScAddSheepMapper.java
@@ -0,0 +1,15 @@
+package com.zhyc.module.produce.manage_sheep.add_sheep.mapper;
+
+import com.zhyc.module.produce.manage_sheep.add_sheep.domain.ScAddSheep;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ScAddSheepMapper {
+ int insert(ScAddSheep scAddSheep);
+ List selectScAddSheepList(ScAddSheep scAddSheep);
+ int updateScAddSheep(ScAddSheep scAddSheep);
+ int deleteScAddSheepByIds(Long[] ids);
+}
+
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/IScAddSheepService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/IScAddSheepService.java
new file mode 100644
index 0000000..8381335
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/IScAddSheepService.java
@@ -0,0 +1,17 @@
+package com.zhyc.module.produce.manage_sheep.add_sheep.service;
+
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.module.produce.manage_sheep.add_sheep.domain.ScAddSheep;
+
+import java.util.List;
+
+
+public interface IScAddSheepService {
+ boolean insertScAddSheep(ScAddSheep scAddSheep);
+
+ List selectScAddSheepList(ScAddSheep scAddSheep);
+ boolean updateScAddSheep(ScAddSheep scAddSheep);
+ boolean deleteScAddSheepByIds(Long[] ids);
+ String importSheep(List list, boolean updateSupport, String operName);
+}
+
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/impl/ScAddSheepServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/impl/ScAddSheepServiceImpl.java
new file mode 100644
index 0000000..6829169
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/add_sheep/service/impl/ScAddSheepServiceImpl.java
@@ -0,0 +1,67 @@
+package com.zhyc.module.produce.manage_sheep.add_sheep.service.impl;
+
+import com.zhyc.common.exception.ServiceException;
+import com.zhyc.common.utils.StringUtils;
+import com.zhyc.module.produce.manage_sheep.add_sheep.domain.ScAddSheep;
+import com.zhyc.module.produce.manage_sheep.add_sheep.mapper.ScAddSheepMapper;
+import com.zhyc.module.produce.manage_sheep.add_sheep.service.IScAddSheepService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ScAddSheepServiceImpl implements IScAddSheepService {
+ @Autowired
+ private ScAddSheepMapper scAddSheepMapper;
+
+ @Override
+ public boolean insertScAddSheep(ScAddSheep scAddSheep) {
+ return scAddSheepMapper.insert(scAddSheep) > 0;
+ }
+
+
+ @Override
+ public List selectScAddSheepList(ScAddSheep scAddSheep) {
+ return scAddSheepMapper.selectScAddSheepList(scAddSheep);
+ }
+
+ @Override
+ public boolean updateScAddSheep(ScAddSheep scAddSheep) {
+ return scAddSheepMapper.updateScAddSheep(scAddSheep) > 0;
+ }
+
+ @Override
+ public boolean deleteScAddSheepByIds(Long[] ids) {
+ return scAddSheepMapper.deleteScAddSheepByIds(ids) > 0;
+ }
+
+ @Override
+ public String importSheep(List list, boolean updateSupport, String operName) {
+ if (list == null || list.isEmpty()) {
+ throw new ServiceException("导入数据不能为空!");
+ }
+ int success = 0, failure = 0;
+ StringBuilder failureMsg = new StringBuilder();
+ for (ScAddSheep sheep : list) {
+ try {
+ if (StringUtils.isBlank(sheep.getSheepId())) {
+ failure++; failureMsg.append("
第").append(success + failure + 1).append("行:羊只ID不能为空"); continue;
+ }
+ if (updateSupport && sheep.getId() != null) {
+ sheep.setUpdateBy(operName);
+ updateScAddSheep(sheep);
+ } else {
+ sheep.setCreateBy(operName);
+ insertScAddSheep(sheep);
+ }
+ success++;
+ } catch (Exception e) {
+ failure++; failureMsg.append("
第").append(success + failure + 1).append("行:").append(e.getMessage());
+ }
+ }
+ if (failure > 0) throw new ServiceException("导入失败!共 " + failure + " 条:" + failureMsg);
+ return "导入成功!共 " + success + " 条";
+ }
+}
+
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/controller/ScTransGroupController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/controller/ScTransGroupController.java
new file mode 100644
index 0000000..fd89b5b
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/controller/ScTransGroupController.java
@@ -0,0 +1,105 @@
+package com.zhyc.module.produce.manage_sheep.trans_group.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.produce.manage_sheep.trans_group.domain.ScTransGroup;
+import com.zhyc.module.produce.manage_sheep.trans_group.service.IScTransGroupService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 转群记录Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@RestController
+@RequestMapping("produce/manage_sheep/trans_group")
+public class ScTransGroupController extends BaseController
+{
+ @Autowired
+ private IScTransGroupService scTransGroupService;
+
+ /**
+ * 查询转群记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ScTransGroup scTransGroup)
+ {
+ startPage();
+ List list = scTransGroupService.selectScTransGroupList(scTransGroup);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出转群记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:export')")
+ @Log(title = "转群记录", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ScTransGroup scTransGroup)
+ {
+ List list = scTransGroupService.selectScTransGroupList(scTransGroup);
+ ExcelUtil util = new ExcelUtil(ScTransGroup.class);
+ util.exportExcel(response, list, "转群记录数据");
+ }
+
+ /**
+ * 获取转群记录详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Integer id)
+ {
+ return success(scTransGroupService.selectScTransGroupById(id));
+ }
+
+ /**
+ * 新增转群记录
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:add')")
+ @Log(title = "转群记录", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ScTransGroup scTransGroup)
+ {
+ return toAjax(scTransGroupService.insertScTransGroup(scTransGroup));
+ }
+
+ /**
+ * 修改转群记录
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:edit')")
+ @Log(title = "转群记录", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ScTransGroup scTransGroup)
+ {
+ return toAjax(scTransGroupService.updateScTransGroup(scTransGroup));
+ }
+
+ /**
+ * 删除转群记录
+ */
+ @PreAuthorize("@ss.hasPermi('produce:trans_group:remove')")
+ @Log(title = "转群记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Integer[] ids)
+ {
+ return toAjax(scTransGroupService.deleteScTransGroupByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/domain/ScTransGroup.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/domain/ScTransGroup.java
new file mode 100644
index 0000000..e25278a
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/domain/ScTransGroup.java
@@ -0,0 +1,144 @@
+package com.zhyc.module.produce.manage_sheep.trans_group.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 转群记录对象 sc_trans_group
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public class ScTransGroup extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Integer id;
+
+ /** 羊只id */
+ @Excel(name = "羊只id")
+ private Integer sheepId;
+
+ /** 转入羊舍 */
+ @Excel(name = "转入羊舍")
+ private String foldTo;
+
+ /** 转出羊舍 */
+ @Excel(name = "转出羊舍")
+ private String foldFrom;
+
+ /** 转群原因 */
+ @Excel(name = "转群原因")
+ private String reason;
+
+ /** 技术员 */
+ @Excel(name = "技术员")
+ private String technician;
+
+ /** 状态 */
+ @Excel(name = "状态")
+ private Integer status;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setSheepId(Integer sheepId)
+ {
+ this.sheepId = sheepId;
+ }
+
+ public Integer getSheepId()
+ {
+ return sheepId;
+ }
+
+ public void setFoldTo(String foldTo)
+ {
+ this.foldTo = foldTo;
+ }
+
+ public String getFoldTo()
+ {
+ return foldTo;
+ }
+
+ public void setFoldFrom(String foldFrom)
+ {
+ this.foldFrom = foldFrom;
+ }
+
+ public String getFoldFrom()
+ {
+ return foldFrom;
+ }
+
+ public void setReason(String reason)
+ {
+ this.reason = reason;
+ }
+
+ public String getReason()
+ {
+ return reason;
+ }
+
+ public void setTechnician(String technician)
+ {
+ this.technician = technician;
+ }
+
+ public String getTechnician()
+ {
+ return technician;
+ }
+
+ public void setStatus(Integer status)
+ {
+ this.status = status;
+ }
+
+ public Integer getStatus()
+ {
+ return status;
+ }
+
+ public void setComment(String comment)
+ {
+ this.comment = comment;
+ }
+
+ public String getComment()
+ {
+ return comment;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("sheepId", getSheepId())
+ .append("foldTo", getFoldTo())
+ .append("foldFrom", getFoldFrom())
+ .append("reason", getReason())
+ .append("technician", getTechnician())
+ .append("status", getStatus())
+ .append("comment", getComment())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/mapper/ScTransGroupMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/mapper/ScTransGroupMapper.java
new file mode 100644
index 0000000..288f672
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/mapper/ScTransGroupMapper.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.produce.manage_sheep.trans_group.mapper;
+
+import java.util.List;
+import com.zhyc.module.produce.manage_sheep.trans_group.domain.ScTransGroup;
+
+/**
+ * 转群记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface ScTransGroupMapper
+{
+ /**
+ * 查询转群记录
+ *
+ * @param id 转群记录主键
+ * @return 转群记录
+ */
+ public ScTransGroup selectScTransGroupById(Integer id);
+
+ /**
+ * 查询转群记录列表
+ *
+ * @param scTransGroup 转群记录
+ * @return 转群记录集合
+ */
+ public List selectScTransGroupList(ScTransGroup scTransGroup);
+
+ /**
+ * 新增转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ public int insertScTransGroup(ScTransGroup scTransGroup);
+
+ /**
+ * 修改转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ public int updateScTransGroup(ScTransGroup scTransGroup);
+
+ /**
+ * 删除转群记录
+ *
+ * @param id 转群记录主键
+ * @return 结果
+ */
+ public int deleteScTransGroupById(Integer id);
+
+ /**
+ * 批量删除转群记录
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteScTransGroupByIds(Integer[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/IScTransGroupService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/IScTransGroupService.java
new file mode 100644
index 0000000..2e249f5
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/IScTransGroupService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.produce.manage_sheep.trans_group.service;
+
+import java.util.List;
+import com.zhyc.module.produce.manage_sheep.trans_group.domain.ScTransGroup;
+
+/**
+ * 转群记录Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface IScTransGroupService
+{
+ /**
+ * 查询转群记录
+ *
+ * @param id 转群记录主键
+ * @return 转群记录
+ */
+ public ScTransGroup selectScTransGroupById(Integer id);
+
+ /**
+ * 查询转群记录列表
+ *
+ * @param scTransGroup 转群记录
+ * @return 转群记录集合
+ */
+ public List selectScTransGroupList(ScTransGroup scTransGroup);
+
+ /**
+ * 新增转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ public int insertScTransGroup(ScTransGroup scTransGroup);
+
+ /**
+ * 修改转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ public int updateScTransGroup(ScTransGroup scTransGroup);
+
+ /**
+ * 批量删除转群记录
+ *
+ * @param ids 需要删除的转群记录主键集合
+ * @return 结果
+ */
+ public int deleteScTransGroupByIds(Integer[] ids);
+
+ /**
+ * 删除转群记录信息
+ *
+ * @param id 转群记录主键
+ * @return 结果
+ */
+ public int deleteScTransGroupById(Integer id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/impl/ScTransGroupServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/impl/ScTransGroupServiceImpl.java
new file mode 100644
index 0000000..f38d30c
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/trans_group/service/impl/ScTransGroupServiceImpl.java
@@ -0,0 +1,96 @@
+package com.zhyc.module.produce.manage_sheep.trans_group.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import com.zhyc.module.produce.manage_sheep.trans_group.domain.ScTransGroup;
+import com.zhyc.module.produce.manage_sheep.trans_group.mapper.ScTransGroupMapper;
+import com.zhyc.module.produce.manage_sheep.trans_group.service.IScTransGroupService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 转群记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@Service
+public class ScTransGroupServiceImpl implements IScTransGroupService
+{
+ @Autowired
+ private ScTransGroupMapper scTransGroupMapper;
+
+ /**
+ * 查询转群记录
+ *
+ * @param id 转群记录主键
+ * @return 转群记录
+ */
+ @Override
+ public ScTransGroup selectScTransGroupById(Integer id)
+ {
+ return scTransGroupMapper.selectScTransGroupById(id);
+ }
+
+ /**
+ * 查询转群记录列表
+ *
+ * @param scTransGroup 转群记录
+ * @return 转群记录
+ */
+ @Override
+ public List selectScTransGroupList(ScTransGroup scTransGroup)
+ {
+ return scTransGroupMapper.selectScTransGroupList(scTransGroup);
+ }
+
+ /**
+ * 新增转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ @Override
+ public int insertScTransGroup(ScTransGroup scTransGroup)
+ {
+ scTransGroup.setStatus(0);
+ scTransGroup.setCreateTime(DateUtils.getNowDate());
+ return scTransGroupMapper.insertScTransGroup(scTransGroup);
+ }
+
+ /**
+ * 修改转群记录
+ *
+ * @param scTransGroup 转群记录
+ * @return 结果
+ */
+ @Override
+ public int updateScTransGroup(ScTransGroup scTransGroup)
+ {
+ return scTransGroupMapper.updateScTransGroup(scTransGroup);
+ }
+
+ /**
+ * 批量删除转群记录
+ *
+ * @param ids 需要删除的转群记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScTransGroupByIds(Integer[] ids)
+ {
+ return scTransGroupMapper.deleteScTransGroupByIds(ids);
+ }
+
+ /**
+ * 删除转群记录信息
+ *
+ * @param id 转群记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScTransGroupById(Integer id)
+ {
+ return scTransGroupMapper.deleteScTransGroupById(id);
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/controller/ScTransitionInfoController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/controller/ScTransitionInfoController.java
new file mode 100644
index 0000000..0b438fd
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/controller/ScTransitionInfoController.java
@@ -0,0 +1,104 @@
+package com.zhyc.module.produce.manage_sheep.transition_info.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.module.produce.manage_sheep.transition_info.domain.ScTransitionInfo;
+import com.zhyc.module.produce.manage_sheep.transition_info.service.IScTransitionInfoService;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 转场Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@RestController
+@RequestMapping("produce/manage_sheep/transition_info")
+public class ScTransitionInfoController extends BaseController
+{
+ @Autowired
+ private IScTransitionInfoService scTransitionInfoService;
+
+ /**
+ * 查询转场列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ScTransitionInfo scTransitionInfo)
+ {
+ startPage();
+ List list = scTransitionInfoService.selectScTransitionInfoList(scTransitionInfo);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出转场列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:export')")
+ @Log(title = "转场", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ScTransitionInfo scTransitionInfo)
+ {
+ List list = scTransitionInfoService.selectScTransitionInfoList(scTransitionInfo);
+ ExcelUtil util = new ExcelUtil(ScTransitionInfo.class);
+ util.exportExcel(response, list, "转场数据");
+ }
+
+ /**
+ * 获取转场详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Integer id)
+ {
+ return success(scTransitionInfoService.selectScTransitionInfoById(id));
+ }
+
+ /**
+ * 新增转场
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:add')")
+ @Log(title = "转场", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ScTransitionInfo scTransitionInfo)
+ {
+ return toAjax(scTransitionInfoService.insertScTransitionInfo(scTransitionInfo));
+ }
+
+ /**
+ * 修改转场
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:edit')")
+ @Log(title = "转场", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ScTransitionInfo scTransitionInfo)
+ {
+ return toAjax(scTransitionInfoService.updateScTransitionInfo(scTransitionInfo));
+ }
+
+ /**
+ * 删除转场
+ */
+ @PreAuthorize("@ss.hasPermi('produce:transition_info:remove')")
+ @Log(title = "转场", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Integer[] ids)
+ {
+ return toAjax(scTransitionInfoService.deleteScTransitionInfoByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/domain/ScTransitionInfo.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/domain/ScTransitionInfo.java
new file mode 100644
index 0000000..1636a5f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/domain/ScTransitionInfo.java
@@ -0,0 +1,144 @@
+package com.zhyc.module.produce.manage_sheep.transition_info.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 转场对象 sc_transition_info
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public class ScTransitionInfo extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** */
+ private Integer id;
+
+ /** 羊只id */
+ @Excel(name = "羊只id")
+ private Integer sheepId;
+
+ /** 转入牧场 */
+ @Excel(name = "转入牧场")
+ private String transTo;
+
+ /** 当前牧场 */
+ @Excel(name = "当前牧场")
+ private String transFrom;
+
+ /** 转场类型 */
+ @Excel(name = "转场类型")
+ private Long transType;
+
+ /** 技术员 */
+ @Excel(name = "技术员")
+ private String technician;
+
+ /** 状态 */
+ @Excel(name = "状态")
+ private Integer status;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setSheepId(Integer sheepId)
+ {
+ this.sheepId = sheepId;
+ }
+
+ public Integer getSheepId()
+ {
+ return sheepId;
+ }
+
+ public void setTransTo(String transTo)
+ {
+ this.transTo = transTo;
+ }
+
+ public String getTransTo()
+ {
+ return transTo;
+ }
+
+ public void setTransFrom(String transFrom)
+ {
+ this.transFrom = transFrom;
+ }
+
+ public String getTransFrom()
+ {
+ return transFrom;
+ }
+
+ public void setTransType(Long transType)
+ {
+ this.transType = transType;
+ }
+
+ public Long getTransType()
+ {
+ return transType;
+ }
+
+ public void setTechnician(String technician)
+ {
+ this.technician = technician;
+ }
+
+ public String getTechnician()
+ {
+ return technician;
+ }
+
+ public void setStatus(Integer status)
+ {
+ this.status = status;
+ }
+
+ public Integer getStatus()
+ {
+ return status;
+ }
+
+ public void setComment(String comment)
+ {
+ this.comment = comment;
+ }
+
+ public String getComment()
+ {
+ return comment;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("sheepId", getSheepId())
+ .append("transTo", getTransTo())
+ .append("transFrom", getTransFrom())
+ .append("transType", getTransType())
+ .append("technician", getTechnician())
+ .append("status", getStatus())
+ .append("comment", getComment())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/mapper/ScTransitionInfoMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/mapper/ScTransitionInfoMapper.java
new file mode 100644
index 0000000..3e0c734
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/mapper/ScTransitionInfoMapper.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.produce.manage_sheep.transition_info.mapper;
+
+import java.util.List;
+
+import com.zhyc.module.produce.manage_sheep.transition_info.domain.ScTransitionInfo;
+
+/**
+ * 转场Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface ScTransitionInfoMapper
+{
+ /**
+ * 查询转场
+ *
+ * @param id 转场主键
+ * @return 转场
+ */
+ public ScTransitionInfo selectScTransitionInfoById(Integer id);
+
+ /**
+ * 查询转场列表
+ *
+ * @param scTransitionInfo 转场
+ * @return 转场集合
+ */
+ public List selectScTransitionInfoList(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 新增转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ public int insertScTransitionInfo(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 修改转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ public int updateScTransitionInfo(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 删除转场
+ *
+ * @param id 转场主键
+ * @return 结果
+ */
+ public int deleteScTransitionInfoById(Integer id);
+
+ /**
+ * 批量删除转场
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteScTransitionInfoByIds(Integer[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/IScTransitionInfoService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/IScTransitionInfoService.java
new file mode 100644
index 0000000..8c1dfd8
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/IScTransitionInfoService.java
@@ -0,0 +1,62 @@
+package com.zhyc.module.produce.manage_sheep.transition_info.service;
+
+import java.util.List;
+
+import com.zhyc.module.produce.manage_sheep.transition_info.domain.ScTransitionInfo;
+
+/**
+ * 转场Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface IScTransitionInfoService
+{
+ /**
+ * 查询转场
+ *
+ * @param id 转场主键
+ * @return 转场
+ */
+ public ScTransitionInfo selectScTransitionInfoById(Integer id);
+
+ /**
+ * 查询转场列表
+ *
+ * @param scTransitionInfo 转场
+ * @return 转场集合
+ */
+ public List selectScTransitionInfoList(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 新增转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ public int insertScTransitionInfo(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 修改转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ public int updateScTransitionInfo(ScTransitionInfo scTransitionInfo);
+
+ /**
+ * 批量删除转场
+ *
+ * @param ids 需要删除的转场主键集合
+ * @return 结果
+ */
+ public int deleteScTransitionInfoByIds(Integer[] ids);
+
+ /**
+ * 删除转场信息
+ *
+ * @param id 转场主键
+ * @return 结果
+ */
+ public int deleteScTransitionInfoById(Integer id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/impl/ScTransitionInfoServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/impl/ScTransitionInfoServiceImpl.java
new file mode 100644
index 0000000..25ed41d
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/transition_info/service/impl/ScTransitionInfoServiceImpl.java
@@ -0,0 +1,96 @@
+package com.zhyc.module.produce.manage_sheep.transition_info.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import com.zhyc.module.produce.manage_sheep.transition_info.domain.ScTransitionInfo;
+import com.zhyc.module.produce.manage_sheep.transition_info.mapper.ScTransitionInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zhyc.module.produce.manage_sheep.transition_info.service.IScTransitionInfoService;
+
+/**
+ * 转场Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@Service
+public class ScTransitionInfoServiceImpl implements IScTransitionInfoService
+{
+ @Autowired
+ private ScTransitionInfoMapper scTransitionInfoMapper;
+
+ /**
+ * 查询转场
+ *
+ * @param id 转场主键
+ * @return 转场
+ */
+ @Override
+ public ScTransitionInfo selectScTransitionInfoById(Integer id)
+ {
+ return scTransitionInfoMapper.selectScTransitionInfoById(id);
+ }
+
+ /**
+ * 查询转场列表
+ *
+ * @param scTransitionInfo 转场
+ * @return 转场
+ */
+ @Override
+ public List selectScTransitionInfoList(ScTransitionInfo scTransitionInfo)
+ {
+ return scTransitionInfoMapper.selectScTransitionInfoList(scTransitionInfo);
+ }
+
+ /**
+ * 新增转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ @Override
+ public int insertScTransitionInfo(ScTransitionInfo scTransitionInfo)
+ {
+ scTransitionInfo.setStatus(0);
+ scTransitionInfo.setCreateTime(DateUtils.getNowDate());
+ return scTransitionInfoMapper.insertScTransitionInfo(scTransitionInfo);
+ }
+
+ /**
+ * 修改转场
+ *
+ * @param scTransitionInfo 转场
+ * @return 结果
+ */
+ @Override
+ public int updateScTransitionInfo(ScTransitionInfo scTransitionInfo)
+ {
+ return scTransitionInfoMapper.updateScTransitionInfo(scTransitionInfo);
+ }
+
+ /**
+ * 批量删除转场
+ *
+ * @param ids 需要删除的转场主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScTransitionInfoByIds(Integer[] ids)
+ {
+ return scTransitionInfoMapper.deleteScTransitionInfoByIds(ids);
+ }
+
+ /**
+ * 删除转场信息
+ *
+ * @param id 转场主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScTransitionInfoById(Integer id)
+ {
+ return scTransitionInfoMapper.deleteScTransitionInfoById(id);
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/controller/ScCastrateController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/controller/ScCastrateController.java
similarity index 93%
rename from zhyc-module/src/main/java/com/zhyc/module/produce/controller/ScCastrateController.java
rename to zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/controller/ScCastrateController.java
index d14f446..7c4c28a 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/produce/controller/ScCastrateController.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/controller/ScCastrateController.java
@@ -1,10 +1,10 @@
-package com.zhyc.module.produce.controller;
+package com.zhyc.module.produce.other.castrate.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
-import com.zhyc.module.produce.domain.ScCastrate;
-import com.zhyc.module.produce.service.IScCastrateService;
+import com.zhyc.module.produce.other.castrate.domain.ScCastrate;
+import com.zhyc.module.produce.other.castrate.service.IScCastrateService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -29,7 +29,7 @@ import com.zhyc.common.core.page.TableDataInfo;
* @date 2025-07-09
*/
@RestController
-@RequestMapping("/produce/castrate")
+@RequestMapping("/produce/other/castrate")
public class ScCastrateController extends BaseController
{
@Autowired
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/domain/ScCastrate.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/domain/ScCastrate.java
new file mode 100644
index 0000000..280a1e3
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/domain/ScCastrate.java
@@ -0,0 +1,112 @@
+package com.zhyc.module.produce.other.castrate.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 去势对象 sc_castrate
+ *
+ * @author ruoyi
+ * @date 2025-07-09
+ */
+public class ScCastrate extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * $column.columnComment
+ */
+ private Long id;
+
+ /**
+ * 羊只id
+ */
+ @Excel(name = "羊只id")
+ private String sheepId;
+
+ /**
+ * 羊舍id
+ */
+ private Long sheepfold;
+
+ /**
+ * 用于通过羊舍id获取羊舍名称
+ */
+ @Excel(name = "羊舍名称")
+ private String sheepfoldName;
+
+ /**
+ * 备注
+ */
+ @Excel(name = "备注")
+ private String comment;
+
+ /**
+ * 技术员
+ */
+ @Excel(name = "技术员")
+ private String technician;
+
+
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setSheepId(String sheepId) {
+ this.sheepId = sheepId;
+ }
+
+ public String getSheepId() {
+ return sheepId;
+ }
+
+ public void setSheepfold(Long sheepfold) {
+ this.sheepfold = sheepfold;
+ }
+
+ public Long getSheepfold() {
+ return sheepfold;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setTechnician(String technician) {
+ this.technician = technician;
+ }
+
+ public String getTechnician() {
+ return technician;
+ }
+
+ public String getSheepfoldName() {
+ return sheepfoldName;
+ }
+ public void setSheepfoldName(String sheepfoldName) {
+ this.sheepfoldName = sheepfoldName;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("sheepId", getSheepId())
+ .append("sheepfold", getSheepfold())
+ .append("comment", getComment())
+ .append("technician", getTechnician())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/mapper/ScCastrateMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/mapper/ScCastrateMapper.java
similarity index 90%
rename from zhyc-module/src/main/java/com/zhyc/module/produce/mapper/ScCastrateMapper.java
rename to zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/mapper/ScCastrateMapper.java
index 16a27e7..057bafd 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/produce/mapper/ScCastrateMapper.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/mapper/ScCastrateMapper.java
@@ -1,7 +1,8 @@
-package com.zhyc.module.produce.mapper;
+package com.zhyc.module.produce.other.castrate.mapper;
import java.util.List;
-import com.zhyc.module.produce.domain.ScCastrate;
+
+import com.zhyc.module.produce.other.castrate.domain.ScCastrate;
/**
* 去势Mapper接口
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/service/IScCastrateService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/IScCastrateService.java
similarity index 90%
rename from zhyc-module/src/main/java/com/zhyc/module/produce/service/IScCastrateService.java
rename to zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/IScCastrateService.java
index 7abd510..e19f312 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/produce/service/IScCastrateService.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/IScCastrateService.java
@@ -1,7 +1,8 @@
-package com.zhyc.module.produce.service;
+package com.zhyc.module.produce.other.castrate.service;
import java.util.List;
-import com.zhyc.module.produce.domain.ScCastrate;
+
+import com.zhyc.module.produce.other.castrate.domain.ScCastrate;
/**
* 去势Service接口
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/service/impl/ScCastrateServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/impl/ScCastrateServiceImpl.java
similarity index 87%
rename from zhyc-module/src/main/java/com/zhyc/module/produce/service/impl/ScCastrateServiceImpl.java
rename to zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/impl/ScCastrateServiceImpl.java
index 5279d7d..bde1c4d 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/produce/service/impl/ScCastrateServiceImpl.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/castrate/service/impl/ScCastrateServiceImpl.java
@@ -1,10 +1,10 @@
-package com.zhyc.module.produce.service.impl;
+package com.zhyc.module.produce.other.castrate.service.impl;
import java.util.List;
import com.zhyc.common.utils.DateUtils;
-import com.zhyc.module.produce.domain.ScCastrate;
-import com.zhyc.module.produce.mapper.ScCastrateMapper;
-import com.zhyc.module.produce.service.IScCastrateService;
+import com.zhyc.module.produce.other.castrate.domain.ScCastrate;
+import com.zhyc.module.produce.other.castrate.mapper.ScCastrateMapper;
+import com.zhyc.module.produce.other.castrate.service.IScCastrateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/controller/ScFixHoofController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/controller/ScFixHoofController.java
new file mode 100644
index 0000000..3e9a227
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/controller/ScFixHoofController.java
@@ -0,0 +1,108 @@
+package com.zhyc.module.produce.other.fixHoof.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zhyc.module.produce.other.fixHoof.domain.ScFixHoof;
+import com.zhyc.module.produce.other.fixHoof.service.IScFixHoofService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 修蹄Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@RestController
+@RequestMapping("/produce/other/fixHoof")
+public class ScFixHoofController extends BaseController
+{
+ @Autowired
+ private IScFixHoofService scFixHoofService;
+
+ /**
+ * 查询修蹄列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ScFixHoof scFixHoof)
+ {
+ startPage();
+ List list = scFixHoofService.selectScFixHoofList(scFixHoof);
+ return getDataTable(list);
+
+ }
+
+ /**
+ * 导出修蹄列表
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:export')")
+ @Log(title = "修蹄", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ScFixHoof scFixHoof)
+ {
+ List list = scFixHoofService.selectScFixHoofList(scFixHoof);
+ ExcelUtil util = new ExcelUtil(ScFixHoof.class);
+ util.exportExcel(response, list, "修蹄数据");
+ }
+
+ /**
+ * 获取修蹄详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(scFixHoofService.selectScFixHoofById(id));
+ }
+
+ /**
+ * 新增修蹄
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:add')")
+ @Log(title = "修蹄", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ScFixHoof scFixHoof)
+ {
+ return toAjax(scFixHoofService.insertScFixHoof(scFixHoof));
+ }
+
+ /**
+ * 修改修蹄
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:edit')")
+ @Log(title = "修蹄", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ScFixHoof scFixHoof)
+ {
+ return toAjax(scFixHoofService.updateScFixHoof(scFixHoof));
+ }
+
+ /**
+ * 删除修蹄
+ */
+ @PreAuthorize("@ss.hasPermi('produce:fixHoof:remove')")
+ @Log(title = "修蹄", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(scFixHoofService.deleteScFixHoofByIds(ids));
+ }
+
+
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/domain/ScCastrate.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/domain/ScFixHoof.java
similarity index 88%
rename from zhyc-module/src/main/java/com/zhyc/module/produce/domain/ScCastrate.java
rename to zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/domain/ScFixHoof.java
index fae976c..a1d445c 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/produce/domain/ScCastrate.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/domain/ScFixHoof.java
@@ -1,4 +1,4 @@
-package com.zhyc.module.produce.domain;
+package com.zhyc.module.produce.other.fixHoof.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -6,12 +6,12 @@ import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;
/**
- * 去势对象 sc_castrate
+ * 修蹄对象 sc_fix_hoof
*
* @author ruoyi
- * @date 2025-07-09
+ * @date 2025-07-10
*/
-public class ScCastrate extends BaseEntity
+public class ScFixHoof extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -20,7 +20,7 @@ public class ScCastrate extends BaseEntity
/** 羊只id */
@Excel(name = "羊只id")
- private String sheepId;
+ private Long sheepId;
/** 羊舍id */
@Excel(name = "羊舍id")
@@ -44,12 +44,12 @@ public class ScCastrate extends BaseEntity
return id;
}
- public void setSheepId(String sheepId)
+ public void setSheepId(Long sheepId)
{
this.sheepId = sheepId;
}
- public String getSheepId()
+ public Long getSheepId()
{
return sheepId;
}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/mapper/ScFixHoofMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/mapper/ScFixHoofMapper.java
new file mode 100644
index 0000000..75e27ee
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/mapper/ScFixHoofMapper.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.produce.other.fixHoof.mapper;
+
+import java.util.List;
+import com.zhyc.module.produce.other.fixHoof.domain.ScFixHoof;
+
+/**
+ * 修蹄Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface ScFixHoofMapper
+{
+ /**
+ * 查询修蹄
+ *
+ * @param id 修蹄主键
+ * @return 修蹄
+ */
+ public ScFixHoof selectScFixHoofById(Long id);
+
+ /**
+ * 查询修蹄列表
+ *
+ * @param scFixHoof 修蹄
+ * @return 修蹄集合
+ */
+ public List selectScFixHoofList(ScFixHoof scFixHoof);
+
+ /**
+ * 新增修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ public int insertScFixHoof(ScFixHoof scFixHoof);
+
+ /**
+ * 修改修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ public int updateScFixHoof(ScFixHoof scFixHoof);
+
+ /**
+ * 删除修蹄
+ *
+ * @param id 修蹄主键
+ * @return 结果
+ */
+ public int deleteScFixHoofById(Long id);
+
+ /**
+ * 批量删除修蹄
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteScFixHoofByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/IScFixHoofService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/IScFixHoofService.java
new file mode 100644
index 0000000..8092f8f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/IScFixHoofService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.produce.other.fixHoof.service;
+
+import java.util.List;
+import com.zhyc.module.produce.other.fixHoof.domain.ScFixHoof;
+
+/**
+ * 修蹄Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+public interface IScFixHoofService
+{
+ /**
+ * 查询修蹄
+ *
+ * @param id 修蹄主键
+ * @return 修蹄
+ */
+ public ScFixHoof selectScFixHoofById(Long id);
+
+ /**
+ * 查询修蹄列表
+ *
+ * @param scFixHoof 修蹄
+ * @return 修蹄集合
+ */
+ public List selectScFixHoofList(ScFixHoof scFixHoof);
+
+ /**
+ * 新增修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ public int insertScFixHoof(ScFixHoof scFixHoof);
+
+ /**
+ * 修改修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ public int updateScFixHoof(ScFixHoof scFixHoof);
+
+ /**
+ * 批量删除修蹄
+ *
+ * @param ids 需要删除的修蹄主键集合
+ * @return 结果
+ */
+ public int deleteScFixHoofByIds(Long[] ids);
+
+ /**
+ * 删除修蹄信息
+ *
+ * @param id 修蹄主键
+ * @return 结果
+ */
+ public int deleteScFixHoofById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/impl/ScFixHoofServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/impl/ScFixHoofServiceImpl.java
new file mode 100644
index 0000000..68a68ff
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/other/fixHoof/service/impl/ScFixHoofServiceImpl.java
@@ -0,0 +1,95 @@
+package com.zhyc.module.produce.other.fixHoof.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import com.zhyc.module.produce.other.fixHoof.domain.ScFixHoof;
+import com.zhyc.module.produce.other.fixHoof.mapper.ScFixHoofMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zhyc.module.produce.other.fixHoof.service.IScFixHoofService;
+
+/**
+ * 修蹄Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-10
+ */
+@Service
+public class ScFixHoofServiceImpl implements IScFixHoofService
+{
+ @Autowired
+ private ScFixHoofMapper scFixHoofMapper;
+
+ /**
+ * 查询修蹄
+ *
+ * @param id 修蹄主键
+ * @return 修蹄
+ */
+ @Override
+ public ScFixHoof selectScFixHoofById(Long id)
+ {
+ return scFixHoofMapper.selectScFixHoofById(id);
+ }
+
+ /**
+ * 查询修蹄列表
+ *
+ * @param scFixHoof 修蹄
+ * @return 修蹄
+ */
+ @Override
+ public List selectScFixHoofList(ScFixHoof scFixHoof)
+ {
+ return scFixHoofMapper.selectScFixHoofList(scFixHoof);
+ }
+
+ /**
+ * 新增修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ @Override
+ public int insertScFixHoof(ScFixHoof scFixHoof)
+ {
+ scFixHoof.setCreateTime(DateUtils.getNowDate());
+ return scFixHoofMapper.insertScFixHoof(scFixHoof);
+ }
+
+ /**
+ * 修改修蹄
+ *
+ * @param scFixHoof 修蹄
+ * @return 结果
+ */
+ @Override
+ public int updateScFixHoof(ScFixHoof scFixHoof)
+ {
+ return scFixHoofMapper.updateScFixHoof(scFixHoof);
+ }
+
+ /**
+ * 批量删除修蹄
+ *
+ * @param ids 需要删除的修蹄主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScFixHoofByIds(Long[] ids)
+ {
+ return scFixHoofMapper.deleteScFixHoofByIds(ids);
+ }
+
+ /**
+ * 删除修蹄信息
+ *
+ * @param id 修蹄主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScFixHoofById(Long id)
+ {
+ return scFixHoofMapper.deleteScFixHoofById(id);
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheepfold_management/mapper/DaSheepfoldMapper.java b/zhyc-module/src/main/java/com/zhyc/module/sheepfold_management/mapper/DaSheepfoldMapper.java
index f89504a..0a82b50 100644
--- a/zhyc-module/src/main/java/com/zhyc/module/sheepfold_management/mapper/DaSheepfoldMapper.java
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheepfold_management/mapper/DaSheepfoldMapper.java
@@ -58,4 +58,5 @@ public interface DaSheepfoldMapper
* @return 结果
*/
public int deleteDaSheepfoldByIds(Long[] ids);
+
}
diff --git a/zhyc-module/src/main/resources/mapper/produce/manage_sheep/add_sheep/ScAddSheepMapper.xml b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/add_sheep/ScAddSheepMapper.xml
new file mode 100644
index 0000000..d234d5c
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/add_sheep/ScAddSheepMapper.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO sc_add_sheep
+ (sheep_id, sheepfold, father, mother, born_weight, birthday, gender, parity,
+ variety_id, join_date, comment, technician, create_by, create_time)
+ VALUES
+ (#{sheepId}, #{sheepfold}, #{father}, #{mother}, #{bornWeight}, #{birthday},
+ #{gender}, #{parity}, #{varietyId}, #{joinDate}, #{comment}, #{technician},
+ #{createBy}, #{createTime})
+
+
+
+
+
+ UPDATE sc_add_sheep
+
+ sheep_id = #{sheepId},
+ sheepfold = #{sheepfold},
+ father = #{father},
+ mother = #{mother},
+ born_weight = #{bornWeight},
+ birthday = #{birthday},
+ gender = #{gender},
+ parity = #{parity},
+ variety_id = #{varietyId},
+ join_date = #{joinDate},
+ comment = #{comment},
+ technician = #{technician},
+ update_by = #{updateBy},
+ update_time = NOW()
+
+ WHERE id = #{id}
+
+
+
+ DELETE FROM sc_add_sheep WHERE id IN
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/produce/manage_sheep/trans_group/ScTransGroupMapper.xml b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/trans_group/ScTransGroupMapper.xml
new file mode 100644
index 0000000..20046c2
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/trans_group/ScTransGroupMapper.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, sheep_id, fold_to, fold_from, reason, technician, status, comment, create_by, create_time from sc_trans_group
+
+
+
+
+
+
+
+ insert into sc_trans_group
+
+ sheep_id,
+ fold_to,
+ fold_from,
+ reason,
+ technician,
+ status,
+ comment,
+ create_by,
+ create_time,
+
+
+ #{sheepId},
+ #{foldTo},
+ #{foldFrom},
+ #{reason},
+ #{technician},
+ #{status},
+ #{comment},
+ #{createBy},
+ #{createTime},
+
+
+
+
+ update sc_trans_group
+
+ sheep_id = #{sheepId},
+ fold_to = #{foldTo},
+ fold_from = #{foldFrom},
+ reason = #{reason},
+ technician = #{technician},
+ status = #{status},
+ comment = #{comment},
+ create_by = #{createBy},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from sc_trans_group where id = #{id}
+
+
+
+ delete from sc_trans_group where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/produce/manage_sheep/transition_info/ScTransitionInfoMapper.xml b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/transition_info/ScTransitionInfoMapper.xml
new file mode 100644
index 0000000..dc1c5c5
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/produce/manage_sheep/transition_info/ScTransitionInfoMapper.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, sheep_id, trans_to, trans_from, trans_type, technician, status, comment, create_by, create_time from sc_transition_info
+
+
+
+
+
+
+
+ insert into sc_transition_info
+
+ sheep_id,
+ trans_to,
+ trans_from,
+ trans_type,
+ technician,
+ status,
+ comment,
+ create_by,
+ create_time,
+
+
+ #{sheepId},
+ #{transTo},
+ #{transFrom},
+ #{transType},
+ #{technician},
+ #{status},
+ #{comment},
+ #{createBy},
+ #{createTime},
+
+
+
+
+ update sc_transition_info
+
+ sheep_id = #{sheepId},
+ trans_to = #{transTo},
+ trans_from = #{transFrom},
+ trans_type = #{transType},
+ technician = #{technician},
+ status = #{status},
+ comment = #{comment},
+ create_by = #{createBy},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from sc_transition_info where id = #{id}
+
+
+
+ delete from sc_transition_info where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/zhyc-module/src/main/resources/mapper/produce/ScCastrateMapper.xml b/zhyc-module/src/main/resources/mapper/produce/other/castrate/ScCastrateMapper.xml
similarity index 63%
rename from zhyc-module/src/main/resources/mapper/produce/ScCastrateMapper.xml
rename to zhyc-module/src/main/resources/mapper/produce/other/castrate/ScCastrateMapper.xml
index ff35dfa..dcbaba7 100644
--- a/zhyc-module/src/main/resources/mapper/produce/ScCastrateMapper.xml
+++ b/zhyc-module/src/main/resources/mapper/produce/other/castrate/ScCastrateMapper.xml
@@ -1,36 +1,47 @@
-
-
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
- select id, sheep_id, sheepfold, comment, technician, create_by, create_time from sc_castrate
+ select sc.id,
+ sc.sheep_id,
+ sc.sheepfold,
+ sf.sheepfold_name as sheepfoldName,
+ sc.comment,
+ sc.technician,
+ sc.create_by,
+ sc.create_time
+ from sc_castrate sc
+ left join da_sheepfold sf on sc.sheepfold = sf.id
-
+
@@ -42,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
technician,
create_by,
create_time,
-
+
#{sheepId},
#{sheepfold},
@@ -50,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{technician},
#{createBy},
#{createTime},
-
+
@@ -67,11 +78,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- delete from sc_castrate where id = #{id}
+ delete
+ from sc_castrate
+ where id = #{id}
- delete from sc_castrate where id in
+ delete from sc_castrate where id in
#{id}
diff --git a/zhyc-module/src/main/resources/mapper/produce/other/fixHoof/ScFixHoofMapper.xml b/zhyc-module/src/main/resources/mapper/produce/other/fixHoof/ScFixHoofMapper.xml
new file mode 100644
index 0000000..78eb85c
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/produce/other/fixHoof/ScFixHoofMapper.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, sheep_id, sheepfold, comment, technician, create_by, create_time from sc_fix_hoof
+
+
+
+
+
+
+
+ insert into sc_fix_hoof
+
+ sheep_id,
+ sheepfold,
+ comment,
+ technician,
+ create_by,
+ create_time,
+
+
+ #{sheepId},
+ #{sheepfold},
+ #{comment},
+ #{technician},
+ #{createBy},
+ #{createTime},
+
+
+
+
+ update sc_fix_hoof
+
+ sheep_id = #{sheepId},
+ sheepfold = #{sheepfold},
+ comment = #{comment},
+ technician = #{technician},
+ create_by = #{createBy},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from sc_fix_hoof where id = #{id}
+
+
+
+ delete from sc_fix_hoof where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/zhyc-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/zhyc-system/src/main/resources/mapper/system/ScAddSheepMapper.xml
similarity index 100%
rename from zhyc-system/src/main/resources/mapper/system/SysLogininforMapper.xml
rename to zhyc-system/src/main/resources/mapper/system/ScAddSheepMapper.xml
From 0cabb0df6884c54adcd4241a9bf8800249bd5e96 Mon Sep 17 00:00:00 2001
From: wyt <414651037@qq.com>
Date: Sun, 13 Jul 2025 12:44:09 +0800
Subject: [PATCH 5/9] =?UTF-8?q?=E7=BE=8A=E5=8F=AA=E6=A1=A3=E6=A1=88?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9=EF=BC=8C?=
=?UTF-8?q?=E4=BD=BF=E7=94=A8sheep=5Ffile=E8=A7=86=E5=9B=BE=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/BasSheepController.java | 104 ----
.../module/sheep_file/domain/BasSheep.java | 575 ------------------
.../sheep_file/mapper/BasSheepMapper.java | 61 --
.../sheep_file/service/IBasSheepService.java | 61 --
.../service/impl/BasSheepServiceImpl.java | 96 ---
.../mapper/sheep_file/BasSheepMapper.xml | 242 --------
6 files changed, 1139 deletions(-)
delete mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/BasSheepController.java
delete mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/BasSheep.java
delete mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/BasSheepMapper.java
delete mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/IBasSheepService.java
delete mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/BasSheepServiceImpl.java
delete mode 100644 zhyc-module/src/main/resources/mapper/sheep_file/BasSheepMapper.xml
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/BasSheepController.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/BasSheepController.java
deleted file mode 100644
index cbc8894..0000000
--- a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/BasSheepController.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.zhyc.module.sheep_file.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zhyc.common.annotation.Log;
-import com.zhyc.common.core.controller.BaseController;
-import com.zhyc.common.core.domain.AjaxResult;
-import com.zhyc.common.enums.BusinessType;
-import com.zhyc.module.sheep_file.domain.BasSheep;
-import com.zhyc.module.sheep_file.service.IBasSheepService;
-import com.zhyc.common.utils.poi.ExcelUtil;
-import com.zhyc.common.core.page.TableDataInfo;
-
-/**
- * 羊只基本信息Controller
- *
- * @author ruoyi
- * @date 2025-07-10
- */
-@RestController
-@RequestMapping("/sheep_file/sheep_file")
-public class BasSheepController extends BaseController
-{
- @Autowired
- private IBasSheepService basSheepService;
-
- /**
- * 查询羊只基本信息列表
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:list')")
- @GetMapping("/list")
- public TableDataInfo list(BasSheep basSheep)
- {
- startPage();
- List list = basSheepService.selectBasSheepList(basSheep);
- return getDataTable(list);
- }
-
- /**
- * 导出羊只基本信息列表
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:export')")
- @Log(title = "羊只基本信息", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, BasSheep basSheep)
- {
- List list = basSheepService.selectBasSheepList(basSheep);
- ExcelUtil util = new ExcelUtil(BasSheep.class);
- util.exportExcel(response, list, "羊只基本信息数据");
- }
-
- /**
- * 获取羊只基本信息详细信息
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:query')")
- @GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
- return success(basSheepService.selectBasSheepById(id));
- }
-
- /**
- * 新增羊只基本信息
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:add')")
- @Log(title = "羊只基本信息", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody BasSheep basSheep)
- {
- return toAjax(basSheepService.insertBasSheep(basSheep));
- }
-
- /**
- * 修改羊只基本信息
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:edit')")
- @Log(title = "羊只基本信息", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@RequestBody BasSheep basSheep)
- {
- return toAjax(basSheepService.updateBasSheep(basSheep));
- }
-
- /**
- * 删除羊只基本信息
- */
- @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:remove')")
- @Log(title = "羊只基本信息", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
- return toAjax(basSheepService.deleteBasSheepByIds(ids));
- }
-}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/BasSheep.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/BasSheep.java
deleted file mode 100644
index 2f488bd..0000000
--- a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/BasSheep.java
+++ /dev/null
@@ -1,575 +0,0 @@
-package com.zhyc.module.sheep_file.domain;
-
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.zhyc.common.annotation.Excel;
-import com.zhyc.common.core.domain.BaseEntity;
-
-/**
- * 羊只基本信息对象 bas_sheep
- *
- * @author ruoyi
- * @date 2025-07-10
- */
-public class BasSheep extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** 羊只id */
- private Long id;
-
- /** 管理耳号 */
- @Excel(name = "管理耳号")
- private String manageTags;
-
- /** 牧场id */
- @Excel(name = "牧场id")
- private Long ranchId;
-
- /** 羊舍id */
- @Excel(name = "羊舍id")
- private Long sheepfoldId;
-
- /** 电子耳号 */
- @Excel(name = "电子耳号")
- private String electronicTags;
-
- /** 品种id */
- @Excel(name = "品种id")
- private Long varietyId;
-
- /** 家系 */
- @Excel(name = "家系")
- private String family;
-
- /** 羊只类别 */
- @Excel(name = "羊只类别")
- private Long typeId;
-
- /** 性别 */
- @Excel(name = "性别")
- private Long gender;
-
- /** 出生日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date birthday;
-
- /** 出生体重 */
- @Excel(name = "出生体重")
- private Long birthWeight;
-
- /** 胎次 */
- @Excel(name = "胎次")
- private Long parity;
-
- /** 羊只状态 */
- @Excel(name = "羊只状态")
- private Long statusId;
-
- /** 断奶日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date weaningDate;
-
- /** 断奶体重 */
- @Excel(name = "断奶体重")
- private Long weaningWeight;
-
- /** 繁育状态id */
- @Excel(name = "繁育状态id")
- private Long breedStatusId;
-
- /** 父号id */
- @Excel(name = "父号id")
- private Long fatherId;
-
- /** 母号id */
- @Excel(name = "母号id")
- private Long motherId;
-
- /** 受体id */
- @Excel(name = "受体id")
- private Long receptorId;
-
- /** 配种日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "配种日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date matingDate;
-
- /** 配种类型 */
- @Excel(name = "配种类型")
- private Long matingTypeId;
-
- /** 孕检日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "孕检日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date pregDate;
-
- /** 产羔日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "产羔日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date lambingDate;
-
- /** 产羔时怀孕天数 */
- @Excel(name = "产羔时怀孕天数")
- private Long lambingDay;
-
- /** 预产日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "预产日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date expectedDate;
-
- /** 是否性控 */
- @Excel(name = "是否性控")
- private Long controlled;
-
- /** 配种次数 */
- @Excel(name = "配种次数")
- private Long matingCounts;
-
- /** $column.columnComment */
- @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
- private Long matingTotal;
-
- /** 累计流产次数 */
- @Excel(name = "累计流产次数")
- private Long miscarriageCounts;
-
- /** 体况评分 */
- @Excel(name = "体况评分")
- private Long body;
-
- /** 乳房评分 */
- @Excel(name = "乳房评分")
- private Long breast;
-
- /** 入群来源 */
- @Excel(name = "入群来源")
- private String source;
-
- /** 入群日期 */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "入群日期", width = 30, dateFormat = "yyyy-MM-dd")
- private Date soureDate;
-
- /** 来源牧场id */
- @Excel(name = "来源牧场id")
- private Long sourceRanchId;
-
- /** 备注 */
- @Excel(name = "备注")
- private String comment;
-
- /** 是否删除 */
- @Excel(name = "是否删除")
- private Long isDelete;
-
- public void setId(Long id)
- {
- this.id = id;
- }
-
- public Long getId()
- {
- return id;
- }
-
- public void setManageTags(String manageTags)
- {
- this.manageTags = manageTags;
- }
-
- public String getManageTags()
- {
- return manageTags;
- }
-
- public void setRanchId(Long ranchId)
- {
- this.ranchId = ranchId;
- }
-
- public Long getRanchId()
- {
- return ranchId;
- }
-
- public void setSheepfoldId(Long sheepfoldId)
- {
- this.sheepfoldId = sheepfoldId;
- }
-
- public Long getSheepfoldId()
- {
- return sheepfoldId;
- }
-
- public void setElectronicTags(String electronicTags)
- {
- this.electronicTags = electronicTags;
- }
-
- public String getElectronicTags()
- {
- return electronicTags;
- }
-
- public void setVarietyId(Long varietyId)
- {
- this.varietyId = varietyId;
- }
-
- public Long getVarietyId()
- {
- return varietyId;
- }
-
- public void setFamily(String family)
- {
- this.family = family;
- }
-
- public String getFamily()
- {
- return family;
- }
-
- public void setTypeId(Long typeId)
- {
- this.typeId = typeId;
- }
-
- public Long getTypeId()
- {
- return typeId;
- }
-
- public void setGender(Long gender)
- {
- this.gender = gender;
- }
-
- public Long getGender()
- {
- return gender;
- }
-
- public void setBirthday(Date birthday)
- {
- this.birthday = birthday;
- }
-
- public Date getBirthday()
- {
- return birthday;
- }
-
- public void setBirthWeight(Long birthWeight)
- {
- this.birthWeight = birthWeight;
- }
-
- public Long getBirthWeight()
- {
- return birthWeight;
- }
-
- public void setParity(Long parity)
- {
- this.parity = parity;
- }
-
- public Long getParity()
- {
- return parity;
- }
-
- public void setStatusId(Long statusId)
- {
- this.statusId = statusId;
- }
-
- public Long getStatusId()
- {
- return statusId;
- }
-
- public void setWeaningDate(Date weaningDate)
- {
- this.weaningDate = weaningDate;
- }
-
- public Date getWeaningDate()
- {
- return weaningDate;
- }
-
- public void setWeaningWeight(Long weaningWeight)
- {
- this.weaningWeight = weaningWeight;
- }
-
- public Long getWeaningWeight()
- {
- return weaningWeight;
- }
-
- public void setBreedStatusId(Long breedStatusId)
- {
- this.breedStatusId = breedStatusId;
- }
-
- public Long getBreedStatusId()
- {
- return breedStatusId;
- }
-
- public void setFatherId(Long fatherId)
- {
- this.fatherId = fatherId;
- }
-
- public Long getFatherId()
- {
- return fatherId;
- }
-
- public void setMotherId(Long motherId)
- {
- this.motherId = motherId;
- }
-
- public Long getMotherId()
- {
- return motherId;
- }
-
- public void setReceptorId(Long receptorId)
- {
- this.receptorId = receptorId;
- }
-
- public Long getReceptorId()
- {
- return receptorId;
- }
-
- public void setMatingDate(Date matingDate)
- {
- this.matingDate = matingDate;
- }
-
- public Date getMatingDate()
- {
- return matingDate;
- }
-
- public void setMatingTypeId(Long matingTypeId)
- {
- this.matingTypeId = matingTypeId;
- }
-
- public Long getMatingTypeId()
- {
- return matingTypeId;
- }
-
- public void setPregDate(Date pregDate)
- {
- this.pregDate = pregDate;
- }
-
- public Date getPregDate()
- {
- return pregDate;
- }
-
- public void setLambingDate(Date lambingDate)
- {
- this.lambingDate = lambingDate;
- }
-
- public Date getLambingDate()
- {
- return lambingDate;
- }
-
- public void setLambingDay(Long lambingDay)
- {
- this.lambingDay = lambingDay;
- }
-
- public Long getLambingDay()
- {
- return lambingDay;
- }
-
- public void setExpectedDate(Date expectedDate)
- {
- this.expectedDate = expectedDate;
- }
-
- public Date getExpectedDate()
- {
- return expectedDate;
- }
-
- public void setControlled(Long controlled)
- {
- this.controlled = controlled;
- }
-
- public Long getControlled()
- {
- return controlled;
- }
-
- public void setMatingCounts(Long matingCounts)
- {
- this.matingCounts = matingCounts;
- }
-
- public Long getMatingCounts()
- {
- return matingCounts;
- }
-
- public void setMatingTotal(Long matingTotal)
- {
- this.matingTotal = matingTotal;
- }
-
- public Long getMatingTotal()
- {
- return matingTotal;
- }
-
- public void setMiscarriageCounts(Long miscarriageCounts)
- {
- this.miscarriageCounts = miscarriageCounts;
- }
-
- public Long getMiscarriageCounts()
- {
- return miscarriageCounts;
- }
-
- public void setBody(Long body)
- {
- this.body = body;
- }
-
- public Long getBody()
- {
- return body;
- }
-
- public void setBreast(Long breast)
- {
- this.breast = breast;
- }
-
- public Long getBreast()
- {
- return breast;
- }
-
- public void setSource(String source)
- {
- this.source = source;
- }
-
- public String getSource()
- {
- return source;
- }
-
- public void setSoureDate(Date soureDate)
- {
- this.soureDate = soureDate;
- }
-
- public Date getSoureDate()
- {
- return soureDate;
- }
-
- public void setSourceRanchId(Long sourceRanchId)
- {
- this.sourceRanchId = sourceRanchId;
- }
-
- public Long getSourceRanchId()
- {
- return sourceRanchId;
- }
-
- public void setComment(String comment)
- {
- this.comment = comment;
- }
-
- public String getComment()
- {
- return comment;
- }
-
- public void setIsDelete(Long isDelete)
- {
- this.isDelete = isDelete;
- }
-
- public Long getIsDelete()
- {
- return isDelete;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("id", getId())
- .append("manageTags", getManageTags())
- .append("ranchId", getRanchId())
- .append("sheepfoldId", getSheepfoldId())
- .append("electronicTags", getElectronicTags())
- .append("varietyId", getVarietyId())
- .append("family", getFamily())
- .append("typeId", getTypeId())
- .append("gender", getGender())
- .append("birthday", getBirthday())
- .append("birthWeight", getBirthWeight())
- .append("parity", getParity())
- .append("statusId", getStatusId())
- .append("weaningDate", getWeaningDate())
- .append("weaningWeight", getWeaningWeight())
- .append("breedStatusId", getBreedStatusId())
- .append("fatherId", getFatherId())
- .append("motherId", getMotherId())
- .append("receptorId", getReceptorId())
- .append("matingDate", getMatingDate())
- .append("matingTypeId", getMatingTypeId())
- .append("pregDate", getPregDate())
- .append("lambingDate", getLambingDate())
- .append("lambingDay", getLambingDay())
- .append("expectedDate", getExpectedDate())
- .append("controlled", getControlled())
- .append("matingCounts", getMatingCounts())
- .append("matingTotal", getMatingTotal())
- .append("miscarriageCounts", getMiscarriageCounts())
- .append("body", getBody())
- .append("breast", getBreast())
- .append("source", getSource())
- .append("soureDate", getSoureDate())
- .append("sourceRanchId", getSourceRanchId())
- .append("comment", getComment())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("isDelete", getIsDelete())
- .toString();
- }
-}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/BasSheepMapper.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/BasSheepMapper.java
deleted file mode 100644
index 2ff48ee..0000000
--- a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/BasSheepMapper.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.zhyc.module.sheep_file.mapper;
-
-import java.util.List;
-import com.zhyc.module.sheep_file.domain.BasSheep;
-
-/**
- * 羊只基本信息Mapper接口
- *
- * @author ruoyi
- * @date 2025-07-10
- */
-public interface BasSheepMapper
-{
- /**
- * 查询羊只基本信息
- *
- * @param id 羊只基本信息主键
- * @return 羊只基本信息
- */
- public BasSheep selectBasSheepById(Long id);
-
- /**
- * 查询羊只基本信息列表
- *
- * @param basSheep 羊只基本信息
- * @return 羊只基本信息集合
- */
- public List selectBasSheepList(BasSheep basSheep);
-
- /**
- * 新增羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- public int insertBasSheep(BasSheep basSheep);
-
- /**
- * 修改羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- public int updateBasSheep(BasSheep basSheep);
-
- /**
- * 删除羊只基本信息
- *
- * @param id 羊只基本信息主键
- * @return 结果
- */
- public int deleteBasSheepById(Long id);
-
- /**
- * 批量删除羊只基本信息
- *
- * @param ids 需要删除的数据主键集合
- * @return 结果
- */
- public int deleteBasSheepByIds(Long[] ids);
-}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/IBasSheepService.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/IBasSheepService.java
deleted file mode 100644
index 72b6343..0000000
--- a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/IBasSheepService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.zhyc.module.sheep_file.service;
-
-import java.util.List;
-import com.zhyc.module.sheep_file.domain.BasSheep;
-
-/**
- * 羊只基本信息Service接口
- *
- * @author ruoyi
- * @date 2025-07-10
- */
-public interface IBasSheepService
-{
- /**
- * 查询羊只基本信息
- *
- * @param id 羊只基本信息主键
- * @return 羊只基本信息
- */
- public BasSheep selectBasSheepById(Long id);
-
- /**
- * 查询羊只基本信息列表
- *
- * @param basSheep 羊只基本信息
- * @return 羊只基本信息集合
- */
- public List selectBasSheepList(BasSheep basSheep);
-
- /**
- * 新增羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- public int insertBasSheep(BasSheep basSheep);
-
- /**
- * 修改羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- public int updateBasSheep(BasSheep basSheep);
-
- /**
- * 批量删除羊只基本信息
- *
- * @param ids 需要删除的羊只基本信息主键集合
- * @return 结果
- */
- public int deleteBasSheepByIds(Long[] ids);
-
- /**
- * 删除羊只基本信息信息
- *
- * @param id 羊只基本信息主键
- * @return 结果
- */
- public int deleteBasSheepById(Long id);
-}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/BasSheepServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/BasSheepServiceImpl.java
deleted file mode 100644
index d776254..0000000
--- a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/BasSheepServiceImpl.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.zhyc.module.sheep_file.service.impl;
-
-import java.util.List;
-import com.zhyc.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.zhyc.module.sheep_file.mapper.BasSheepMapper;
-import com.zhyc.module.sheep_file.domain.BasSheep;
-import com.zhyc.module.sheep_file.service.IBasSheepService;
-
-/**
- * 羊只基本信息Service业务层处理
- *
- * @author ruoyi
- * @date 2025-07-10
- */
-@Service
-public class BasSheepServiceImpl implements IBasSheepService
-{
- @Autowired
- private BasSheepMapper basSheepMapper;
-
- /**
- * 查询羊只基本信息
- *
- * @param id 羊只基本信息主键
- * @return 羊只基本信息
- */
- @Override
- public BasSheep selectBasSheepById(Long id)
- {
- return basSheepMapper.selectBasSheepById(id);
- }
-
- /**
- * 查询羊只基本信息列表
- *
- * @param basSheep 羊只基本信息
- * @return 羊只基本信息
- */
- @Override
- public List selectBasSheepList(BasSheep basSheep)
- {
- return basSheepMapper.selectBasSheepList(basSheep);
- }
-
- /**
- * 新增羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- @Override
- public int insertBasSheep(BasSheep basSheep)
- {
- basSheep.setCreateTime(DateUtils.getNowDate());
- return basSheepMapper.insertBasSheep(basSheep);
- }
-
- /**
- * 修改羊只基本信息
- *
- * @param basSheep 羊只基本信息
- * @return 结果
- */
- @Override
- public int updateBasSheep(BasSheep basSheep)
- {
- basSheep.setUpdateTime(DateUtils.getNowDate());
- return basSheepMapper.updateBasSheep(basSheep);
- }
-
- /**
- * 批量删除羊只基本信息
- *
- * @param ids 需要删除的羊只基本信息主键
- * @return 结果
- */
- @Override
- public int deleteBasSheepByIds(Long[] ids)
- {
- return basSheepMapper.deleteBasSheepByIds(ids);
- }
-
- /**
- * 删除羊只基本信息信息
- *
- * @param id 羊只基本信息主键
- * @return 结果
- */
- @Override
- public int deleteBasSheepById(Long id)
- {
- return basSheepMapper.deleteBasSheepById(id);
- }
-}
diff --git a/zhyc-module/src/main/resources/mapper/sheep_file/BasSheepMapper.xml b/zhyc-module/src/main/resources/mapper/sheep_file/BasSheepMapper.xml
deleted file mode 100644
index 1716dd3..0000000
--- a/zhyc-module/src/main/resources/mapper/sheep_file/BasSheepMapper.xml
+++ /dev/null
@@ -1,242 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, manage_tags, ranch_id, sheepfold_id, electronic_tags, variety_id, family, type_id, gender, birthday, birth_weight, parity, status_id, weaning_date, weaning_weight, breed_status_id, father_id, mother_id, receptor_id, mating_date, mating_type_id, preg_date, lambing_date, lambing_day, expected_date, controlled, mating_counts, mating_total, miscarriage_counts, body, breast, source, soure_date, source_ranch_id, comment, update_by, update_time, create_by, create_time, is_delete from bas_sheep
-
-
-
-
-
-
-
- insert into bas_sheep
-
- manage_tags,
- ranch_id,
- sheepfold_id,
- electronic_tags,
- variety_id,
- family,
- type_id,
- gender,
- birthday,
- birth_weight,
- parity,
- status_id,
- weaning_date,
- weaning_weight,
- breed_status_id,
- father_id,
- mother_id,
- receptor_id,
- mating_date,
- mating_type_id,
- preg_date,
- lambing_date,
- lambing_day,
- expected_date,
- controlled,
- mating_counts,
- mating_total,
- miscarriage_counts,
- body,
- breast,
- source,
- soure_date,
- source_ranch_id,
- comment,
- update_by,
- update_time,
- create_by,
- create_time,
- is_delete,
-
-
- #{manageTags},
- #{ranchId},
- #{sheepfoldId},
- #{electronicTags},
- #{varietyId},
- #{family},
- #{typeId},
- #{gender},
- #{birthday},
- #{birthWeight},
- #{parity},
- #{statusId},
- #{weaningDate},
- #{weaningWeight},
- #{breedStatusId},
- #{fatherId},
- #{motherId},
- #{receptorId},
- #{matingDate},
- #{matingTypeId},
- #{pregDate},
- #{lambingDate},
- #{lambingDay},
- #{expectedDate},
- #{controlled},
- #{matingCounts},
- #{matingTotal},
- #{miscarriageCounts},
- #{body},
- #{breast},
- #{source},
- #{soureDate},
- #{sourceRanchId},
- #{comment},
- #{updateBy},
- #{updateTime},
- #{createBy},
- #{createTime},
- #{isDelete},
-
-
-
-
- update bas_sheep
-
- manage_tags = #{manageTags},
- ranch_id = #{ranchId},
- sheepfold_id = #{sheepfoldId},
- electronic_tags = #{electronicTags},
- variety_id = #{varietyId},
- family = #{family},
- type_id = #{typeId},
- gender = #{gender},
- birthday = #{birthday},
- birth_weight = #{birthWeight},
- parity = #{parity},
- status_id = #{statusId},
- weaning_date = #{weaningDate},
- weaning_weight = #{weaningWeight},
- breed_status_id = #{breedStatusId},
- father_id = #{fatherId},
- mother_id = #{motherId},
- receptor_id = #{receptorId},
- mating_date = #{matingDate},
- mating_type_id = #{matingTypeId},
- preg_date = #{pregDate},
- lambing_date = #{lambingDate},
- lambing_day = #{lambingDay},
- expected_date = #{expectedDate},
- controlled = #{controlled},
- mating_counts = #{matingCounts},
- mating_total = #{matingTotal},
- miscarriage_counts = #{miscarriageCounts},
- body = #{body},
- breast = #{breast},
- source = #{source},
- soure_date = #{soureDate},
- source_ranch_id = #{sourceRanchId},
- comment = #{comment},
- update_by = #{updateBy},
- update_time = #{updateTime},
- create_by = #{createBy},
- create_time = #{createTime},
- is_delete = #{isDelete},
-
- where id = #{id}
-
-
-
- delete from bas_sheep where id = #{id}
-
-
-
- delete from bas_sheep where id in
-
- #{id}
-
-
-
\ No newline at end of file
From 456e912a2b19d9757da4a6e15621af39717c2f7c Mon Sep 17 00:00:00 2001
From: wyt <414651037@qq.com>
Date: Sun, 13 Jul 2025 12:45:13 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E7=BE=8A=E5=8F=AA=E6=A1=A3=E6=A1=88?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9=EF=BC=8C?=
=?UTF-8?q?=E4=BD=BF=E7=94=A8sheep=5Ffile=E8=A7=86=E5=9B=BE=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/SheepFileController.java | 104 ++
.../module/sheep_file/domain/SheepFile.java | 934 ++++++++++++++++++
.../sheep_file/mapper/SheepFileMapper.java | 61 ++
.../sheep_file/service/ISheepFileService.java | 61 ++
.../service/impl/SheepFileServiceImpl.java | 96 ++
.../mapper/sheep_file/SheepFileMapper.xml | 314 ++++++
6 files changed, 1570 insertions(+)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/SheepFileController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/SheepFile.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/SheepFileMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/ISheepFileService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/SheepFileServiceImpl.java
create mode 100644 zhyc-module/src/main/resources/mapper/sheep_file/SheepFileMapper.xml
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/SheepFileController.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/SheepFileController.java
new file mode 100644
index 0000000..25ff2e5
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/controller/SheepFileController.java
@@ -0,0 +1,104 @@
+package com.zhyc.module.sheep_file.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.module.sheep_file.domain.SheepFile;
+import com.zhyc.module.sheep_file.service.ISheepFileService;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 羊只档案Controller
+ *
+ * @author wyt
+ * @date 2025-07-13
+ */
+@RestController
+@RequestMapping("/sheep_file/sheep_file")
+public class SheepFileController extends BaseController
+{
+ @Autowired
+ private ISheepFileService sheepFileService;
+
+ /**
+ * 查询羊只档案列表
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(SheepFile sheepFile)
+ {
+ startPage();
+ List list = sheepFileService.selectSheepFileList(sheepFile);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出羊只档案列表
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:export')")
+ @Log(title = "羊只档案", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SheepFile sheepFile)
+ {
+ List list = sheepFileService.selectSheepFileList(sheepFile);
+ ExcelUtil util = new ExcelUtil(SheepFile.class);
+ util.exportExcel(response, list, "羊只档案数据");
+ }
+
+ /**
+ * 获取羊只档案详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(sheepFileService.selectSheepFileById(id));
+ }
+
+ /**
+ * 新增羊只档案
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:add')")
+ @Log(title = "羊只档案", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SheepFile sheepFile)
+ {
+ return toAjax(sheepFileService.insertSheepFile(sheepFile));
+ }
+
+ /**
+ * 修改羊只档案
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:edit')")
+ @Log(title = "羊只档案", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SheepFile sheepFile)
+ {
+ return toAjax(sheepFileService.updateSheepFile(sheepFile));
+ }
+
+ /**
+ * 删除羊只档案
+ */
+ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:remove')")
+ @Log(title = "羊只档案", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(sheepFileService.deleteSheepFileByIds(ids));
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/SheepFile.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/SheepFile.java
new file mode 100644
index 0000000..917c2d4
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/domain/SheepFile.java
@@ -0,0 +1,934 @@
+package com.zhyc.module.sheep_file.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 羊只档案对象 sheep_file
+ *
+ * @author wyt
+ * @date 2025-07-13
+ */
+public class SheepFile extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 羊只id */
+ private Long id;
+
+ /** 管理耳号 */
+ @Excel(name = "管理耳号")
+ private String bsManageTags;
+
+ /** 牧场id */
+ @Excel(name = "牧场id")
+ private Long ranchId;
+
+ /** 牧场名称 */
+ @Excel(name = "牧场名称")
+ private String drRanch;
+
+ /** 羊舍id */
+ @Excel(name = "羊舍id")
+ private Long sheepfoldId;
+
+ /** 羊舍名称 */
+ @Excel(name = "羊舍名称")
+ private String sheepfoldName;
+
+ /** 电子耳号 */
+ @Excel(name = "电子耳号")
+ private String electronicTags;
+
+ /** 品种id */
+ @Excel(name = "品种id")
+ private Long varietyId;
+
+ /** 品种 */
+ @Excel(name = "品种")
+ private String variety;
+
+ /** 家系 */
+ @Excel(name = "家系")
+ private String family;
+
+ /** 羊只类型 */
+ @Excel(name = "羊只类型")
+ private String name;
+
+ /** 性别 */
+ @Excel(name = "性别")
+ private Long gender;
+
+ /** 出生日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date birthday;
+
+ /** 日龄 */
+ @Excel(name = "日龄")
+ private Long dayAge;
+
+ /** 月龄 */
+ @Excel(name = "月龄")
+ private Long monthAge;
+
+ /** 胎次 */
+ @Excel(name = "胎次")
+ private Long parity;
+
+ /** 出生体重 */
+ @Excel(name = "出生体重")
+ private Long birthWeight;
+
+ /** 断奶日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date weaningDate;
+
+ /** 羊只状态 */
+ @Excel(name = "羊只状态")
+ private Long statusId;
+
+ /** 断奶体重 */
+ @Excel(name = "断奶体重")
+ private Long weaningWeight;
+
+ /** 当前体重 */
+ @Excel(name = "当前体重")
+ private Long currentWeight;
+
+ /** 繁育状态id */
+ @Excel(name = "繁育状态id")
+ private Long breedStatusId;
+
+ /** 繁殖状态 */
+ @Excel(name = "繁殖状态")
+ private String breed;
+
+ /** 父号id */
+ @Excel(name = "父号id")
+ private Long bsFatherId;
+
+ /** 父亲管理耳号 */
+ @Excel(name = "父亲管理耳号")
+ private String fatherManageTags;
+
+ /** 母号id */
+ @Excel(name = "母号id")
+ private Long bsMotherId;
+
+ /** 母亲管理耳号 */
+ @Excel(name = "母亲管理耳号")
+ private String motherManageTags;
+
+ /** 受体id */
+ @Excel(name = "受体id")
+ private Long receptorId;
+
+ /** 受体管理耳号 */
+ @Excel(name = "受体管理耳号")
+ private String receptorManageTags;
+
+ /** 祖父号id */
+ @Excel(name = "祖父号id")
+ private Long fatherFatherId;
+
+ /** 祖父管理耳号 */
+ @Excel(name = "祖父管理耳号")
+ private String grandfatherManageTags;
+
+ /** 祖母号id */
+ @Excel(name = "祖母号id")
+ private Long fatherMotherId;
+
+ /** 祖母管理耳号 */
+ @Excel(name = "祖母管理耳号")
+ private String grandmotherManageTags;
+
+ /** 外祖父号id */
+ @Excel(name = "外祖父号id")
+ private Long fatherId;
+
+ /** 外祖父管理耳号 */
+ @Excel(name = "外祖父管理耳号")
+ private String maternalGrandfatherManageTags;
+
+ /** 外祖母号id */
+ @Excel(name = "外祖母号id")
+ private Long motherId;
+
+ /** 外祖母管理耳号 */
+ @Excel(name = "外祖母管理耳号")
+ private String maternalGrandmotherManageTags;
+
+ /** 配种日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "配种日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date matingDate;
+
+ /** 配种类型 */
+ @Excel(name = "配种类型")
+ private Long matingTypeId;
+
+ /** 孕检日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "孕检日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date pregDate;
+
+ /** 产羔日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "产羔日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date lambingDate;
+
+ /** 产羔时怀孕天数 */
+ @Excel(name = "产羔时怀孕天数")
+ private Long lambingDay;
+
+ /** 配后天数 */
+ @Excel(name = "配后天数")
+ private Long matingDay;
+
+ /** 怀孕天数 */
+ @Excel(name = "怀孕天数")
+ private Long gestationDay;
+
+ /** 预产日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "预产日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date expectedDate;
+
+ /** 产后天数 */
+ @Excel(name = "产后天数")
+ private Long postLambingDay;
+
+ /** 泌乳天数 */
+ @Excel(name = "泌乳天数")
+ private Long lactationDay;
+
+ /** 空怀天数 */
+ @Excel(name = "空怀天数")
+ private Long anestrousDay;
+
+ /** 配种次数 */
+ @Excel(name = "配种次数")
+ private Long matingCounts;
+
+ /** 累计配种次数 */
+ @Excel(name = "累计配种次数")
+ private Long matingTotal;
+
+ /** 累计流产次数 */
+ @Excel(name = "累计流产次数")
+ private Long miscarriageCounts;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ /** 是否性控 */
+ @Excel(name = "是否性控")
+ private Long controlled;
+
+ /** 体况评分 */
+ @Excel(name = "体况评分")
+ private Long body;
+
+ /** 乳房评分 */
+ @Excel(name = "乳房评分")
+ private Long breast;
+
+ /** 入群来源 */
+ @Excel(name = "入群来源")
+ private String source;
+
+ /** 入群日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "入群日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date sourceDate;
+
+ /** 来源牧场id */
+ @Excel(name = "来源牧场id")
+ private Long sourceRanchId;
+
+ /** 来源牧场 */
+ @Excel(name = "来源牧场")
+ private String sourceRanch;
+
+ /** 是否删除 */
+ private Long isDelete;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setBsManageTags(String bsManageTags)
+ {
+ this.bsManageTags = bsManageTags;
+ }
+
+ public String getBsManageTags()
+ {
+ return bsManageTags;
+ }
+
+ public void setRanchId(Long ranchId)
+ {
+ this.ranchId = ranchId;
+ }
+
+ public Long getRanchId()
+ {
+ return ranchId;
+ }
+
+ public void setDrRanch(String drRanch)
+ {
+ this.drRanch = drRanch;
+ }
+
+ public String getDrRanch()
+ {
+ return drRanch;
+ }
+
+ public void setSheepfoldId(Long sheepfoldId)
+ {
+ this.sheepfoldId = sheepfoldId;
+ }
+
+ public Long getSheepfoldId()
+ {
+ return sheepfoldId;
+ }
+
+ public void setSheepfoldName(String sheepfoldName)
+ {
+ this.sheepfoldName = sheepfoldName;
+ }
+
+ public String getSheepfoldName()
+ {
+ return sheepfoldName;
+ }
+
+ public void setElectronicTags(String electronicTags)
+ {
+ this.electronicTags = electronicTags;
+ }
+
+ public String getElectronicTags()
+ {
+ return electronicTags;
+ }
+
+ public void setVarietyId(Long varietyId)
+ {
+ this.varietyId = varietyId;
+ }
+
+ public Long getVarietyId()
+ {
+ return varietyId;
+ }
+
+ public void setVariety(String variety)
+ {
+ this.variety = variety;
+ }
+
+ public String getVariety()
+ {
+ return variety;
+ }
+
+ public void setFamily(String family)
+ {
+ this.family = family;
+ }
+
+ public String getFamily()
+ {
+ return family;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setGender(Long gender)
+ {
+ this.gender = gender;
+ }
+
+ public Long getGender()
+ {
+ return gender;
+ }
+
+ public void setBirthday(Date birthday)
+ {
+ this.birthday = birthday;
+ }
+
+ public Date getBirthday()
+ {
+ return birthday;
+ }
+
+ public void setDayAge(Long dayAge)
+ {
+ this.dayAge = dayAge;
+ }
+
+ public Long getDayAge()
+ {
+ return dayAge;
+ }
+
+ public void setMonthAge(Long monthAge)
+ {
+ this.monthAge = monthAge;
+ }
+
+ public Long getMonthAge()
+ {
+ return monthAge;
+ }
+
+ public void setParity(Long parity)
+ {
+ this.parity = parity;
+ }
+
+ public Long getParity()
+ {
+ return parity;
+ }
+
+ public void setBirthWeight(Long birthWeight)
+ {
+ this.birthWeight = birthWeight;
+ }
+
+ public Long getBirthWeight()
+ {
+ return birthWeight;
+ }
+
+ public void setWeaningDate(Date weaningDate)
+ {
+ this.weaningDate = weaningDate;
+ }
+
+ public Date getWeaningDate()
+ {
+ return weaningDate;
+ }
+
+ public void setStatusId(Long statusId)
+ {
+ this.statusId = statusId;
+ }
+
+ public Long getStatusId()
+ {
+ return statusId;
+ }
+
+ public void setWeaningWeight(Long weaningWeight)
+ {
+ this.weaningWeight = weaningWeight;
+ }
+
+ public Long getWeaningWeight()
+ {
+ return weaningWeight;
+ }
+
+ public void setCurrentWeight(Long currentWeight)
+ {
+ this.currentWeight = currentWeight;
+ }
+
+ public Long getCurrentWeight()
+ {
+ return currentWeight;
+ }
+
+ public void setBreedStatusId(Long breedStatusId)
+ {
+ this.breedStatusId = breedStatusId;
+ }
+
+ public Long getBreedStatusId()
+ {
+ return breedStatusId;
+ }
+
+ public void setBreed(String breed)
+ {
+ this.breed = breed;
+ }
+
+ public String getBreed()
+ {
+ return breed;
+ }
+
+ public void setBsFatherId(Long bsFatherId)
+ {
+ this.bsFatherId = bsFatherId;
+ }
+
+ public Long getBsFatherId()
+ {
+ return bsFatherId;
+ }
+
+ public void setFatherManageTags(String fatherManageTags)
+ {
+ this.fatherManageTags = fatherManageTags;
+ }
+
+ public String getFatherManageTags()
+ {
+ return fatherManageTags;
+ }
+
+ public void setBsMotherId(Long bsMotherId)
+ {
+ this.bsMotherId = bsMotherId;
+ }
+
+ public Long getBsMotherId()
+ {
+ return bsMotherId;
+ }
+
+ public void setMotherManageTags(String motherManageTags)
+ {
+ this.motherManageTags = motherManageTags;
+ }
+
+ public String getMotherManageTags()
+ {
+ return motherManageTags;
+ }
+
+ public void setReceptorId(Long receptorId)
+ {
+ this.receptorId = receptorId;
+ }
+
+ public Long getReceptorId()
+ {
+ return receptorId;
+ }
+
+ public void setReceptorManageTags(String receptorManageTags)
+ {
+ this.receptorManageTags = receptorManageTags;
+ }
+
+ public String getReceptorManageTags()
+ {
+ return receptorManageTags;
+ }
+
+ public void setFatherFatherId(Long fatherFatherId)
+ {
+ this.fatherFatherId = fatherFatherId;
+ }
+
+ public Long getFatherFatherId()
+ {
+ return fatherFatherId;
+ }
+
+ public void setGrandfatherManageTags(String grandfatherManageTags)
+ {
+ this.grandfatherManageTags = grandfatherManageTags;
+ }
+
+ public String getGrandfatherManageTags()
+ {
+ return grandfatherManageTags;
+ }
+
+ public void setFatherMotherId(Long fatherMotherId)
+ {
+ this.fatherMotherId = fatherMotherId;
+ }
+
+ public Long getFatherMotherId()
+ {
+ return fatherMotherId;
+ }
+
+ public void setGrandmotherManageTags(String grandmotherManageTags)
+ {
+ this.grandmotherManageTags = grandmotherManageTags;
+ }
+
+ public String getGrandmotherManageTags()
+ {
+ return grandmotherManageTags;
+ }
+
+ public void setFatherId(Long fatherId)
+ {
+ this.fatherId = fatherId;
+ }
+
+ public Long getFatherId()
+ {
+ return fatherId;
+ }
+
+ public void setMaternalGrandfatherManageTags(String maternalGrandfatherManageTags)
+ {
+ this.maternalGrandfatherManageTags = maternalGrandfatherManageTags;
+ }
+
+ public String getMaternalGrandfatherManageTags()
+ {
+ return maternalGrandfatherManageTags;
+ }
+
+ public void setMotherId(Long motherId)
+ {
+ this.motherId = motherId;
+ }
+
+ public Long getMotherId()
+ {
+ return motherId;
+ }
+
+ public void setMaternalGrandmotherManageTags(String maternalGrandmotherManageTags)
+ {
+ this.maternalGrandmotherManageTags = maternalGrandmotherManageTags;
+ }
+
+ public String getMaternalGrandmotherManageTags()
+ {
+ return maternalGrandmotherManageTags;
+ }
+
+ public void setMatingDate(Date matingDate)
+ {
+ this.matingDate = matingDate;
+ }
+
+ public Date getMatingDate()
+ {
+ return matingDate;
+ }
+
+ public void setMatingTypeId(Long matingTypeId)
+ {
+ this.matingTypeId = matingTypeId;
+ }
+
+ public Long getMatingTypeId()
+ {
+ return matingTypeId;
+ }
+
+ public void setPregDate(Date pregDate)
+ {
+ this.pregDate = pregDate;
+ }
+
+ public Date getPregDate()
+ {
+ return pregDate;
+ }
+
+ public void setLambingDate(Date lambingDate)
+ {
+ this.lambingDate = lambingDate;
+ }
+
+ public Date getLambingDate()
+ {
+ return lambingDate;
+ }
+
+ public void setLambingDay(Long lambingDay)
+ {
+ this.lambingDay = lambingDay;
+ }
+
+ public Long getLambingDay()
+ {
+ return lambingDay;
+ }
+
+ public void setMatingDay(Long matingDay)
+ {
+ this.matingDay = matingDay;
+ }
+
+ public Long getMatingDay()
+ {
+ return matingDay;
+ }
+
+ public void setGestationDay(Long gestationDay)
+ {
+ this.gestationDay = gestationDay;
+ }
+
+ public Long getGestationDay()
+ {
+ return gestationDay;
+ }
+
+ public void setExpectedDate(Date expectedDate)
+ {
+ this.expectedDate = expectedDate;
+ }
+
+ public Date getExpectedDate()
+ {
+ return expectedDate;
+ }
+
+ public void setPostLambingDay(Long postLambingDay)
+ {
+ this.postLambingDay = postLambingDay;
+ }
+
+ public Long getPostLambingDay()
+ {
+ return postLambingDay;
+ }
+
+ public void setLactationDay(Long lactationDay)
+ {
+ this.lactationDay = lactationDay;
+ }
+
+ public Long getLactationDay()
+ {
+ return lactationDay;
+ }
+
+ public void setAnestrousDay(Long anestrousDay)
+ {
+ this.anestrousDay = anestrousDay;
+ }
+
+ public Long getAnestrousDay()
+ {
+ return anestrousDay;
+ }
+
+ public void setMatingCounts(Long matingCounts)
+ {
+ this.matingCounts = matingCounts;
+ }
+
+ public Long getMatingCounts()
+ {
+ return matingCounts;
+ }
+
+ public void setMatingTotal(Long matingTotal)
+ {
+ this.matingTotal = matingTotal;
+ }
+
+ public Long getMatingTotal()
+ {
+ return matingTotal;
+ }
+
+ public void setMiscarriageCounts(Long miscarriageCounts)
+ {
+ this.miscarriageCounts = miscarriageCounts;
+ }
+
+ public Long getMiscarriageCounts()
+ {
+ return miscarriageCounts;
+ }
+
+ public void setComment(String comment)
+ {
+ this.comment = comment;
+ }
+
+ public String getComment()
+ {
+ return comment;
+ }
+
+ public void setControlled(Long controlled)
+ {
+ this.controlled = controlled;
+ }
+
+ public Long getControlled()
+ {
+ return controlled;
+ }
+
+ public void setBody(Long body)
+ {
+ this.body = body;
+ }
+
+ public Long getBody()
+ {
+ return body;
+ }
+
+ public void setBreast(Long breast)
+ {
+ this.breast = breast;
+ }
+
+ public Long getBreast()
+ {
+ return breast;
+ }
+
+ public void setSource(String source)
+ {
+ this.source = source;
+ }
+
+ public String getSource()
+ {
+ return source;
+ }
+
+ public void setSourceDate(Date sourceDate)
+ {
+ this.sourceDate = sourceDate;
+ }
+
+ public Date getSourceDate()
+ {
+ return sourceDate;
+ }
+
+ public void setSourceRanchId(Long sourceRanchId)
+ {
+ this.sourceRanchId = sourceRanchId;
+ }
+
+ public Long getSourceRanchId()
+ {
+ return sourceRanchId;
+ }
+
+ public void setSourceRanch(String sourceRanch)
+ {
+ this.sourceRanch = sourceRanch;
+ }
+
+ public String getSourceRanch()
+ {
+ return sourceRanch;
+ }
+
+ public void setIsDelete(Long isDelete)
+ {
+ this.isDelete = isDelete;
+ }
+
+ public Long getIsDelete()
+ {
+ return isDelete;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("bsManageTags", getBsManageTags())
+ .append("ranchId", getRanchId())
+ .append("drRanch", getDrRanch())
+ .append("sheepfoldId", getSheepfoldId())
+ .append("sheepfoldName", getSheepfoldName())
+ .append("electronicTags", getElectronicTags())
+ .append("varietyId", getVarietyId())
+ .append("variety", getVariety())
+ .append("family", getFamily())
+ .append("name", getName())
+ .append("gender", getGender())
+ .append("birthday", getBirthday())
+ .append("dayAge", getDayAge())
+ .append("monthAge", getMonthAge())
+ .append("parity", getParity())
+ .append("birthWeight", getBirthWeight())
+ .append("weaningDate", getWeaningDate())
+ .append("statusId", getStatusId())
+ .append("weaningWeight", getWeaningWeight())
+ .append("currentWeight", getCurrentWeight())
+ .append("breedStatusId", getBreedStatusId())
+ .append("breed", getBreed())
+ .append("bsFatherId", getBsFatherId())
+ .append("fatherManageTags", getFatherManageTags())
+ .append("bsMotherId", getBsMotherId())
+ .append("motherManageTags", getMotherManageTags())
+ .append("receptorId", getReceptorId())
+ .append("receptorManageTags", getReceptorManageTags())
+ .append("fatherFatherId", getFatherFatherId())
+ .append("grandfatherManageTags", getGrandfatherManageTags())
+ .append("fatherMotherId", getFatherMotherId())
+ .append("grandmotherManageTags", getGrandmotherManageTags())
+ .append("fatherId", getFatherId())
+ .append("maternalGrandfatherManageTags", getMaternalGrandfatherManageTags())
+ .append("motherId", getMotherId())
+ .append("maternalGrandmotherManageTags", getMaternalGrandmotherManageTags())
+ .append("matingDate", getMatingDate())
+ .append("matingTypeId", getMatingTypeId())
+ .append("pregDate", getPregDate())
+ .append("lambingDate", getLambingDate())
+ .append("lambingDay", getLambingDay())
+ .append("matingDay", getMatingDay())
+ .append("gestationDay", getGestationDay())
+ .append("expectedDate", getExpectedDate())
+ .append("postLambingDay", getPostLambingDay())
+ .append("lactationDay", getLactationDay())
+ .append("anestrousDay", getAnestrousDay())
+ .append("matingCounts", getMatingCounts())
+ .append("matingTotal", getMatingTotal())
+ .append("miscarriageCounts", getMiscarriageCounts())
+ .append("comment", getComment())
+ .append("controlled", getControlled())
+ .append("body", getBody())
+ .append("breast", getBreast())
+ .append("source", getSource())
+ .append("sourceDate", getSourceDate())
+ .append("sourceRanchId", getSourceRanchId())
+ .append("sourceRanch", getSourceRanch())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("isDelete", getIsDelete())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/SheepFileMapper.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/SheepFileMapper.java
new file mode 100644
index 0000000..480d02e
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/mapper/SheepFileMapper.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.sheep_file.mapper;
+
+import java.util.List;
+import com.zhyc.module.sheep_file.domain.SheepFile;
+
+/**
+ * 羊只档案Mapper接口
+ *
+ * @author wyt
+ * @date 2025-07-13
+ */
+public interface SheepFileMapper
+{
+ /**
+ * 查询羊只档案
+ *
+ * @param id 羊只档案主键
+ * @return 羊只档案
+ */
+ public SheepFile selectSheepFileById(Long id);
+
+ /**
+ * 查询羊只档案列表
+ *
+ * @param sheepFile 羊只档案
+ * @return 羊只档案集合
+ */
+ public List selectSheepFileList(SheepFile sheepFile);
+
+ /**
+ * 新增羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ public int insertSheepFile(SheepFile sheepFile);
+
+ /**
+ * 修改羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ public int updateSheepFile(SheepFile sheepFile);
+
+ /**
+ * 删除羊只档案
+ *
+ * @param id 羊只档案主键
+ * @return 结果
+ */
+ public int deleteSheepFileById(Long id);
+
+ /**
+ * 批量删除羊只档案
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSheepFileByIds(Long[] ids);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/ISheepFileService.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/ISheepFileService.java
new file mode 100644
index 0000000..a5f012f
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/ISheepFileService.java
@@ -0,0 +1,61 @@
+package com.zhyc.module.sheep_file.service;
+
+import java.util.List;
+import com.zhyc.module.sheep_file.domain.SheepFile;
+
+/**
+ * 羊只档案Service接口
+ *
+ * @author wyt
+ * @date 2025-07-13
+ */
+public interface ISheepFileService
+{
+ /**
+ * 查询羊只档案
+ *
+ * @param id 羊只档案主键
+ * @return 羊只档案
+ */
+ public SheepFile selectSheepFileById(Long id);
+
+ /**
+ * 查询羊只档案列表
+ *
+ * @param sheepFile 羊只档案
+ * @return 羊只档案集合
+ */
+ public List selectSheepFileList(SheepFile sheepFile);
+
+ /**
+ * 新增羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ public int insertSheepFile(SheepFile sheepFile);
+
+ /**
+ * 修改羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ public int updateSheepFile(SheepFile sheepFile);
+
+ /**
+ * 批量删除羊只档案
+ *
+ * @param ids 需要删除的羊只档案主键集合
+ * @return 结果
+ */
+ public int deleteSheepFileByIds(Long[] ids);
+
+ /**
+ * 删除羊只档案信息
+ *
+ * @param id 羊只档案主键
+ * @return 结果
+ */
+ public int deleteSheepFileById(Long id);
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/SheepFileServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/SheepFileServiceImpl.java
new file mode 100644
index 0000000..6a61101
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/sheep_file/service/impl/SheepFileServiceImpl.java
@@ -0,0 +1,96 @@
+package com.zhyc.module.sheep_file.service.impl;
+
+import java.util.List;
+import com.zhyc.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zhyc.module.sheep_file.mapper.SheepFileMapper;
+import com.zhyc.module.sheep_file.domain.SheepFile;
+import com.zhyc.module.sheep_file.service.ISheepFileService;
+
+/**
+ * 羊只档案Service业务层处理
+ *
+ * @author wyt
+ * @date 2025-07-13
+ */
+@Service
+public class SheepFileServiceImpl implements ISheepFileService
+{
+ @Autowired
+ private SheepFileMapper sheepFileMapper;
+
+ /**
+ * 查询羊只档案
+ *
+ * @param id 羊只档案主键
+ * @return 羊只档案
+ */
+ @Override
+ public SheepFile selectSheepFileById(Long id)
+ {
+ return sheepFileMapper.selectSheepFileById(id);
+ }
+
+ /**
+ * 查询羊只档案列表
+ *
+ * @param sheepFile 羊只档案
+ * @return 羊只档案
+ */
+ @Override
+ public List selectSheepFileList(SheepFile sheepFile)
+ {
+ return sheepFileMapper.selectSheepFileList(sheepFile);
+ }
+
+ /**
+ * 新增羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ @Override
+ public int insertSheepFile(SheepFile sheepFile)
+ {
+ sheepFile.setCreateTime(DateUtils.getNowDate());
+ return sheepFileMapper.insertSheepFile(sheepFile);
+ }
+
+ /**
+ * 修改羊只档案
+ *
+ * @param sheepFile 羊只档案
+ * @return 结果
+ */
+ @Override
+ public int updateSheepFile(SheepFile sheepFile)
+ {
+ sheepFile.setUpdateTime(DateUtils.getNowDate());
+ return sheepFileMapper.updateSheepFile(sheepFile);
+ }
+
+ /**
+ * 批量删除羊只档案
+ *
+ * @param ids 需要删除的羊只档案主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSheepFileByIds(Long[] ids)
+ {
+ return sheepFileMapper.deleteSheepFileByIds(ids);
+ }
+
+ /**
+ * 删除羊只档案信息
+ *
+ * @param id 羊只档案主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSheepFileById(Long id)
+ {
+ return sheepFileMapper.deleteSheepFileById(id);
+ }
+}
diff --git a/zhyc-module/src/main/resources/mapper/sheep_file/SheepFileMapper.xml b/zhyc-module/src/main/resources/mapper/sheep_file/SheepFileMapper.xml
new file mode 100644
index 0000000..5008631
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/sheep_file/SheepFileMapper.xml
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, bs_manage_tags, ranch_id, dr_ranch, sheepfold_id, sheepfold_name, electronic_tags, variety_id, variety, family, name, gender, birthday, day_age, month_age, parity, birth_weight, weaning_date, status_id, weaning_weight, current_weight, breed_status_id, breed, bs_father_id, father_manage_tags, bs_mother_id, mother_manage_tags, receptor_id, receptor_manage_tags, father_father_id, grandfather_manage_tags, father_mother_id, grandmother_manage_tags, father_id, maternal_grandfather_manage_tags, mother_id, maternal_grandmother_manage_tags, mating_date, mating_type_id, preg_date, lambing_date, lambing_day, mating_day, gestation_day, expected_date, post_lambing_day, lactation_day, anestrous_day, mating_counts, mating_total, miscarriage_counts, comment, controlled, body, breast, source, source_date, source_ranch_id, source_ranch, update_by, update_time, create_by, create_time, is_delete from sheep_file
+
+
+
+
+
+
+
+ insert into sheep_file
+
+ id,
+ bs_manage_tags,
+ ranch_id,
+ dr_ranch,
+ sheepfold_id,
+ sheepfold_name,
+ electronic_tags,
+ variety_id,
+ variety,
+ family,
+ name,
+ gender,
+ birthday,
+ day_age,
+ month_age,
+ parity,
+ birth_weight,
+ weaning_date,
+ status_id,
+ weaning_weight,
+ current_weight,
+ breed_status_id,
+ breed,
+ bs_father_id,
+ father_manage_tags,
+ bs_mother_id,
+ mother_manage_tags,
+ receptor_id,
+ receptor_manage_tags,
+ father_father_id,
+ grandfather_manage_tags,
+ father_mother_id,
+ grandmother_manage_tags,
+ father_id,
+ maternal_grandfather_manage_tags,
+ mother_id,
+ maternal_grandmother_manage_tags,
+ mating_date,
+ mating_type_id,
+ preg_date,
+ lambing_date,
+ lambing_day,
+ mating_day,
+ gestation_day,
+ expected_date,
+ post_lambing_day,
+ lactation_day,
+ anestrous_day,
+ mating_counts,
+ mating_total,
+ miscarriage_counts,
+ comment,
+ controlled,
+ body,
+ breast,
+ source,
+ source_date,
+ source_ranch_id,
+ source_ranch,
+ update_by,
+ update_time,
+ create_by,
+ create_time,
+ is_delete,
+
+
+ #{id},
+ #{bsManageTags},
+ #{ranchId},
+ #{drRanch},
+ #{sheepfoldId},
+ #{sheepfoldName},
+ #{electronicTags},
+ #{varietyId},
+ #{variety},
+ #{family},
+ #{name},
+ #{gender},
+ #{birthday},
+ #{dayAge},
+ #{monthAge},
+ #{parity},
+ #{birthWeight},
+ #{weaningDate},
+ #{statusId},
+ #{weaningWeight},
+ #{currentWeight},
+ #{breedStatusId},
+ #{breed},
+ #{bsFatherId},
+ #{fatherManageTags},
+ #{bsMotherId},
+ #{motherManageTags},
+ #{receptorId},
+ #{receptorManageTags},
+ #{fatherFatherId},
+ #{grandfatherManageTags},
+ #{fatherMotherId},
+ #{grandmotherManageTags},
+ #{fatherId},
+ #{maternalGrandfatherManageTags},
+ #{motherId},
+ #{maternalGrandmotherManageTags},
+ #{matingDate},
+ #{matingTypeId},
+ #{pregDate},
+ #{lambingDate},
+ #{lambingDay},
+ #{matingDay},
+ #{gestationDay},
+ #{expectedDate},
+ #{postLambingDay},
+ #{lactationDay},
+ #{anestrousDay},
+ #{matingCounts},
+ #{matingTotal},
+ #{miscarriageCounts},
+ #{comment},
+ #{controlled},
+ #{body},
+ #{breast},
+ #{source},
+ #{sourceDate},
+ #{sourceRanchId},
+ #{sourceRanch},
+ #{updateBy},
+ #{updateTime},
+ #{createBy},
+ #{createTime},
+ #{isDelete},
+
+
+
+
+ update sheep_file
+
+ bs_manage_tags = #{bsManageTags},
+ ranch_id = #{ranchId},
+ dr_ranch = #{drRanch},
+ sheepfold_id = #{sheepfoldId},
+ sheepfold_name = #{sheepfoldName},
+ electronic_tags = #{electronicTags},
+ variety_id = #{varietyId},
+ variety = #{variety},
+ family = #{family},
+ name = #{name},
+ gender = #{gender},
+ birthday = #{birthday},
+ day_age = #{dayAge},
+ month_age = #{monthAge},
+ parity = #{parity},
+ birth_weight = #{birthWeight},
+ weaning_date = #{weaningDate},
+ status_id = #{statusId},
+ weaning_weight = #{weaningWeight},
+ current_weight = #{currentWeight},
+ breed_status_id = #{breedStatusId},
+ breed = #{breed},
+ bs_father_id = #{bsFatherId},
+ father_manage_tags = #{fatherManageTags},
+ bs_mother_id = #{bsMotherId},
+ mother_manage_tags = #{motherManageTags},
+ receptor_id = #{receptorId},
+ receptor_manage_tags = #{receptorManageTags},
+ father_father_id = #{fatherFatherId},
+ grandfather_manage_tags = #{grandfatherManageTags},
+ father_mother_id = #{fatherMotherId},
+ grandmother_manage_tags = #{grandmotherManageTags},
+ father_id = #{fatherId},
+ maternal_grandfather_manage_tags = #{maternalGrandfatherManageTags},
+ mother_id = #{motherId},
+ maternal_grandmother_manage_tags = #{maternalGrandmotherManageTags},
+ mating_date = #{matingDate},
+ mating_type_id = #{matingTypeId},
+ preg_date = #{pregDate},
+ lambing_date = #{lambingDate},
+ lambing_day = #{lambingDay},
+ mating_day = #{matingDay},
+ gestation_day = #{gestationDay},
+ expected_date = #{expectedDate},
+ post_lambing_day = #{postLambingDay},
+ lactation_day = #{lactationDay},
+ anestrous_day = #{anestrousDay},
+ mating_counts = #{matingCounts},
+ mating_total = #{matingTotal},
+ miscarriage_counts = #{miscarriageCounts},
+ comment = #{comment},
+ controlled = #{controlled},
+ body = #{body},
+ breast = #{breast},
+ source = #{source},
+ source_date = #{sourceDate},
+ source_ranch_id = #{sourceRanchId},
+ source_ranch = #{sourceRanch},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ is_delete = #{isDelete},
+
+ where id = #{id}
+
+
+
+ delete from sheep_file where id = #{id}
+
+
+
+ delete from sheep_file where id in
+
+ #{id}
+
+
+
\ No newline at end of file
From 3f4647e08df3ea7b7fe6dfad2e460b3cfbbf2703 Mon Sep 17 00:00:00 2001
From: zyk
Date: Sat, 12 Jul 2025 00:17:29 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E4=BA=A7?=
=?UTF-8?q?=E7=BE=94=E8=AE=B0=E5=BD=95=E9=A1=B5=E9=9D=A2=EF=BC=8C=E7=BC=BA?=
=?UTF-8?q?=E4=B9=8F=E7=95=8C=E9=9D=A2=E4=B8=8A=E7=9A=84=E8=A1=A8=E5=90=8C?=
=?UTF-8?q?=E6=AD=A5=EF=BC=8C=E5=9B=A0=E4=B8=BA=E5=BE=88=E5=A4=9A=E8=A1=A8?=
=?UTF-8?q?=E6=B2=A1=E4=BF=A1=E6=81=AF=E6=97=A0=E6=B3=95=E8=81=94=E6=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/ScLambingRecordController.java | 137 ++++++
.../produce/breed/domain/ScLambDetail.java | 163 ++++++++
.../produce/breed/domain/ScLambingRecord.java | 390 ++++++++++++++++++
.../breed/mapper/ScLambDetailMapper.java | 85 ++++
.../breed/mapper/ScLambingRecordMapper.java | 70 ++++
.../service/IScLambingRecordService.java | 86 ++++
.../impl/ScLambingRecordServiceImpl.java | 112 +++++
.../mapper/breed/ScLambingRecordMapper.xml | 216 ++++++++++
8 files changed, 1259 insertions(+)
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScLambingRecordController.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambDetail.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambingRecord.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambDetailMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambingRecordMapper.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScLambingRecordService.java
create mode 100644 zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScLambingRecordServiceImpl.java
create mode 100644 zhyc-module/src/main/resources/mapper/breed/ScLambingRecordMapper.xml
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScLambingRecordController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScLambingRecordController.java
new file mode 100644
index 0000000..77bc4c0
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScLambingRecordController.java
@@ -0,0 +1,137 @@
+package com.zhyc.module.produce.breed.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhyc.common.annotation.Log;
+import com.zhyc.common.core.controller.BaseController;
+import com.zhyc.common.core.domain.AjaxResult;
+import com.zhyc.common.enums.BusinessType;
+import com.zhyc.module.produce.breed.domain.ScLambingRecord;
+import com.zhyc.module.produce.breed.domain.ScLambDetail;
+import com.zhyc.module.produce.breed.service.IScLambingRecordService;
+import com.zhyc.common.utils.poi.ExcelUtil;
+import com.zhyc.common.core.page.TableDataInfo;
+
+/**
+ * 产羔记录Controller
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@RestController
+@RequestMapping("/breed/lambing_records")
+public class ScLambingRecordController extends BaseController
+{
+ @Autowired
+ private IScLambingRecordService scLambingRecordService;
+
+ /**
+ * 查询产羔记录列表(包含关联信息)
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ScLambingRecord scLambingRecord)
+ {
+ startPage();
+ List list = scLambingRecordService.selectScLambingRecordList(scLambingRecord);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出产羔记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:export')")
+ @Log(title = "产羔记录", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ScLambingRecord scLambingRecord)
+ {
+ List list = scLambingRecordService.selectScLambingRecordList(scLambingRecord);
+ ExcelUtil util = new ExcelUtil(ScLambingRecord.class);
+ util.exportExcel(response, list, "产羔记录数据");
+ }
+
+ /**
+ * 获取产羔记录详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(scLambingRecordService.selectScLambingRecordById(id));
+ }
+
+ /**
+ * 获取产羔记录详细信息(包含关联信息)
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:query')")
+ @GetMapping(value = "/detail/{id}")
+ public AjaxResult getDetailInfo(@PathVariable("id") Long id)
+ {
+ return success(scLambingRecordService.selectScLambingRecordDetailById(id));
+ }
+
+ /**
+ * 查询产羔详情(羔羊信息列表)
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:query')")
+ @GetMapping("/lamb_detail/{lambingRecordId}")
+ public AjaxResult getLambDetail(@PathVariable("lambingRecordId") Long lambingRecordId)
+ {
+ List list = scLambingRecordService.selectLambDetailByLambingRecordId(lambingRecordId);
+ return success(list);
+ }
+
+ /**
+ * 新增产羔记录(包含羔羊详情)
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:add')")
+ @Log(title = "产羔记录", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ScLambingRecord scLambingRecord)
+ {
+ return toAjax(scLambingRecordService.insertScLambingRecord(scLambingRecord));
+ }
+
+ /**
+ * 修改产羔记录
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:edit')")
+ @Log(title = "产羔记录", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ScLambingRecord scLambingRecord)
+ {
+ return toAjax(scLambingRecordService.updateScLambingRecord(scLambingRecord));
+ }
+
+ /**
+ * 删除产羔记录
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:remove')")
+ @Log(title = "产羔记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(scLambingRecordService.deleteScLambingRecordByIds(ids));
+ }
+
+ /**
+ * 批量新增羔羊详情
+ */
+ @PreAuthorize("@ss.hasPermi('breed:lambing_records:add')")
+ @Log(title = "羔羊详情", businessType = BusinessType.INSERT)
+ @PostMapping("/lamb_details/batch")
+ public AjaxResult addLambDetailsBatch(@RequestBody List lambDetails)
+ {
+ return toAjax(scLambingRecordService.insertLambDetailsBatch(lambDetails));
+ }
+}
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambDetail.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambDetail.java
new file mode 100644
index 0000000..27973a6
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambDetail.java
@@ -0,0 +1,163 @@
+package com.zhyc.module.produce.breed.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 羔羊详情对象 sc_lamb_detail
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public class ScLambDetail extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private Long id;
+
+ /** 产羔记录ID */
+ @Excel(name = "产羔记录ID")
+ private Long lambingRecordId;
+
+ /** 羔羊耳号 */
+ @Excel(name = "羔羊耳号")
+ private String lambEarNumber;
+
+ /** 羔羊品种 */
+ @Excel(name = "羔羊品种")
+ private String lambBreed;
+
+ /** 性别 */
+ @Excel(name = "性别")
+ private String gender;
+
+ /** 出生重量 */
+ @Excel(name = "出生重量")
+ private BigDecimal birthWeight;
+
+ /** 是否留养 */
+ @Excel(name = "是否留养")
+ private Boolean isRetained;
+
+ /** 家系 */
+ @Excel(name = "家系")
+ private String lineage;
+
+ /** 生日 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date birthday;
+
+ // getter和setter方法
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setLambingRecordId(Long lambingRecordId)
+ {
+ this.lambingRecordId = lambingRecordId;
+ }
+
+ public Long getLambingRecordId()
+ {
+ return lambingRecordId;
+ }
+
+ public void setLambEarNumber(String lambEarNumber)
+ {
+ this.lambEarNumber = lambEarNumber;
+ }
+
+ public String getLambEarNumber()
+ {
+ return lambEarNumber;
+ }
+
+ public void setLambBreed(String lambBreed)
+ {
+ this.lambBreed = lambBreed;
+ }
+
+ public String getLambBreed()
+ {
+ return lambBreed;
+ }
+
+ public void setGender(String gender)
+ {
+ this.gender = gender;
+ }
+
+ public String getGender()
+ {
+ return gender;
+ }
+
+ public void setBirthWeight(BigDecimal birthWeight)
+ {
+ this.birthWeight = birthWeight;
+ }
+
+ public BigDecimal getBirthWeight()
+ {
+ return birthWeight;
+ }
+
+ public void setIsRetained(Boolean isRetained)
+ {
+ this.isRetained = isRetained;
+ }
+
+ public Boolean getIsRetained()
+ {
+ return isRetained;
+ }
+
+ public void setLineage(String lineage)
+ {
+ this.lineage = lineage;
+ }
+
+ public String getLineage()
+ {
+ return lineage;
+ }
+
+ public void setBirthday(Date birthday)
+ {
+ this.birthday = birthday;
+ }
+
+ public Date getBirthday()
+ {
+ return birthday;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("lambingRecordId", getLambingRecordId())
+ .append("lambEarNumber", getLambEarNumber())
+ .append("lambBreed", getLambBreed())
+ .append("gender", getGender())
+ .append("birthWeight", getBirthWeight())
+ .append("isRetained", getIsRetained())
+ .append("lineage", getLineage())
+ .append("birthday", getBirthday())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambingRecord.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambingRecord.java
new file mode 100644
index 0000000..5aebf45
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScLambingRecord.java
@@ -0,0 +1,390 @@
+package com.zhyc.module.produce.breed.domain;
+
+import java.util.Date;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zhyc.common.annotation.Excel;
+import com.zhyc.common.core.domain.BaseEntity;
+
+/**
+ * 产羔记录对象 sc_lambing_record
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public class ScLambingRecord extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private Long id;
+
+ /** 羊只id */
+ @Excel(name = "羊只id")
+ private String sheepId;
+
+ /** 胎次 */
+ @Excel(name = "胎次")
+ private Long parity;
+
+ /** 产羔数量 */
+ @Excel(name = "产羔数量")
+ private Long lambsBorn;
+
+ /** 活羔数量 */
+ @Excel(name = "活羔数量")
+ private Long survival;
+
+ /** 技术员 */
+ @Excel(name = "技术员")
+ private String technician;
+
+ /** 产羔评分 */
+ @Excel(name = "产羔评分")
+ private Long score;
+
+ /** 备注 */
+ @Excel(name = "备注")
+ private String comment;
+
+ /** 创建日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date createTme;
+
+ // ========== 关联查询字段(简化版) ==========
+
+ /** 母羊耳号 */
+ @Excel(name = "母羊耳号")
+ private String femaleEarNumber;
+
+ /** 母羊品种 */
+ @Excel(name = "母羊品种")
+ private String femaleBreed;
+
+ /** 月龄 */
+ @Excel(name = "月龄")
+ private Integer monthAge;
+
+ /** 当前羊舍 */
+ @Excel(name = "当前羊舍")
+ private String currentShed;
+
+ /** 所在牧场 */
+ @Excel(name = "所在牧场")
+ private String farm;
+
+ /** 配种日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "配种日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date breedingDate;
+
+ /** 公羊耳号 */
+ @Excel(name = "公羊耳号")
+ private String maleEarNumber;
+
+ /** 公羊品种 */
+ @Excel(name = "公羊品种")
+ private String maleBreed;
+
+ /** 产羔时怀孕天数 */
+ @Excel(name = "产羔时怀孕天数")
+ private Integer pregnancyDays;
+
+ /** 折损数(计算字段) */
+ @Excel(name = "折损数")
+ private Integer loss;
+
+ /** 公羔数量(从羊只信息表统计) */
+ @Excel(name = "公羔数量")
+ private Integer maleCount;
+
+ /** 母羔数量(从羊只信息表统计) */
+ @Excel(name = "母羔数量")
+ private Integer femaleCount;
+
+ /** 留养公羔数量 */
+ @Excel(name = "留养公羔数量")
+ private Integer retainedMaleCount;
+
+ /** 留养母羔数量 */
+ @Excel(name = "留养母羔数量")
+ private Integer retainedFemaleCount;
+
+ /** 未留养公羔数量 */
+ @Excel(name = "未留养公羔数量")
+ private Integer unretainedMaleCount;
+
+ /** 未留养母羔数量 */
+ @Excel(name = "未留养母羔数量")
+ private Integer unretainedFemaleCount;
+
+ /** 羔羊信息列表(从羊只信息表查询) */
+ private List lambInfoList;
+
+ // ========== 原有getter和setter方法 ==========
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setSheepId(String sheepId)
+ {
+ this.sheepId = sheepId;
+ }
+
+ public String getSheepId()
+ {
+ return sheepId;
+ }
+
+ public void setParity(Long parity)
+ {
+ this.parity = parity;
+ }
+
+ public Long getParity()
+ {
+ return parity;
+ }
+
+ public void setLambsBorn(Long lambsBorn)
+ {
+ this.lambsBorn = lambsBorn;
+ }
+
+ public Long getLambsBorn()
+ {
+ return lambsBorn;
+ }
+
+ public void setSurvival(Long survival)
+ {
+ this.survival = survival;
+ }
+
+ public Long getSurvival()
+ {
+ return survival;
+ }
+
+ public void setTechnician(String technician)
+ {
+ this.technician = technician;
+ }
+
+ public String getTechnician()
+ {
+ return technician;
+ }
+
+ public void setScore(Long score)
+ {
+ this.score = score;
+ }
+
+ public Long getScore()
+ {
+ return score;
+ }
+
+ public void setComment(String comment)
+ {
+ this.comment = comment;
+ }
+
+ public String getComment()
+ {
+ return comment;
+ }
+
+ public void setCreateTme(Date createTme)
+ {
+ this.createTme = createTme;
+ }
+
+ public Date getCreateTme()
+ {
+ return createTme;
+ }
+
+ // ========== 简化版关联字段的getter和setter方法 ==========
+
+ public String getFemaleEarNumber() {
+ return femaleEarNumber;
+ }
+
+ public void setFemaleEarNumber(String femaleEarNumber) {
+ this.femaleEarNumber = femaleEarNumber;
+ }
+
+ public String getFemaleBreed() {
+ return femaleBreed;
+ }
+
+ public void setFemaleBreed(String femaleBreed) {
+ this.femaleBreed = femaleBreed;
+ }
+
+ public Integer getMonthAge() {
+ return monthAge;
+ }
+
+ public void setMonthAge(Integer monthAge) {
+ this.monthAge = monthAge;
+ }
+
+ public String getCurrentShed() {
+ return currentShed;
+ }
+
+ public void setCurrentShed(String currentShed) {
+ this.currentShed = currentShed;
+ }
+
+ public String getFarm() {
+ return farm;
+ }
+
+ public void setFarm(String farm) {
+ this.farm = farm;
+ }
+
+ public Date getBreedingDate() {
+ return breedingDate;
+ }
+
+ public void setBreedingDate(Date breedingDate) {
+ this.breedingDate = breedingDate;
+ }
+
+ public String getMaleEarNumber() {
+ return maleEarNumber;
+ }
+
+ public void setMaleEarNumber(String maleEarNumber) {
+ this.maleEarNumber = maleEarNumber;
+ }
+
+ public String getMaleBreed() {
+ return maleBreed;
+ }
+
+ public void setMaleBreed(String maleBreed) {
+ this.maleBreed = maleBreed;
+ }
+
+ public Integer getPregnancyDays() {
+ return pregnancyDays;
+ }
+
+ public void setPregnancyDays(Integer pregnancyDays) {
+ this.pregnancyDays = pregnancyDays;
+ }
+
+ public Integer getLoss() {
+ return loss;
+ }
+
+ public void setLoss(Integer loss) {
+ this.loss = loss;
+ }
+
+ public Integer getMaleCount() {
+ return maleCount;
+ }
+
+ public void setMaleCount(Integer maleCount) {
+ this.maleCount = maleCount;
+ }
+
+ public Integer getFemaleCount() {
+ return femaleCount;
+ }
+
+ public void setFemaleCount(Integer femaleCount) {
+ this.femaleCount = femaleCount;
+ }
+
+ public Integer getRetainedMaleCount() {
+ return retainedMaleCount;
+ }
+
+ public void setRetainedMaleCount(Integer retainedMaleCount) {
+ this.retainedMaleCount = retainedMaleCount;
+ }
+
+ public Integer getRetainedFemaleCount() {
+ return retainedFemaleCount;
+ }
+
+ public void setRetainedFemaleCount(Integer retainedFemaleCount) {
+ this.retainedFemaleCount = retainedFemaleCount;
+ }
+
+ public Integer getUnretainedMaleCount() {
+ return unretainedMaleCount;
+ }
+
+ public void setUnretainedMaleCount(Integer unretainedMaleCount) {
+ this.unretainedMaleCount = unretainedMaleCount;
+ }
+
+ public Integer getUnretainedFemaleCount() {
+ return unretainedFemaleCount;
+ }
+
+ public void setUnretainedFemaleCount(Integer unretainedFemaleCount) {
+ this.unretainedFemaleCount = unretainedFemaleCount;
+ }
+
+ public List getLambInfoList() {
+ return lambInfoList;
+ }
+
+ public void setLambInfoList(List lambInfoList) {
+ this.lambInfoList = lambInfoList;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("sheepId", getSheepId())
+ .append("parity", getParity())
+ .append("lambsBorn", getLambsBorn())
+ .append("survival", getSurvival())
+ .append("technician", getTechnician())
+ .append("score", getScore())
+ .append("comment", getComment())
+ .append("createBy", getCreateBy())
+ .append("createTme", getCreateTme())
+ .append("femaleEarNumber", getFemaleEarNumber())
+ .append("femaleBreed", getFemaleBreed())
+ .append("farm", getFarm())
+ .toString();
+ }
+}
+
+/**
+ * 羊只羔羊信息对象(用于产羔详情显示)
+ */
+class SheepLambInfo {
+ private String lambEarNumber; // 羔羊耳号
+ private String lambBreed; // 羔羊品种
+ private String gender; // 性别
+ private Double birthWeight; // 出生重量
+ private Boolean isRetained; // 是否留养
+ private String lineage; // 家系
+ private Date birthday; // 生日
+
+ // getter和setter方法...
+}
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambDetailMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambDetailMapper.java
new file mode 100644
index 0000000..c562ae2
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambDetailMapper.java
@@ -0,0 +1,85 @@
+package com.zhyc.module.produce.breed.mapper;
+
+import java.util.List;
+import com.zhyc.module.produce.breed.domain.ScLambDetail;
+
+/**
+ * 羔羊详情Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ScLambDetailMapper
+{
+ /**
+ * 查询羔羊详情
+ *
+ * @param id 羔羊详情主键
+ * @return 羔羊详情
+ */
+ public ScLambDetail selectScLambDetailById(Long id);
+
+ /**
+ * 查询羔羊详情列表
+ *
+ * @param scLambDetail 羔羊详情
+ * @return 羔羊详情集合
+ */
+ public List selectScLambDetailList(ScLambDetail scLambDetail);
+
+ /**
+ * 根据产羔记录ID查询羔羊详情列表
+ *
+ * @param lambingRecordId 产羔记录ID
+ * @return 羔羊详情集合
+ */
+ public List selectScLambDetailByLambingRecordId(Long lambingRecordId);
+
+ /**
+ * 新增羔羊详情
+ *
+ * @param scLambDetail 羔羊详情
+ * @return 结果
+ */
+ public int insertScLambDetail(ScLambDetail scLambDetail);
+
+ /**
+ * 批量新增羔羊详情
+ *
+ * @param lambDetails 羔羊详情列表
+ * @return 结果
+ */
+ public int insertScLambDetailBatch(List lambDetails);
+
+ /**
+ * 修改羔羊详情
+ *
+ * @param scLambDetail 羔羊详情
+ * @return 结果
+ */
+ public int updateScLambDetail(ScLambDetail scLambDetail);
+
+ /**
+ * 删除羔羊详情
+ *
+ * @param id 羔羊详情主键
+ * @return 结果
+ */
+ public int deleteScLambDetailById(Long id);
+
+ /**
+ * 批量删除羔羊详情
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteScLambDetailByIds(Long[] ids);
+
+ /**
+ * 根据产羔记录ID删除羔羊详情
+ *
+ * @param lambingRecordId 产羔记录ID
+ * @return 结果
+ */
+ public int deleteScLambDetailByLambingRecordId(Long lambingRecordId);
+}
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambingRecordMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambingRecordMapper.java
new file mode 100644
index 0000000..7719104
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScLambingRecordMapper.java
@@ -0,0 +1,70 @@
+package com.zhyc.module.produce.breed.mapper;
+
+import java.util.List;
+import com.zhyc.module.produce.breed.domain.ScLambingRecord;
+import com.zhyc.module.produce.breed.domain.ScLambDetail;
+
+/**
+ * 产羔记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface ScLambingRecordMapper
+{
+ /**
+ * 查询产羔记录
+ *
+ * @param id 产羔记录主键
+ * @return 产羔记录
+ */
+ public ScLambingRecord selectScLambingRecordById(Long id);
+
+ /**
+ * 查询产羔记录列表(包含关联信息)
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 产羔记录集合
+ */
+ public List selectScLambingRecordList(ScLambingRecord scLambingRecord);
+
+ /**
+ * 查询产羔记录详细信息(包含关联信息)
+ *
+ * @param id 产羔记录主键
+ * @return 产羔记录
+ */
+ public ScLambingRecord selectScLambingRecordDetailById(Long id);
+
+ /**
+ * 新增产羔记录
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ public int insertScLambingRecord(ScLambingRecord scLambingRecord);
+
+ /**
+ * 修改产羔记录
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ public int updateScLambingRecord(ScLambingRecord scLambingRecord);
+
+ /**
+ * 删除产羔记录
+ *
+ * @param id 产羔记录主键
+ * @return 结果
+ */
+ public int deleteScLambingRecordById(Long id);
+
+ /**
+ * 批量删除产羔记录
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteScLambingRecordByIds(Long[] ids);
+}
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScLambingRecordService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScLambingRecordService.java
new file mode 100644
index 0000000..16338a9
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScLambingRecordService.java
@@ -0,0 +1,86 @@
+package com.zhyc.module.produce.breed.service;
+
+import java.util.List;
+import com.zhyc.module.produce.breed.domain.ScLambingRecord;
+import com.zhyc.module.produce.breed.domain.ScLambDetail;
+
+/**
+ * 产羔记录Service接口
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+public interface IScLambingRecordService
+{
+ /**
+ * 查询产羔记录
+ *
+ * @param id 产羔记录主键
+ * @return 产羔记录
+ */
+ public ScLambingRecord selectScLambingRecordById(Long id);
+
+ /**
+ * 查询产羔记录列表(包含关联信息)
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 产羔记录集合
+ */
+ public List selectScLambingRecordList(ScLambingRecord scLambingRecord);
+
+ /**
+ * 查询产羔记录详细信息(包含关联信息)
+ *
+ * @param id 产羔记录主键
+ * @return 产羔记录
+ */
+ public ScLambingRecord selectScLambingRecordDetailById(Long id);
+
+ /**
+ * 新增产羔记录(包含羔羊详情)
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ public int insertScLambingRecord(ScLambingRecord scLambingRecord);
+
+ /**
+ * 修改产羔记录
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ public int updateScLambingRecord(ScLambingRecord scLambingRecord);
+
+ /**
+ * 批量删除产羔记录
+ *
+ * @param ids 需要删除的产羔记录主键集合
+ * @return 结果
+ */
+ public int deleteScLambingRecordByIds(Long[] ids);
+
+ /**
+ * 删除产羔记录信息
+ *
+ * @param id 产羔记录主键
+ * @return 结果
+ */
+ public int deleteScLambingRecordById(Long id);
+
+ /**
+ * 根据产羔记录ID查询羔羊详情列表
+ *
+ * @param lambingRecordId 产羔记录ID
+ * @return 羔羊详情列表
+ */
+ public List selectLambDetailByLambingRecordId(Long lambingRecordId);
+
+ /**
+ * 批量新增羔羊详情
+ *
+ * @param lambDetails 羔羊详情列表
+ * @return 结果
+ */
+ public int insertLambDetailsBatch(List lambDetails);
+}
\ No newline at end of file
diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScLambingRecordServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScLambingRecordServiceImpl.java
new file mode 100644
index 0000000..2f0998a
--- /dev/null
+++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScLambingRecordServiceImpl.java
@@ -0,0 +1,112 @@
+package com.zhyc.module.produce.breed.service.impl;
+
+import java.util.List;
+
+import com.zhyc.module.produce.breed.domain.ScLambDetail;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zhyc.module.produce.breed.mapper.ScLambingRecordMapper;
+import com.zhyc.module.produce.breed.domain.ScLambingRecord;
+import com.zhyc.module.produce.breed.service.IScLambingRecordService;
+import java.util.Collections;
+
+/**
+ * 产羔记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-07-11
+ */
+@Service
+public class ScLambingRecordServiceImpl implements IScLambingRecordService
+{
+ @Autowired
+ private ScLambingRecordMapper scLambingRecordMapper;
+
+ /**
+ * 查询产羔记录
+ *
+ * @param id 产羔记录主键
+ * @return 产羔记录
+ */
+ @Override
+ public ScLambingRecord selectScLambingRecordById(Long id)
+ {
+ return scLambingRecordMapper.selectScLambingRecordById(id);
+ }
+
+ /**
+ * 查询产羔记录列表
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 产羔记录
+ */
+ @Override
+ public List selectScLambingRecordList(ScLambingRecord scLambingRecord)
+ {
+ return scLambingRecordMapper.selectScLambingRecordList(scLambingRecord);
+ }
+
+ @Override
+ public ScLambingRecord selectScLambingRecordDetailById(Long id) {
+ return null;
+ }
+
+ /**
+ * 新增产羔记录
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ @Override
+ public int insertScLambingRecord(ScLambingRecord scLambingRecord)
+ {
+ return scLambingRecordMapper.insertScLambingRecord(scLambingRecord);
+ }
+
+ /**
+ * 修改产羔记录
+ *
+ * @param scLambingRecord 产羔记录
+ * @return 结果
+ */
+ @Override
+ public int updateScLambingRecord(ScLambingRecord scLambingRecord)
+ {
+ return scLambingRecordMapper.updateScLambingRecord(scLambingRecord);
+ }
+
+ /**
+ * 批量删除产羔记录
+ *
+ * @param ids 需要删除的产羔记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScLambingRecordByIds(Long[] ids)
+ {
+ return scLambingRecordMapper.deleteScLambingRecordByIds(ids);
+ }
+
+ /**
+ * 删除产羔记录信息
+ *
+ * @param id 产羔记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteScLambingRecordById(Long id)
+ {
+ return scLambingRecordMapper.deleteScLambingRecordById(id);
+ }
+
+
+ @Override
+ public List selectLambDetailByLambingRecordId(Long lambingRecordId) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public int insertLambDetailsBatch(List lambDetails) {
+ return 0;
+ }
+}
diff --git a/zhyc-module/src/main/resources/mapper/breed/ScLambingRecordMapper.xml b/zhyc-module/src/main/resources/mapper/breed/ScLambingRecordMapper.xml
new file mode 100644
index 0000000..ed000d9
--- /dev/null
+++ b/zhyc-module/src/main/resources/mapper/breed/ScLambingRecordMapper.xml
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, sheep_id, parity, lambs_born, survival, technician, score, comment, create_by, create_tme from sc_lambing_record
+
+
+
+
+ SELECT
+ 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,
+
+ -- 从sc_breed_record表获取配种信息
+ br.create_time as breeding_date,
+ DATEDIFF(lr.create_tme, br.create_time) as pregnancy_days,
+
+ -- 从bas_sheep表获取公羊信息
+ father.manage_tags as male_ear_number,
+ father.variety_id 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
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into sc_lambing_record
+
+ sheep_id,
+ parity,
+ lambs_born,
+ survival,
+ technician,
+ score,
+ comment,
+ create_by,
+ create_tme,
+
+
+ #{sheepId},
+ #{parity},
+ #{lambsBorn},
+ #{survival},
+ #{technician},
+ #{score},
+ #{comment},
+ #{createBy},
+ #{createTme},
+
+
+
+
+
+ update sc_lambing_record
+
+ sheep_id = #{sheepId},
+ parity = #{parity},
+ lambs_born = #{lambsBorn},
+ survival = #{survival},
+ technician = #{technician},
+ score = #{score},
+ comment = #{comment},
+ create_by = #{createBy},
+ create_tme = #{createTme},
+
+ where id = #{id}
+
+
+
+
+ delete from sc_lambing_record where id = #{id}
+
+
+
+
+ delete from sc_lambing_record where id in
+
+ #{id}
+
+
+
\ No newline at end of file
From c7ad83addf5a20ce28e55c3b2a999a23e3b15d5d Mon Sep 17 00:00:00 2001
From: zyk
Date: Sun, 13 Jul 2025 13:57:43 +0800
Subject: [PATCH 8/9] =?UTF-8?q?zyk=20=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
zhyc-module/pom.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/zhyc-module/pom.xml b/zhyc-module/pom.xml
index a0b435f..ba07663 100644
--- a/zhyc-module/pom.xml
+++ b/zhyc-module/pom.xml
@@ -20,6 +20,8 @@
org.projectlombok
lombok
+ 1.18.36
+ provided
From 1ddc0419f8344502d946a69053e1db6c17253947 Mon Sep 17 00:00:00 2001
From: zyk
Date: Sun, 13 Jul 2025 14:00:59 +0800
Subject: [PATCH 9/9] =?UTF-8?q?zyk=20=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
zhyc-module/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zhyc-module/pom.xml b/zhyc-module/pom.xml
index ba07663..a3a00b5 100644
--- a/zhyc-module/pom.xml
+++ b/zhyc-module/pom.xml
@@ -20,7 +20,7 @@
org.projectlombok
lombok
- 1.18.36
+ 1.18.38
provided