From 137b495af7f58e692a51294d09b550d8bb3b1a10 Mon Sep 17 00:00:00 2001 From: ll <1079863556@qq.com> Date: Tue, 29 Jul 2025 22:25:19 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=8F=AD=E6=AC=A1=E5=A5=B6=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NpMilkProdClassesController.java | 69 ++++++++++++++ .../controller/RanchController.java | 23 +++++ .../XzParityCorrectionController.java | 18 +++- .../domain/NpMilkProdClasses.java | 80 ++++++++++++++++ .../module/dairyProducts/domain/Ranch.java | 12 +++ .../mapper/NpMilkProdClassesMapper.java | 25 +++++ .../dairyProducts/mapper/RanchMapper.java | 10 ++ .../service/INpMilkProdClassesService.java | 16 ++++ .../dairyProducts/service/IRanchService.java | 8 ++ .../impl/NpMilkProdClassesServiceImpl.java | 62 +++++++++++++ .../service/impl/RanchServiceImpl.java | 19 ++++ .../dairyProducts/NpMilkProdClassesMapper.xml | 93 +++++++++++++++++++ 12 files changed, 430 insertions(+), 5 deletions(-) create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkProdClassesController.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/RanchController.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkProdClasses.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/Ranch.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkProdClassesMapper.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/RanchMapper.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkProdClassesService.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/IRanchService.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkProdClassesServiceImpl.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/RanchServiceImpl.java create mode 100644 zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkProdClassesMapper.xml diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkProdClassesController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkProdClassesController.java new file mode 100644 index 0000000..32e7db8 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkProdClassesController.java @@ -0,0 +1,69 @@ +package com.zhyc.module.dairyProducts.controller; + +import java.util.Date; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +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.core.page.TableDataInfo; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.module.dairyProducts.domain.NpMilkProdClasses; +import com.zhyc.module.dairyProducts.service.INpMilkProdClassesService; + +@RestController +@RequestMapping("/milkProdclasses/milkProdclasses") +public class NpMilkProdClassesController extends BaseController { + + @Autowired + private INpMilkProdClassesService npMilkProdClassesService; + + @PreAuthorize("@ss.hasPermi('milkProdclasses:milkProdclasses:list')") + @GetMapping("/list") + public TableDataInfo list( + @RequestParam(required = false) Date datetimeStart, + @RequestParam(required = false) Date datetimeEnd, + @RequestParam(required = false) String manageEarNo, // 改为单个字符串,模糊 + @RequestParam(required = false) String factory, + @RequestParam(required = false) Integer classes) { + startPage(); + List list = npMilkProdClassesService + .selectNpMilkProdClassesList(datetimeStart, datetimeEnd, + manageEarNo, factory, classes); + return getDataTable(list); + } + + @PreAuthorize("@ss.hasPermi('milkProdclasses:milkProdclasses:import')") + @Log(title = "班次产奶", businessType = BusinessType.IMPORT) + @PostMapping("/import") + public AjaxResult importData(MultipartFile file) { + try { + ExcelUtil util = new ExcelUtil<>(NpMilkProdClasses.class); + List list = util.importExcel(file.getInputStream()); + int rows = npMilkProdClassesService.importMilkProdClasses(list); + return success("成功导入 " + rows + " 行数据"); + } catch (Exception e) { + return error("导入失败:" + e.getMessage()); + } + } + + @PreAuthorize("@ss.hasPermi('milkProdclasses:milkProdclasses:export')") + @Log(title = "班次产奶", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, + @RequestParam(required = false) Date datetimeStart, + @RequestParam(required = false) Date datetimeEnd, + @RequestParam(required = false) String manageEarNos, + @RequestParam(required = false) String factory, + @RequestParam(required = false) Integer classes) { + List list = npMilkProdClassesService.selectNpMilkProdClassesList(datetimeStart, datetimeEnd, manageEarNos, factory, classes); + ExcelUtil util = new ExcelUtil<>(NpMilkProdClasses.class); + util.exportExcel(response, list, "班次产奶数据"); + } +} + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/RanchController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/RanchController.java new file mode 100644 index 0000000..9447a07 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/RanchController.java @@ -0,0 +1,23 @@ +package com.zhyc.module.dairyProducts.controller; + +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.module.dairyProducts.domain.Ranch; +import com.zhyc.module.dairyProducts.service.IRanchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/dairyProducts/ranch") +public class RanchController extends BaseController { + + @Autowired + private IRanchService ranchService; + + @GetMapping("/list") + public AjaxResult list() { + return success(ranchService.selectAllRanch()); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/XzParityCorrectionController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/XzParityCorrectionController.java index e103d79..ee52381 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/XzParityCorrectionController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/XzParityCorrectionController.java @@ -38,12 +38,20 @@ public class XzParityCorrectionController extends BaseController * 查询胎次校正列表 */ @PreAuthorize("@ss.hasPermi('parityCorrection:parityCorrection:list')") - @GetMapping("/list") - public TableDataInfo list(XzParityCorrection xzParityCorrection) - { - startPage(); +// @GetMapping("/list") +// public TableDataInfo list(XzParityCorrection xzParityCorrection) +// { +// startPage(); +// List list = xzParityCorrectionService.selectXzParityCorrectionList(xzParityCorrection); +// return getDataTable(list); +// } + /** + * 获取全部胎次校正(无需分页,供下拉/列表直接显示) + */ + @GetMapping("/listAll") + public AjaxResult listAll(XzParityCorrection xzParityCorrection){ List list = xzParityCorrectionService.selectXzParityCorrectionList(xzParityCorrection); - return getDataTable(list); + return success(list); // 直接返回数组 } /** diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkProdClasses.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkProdClasses.java new file mode 100644 index 0000000..19e2ce9 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkProdClasses.java @@ -0,0 +1,80 @@ +package com.zhyc.module.dairyProducts.domain; + +import java.io.Serializable; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zhyc.common.annotation.Excel; + + + +public class NpMilkProdClasses implements Serializable { + private static final long serialVersionUID = 1L; + + private Long id; // 主键ID + private Date createTime; // 创建时间 + private Date updateTime; // 更新时间 + + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "日期") + private Date datetime; + + @Excel(name = "管理耳号") + private String manageEarNo; + + @Excel(name = "电子耳号") + private String electronicEarNo; + + @Excel(name = "胎次") + private Integer parity; + + @Excel(name = "厂区") + private String factory; + + @Excel(name = "班次") + private Integer classes; + + @Excel(name = "班次产奶量") + private Double milk; + + @Excel(name = "班次校正奶量") + private Double correctedMilk; + + private String sheepId; + + // Getters and Setters + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public Date getCreateTime() { return createTime; } + public void setCreateTime(Date createTime) { this.createTime = createTime; } + + public Date getUpdateTime() { return updateTime; } + public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + + public Date getDatetime() { return datetime; } + public void setDatetime(Date datetime) { this.datetime = datetime; } + + public String getManageEarNo() { return manageEarNo; } + public void setManageEarNo(String manageEarNo) { this.manageEarNo = manageEarNo; } + + public String getElectronicEarNo() { return electronicEarNo; } + public void setElectronicEarNo(String electronicEarNo) { this.electronicEarNo = electronicEarNo; } + + public Integer getParity() { return parity; } + public void setParity(Integer parity) { this.parity = parity; } + + public String getFactory() { return factory; } + public void setFactory(String factory) { this.factory = factory; } + + public Integer getClasses() { return classes; } + public void setClasses(Integer classes) { this.classes = classes; } + + public Double getMilk() { return milk; } + public void setMilk(Double milk) { this.milk = milk; } + + public Double getCorrectedMilk() { return correctedMilk; } + public void setCorrectedMilk(Double correctedMilk) { this.correctedMilk = correctedMilk; } + + public String getSheepId() { return sheepId; } + public void setSheepId(String sheepId) { this.sheepId = sheepId; } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/Ranch.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/Ranch.java new file mode 100644 index 0000000..7486310 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/Ranch.java @@ -0,0 +1,12 @@ +package com.zhyc.module.dairyProducts.domain; + +public class Ranch { + private String ranchCode; + private String ranchName; + + public String getRanchCode() { return ranchCode; } + public void setRanchCode(String ranchCode) { this.ranchCode = ranchCode; } + + public String getRanchName() { return ranchName; } + public void setRanchName(String ranchName) { this.ranchName = ranchName; } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkProdClassesMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkProdClassesMapper.java new file mode 100644 index 0000000..82a3238 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkProdClassesMapper.java @@ -0,0 +1,25 @@ +package com.zhyc.module.dairyProducts.mapper; + +import org.apache.ibatis.annotations.Param; +import com.zhyc.module.dairyProducts.domain.NpMilkProdClasses; +import java.util.Date; +import java.util.List; + +public interface NpMilkProdClassesMapper { + List selectNpMilkProdClassesList( + @Param("datetimeStart") Date datetimeStart, + @Param("datetimeEnd") Date datetimeEnd, + @Param("manageEarNo") String manageEarNo, + @Param("factory") String factory, + @Param("classes") Integer classes); + + int insertNpMilkProdClasses(NpMilkProdClasses row); + + String selectSheepIdByManageEarNo(@Param("manageEarNo") String manageEarNo); + + Double getWeightCorrection(@Param("date") Date date, @Param("factory") String factory); + + Double getParityCorrection(@Param("parity") Integer parity); + + Double getDryMatterCorrection(@Param("date") Date date, @Param("factory") String factory); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/RanchMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/RanchMapper.java new file mode 100644 index 0000000..a234521 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/RanchMapper.java @@ -0,0 +1,10 @@ +package com.zhyc.module.dairyProducts.mapper; + +import com.zhyc.module.dairyProducts.domain.Ranch; +import org.apache.ibatis.annotations.Select; +import java.util.List; + +public interface RanchMapper { + @Select("SELECT ranch AS ranchName, ranch AS ranchCode FROM da_ranch") + List selectAllRanch(); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkProdClassesService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkProdClassesService.java new file mode 100644 index 0000000..b582994 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkProdClassesService.java @@ -0,0 +1,16 @@ +package com.zhyc.module.dairyProducts.service; + +import java.util.Date; +import java.util.List; +import com.zhyc.module.dairyProducts.domain.NpMilkProdClasses; + +public interface INpMilkProdClassesService { + List selectNpMilkProdClassesList( + Date datetimeStart, + Date datetimeEnd, + String manageEarNo, // 改为单个 String + String factory, + Integer classes); + + int importMilkProdClasses(List list); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/IRanchService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/IRanchService.java new file mode 100644 index 0000000..15d3e1d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/IRanchService.java @@ -0,0 +1,8 @@ +package com.zhyc.module.dairyProducts.service; + +import com.zhyc.module.dairyProducts.domain.Ranch; +import java.util.List; + +public interface IRanchService { + List selectAllRanch(); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkProdClassesServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkProdClassesServiceImpl.java new file mode 100644 index 0000000..1c26057 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkProdClassesServiceImpl.java @@ -0,0 +1,62 @@ +package com.zhyc.module.dairyProducts.service.impl; + +import com.zhyc.module.dairyProducts.domain.NpMilkProdClasses; +import com.zhyc.module.dairyProducts.mapper.NpMilkProdClassesMapper; +import com.zhyc.module.dairyProducts.service.INpMilkProdClassesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class NpMilkProdClassesServiceImpl implements INpMilkProdClassesService { + + @Autowired + private NpMilkProdClassesMapper mapper; + + @Override + public List selectNpMilkProdClassesList(Date datetimeStart, Date datetimeEnd, + String manageEarNo, String factory, Integer classes) { + return mapper.selectNpMilkProdClassesList(datetimeStart, datetimeEnd, manageEarNo, factory, classes); + } + + @Override + public int importMilkProdClasses(List list) { + int count = 0; + for (NpMilkProdClasses item : list) { + // 根据管理耳号查 sheep_id + String sheepId = mapper.selectSheepIdByManageEarNo(item.getManageEarNo()); + if (sheepId == null) continue; + + item.setSheepId(sheepId); + + // 计算校正奶量 + Double correctedMilk = calculateCorrectedMilk(item); + item.setCorrectedMilk(correctedMilk); + + // 插入数据 + count += mapper.insertNpMilkProdClasses(item); + } + return count; + } + + private Double calculateCorrectedMilk(NpMilkProdClasses item) { + Double milk = item.getMilk(); + if (milk == null) return null; + + // 1. 称重矫正系数 + Double weightCorrection = mapper.getWeightCorrection(item.getDatetime(), item.getFactory()); + if (weightCorrection == null) weightCorrection = 1.0; + + // 2. 胎次矫正系数 + Double parityCorrection = mapper.getParityCorrection(item.getParity()); + if (parityCorrection == null) parityCorrection = 1.0; + + // 3. 干物质矫正系数 + Double dryMatterCorrection = mapper.getDryMatterCorrection(item.getDatetime(), item.getFactory()); + if (dryMatterCorrection == null) dryMatterCorrection = 1.0; + + return milk * weightCorrection * parityCorrection * dryMatterCorrection; + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/RanchServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/RanchServiceImpl.java new file mode 100644 index 0000000..281d32e --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/RanchServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhyc.module.dairyProducts.service.impl; + +import com.zhyc.module.dairyProducts.domain.Ranch; +import com.zhyc.module.dairyProducts.mapper.RanchMapper; +import com.zhyc.module.dairyProducts.service.IRanchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; + +@Service +public class RanchServiceImpl implements IRanchService { + @Autowired + private RanchMapper ranchMapper; + + @Override + public List selectAllRanch() { + return ranchMapper.selectAllRanch(); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkProdClassesMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkProdClassesMapper.xml new file mode 100644 index 0000000..cc20df3 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkProdClassesMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO np_milk_prod_classes (datetime, sheep_id, classes, milk, corrected_milk) + VALUES (#{datetime}, #{sheepId}, #{classes}, #{milk}, #{correctedMilk}) + + + + From f999f00a6e8cc96e48e4cb22dc8938b81808d2f5 Mon Sep 17 00:00:00 2001 From: ll <1079863556@qq.com> Date: Thu, 31 Jul 2025 23:13:45 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E7=8F=AD=E6=AC=A1=E5=A5=B6=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NpMilkInOutStoreController.java | 70 ++++++++ .../NpSheepMilkAnalysisController.java | 79 +++++++++ .../domain/NpMilkInOutStore.java | 128 ++++++++++++++ .../domain/NpSheepMilkAnalysis.java | 162 ++++++++++++++++++ .../mapper/NpMilkInOutStoreMapper.java | 23 +++ .../mapper/NpSheepMilkAnalysisMapper.java | 19 ++ .../service/INpMilkInOutStoreService.java | 15 ++ .../service/INpSheepMilkAnalysisService.java | 19 ++ .../impl/NpMilkInOutStoreServiceImpl.java | 82 +++++++++ .../impl/NpSheepMilkAnalysisServiceImpl.java | 46 +++++ .../dairyProducts/NpMilkInOutStoreMapper.xml | 58 +++++++ .../NpSheepMilkAnalysisMapper.xml | 152 ++++++++++++++++ 12 files changed, 853 insertions(+) create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java create mode 100644 zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml create mode 100644 zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java new file mode 100644 index 0000000..5016b90 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java @@ -0,0 +1,70 @@ +package com.zhyc.module.dairyProducts.controller; + +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.dairyProducts.domain.NpMilkInOutStore; +import com.zhyc.module.dairyProducts.service.INpMilkInOutStoreService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/milkInOutStore") +public class NpMilkInOutStoreController extends BaseController { + + @Autowired + private INpMilkInOutStoreService service; + + /** 查询(日期区间)+ 动态列 */ + @PreAuthorize("@ss.hasPermi('milkInOutStore:list')") + @GetMapping("/list") + public TableDataInfo list( + @RequestParam(required=false) Date datetimeStart, + @RequestParam(required=false) Date datetimeEnd + ) { + startPage(); + List> rows = service.selectWithDynamicColumns(datetimeStart, datetimeEnd); + return getDataTable(rows); + } + + /** 导入 Excel */ + @Log(title="导入羊奶出入库", businessType=BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('milkInOutStore:import')") + @PostMapping("/import") + public AjaxResult importExcel(@RequestParam("file") MultipartFile file) throws Exception { + List> list = service.parseImportExcel(file); + service.batchInsertFromRows(list); + return AjaxResult.success("导入成功"); + } + + /** 导出 Excel */ + @PreAuthorize("@ss.hasPermi('milkInOutStore:export')") + @Log(title="导出羊奶出入库", businessType=BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, + @RequestParam(required=false) Date datetimeStart, + @RequestParam(required=false) Date datetimeEnd + ) { + List> rows = service.selectWithDynamicColumns(datetimeStart, datetimeEnd); + // 解决方案:强制转换并压制警告 + @SuppressWarnings("unchecked") + ExcelUtil> util = new ExcelUtil<>((Class>) (Class) Map.class); + } + + /** 获取可选列定义(饲喂来源 + 销售去向) */ + @PreAuthorize("@ss.hasPermi('milkInOutStore:cols')") + @GetMapping("/columns") + public AjaxResult getColumns(){ + return AjaxResult.success(service.getAllColumnOptions()); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java new file mode 100644 index 0000000..cf86004 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java @@ -0,0 +1,79 @@ +package com.zhyc.module.dairyProducts.controller; + +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.core.page.TableDataInfo; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.module.dairyProducts.domain.NpSheepMilkAnalysis; +import com.zhyc.module.dairyProducts.service.INpSheepMilkAnalysisService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/dairyProducts/sheepMilkAnalysis") +public class NpSheepMilkAnalysisController extends BaseController { + + @Autowired + private INpSheepMilkAnalysisService npSheepMilkAnalysisService; + + /** + * 查询奶产量分析列表 + */ + @GetMapping("/list") + public TableDataInfo list(NpSheepMilkAnalysis analysis) { + startPage(); + List list = npSheepMilkAnalysisService.selectNpSheepMilkAnalysisList(analysis); + return getDataTable(list); + } + + /** + * 获取单个分析记录详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(npSheepMilkAnalysisService.selectNpSheepMilkAnalysisById(id)); + } + + /** + * 新增奶产量分析记录 + */ + @Log(title = "奶产量分析", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody NpSheepMilkAnalysis analysis) { + return toAjax(npSheepMilkAnalysisService.insertNpSheepMilkAnalysis(analysis)); + } + + /** + * 修改奶产量分析记录 + */ + @Log(title = "奶产量分析", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody NpSheepMilkAnalysis analysis) { + return toAjax(npSheepMilkAnalysisService.updateNpSheepMilkAnalysis(analysis)); + } + + /** + * 删除奶产量分析记录 + */ + @Log(title = "奶产量分析", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(npSheepMilkAnalysisService.deleteNpSheepMilkAnalysisByIds(ids)); + } + + /** + * 导出奶产量分析记录 + */ + @Log(title = "奶产量分析", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(NpSheepMilkAnalysis analysis) { + List list = npSheepMilkAnalysisService.selectNpSheepMilkAnalysisList(analysis); + ExcelUtil util = new ExcelUtil<>(NpSheepMilkAnalysis.class); + return util.exportExcel(list, "奶产量分析数据"); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java new file mode 100644 index 0000000..770ace1 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java @@ -0,0 +1,128 @@ +package com.zhyc.module.dairyProducts.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +public class NpMilkInOutStore extends BaseEntity { + private Integer id; + + @Excel(name = "日期") + private Date datetime; + + @Excel(name = "羊数") + private Integer num; + + @Excel(name = "初乳羊") + private Integer colostSheep; + + @Excel(name = "商乳入库") + private BigDecimal commercialIntake; + + @Excel(name = "抗乳入库") + private BigDecimal antiIntake; + + @Excel(name = "初乳入库") + private BigDecimal colostIntake; + + @Excel(name = "入库小计") + private BigDecimal intakeTotal; + + @Excel(name = "商乳实验用奶") + private BigDecimal commercialTest; + + @Excel(name = "初乳实验用奶") + private BigDecimal colostTest; + + @Excel(name = "商乳调拨出库") + private BigDecimal transferCommercial; + + @Excel(name = "抗乳调拨出库") + private BigDecimal transferAnti; + + @Excel(name = "初乳调拨出库") + private BigDecimal transferColost; + + @Excel(name = "调拨小计") + private BigDecimal transferTotal; + + @Excel(name = "损耗") + private BigDecimal loss; + + @Excel(name = "商乳库存") + private BigDecimal stockCommercial; + + @Excel(name = "抗乳库存") + private BigDecimal stockAnti; + + @Excel(name = "初乳库存") + private BigDecimal colost; + + @Excel(name = "爱特退回鲜奶") + private BigDecimal returnFresh; + + @Excel(name = "爱特退回酸奶") + private BigDecimal returnYogurt; + + // --- getters and setters --- + public Integer getId() { return id; } + public void setId(Integer id) { this.id = id; } + + public Date getDatetime() { return datetime; } + public void setDatetime(Date datetime) { this.datetime = datetime; } + + public Integer getNum() { return num; } + public void setNum(Integer num) { this.num = num; } + + public Integer getColostSheep() { return colostSheep; } + public void setColostSheep(Integer colostSheep) { this.colostSheep = colostSheep; } + + public BigDecimal getCommercialIntake() { return commercialIntake; } + public void setCommercialIntake(BigDecimal commercialIntake) { this.commercialIntake = commercialIntake; } + + public BigDecimal getAntiIntake() { return antiIntake; } + public void setAntiIntake(BigDecimal antiIntake) { this.antiIntake = antiIntake; } + + public BigDecimal getColostIntake() { return colostIntake; } + public void setColostIntake(BigDecimal colostIntake) { this.colostIntake = colostIntake; } + + public BigDecimal getIntakeTotal() { return intakeTotal; } + public void setIntakeTotal(BigDecimal intakeTotal) { this.intakeTotal = intakeTotal; } + + public BigDecimal getCommercialTest() { return commercialTest; } + public void setCommercialTest(BigDecimal commercialTest) { this.commercialTest = commercialTest; } + + public BigDecimal getColostTest() { return colostTest; } + public void setColostTest(BigDecimal colostTest) { this.colostTest = colostTest; } + + public BigDecimal getTransferCommercial() { return transferCommercial; } + public void setTransferCommercial(BigDecimal transferCommercial) { this.transferCommercial = transferCommercial; } + + public BigDecimal getTransferAnti() { return transferAnti; } + public void setTransferAnti(BigDecimal transferAnti) { this.transferAnti = transferAnti; } + + public BigDecimal getTransferColost() { return transferColost; } + public void setTransferColost(BigDecimal transferColost) { this.transferColost = transferColost; } + + public BigDecimal getTransferTotal() { return transferTotal; } + public void setTransferTotal(BigDecimal transferTotal) { this.transferTotal = transferTotal; } + + public BigDecimal getLoss() { return loss; } + public void setLoss(BigDecimal loss) { this.loss = loss; } + + public BigDecimal getStockCommercial() { return stockCommercial; } + public void setStockCommercial(BigDecimal stockCommercial) { this.stockCommercial = stockCommercial; } + + public BigDecimal getStockAnti() { return stockAnti; } + public void setStockAnti(BigDecimal stockAnti) { this.stockAnti = stockAnti; } + + public BigDecimal getColost() { return colost; } + public void setColost(BigDecimal colost) { this.colost = colost; } + + public BigDecimal getReturnFresh() { return returnFresh; } + public void setReturnFresh(BigDecimal returnFresh) { this.returnFresh = returnFresh; } + + public BigDecimal getReturnYogurt() { return returnYogurt; } + public void setReturnYogurt(BigDecimal returnYogurt) { this.returnYogurt = returnYogurt; } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java new file mode 100644 index 0000000..f89398c --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java @@ -0,0 +1,162 @@ +package com.zhyc.module.dairyProducts.domain; + +import java.util.Date; + +public class NpSheepMilkAnalysis { + private String sheepId; + private String manageEarTag; + private String variety; + private Date milkingStartTime; + private Date dryEndTime; + private Integer milkingDays; + private Integer analysisDays; + private Integer maxParity; + private Double sumSystemMilk; + private Double sumCorrectedMilk; + private Double avgCorrectedDaily; + private Double sumParity1Milk; + private Double sumParity2Milk; + private Double sumParity3Milk; + private Double sumParity4Milk; + private Double avgParity1Daily; + private Double avgParity2Daily; + private Double avgParity3Daily; + private Double avgParity4Daily; + private Integer lactationDays; + private Double avgLast7Milk; + private Double avgLast7Corrected; + private Double avgLast14Milk; + private Double avgLast30Milk; + private String sheepCategory; + private Date birthday; + private Integer parity; + private Integer monthAge; + private Double currentWeight; + private String breedStatus; + private String fatherManageTags; + private String motherManageTags; + private String ranchName; + private String family; + private Integer motherMilkingDays; + private Double motherSumCorrected; + private Integer motherMaxParity; + private Double motherAvgCorrectedDaily; + private Date lastUpdate; + + public String getSheepId() { return sheepId; } + public void setSheepId(String sheepId) { this.sheepId = sheepId; } + + public String getManageEarTag() { return manageEarTag; } + public void setManageEarTag(String manageEarTag) { this.manageEarTag = manageEarTag; } + + public String getVariety() { return variety; } + public void setVariety(String variety) { this.variety = variety; } + + public Date getMilkingStartTime() { return milkingStartTime; } + public void setMilkingStartTime(Date milkingStartTime) { this.milkingStartTime = milkingStartTime; } + + public Date getDryEndTime() { return dryEndTime; } + public void setDryEndTime(Date dryEndTime) { this.dryEndTime = dryEndTime; } + + public Integer getMilkingDays() { return milkingDays; } + public void setMilkingDays(Integer milkingDays) { this.milkingDays = milkingDays; } + + public Integer getAnalysisDays() { return analysisDays; } + public void setAnalysisDays(Integer analysisDays) { this.analysisDays = analysisDays; } + + public Integer getMaxParity() { return maxParity; } + public void setMaxParity(Integer maxParity) { this.maxParity = maxParity; } + + public Double getSumSystemMilk() { return sumSystemMilk; } + public void setSumSystemMilk(Double sumSystemMilk) { this.sumSystemMilk = sumSystemMilk; } + + public Double getSumCorrectedMilk() { return sumCorrectedMilk; } + public void setSumCorrectedMilk(Double sumCorrectedMilk) { this.sumCorrectedMilk = sumCorrectedMilk; } + + public Double getAvgCorrectedDaily() { return avgCorrectedDaily; } + public void setAvgCorrectedDaily(Double avgCorrectedDaily) { this.avgCorrectedDaily = avgCorrectedDaily; } + + public Double getSumParity1Milk() { return sumParity1Milk; } + public void setSumParity1Milk(Double sumParity1Milk) { this.sumParity1Milk = sumParity1Milk; } + + public Double getSumParity2Milk() { return sumParity2Milk; } + public void setSumParity2Milk(Double sumParity2Milk) { this.sumParity2Milk = sumParity2Milk; } + + public Double getSumParity3Milk() { return sumParity3Milk; } + public void setSumParity3Milk(Double sumParity3Milk) { this.sumParity3Milk = sumParity3Milk; } + + public Double getSumParity4Milk() { return sumParity4Milk; } + public void setSumParity4Milk(Double sumParity4Milk) { this.sumParity4Milk = sumParity4Milk; } + + public Double getAvgParity1Daily() { return avgParity1Daily; } + public void setAvgParity1Daily(Double avgParity1Daily) { this.avgParity1Daily = avgParity1Daily; } + + public Double getAvgParity2Daily() { return avgParity2Daily; } + public void setAvgParity2Daily(Double avgParity2Daily) { this.avgParity2Daily = avgParity2Daily; } + + public Double getAvgParity3Daily() { return avgParity3Daily; } + public void setAvgParity3Daily(Double avgParity3Daily) { this.avgParity3Daily = avgParity3Daily; } + + public Double getAvgParity4Daily() { return avgParity4Daily; } + public void setAvgParity4Daily(Double avgParity4Daily) { this.avgParity4Daily = avgParity4Daily; } + + public Integer getLactationDays() { return lactationDays; } + public void setLactationDays(Integer lactationDays) { this.lactationDays = lactationDays; } + + public Double getAvgLast7Milk() { return avgLast7Milk; } + public void setAvgLast7Milk(Double avgLast7Milk) { this.avgLast7Milk = avgLast7Milk; } + + public Double getAvgLast7Corrected() { return avgLast7Corrected; } + public void setAvgLast7Corrected(Double avgLast7Corrected) { this.avgLast7Corrected = avgLast7Corrected; } + + public Double getAvgLast14Milk() { return avgLast14Milk; } + public void setAvgLast14Milk(Double avgLast14Milk) { this.avgLast14Milk = avgLast14Milk; } + + public Double getAvgLast30Milk() { return avgLast30Milk; } + public void setAvgLast30Milk(Double avgLast30Milk) { this.avgLast30Milk = avgLast30Milk; } + + public String getSheepCategory() { return sheepCategory; } + public void setSheepCategory(String sheepCategory) { this.sheepCategory = sheepCategory; } + + public Date getBirthday() { return birthday; } + public void setBirthday(Date birthday) { this.birthday = birthday; } + + public Integer getParity() { return parity; } + public void setParity(Integer parity) { this.parity = parity; } + + public Integer getMonthAge() { return monthAge; } + public void setMonthAge(Integer monthAge) { this.monthAge = monthAge; } + + public Double getCurrentWeight() { return currentWeight; } + public void setCurrentWeight(Double currentWeight) { this.currentWeight = currentWeight; } + + public String getBreedStatus() { return breedStatus; } + public void setBreedStatus(String breedStatus) { this.breedStatus = breedStatus; } + + public String getFatherManageTags() { return fatherManageTags; } + public void setFatherManageTags(String fatherManageTags) { this.fatherManageTags = fatherManageTags; } + + public String getMotherManageTags() { return motherManageTags; } + public void setMotherManageTags(String motherManageTags) { this.motherManageTags = motherManageTags; } + + public String getRanchName() { return ranchName; } + public void setRanchName(String ranchName) { this.ranchName = ranchName; } + + public String getFamily() { return family; } + public void setFamily(String family) { this.family = family; } + + public Integer getMotherMilkingDays() { return motherMilkingDays; } + public void setMotherMilkingDays(Integer motherMilkingDays) { this.motherMilkingDays = motherMilkingDays; } + + public Double getMotherSumCorrected() { return motherSumCorrected; } + public void setMotherSumCorrected(Double motherSumCorrected) { this.motherSumCorrected = motherSumCorrected; } + + public Integer getMotherMaxParity() { return motherMaxParity; } + public void setMotherMaxParity(Integer motherMaxParity) { this.motherMaxParity = motherMaxParity; } + + public Double getMotherAvgCorrectedDaily() { return motherAvgCorrectedDaily; } + public void setMotherAvgCorrectedDaily(Double motherAvgCorrectedDaily) { this.motherAvgCorrectedDaily = motherAvgCorrectedDaily; } + + public Date getLastUpdate() { return lastUpdate; } + public void setLastUpdate(Date lastUpdate) { this.lastUpdate = lastUpdate; } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java new file mode 100644 index 0000000..783050c --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java @@ -0,0 +1,23 @@ +package com.zhyc.module.dairyProducts.mapper; + +import com.zhyc.module.dairyProducts.domain.NpMilkInOutStore; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface NpMilkInOutStoreMapper { + List> selectWithColumns( + @Param("start") Date start, @Param("end") Date end, + @Param("feedSources") List feedSources, + @Param("saleDestinations") List saleDestinations + ); + + int insertStore(NpMilkInOutStore store); + void insertFeedRecord(@Param("storeId") Integer storeId, @Param("source") String source, @Param("amount") java.math.BigDecimal amount); + void insertSaleRecord(@Param("storeId") Integer storeId, @Param("destination") String dest, @Param("amount") java.math.BigDecimal amount); + + List selectFeedSources(); + List selectSaleDestinations(); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java new file mode 100644 index 0000000..f330707 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java @@ -0,0 +1,19 @@ +package com.zhyc.module.dairyProducts.mapper; + +import com.zhyc.module.dairyProducts.domain.NpSheepMilkAnalysis; +import java.util.List; + +public interface NpSheepMilkAnalysisMapper { + + NpSheepMilkAnalysis selectNpSheepMilkAnalysisById(Long id); + + List selectNpSheepMilkAnalysisList(NpSheepMilkAnalysis analysis); + + int insertNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis); + + int updateNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis); + + int deleteNpSheepMilkAnalysisById(Long id); + + int deleteNpSheepMilkAnalysisByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java new file mode 100644 index 0000000..2c33a6a --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java @@ -0,0 +1,15 @@ +package com.zhyc.module.dairyProducts.service; + +import com.zhyc.module.dairyProducts.domain.NpMilkInOutStore; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface INpMilkInOutStoreService { + List> selectWithDynamicColumns(Date start, Date end); + List> getAllColumnOptions(); + List> parseImportExcel(MultipartFile file) throws Exception; + void batchInsertFromRows(List> rows) throws Exception; +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java new file mode 100644 index 0000000..3abb927 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java @@ -0,0 +1,19 @@ +package com.zhyc.module.dairyProducts.service; + +import com.zhyc.module.dairyProducts.domain.NpSheepMilkAnalysis; +import java.util.List; + +public interface INpSheepMilkAnalysisService { + + NpSheepMilkAnalysis selectNpSheepMilkAnalysisById(Long id); + + List selectNpSheepMilkAnalysisList(NpSheepMilkAnalysis analysis); + + int insertNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis); + + int updateNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis); + + int deleteNpSheepMilkAnalysisById(Long id); + + int deleteNpSheepMilkAnalysisByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java new file mode 100644 index 0000000..d17a1d6 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java @@ -0,0 +1,82 @@ +package com.zhyc.module.dairyProducts.service.impl; + +import com.zhyc.module.dairyProducts.domain.NpMilkInOutStore; +import com.zhyc.module.dairyProducts.mapper.NpMilkInOutStoreMapper; +import com.zhyc.module.dairyProducts.service.INpMilkInOutStoreService; +import org.apache.poi.ss.usermodel.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.InputStream; +import java.math.BigDecimal; +import java.util.*; + +@Service +public class NpMilkInOutStoreServiceImpl implements INpMilkInOutStoreService { + + @Autowired + private NpMilkInOutStoreMapper mapper; + + @Override + public List> selectWithDynamicColumns(Date start, Date end) { + List feed = mapper.selectFeedSources(); + List sale = mapper.selectSaleDestinations(); + return mapper.selectWithColumns(start, end, feed, sale); + } + + @Override + public List> getAllColumnOptions() { + Map m = new HashMap<>(); + m.put("feed", mapper.selectFeedSources()); + m.put("sale", mapper.selectSaleDestinations()); + return Collections.singletonList(m); + } + + @Override + public List> parseImportExcel(MultipartFile file) throws Exception { + // 用 Apache POI 解析 Excel 第一行标题,动态映射列名跟 unit cells + InputStream in = file.getInputStream(); + Workbook wb = WorkbookFactory.create(in); + Sheet sheet = wb.getSheetAt(0); + Row header = sheet.getRow(0); + int cols = header.getLastCellNum(); + List titles = new ArrayList<>(); + for (int i = 0; i < cols; i++) titles.add(header.getCell(i).getStringCellValue()); + List> rows = new ArrayList<>(); + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) continue; + Map map = new LinkedHashMap<>(); + for (int c = 0; c < cols; c++) { + Cell cell = row.getCell(c); + map.put(titles.get(c), cell == null ? null : cell.toString()); + } + rows.add(map); + } + return rows; + } + + @Override + public void batchInsertFromRows(List> rows) throws Exception { + for (Map row : rows) { + // 提取主表字段 + NpMilkInOutStore store = new NpMilkInOutStore(); + store.setDatetime(java.sql.Date.valueOf(row.get("日期").toString())); + store.setNum(Integer.valueOf(row.get("羊数").toString())); + // ... 设置其它固定字段 ... + mapper.insertStore(store); + Integer sid = store.getId(); + // 其余列为动态饲喂或销售,根据字典决定分类: + for (Map.Entry ent: row.entrySet()) { + String col = ent.getKey(); + BigDecimal amt = new BigDecimal(ent.getValue().toString()); + if (mapper.selectFeedSources().contains(col)) { + mapper.insertFeedRecord(sid, col, amt); + } else if (mapper.selectSaleDestinations().contains(col)) { + mapper.insertSaleRecord(sid, col, amt); + } + } + } + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java new file mode 100644 index 0000000..6ced9ad --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java @@ -0,0 +1,46 @@ +package com.zhyc.module.dairyProducts.service.impl; + +import java.util.List; + +import com.zhyc.module.dairyProducts.mapper.NpSheepMilkAnalysisMapper; +import com.zhyc.module.dairyProducts.domain.NpSheepMilkAnalysis; +import com.zhyc.module.dairyProducts.service.INpSheepMilkAnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class NpSheepMilkAnalysisServiceImpl implements INpSheepMilkAnalysisService { + + @Autowired + private NpSheepMilkAnalysisMapper npSheepMilkAnalysisMapper; + + @Override + public NpSheepMilkAnalysis selectNpSheepMilkAnalysisById(Long id) { + return npSheepMilkAnalysisMapper.selectNpSheepMilkAnalysisById(id); + } + + @Override + public List selectNpSheepMilkAnalysisList(NpSheepMilkAnalysis analysis) { + return npSheepMilkAnalysisMapper.selectNpSheepMilkAnalysisList(analysis); + } + + @Override + public int insertNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis) { + return npSheepMilkAnalysisMapper.insertNpSheepMilkAnalysis(analysis); + } + + @Override + public int updateNpSheepMilkAnalysis(NpSheepMilkAnalysis analysis) { + return npSheepMilkAnalysisMapper.updateNpSheepMilkAnalysis(analysis); + } + + @Override + public int deleteNpSheepMilkAnalysisById(Long id) { + return npSheepMilkAnalysisMapper.deleteNpSheepMilkAnalysisById(id); + } + + @Override + public int deleteNpSheepMilkAnalysisByIds(Long[] ids) { + return npSheepMilkAnalysisMapper.deleteNpSheepMilkAnalysisByIds(ids); + } +} diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml new file mode 100644 index 0000000..ea5eb4c --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + INSERT INTO np_milk_in_out_store(datetime, num, colost_sheep, commercial_intake, anti_intake, + colost_intake, intake_total, commercial_test, colost_test, transfer_commercial, + transfer_anti, transfer_colost, transfer_total, loss, stock_commercial, + stock_anti, colost, return_fresh, return_yogurt) + VALUES ( + #{datetime}, #{num}, #{colostSheep}, #{commercialIntake}, #{antiIntake}, + #{colostIntake}, #{intakeTotal}, #{commercialTest}, #{colostTest}, + #{transferCommercial}, #{transferAnti}, #{transferColost}, #{transferTotal}, + #{loss}, #{stockCommercial}, #{stockAnti}, #{colost}, #{returnFresh}, #{returnYogurt} + ) + + + + INSERT INTO np_milk_feed_records(store_id, source_id, amount) + VALUES(#{storeId}, + (SELECT id FROM np_milk_feed WHERE source_name = #{source}), + #{amount}) + + + + INSERT INTO np_milk_sale_records(store_id, destination_id, amount) + VALUES(#{storeId}, + (SELECT id FROM np_milk_sale WHERE destination_name = #{destination}), + #{amount}) + + + diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml new file mode 100644 index 0000000..34e4ba2 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, manage_ear_tag, variety, milking_date, dry_date, milking_days, + screen_days, max_parity, total_milk, total_corrected_milk, + avg_daily_corrected_milk, parity1_total_milk, parity2_total_milk, + parity3_total_milk, parity4_total_milk, parity1_avg_milk, + parity2_avg_milk, parity3_avg_milk, parity4_avg_milk, + lactation_days, last_7_avg_milk, last_7_corrected_milk, + last_14_avg_milk, last_30_avg_milk, sheep_type, birthday, + current_parity, month_age, current_weight, breed_status, + father_tag, mother_tag, ranch, family, mother_milking_days, + mother_total_corrected_milk, mother_max_parity, + mother_avg_corrected + + + + + + + + INSERT INTO np_sheep_milk_analysis ( + + ) VALUES ( + #{id}, #{manageEarTag}, #{variety}, #{milkingDate}, #{dryDate}, + #{milkingDays}, #{screenDays}, #{maxParity}, #{totalMilk}, + #{totalCorrectedMilk}, #{avgDailyCorrectedMilk}, #{parity1TotalMilk}, + #{parity2TotalMilk}, #{parity3TotalMilk}, #{parity4TotalMilk}, + #{parity1AvgMilk}, #{parity2AvgMilk}, #{parity3AvgMilk}, + #{parity4AvgMilk}, #{lactationDays}, #{last7AvgMilk}, + #{last7CorrectedMilk}, #{last14AvgMilk}, #{last30AvgMilk}, + #{sheepType}, #{birthday}, #{currentParity}, #{monthAge}, + #{currentWeight}, #{breedStatus}, #{fatherTag}, #{motherTag}, + #{ranch}, #{family}, #{motherMilkingDays}, + #{motherTotalCorrectedMilk}, #{motherMaxParity}, + #{motherAvgCorrected} + ) + + + + UPDATE np_sheep_milk_analysis + SET manage_ear_tag = #{manageEarTag}, + variety = #{variety}, + milking_date = #{milkingDate}, + dry_date = #{dryDate}, + milking_days = #{milkingDays}, + screen_days = #{screenDays}, + max_parity = #{maxParity}, + total_milk = #{totalMilk}, + total_corrected_milk = #{totalCorrectedMilk}, + avg_daily_corrected_milk = #{avgDailyCorrectedMilk}, + parity1_total_milk = #{parity1TotalMilk}, + parity2_total_milk = #{parity2TotalMilk}, + parity3_total_milk = #{parity3TotalMilk}, + parity4_total_milk = #{parity4TotalMilk}, + parity1_avg_milk = #{parity1AvgMilk}, + parity2_avg_milk = #{parity2AvgMilk}, + parity3_avg_milk = #{parity3AvgMilk}, + parity4_avg_milk = #{parity4AvgMilk}, + lactation_days = #{lactationDays}, + last_7_avg_milk = #{last7AvgMilk}, + last_7_corrected_milk = #{last7CorrectedMilk}, + last_14_avg_milk = #{last14AvgMilk}, + last_30_avg_milk = #{last30AvgMilk}, + sheep_type = #{sheepType}, + birthday = #{birthday}, + current_parity = #{currentParity}, + month_age = #{monthAge}, + current_weight = #{currentWeight}, + breed_status = #{breedStatus}, + father_tag = #{fatherTag}, + mother_tag = #{motherTag}, + ranch = #{ranch}, + family = #{family}, + mother_milking_days = #{motherMilkingDays}, + mother_total_corrected_milk = #{motherTotalCorrectedMilk}, + mother_max_parity = #{motherMaxParity}, + mother_avg_corrected = #{motherAvgCorrected} + WHERE id = #{id} + + + + DELETE FROM np_sheep_milk_analysis WHERE id = #{id} + + + + DELETE FROM np_sheep_milk_analysis WHERE id IN + + #{id} + + + + From feffe7f9ff507fae1586c297285b4d50083c1edd Mon Sep 17 00:00:00 2001 From: ll <1079863556@qq.com> Date: Thu, 31 Jul 2025 23:26:38 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E7=BE=8A=E5=A5=B6=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dairyProducts/controller/NpMilkInOutStoreController.java | 1 - .../dairyProducts/controller/NpSheepMilkAnalysisController.java | 1 - .../com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java | 2 +- .../zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java | 1 - .../module/dairyProducts/mapper/NpMilkInOutStoreMapper.java | 1 - .../module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java | 2 +- .../module/dairyProducts/service/INpMilkInOutStoreService.java | 2 +- .../dairyProducts/service/INpSheepMilkAnalysisService.java | 2 +- .../dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java | 1 - .../service/impl/NpSheepMilkAnalysisServiceImpl.java | 2 +- .../resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml | 2 +- .../mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml | 2 +- 12 files changed, 7 insertions(+), 12 deletions(-) diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java index 5016b90..09935a1 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java @@ -46,7 +46,6 @@ public class NpMilkInOutStoreController extends BaseController { service.batchInsertFromRows(list); return AjaxResult.success("导入成功"); } - /** 导出 Excel */ @PreAuthorize("@ss.hasPermi('milkInOutStore:export')") @Log(title="导出羊奶出入库", businessType=BusinessType.EXPORT) diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java index cf86004..f000b87 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java @@ -38,7 +38,6 @@ public class NpSheepMilkAnalysisController extends BaseController { public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(npSheepMilkAnalysisService.selectNpSheepMilkAnalysisById(id)); } - /** * 新增奶产量分析记录 */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java index 770ace1..b7cf882 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java @@ -125,4 +125,4 @@ public class NpMilkInOutStore extends BaseEntity { public BigDecimal getReturnYogurt() { return returnYogurt; } public void setReturnYogurt(BigDecimal returnYogurt) { this.returnYogurt = returnYogurt; } -} +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java index f89398c..c1b6bff 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java @@ -1,7 +1,6 @@ package com.zhyc.module.dairyProducts.domain; import java.util.Date; - public class NpSheepMilkAnalysis { private String sheepId; private String manageEarTag; diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java index 783050c..b303256 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java @@ -13,7 +13,6 @@ public interface NpMilkInOutStoreMapper { @Param("feedSources") List feedSources, @Param("saleDestinations") List saleDestinations ); - int insertStore(NpMilkInOutStore store); void insertFeedRecord(@Param("storeId") Integer storeId, @Param("source") String source, @Param("amount") java.math.BigDecimal amount); void insertSaleRecord(@Param("storeId") Integer storeId, @Param("destination") String dest, @Param("amount") java.math.BigDecimal amount); diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java index f330707..9d0aca7 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java @@ -16,4 +16,4 @@ public interface NpSheepMilkAnalysisMapper { int deleteNpSheepMilkAnalysisById(Long id); int deleteNpSheepMilkAnalysisByIds(Long[] ids); -} +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java index 2c33a6a..6ec70b4 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java @@ -12,4 +12,4 @@ public interface INpMilkInOutStoreService { List> getAllColumnOptions(); List> parseImportExcel(MultipartFile file) throws Exception; void batchInsertFromRows(List> rows) throws Exception; -} +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java index 3abb927..419f679 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java @@ -16,4 +16,4 @@ public interface INpSheepMilkAnalysisService { int deleteNpSheepMilkAnalysisById(Long id); int deleteNpSheepMilkAnalysisByIds(Long[] ids); -} +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java index d17a1d6..189c5f4 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java @@ -32,7 +32,6 @@ public class NpMilkInOutStoreServiceImpl implements INpMilkInOutStoreService { m.put("sale", mapper.selectSaleDestinations()); return Collections.singletonList(m); } - @Override public List> parseImportExcel(MultipartFile file) throws Exception { // 用 Apache POI 解析 Excel 第一行标题,动态映射列名跟 unit cells diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java index 6ced9ad..9bded13 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java @@ -43,4 +43,4 @@ public class NpSheepMilkAnalysisServiceImpl implements INpSheepMilkAnalysisServi public int deleteNpSheepMilkAnalysisByIds(Long[] ids) { return npSheepMilkAnalysisMapper.deleteNpSheepMilkAnalysisByIds(ids); } -} +} \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml index ea5eb4c..8fc6555 100644 --- a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml @@ -55,4 +55,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{amount}) - + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml index 34e4ba2..478eb8e 100644 --- a/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml @@ -149,4 +149,4 @@ - + \ No newline at end of file From 8eedf3b3ffee24b0d081123de7f09b399f0ef0f3 Mon Sep 17 00:00:00 2001 From: ll <1079863556@qq.com> Date: Thu, 31 Jul 2025 23:34:58 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=BE=8A=E5=A5=B6=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dairyProducts/controller/NpMilkInOutStoreController.java | 1 + .../controller/NpSheepMilkAnalysisController.java | 1 + .../com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java | 2 +- .../zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java | 1 + .../module/dairyProducts/mapper/NpMilkInOutStoreMapper.java | 1 + .../module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java | 2 +- .../module/dairyProducts/service/INpMilkInOutStoreService.java | 3 ++- .../dairyProducts/service/INpSheepMilkAnalysisService.java | 3 ++- .../service/impl/NpMilkInOutStoreServiceImpl.java | 1 + .../service/impl/NpSheepMilkAnalysisServiceImpl.java | 3 ++- .../resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml | 2 +- .../mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml | 2 +- 12 files changed, 15 insertions(+), 7 deletions(-) diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java index 09935a1..44cbccb 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpMilkInOutStoreController.java @@ -67,3 +67,4 @@ public class NpMilkInOutStoreController extends BaseController { return AjaxResult.success(service.getAllColumnOptions()); } } + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java index f000b87..0c2955d 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/controller/NpSheepMilkAnalysisController.java @@ -76,3 +76,4 @@ public class NpSheepMilkAnalysisController extends BaseController { return util.exportExcel(list, "奶产量分析数据"); } } + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java index b7cf882..770ace1 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpMilkInOutStore.java @@ -125,4 +125,4 @@ public class NpMilkInOutStore extends BaseEntity { public BigDecimal getReturnYogurt() { return returnYogurt; } public void setReturnYogurt(BigDecimal returnYogurt) { this.returnYogurt = returnYogurt; } -} \ No newline at end of file +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java index c1b6bff..05972f6 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/domain/NpSheepMilkAnalysis.java @@ -159,3 +159,4 @@ public class NpSheepMilkAnalysis { public Date getLastUpdate() { return lastUpdate; } public void setLastUpdate(Date lastUpdate) { this.lastUpdate = lastUpdate; } } + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java index b303256..aa4ed29 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpMilkInOutStoreMapper.java @@ -20,3 +20,4 @@ public interface NpMilkInOutStoreMapper { List selectFeedSources(); List selectSaleDestinations(); } + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java index 9d0aca7..f330707 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/mapper/NpSheepMilkAnalysisMapper.java @@ -16,4 +16,4 @@ public interface NpSheepMilkAnalysisMapper { int deleteNpSheepMilkAnalysisById(Long id); int deleteNpSheepMilkAnalysisByIds(Long[] ids); -} \ No newline at end of file +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java index 6ec70b4..992573a 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpMilkInOutStoreService.java @@ -12,4 +12,5 @@ public interface INpMilkInOutStoreService { List> getAllColumnOptions(); List> parseImportExcel(MultipartFile file) throws Exception; void batchInsertFromRows(List> rows) throws Exception; -} \ No newline at end of file +} + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java index 419f679..7750a5f 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/INpSheepMilkAnalysisService.java @@ -16,4 +16,5 @@ public interface INpSheepMilkAnalysisService { int deleteNpSheepMilkAnalysisById(Long id); int deleteNpSheepMilkAnalysisByIds(Long[] ids); -} \ No newline at end of file +} + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java index 189c5f4..fc99d05 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpMilkInOutStoreServiceImpl.java @@ -79,3 +79,4 @@ public class NpMilkInOutStoreServiceImpl implements INpMilkInOutStoreService { } } } + diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java index 9bded13..c2476ee 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/service/impl/NpSheepMilkAnalysisServiceImpl.java @@ -43,4 +43,5 @@ public class NpSheepMilkAnalysisServiceImpl implements INpSheepMilkAnalysisServi public int deleteNpSheepMilkAnalysisByIds(Long[] ids) { return npSheepMilkAnalysisMapper.deleteNpSheepMilkAnalysisByIds(ids); } -} \ No newline at end of file +} + diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml index 8fc6555..ea5eb4c 100644 --- a/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpMilkInOutStoreMapper.xml @@ -55,4 +55,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{amount}) - \ No newline at end of file + diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml index 478eb8e..34e4ba2 100644 --- a/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/NpSheepMilkAnalysisMapper.xml @@ -149,4 +149,4 @@ - \ No newline at end of file + From cc629818138159a16343e40932d1c9efcdc2c142 Mon Sep 17 00:00:00 2001 From: zyk Date: Fri, 1 Aug 2025 08:59:10 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=A7=8D=E5=85=AC=E7=BE=8A=E6=A1=A3?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BreedRamFileController.java | 104 ++ .../zhyc/module/base/domain/BreedRamFile.java | 890 ++++++++++++++++++ .../base/mapper/BreedRamFileMapper.java | 109 +++ .../base/service/IBreedRamFileService.java | 61 ++ .../service/impl/BreedRamFileServiceImpl.java | 96 ++ .../mapper/base/BreedRamFileMapper.xml | 417 ++++++++ 6 files changed, 1677 insertions(+) create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java create mode 100644 zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java create mode 100644 zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java b/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java new file mode 100644 index 0000000..7274064 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.base.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.enums.BusinessType; +import com.zhyc.module.base.domain.BreedRamFile; +import com.zhyc.module.base.service.IBreedRamFileService; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 种公羊档案Controller + * + * @author zhyc + * @date 2025-07-29 + */ +@RestController +@RequestMapping("/ram_file/bas_ram_file") +public class BreedRamFileController extends BaseController +{ + @Autowired + private IBreedRamFileService breedRamFileService; + + /** + * 查询种公羊档案列表 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:list')") + @GetMapping("/list") + public TableDataInfo list(BreedRamFile breedRamFile) + { + startPage(); + List list = breedRamFileService.selectBreedRamFileList(breedRamFile); + return getDataTable(list); + } + + /** + * 导出种公羊档案列表 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:export')") + @Log(title = "种公羊档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BreedRamFile breedRamFile) + { + List list = breedRamFileService.selectBreedRamFileList(breedRamFile); + ExcelUtil util = new ExcelUtil(BreedRamFile.class); + util.exportExcel(response, list, "种公羊档案数据"); + } + + /** + * 获取种公羊档案详细信息 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(breedRamFileService.selectBreedRamFileById(id)); + } + + /** + * 新增种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:add')") + @Log(title = "种公羊档案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BreedRamFile breedRamFile) + { + return toAjax(breedRamFileService.insertBreedRamFile(breedRamFile)); + } + + /** + * 修改种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:edit')") + @Log(title = "种公羊档案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BreedRamFile breedRamFile) + { + return toAjax(breedRamFileService.updateBreedRamFile(breedRamFile)); + } + + /** + * 删除种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:remove')") + @Log(title = "种公羊档案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(breedRamFileService.deleteBreedRamFileByIds(ids)); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java new file mode 100644 index 0000000..463308d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java @@ -0,0 +1,890 @@ +package com.zhyc.module.base.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; + +/** + * 种公羊档案对象 breed_ram_file + * + * @author zhyc + * @date 2025-07-29 + */ +public class BreedRamFile extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 种公羊id */ + private Long id; + + /** 普通耳号 */ + @Excel(name = "普通耳号") + private String ordinaryEarNumber; + + /** 牧场id */ + @Excel(name = "牧场id") + private Long ranchId; + + /** 牧场名称 */ + @Excel(name = "牧场名称") + private String ranchName; + + /** 羊舍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 sheepCategory; + + /** 当前状态 */ + @Excel(name = "当前状态") + private String currentStatus; + + /** 生日 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private Date birthday; + + /** 动态 */ + @Excel(name = "动态") + private String dynamicInfo; + + /** 月龄 */ + @Excel(name = "月龄") + private Long monthAge; + + /** 出生体重 */ + @Excel(name = "出生体重") + private BigDecimal birthWeight; + + /** 断奶日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date weaningDate; + + /** 断奶日龄 */ + @Excel(name = "断奶日龄") + private Long weaningDayAge; + + /** 断奶体重 */ + @Excel(name = "断奶体重") + private BigDecimal weaningWeight; + + /** 断奶日增重 */ + @Excel(name = "断奶日增重") + private BigDecimal weaningDailyGain; + + /** 断奶后日增重 */ + @Excel(name = "断奶后日增重") + private BigDecimal postWeaningDailyGain; + + /** 当前体重 */ + @Excel(name = "当前体重") + private BigDecimal currentWeight; + + /** 当前体重称重日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "当前体重称重日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date currentWeightDate; + + /** 活动量 */ + @Excel(name = "活动量") + private String activityLevel; + + /** 性欲情况 */ + @Excel(name = "性欲情况") + private String sexualStatus; + + /** 阴囊周长 */ + @Excel(name = "阴囊周长") + private BigDecimal scrotumCircumference; + + /** 采精时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "采精时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date spermCollectionTime; + + /** 精液量 */ + @Excel(name = "精液量") + private BigDecimal spermVolume; + + /** 精液活力 */ + @Excel(name = "精液活力") + private String spermVitality; + + /** 精液密度 */ + @Excel(name = "精液密度") + private String spermDensity; + + /** 精液品质 */ + @Excel(name = "精液品质") + private String spermQuality; + + /** 配种状态 */ + @Excel(name = "配种状态") + private Long breedingStatus; + + /** 上次计划时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "上次计划时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date lastPlanTime; + + /** 本次计划时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "本次计划时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date currentPlanTime; + + /** 蛋白率%EBV */ + @Excel(name = "蛋白率%EBV") + private BigDecimal proteinRateEbv; + + /** 乳脂率%EBV */ + @Excel(name = "乳脂率%EBV") + private BigDecimal milkFatRateEbv; + + /** 乳体细胞(SCS)EBV */ + @Excel(name = "乳体细胞", readConverterExp = "S=CS") + private BigDecimal scsEbv; + + /** 生长性能EBV */ + @Excel(name = "生长性能EBV") + private BigDecimal growthPerformanceEbv; + + /** 抗逆性EBV */ + @Excel(name = "抗逆性EBV") + private BigDecimal resistanceEbv; + + /** 繁殖性能EBV */ + @Excel(name = "繁殖性能EBV") + private BigDecimal reproductionPerformanceEbv; + + /** 体型性状EBV */ + @Excel(name = "体型性状EBV") + private BigDecimal bodyTypeEbv; + + /** 综合育种值 */ + @Excel(name = "综合育种值") + private BigDecimal comprehensiveBreedingValue; + + /** 父号 */ + @Excel(name = "父号") + private String fatherNumber; + + /** 母号 */ + @Excel(name = "母号") + private String motherNumber; + + /** 祖父 */ + @Excel(name = "祖父") + private String grandfatherNumber; + + /** 祖母 */ + @Excel(name = "祖母") + private String grandmotherNumber; + + /** 外祖父 */ + @Excel(name = "外祖父") + private String maternalGrandfatherNumber; + + /** 外祖母 */ + @Excel(name = "外祖母") + private String maternalGrandmotherNumber; + + /** 是否核心羊群(0否1是) */ + @Excel(name = "是否核心羊群", readConverterExp = "0=否,1=是") + private Long isCoreFlock; + + /** 是否种用(0否1是) */ + @Excel(name = "是否种用", readConverterExp = "0=否,1=是") + private Long isBreedingUse; + + /** 孕检 */ + @Excel(name = "孕检") + private String pregnancyCheck; + + /** 总配母羊数 */ + @Excel(name = "总配母羊数") + private Long totalMatedEwes; + + /** 本交孕检母羊数 */ + @Excel(name = "本交孕检母羊数") + private Long naturalPregnancyCheckEwes; + + /** 本交受孕率% */ + @Excel(name = "本交受孕率%") + private BigDecimal naturalConceptionRate; + + /** 人工孕检母羊数 */ + @Excel(name = "人工孕检母羊数") + private Long artificialPregnancyCheckEwes; + + /** 人工受孕率% */ + @Excel(name = "人工受孕率%") + private BigDecimal artificialConceptionRate; + + /** 公羊母亲奶量 */ + @Excel(name = "公羊母亲奶量") + private BigDecimal ramMotherMilkVolume; + + /** 产奶量估计育种值(Kg) */ + @Excel(name = "产奶量估计育种值", readConverterExp = "K=g") + private BigDecimal milkProductionEbv; + + /** 准确性 */ + @Excel(name = "准确性") + private BigDecimal accuracy; + + /** 信息数 */ + @Excel(name = "信息数") + private Long informationCount; + + /** 是否亲子鉴定(0否1是) */ + @Excel(name = "是否亲子鉴定", readConverterExp = "0=否,1=是") + private Long isPaternityTested; + + /** 是否删除(0否1是) */ + private Long isDelete; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setOrdinaryEarNumber(String ordinaryEarNumber) + { + this.ordinaryEarNumber = ordinaryEarNumber; + } + + public String getOrdinaryEarNumber() + { + return ordinaryEarNumber; + } + public void setRanchId(Long ranchId) + { + this.ranchId = ranchId; + } + + public Long getRanchId() + { + return ranchId; + } + public void setRanchName(String ranchName) + { + this.ranchName = ranchName; + } + + public String getRanchName() + { + return ranchName; + } + 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 setSheepCategory(String sheepCategory) + { + this.sheepCategory = sheepCategory; + } + + public String getSheepCategory() + { + return sheepCategory; + } + public void setCurrentStatus(String currentStatus) + { + this.currentStatus = currentStatus; + } + + public String getCurrentStatus() + { + return currentStatus; + } + public void setBirthday(Date birthday) + { + this.birthday = birthday; + } + + public Date getBirthday() + { + return birthday; + } + public void setDynamicInfo(String dynamicInfo) + { + this.dynamicInfo = dynamicInfo; + } + + public String getDynamicInfo() + { + return dynamicInfo; + } + public void setMonthAge(Long monthAge) + { + this.monthAge = monthAge; + } + + public Long getMonthAge() + { + return monthAge; + } + public void setBirthWeight(BigDecimal birthWeight) + { + this.birthWeight = birthWeight; + } + + public BigDecimal getBirthWeight() + { + return birthWeight; + } + public void setWeaningDate(Date weaningDate) + { + this.weaningDate = weaningDate; + } + + public Date getWeaningDate() + { + return weaningDate; + } + public void setWeaningDayAge(Long weaningDayAge) + { + this.weaningDayAge = weaningDayAge; + } + + public Long getWeaningDayAge() + { + return weaningDayAge; + } + public void setWeaningWeight(BigDecimal weaningWeight) + { + this.weaningWeight = weaningWeight; + } + + public BigDecimal getWeaningWeight() + { + return weaningWeight; + } + public void setWeaningDailyGain(BigDecimal weaningDailyGain) + { + this.weaningDailyGain = weaningDailyGain; + } + + public BigDecimal getWeaningDailyGain() + { + return weaningDailyGain; + } + public void setPostWeaningDailyGain(BigDecimal postWeaningDailyGain) + { + this.postWeaningDailyGain = postWeaningDailyGain; + } + + public BigDecimal getPostWeaningDailyGain() + { + return postWeaningDailyGain; + } + public void setCurrentWeight(BigDecimal currentWeight) + { + this.currentWeight = currentWeight; + } + + public BigDecimal getCurrentWeight() + { + return currentWeight; + } + public void setCurrentWeightDate(Date currentWeightDate) + { + this.currentWeightDate = currentWeightDate; + } + + public Date getCurrentWeightDate() + { + return currentWeightDate; + } + public void setActivityLevel(String activityLevel) + { + this.activityLevel = activityLevel; + } + + public String getActivityLevel() + { + return activityLevel; + } + public void setSexualStatus(String sexualStatus) + { + this.sexualStatus = sexualStatus; + } + + public String getSexualStatus() + { + return sexualStatus; + } + public void setScrotumCircumference(BigDecimal scrotumCircumference) + { + this.scrotumCircumference = scrotumCircumference; + } + + public BigDecimal getScrotumCircumference() + { + return scrotumCircumference; + } + public void setSpermCollectionTime(Date spermCollectionTime) + { + this.spermCollectionTime = spermCollectionTime; + } + + public Date getSpermCollectionTime() + { + return spermCollectionTime; + } + public void setSpermVolume(BigDecimal spermVolume) + { + this.spermVolume = spermVolume; + } + + public BigDecimal getSpermVolume() + { + return spermVolume; + } + public void setSpermVitality(String spermVitality) + { + this.spermVitality = spermVitality; + } + + public String getSpermVitality() + { + return spermVitality; + } + public void setSpermDensity(String spermDensity) + { + this.spermDensity = spermDensity; + } + + public String getSpermDensity() + { + return spermDensity; + } + public void setSpermQuality(String spermQuality) + { + this.spermQuality = spermQuality; + } + + public String getSpermQuality() + { + return spermQuality; + } + public void setBreedingStatus(Long breedingStatus) + { + this.breedingStatus = breedingStatus; + } + + public Long getBreedingStatus() + { + return breedingStatus; + } + public void setLastPlanTime(Date lastPlanTime) + { + this.lastPlanTime = lastPlanTime; + } + + public Date getLastPlanTime() + { + return lastPlanTime; + } + public void setCurrentPlanTime(Date currentPlanTime) + { + this.currentPlanTime = currentPlanTime; + } + + public Date getCurrentPlanTime() + { + return currentPlanTime; + } + public void setProteinRateEbv(BigDecimal proteinRateEbv) + { + this.proteinRateEbv = proteinRateEbv; + } + + public BigDecimal getProteinRateEbv() + { + return proteinRateEbv; + } + public void setMilkFatRateEbv(BigDecimal milkFatRateEbv) + { + this.milkFatRateEbv = milkFatRateEbv; + } + + public BigDecimal getMilkFatRateEbv() + { + return milkFatRateEbv; + } + public void setScsEbv(BigDecimal scsEbv) + { + this.scsEbv = scsEbv; + } + + public BigDecimal getScsEbv() + { + return scsEbv; + } + public void setGrowthPerformanceEbv(BigDecimal growthPerformanceEbv) + { + this.growthPerformanceEbv = growthPerformanceEbv; + } + + public BigDecimal getGrowthPerformanceEbv() + { + return growthPerformanceEbv; + } + public void setResistanceEbv(BigDecimal resistanceEbv) + { + this.resistanceEbv = resistanceEbv; + } + + public BigDecimal getResistanceEbv() + { + return resistanceEbv; + } + public void setReproductionPerformanceEbv(BigDecimal reproductionPerformanceEbv) + { + this.reproductionPerformanceEbv = reproductionPerformanceEbv; + } + + public BigDecimal getReproductionPerformanceEbv() + { + return reproductionPerformanceEbv; + } + public void setBodyTypeEbv(BigDecimal bodyTypeEbv) + { + this.bodyTypeEbv = bodyTypeEbv; + } + + public BigDecimal getBodyTypeEbv() + { + return bodyTypeEbv; + } + public void setComprehensiveBreedingValue(BigDecimal comprehensiveBreedingValue) + { + this.comprehensiveBreedingValue = comprehensiveBreedingValue; + } + + public BigDecimal getComprehensiveBreedingValue() + { + return comprehensiveBreedingValue; + } + public void setFatherNumber(String fatherNumber) + { + this.fatherNumber = fatherNumber; + } + + public String getFatherNumber() + { + return fatherNumber; + } + public void setMotherNumber(String motherNumber) + { + this.motherNumber = motherNumber; + } + + public String getMotherNumber() + { + return motherNumber; + } + public void setGrandfatherNumber(String grandfatherNumber) + { + this.grandfatherNumber = grandfatherNumber; + } + + public String getGrandfatherNumber() + { + return grandfatherNumber; + } + public void setGrandmotherNumber(String grandmotherNumber) + { + this.grandmotherNumber = grandmotherNumber; + } + + public String getGrandmotherNumber() + { + return grandmotherNumber; + } + public void setMaternalGrandfatherNumber(String maternalGrandfatherNumber) + { + this.maternalGrandfatherNumber = maternalGrandfatherNumber; + } + + public String getMaternalGrandfatherNumber() + { + return maternalGrandfatherNumber; + } + public void setMaternalGrandmotherNumber(String maternalGrandmotherNumber) + { + this.maternalGrandmotherNumber = maternalGrandmotherNumber; + } + + public String getMaternalGrandmotherNumber() + { + return maternalGrandmotherNumber; + } + public void setIsCoreFlock(Long isCoreFlock) + { + this.isCoreFlock = isCoreFlock; + } + + public Long getIsCoreFlock() + { + return isCoreFlock; + } + public void setIsBreedingUse(Long isBreedingUse) + { + this.isBreedingUse = isBreedingUse; + } + + public Long getIsBreedingUse() + { + return isBreedingUse; + } + public void setPregnancyCheck(String pregnancyCheck) + { + this.pregnancyCheck = pregnancyCheck; + } + + public String getPregnancyCheck() + { + return pregnancyCheck; + } + public void setTotalMatedEwes(Long totalMatedEwes) + { + this.totalMatedEwes = totalMatedEwes; + } + + public Long getTotalMatedEwes() + { + return totalMatedEwes; + } + public void setNaturalPregnancyCheckEwes(Long naturalPregnancyCheckEwes) + { + this.naturalPregnancyCheckEwes = naturalPregnancyCheckEwes; + } + + public Long getNaturalPregnancyCheckEwes() + { + return naturalPregnancyCheckEwes; + } + public void setNaturalConceptionRate(BigDecimal naturalConceptionRate) + { + this.naturalConceptionRate = naturalConceptionRate; + } + + public BigDecimal getNaturalConceptionRate() + { + return naturalConceptionRate; + } + public void setArtificialPregnancyCheckEwes(Long artificialPregnancyCheckEwes) + { + this.artificialPregnancyCheckEwes = artificialPregnancyCheckEwes; + } + + public Long getArtificialPregnancyCheckEwes() + { + return artificialPregnancyCheckEwes; + } + public void setArtificialConceptionRate(BigDecimal artificialConceptionRate) + { + this.artificialConceptionRate = artificialConceptionRate; + } + + public BigDecimal getArtificialConceptionRate() + { + return artificialConceptionRate; + } + public void setRamMotherMilkVolume(BigDecimal ramMotherMilkVolume) + { + this.ramMotherMilkVolume = ramMotherMilkVolume; + } + + public BigDecimal getRamMotherMilkVolume() + { + return ramMotherMilkVolume; + } + public void setMilkProductionEbv(BigDecimal milkProductionEbv) + { + this.milkProductionEbv = milkProductionEbv; + } + + public BigDecimal getMilkProductionEbv() + { + return milkProductionEbv; + } + public void setAccuracy(BigDecimal accuracy) + { + this.accuracy = accuracy; + } + + public BigDecimal getAccuracy() + { + return accuracy; + } + public void setInformationCount(Long informationCount) + { + this.informationCount = informationCount; + } + + public Long getInformationCount() + { + return informationCount; + } + public void setIsPaternityTested(Long isPaternityTested) + { + this.isPaternityTested = isPaternityTested; + } + + public Long getIsPaternityTested() + { + return isPaternityTested; + } + 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("ordinaryEarNumber", getOrdinaryEarNumber()) + .append("ranchId", getRanchId()) + .append("ranchName", getRanchName()) + .append("sheepfoldId", getSheepfoldId()) + .append("sheepfoldName", getSheepfoldName()) + .append("electronicTags", getElectronicTags()) + .append("varietyId", getVarietyId()) + .append("variety", getVariety()) + .append("sheepCategory", getSheepCategory()) + .append("currentStatus", getCurrentStatus()) + .append("birthday", getBirthday()) + .append("dynamicInfo", getDynamicInfo()) + .append("monthAge", getMonthAge()) + .append("birthWeight", getBirthWeight()) + .append("weaningDate", getWeaningDate()) + .append("weaningDayAge", getWeaningDayAge()) + .append("weaningWeight", getWeaningWeight()) + .append("weaningDailyGain", getWeaningDailyGain()) + .append("postWeaningDailyGain", getPostWeaningDailyGain()) + .append("currentWeight", getCurrentWeight()) + .append("currentWeightDate", getCurrentWeightDate()) + .append("activityLevel", getActivityLevel()) + .append("sexualStatus", getSexualStatus()) + .append("scrotumCircumference", getScrotumCircumference()) + .append("spermCollectionTime", getSpermCollectionTime()) + .append("spermVolume", getSpermVolume()) + .append("spermVitality", getSpermVitality()) + .append("spermDensity", getSpermDensity()) + .append("spermQuality", getSpermQuality()) + .append("breedingStatus", getBreedingStatus()) + .append("lastPlanTime", getLastPlanTime()) + .append("currentPlanTime", getCurrentPlanTime()) + .append("remark", getRemark()) + .append("proteinRateEbv", getProteinRateEbv()) + .append("milkFatRateEbv", getMilkFatRateEbv()) + .append("scsEbv", getScsEbv()) + .append("growthPerformanceEbv", getGrowthPerformanceEbv()) + .append("resistanceEbv", getResistanceEbv()) + .append("reproductionPerformanceEbv", getReproductionPerformanceEbv()) + .append("bodyTypeEbv", getBodyTypeEbv()) + .append("comprehensiveBreedingValue", getComprehensiveBreedingValue()) + .append("fatherNumber", getFatherNumber()) + .append("motherNumber", getMotherNumber()) + .append("grandfatherNumber", getGrandfatherNumber()) + .append("grandmotherNumber", getGrandmotherNumber()) + .append("maternalGrandfatherNumber", getMaternalGrandfatherNumber()) + .append("maternalGrandmotherNumber", getMaternalGrandmotherNumber()) + .append("isCoreFlock", getIsCoreFlock()) + .append("isBreedingUse", getIsBreedingUse()) + .append("pregnancyCheck", getPregnancyCheck()) + .append("totalMatedEwes", getTotalMatedEwes()) + .append("naturalPregnancyCheckEwes", getNaturalPregnancyCheckEwes()) + .append("naturalConceptionRate", getNaturalConceptionRate()) + .append("artificialPregnancyCheckEwes", getArtificialPregnancyCheckEwes()) + .append("artificialConceptionRate", getArtificialConceptionRate()) + .append("ramMotherMilkVolume", getRamMotherMilkVolume()) + .append("milkProductionEbv", getMilkProductionEbv()) + .append("accuracy", getAccuracy()) + .append("informationCount", getInformationCount()) + .append("isPaternityTested", getIsPaternityTested()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("isDelete", getIsDelete()) + .toString(); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java new file mode 100644 index 0000000..bb6eaa2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java @@ -0,0 +1,109 @@ +package com.zhyc.module.base.mapper; + +import java.util.List; +import com.zhyc.module.base.domain.BreedRamFile; + +/** + * 种公羊档案Mapper接口 + * + * @author zhyc + * @date 2025-07-29 + */ +public interface BreedRamFileMapper +{ + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileById(Long id); + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int insertBreedRamFile(BreedRamFile breedRamFile); + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int updateBreedRamFile(BreedRamFile breedRamFile); + + /** + * 删除种公羊档案 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + public int deleteBreedRamFileById(Long id); + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBreedRamFileByIds(Long[] ids); + + /** + * 根据普通耳号查询种公羊档案 + * + * @param ordinaryEarNumber 普通耳号 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileByOrdinaryEarNumber(String ordinaryEarNumber); + + /** + * 根据电子耳号查询种公羊档案 + * + * @param electronicTags 电子耳号 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileByElectronicTags(String electronicTags); + + /** + * 根据牧场ID查询种公羊档案列表 + * + * @param ranchId 牧场ID + * @return 种公羊档案集合 + */ + public List selectBreedRamFileListByRanchId(Long ranchId); + + /** + * 根据羊舍ID查询种公羊档案列表 + * + * @param sheepfoldId 羊舍ID + * @return 种公羊档案集合 + */ + public List selectBreedRamFileListBySheepfoldId(Long sheepfoldId); + + /** + * 查询核心羊群种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectCoreFlockBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 查询种用种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedingUseBreedRamFileList(BreedRamFile breedRamFile); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java new file mode 100644 index 0000000..847f3b0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.base.service; + +import java.util.List; +import com.zhyc.module.base.domain.BreedRamFile; + +/** + * 种公羊档案Service接口 + * + * @author zhyc + * @date 2025-07-29 + */ +public interface IBreedRamFileService +{ + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileById(Long id); + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int insertBreedRamFile(BreedRamFile breedRamFile); + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int updateBreedRamFile(BreedRamFile breedRamFile); + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的种公羊档案主键集合 + * @return 结果 + */ + public int deleteBreedRamFileByIds(Long[] ids); + + /** + * 删除种公羊档案信息 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + public int deleteBreedRamFileById(Long id); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java new file mode 100644 index 0000000..7e7d8fe --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java @@ -0,0 +1,96 @@ +package com.zhyc.module.base.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.base.mapper.BreedRamFileMapper; +import com.zhyc.module.base.domain.BreedRamFile; +import com.zhyc.module.base.service.IBreedRamFileService; + +/** + * 种公羊档案Service业务层处理 + * + * @author zhyc + * @date 2025-07-29 + */ +@Service +public class BreedRamFileServiceImpl implements IBreedRamFileService +{ + @Autowired + private BreedRamFileMapper breedRamFileMapper; + + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + @Override + public BreedRamFile selectBreedRamFileById(Long id) + { + return breedRamFileMapper.selectBreedRamFileById(id); + } + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案 + */ + @Override + public List selectBreedRamFileList(BreedRamFile breedRamFile) + { + return breedRamFileMapper.selectBreedRamFileList(breedRamFile); + } + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + @Override + public int insertBreedRamFile(BreedRamFile breedRamFile) + { + breedRamFile.setCreateTime(DateUtils.getNowDate()); + return breedRamFileMapper.insertBreedRamFile(breedRamFile); + } + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + @Override + public int updateBreedRamFile(BreedRamFile breedRamFile) + { + breedRamFile.setUpdateTime(DateUtils.getNowDate()); + return breedRamFileMapper.updateBreedRamFile(breedRamFile); + } + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的种公羊档案主键 + * @return 结果 + */ + @Override + public int deleteBreedRamFileByIds(Long[] ids) + { + return breedRamFileMapper.deleteBreedRamFileByIds(ids); + } + + /** + * 删除种公羊档案信息 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + @Override + public int deleteBreedRamFileById(Long id) + { + return breedRamFileMapper.deleteBreedRamFileById(id); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml b/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml new file mode 100644 index 0000000..6f666ee --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, ordinary_ear_number, ranch_id, ranch_name, sheepfold_id, sheepfold_name, electronic_tags, variety_id, variety, sheep_category, current_status, birthday, dynamic_info, month_age, birth_weight, weaning_date, weaning_day_age, weaning_weight, weaning_daily_gain, post_weaning_daily_gain, current_weight, current_weight_date, activity_level, sexual_status, scrotum_circumference, sperm_collection_time, sperm_volume, sperm_vitality, sperm_density, sperm_quality, breeding_status, last_plan_time, current_plan_time, comment, protein_rate_ebv, milk_fat_rate_ebv, scs_ebv, growth_performance_ebv, resistance_ebv, reproduction_performance_ebv, body_type_ebv, comprehensive_breeding_value, father_number, mother_number, grandfather_number, grandmother_number, maternal_grandfather_number, maternal_grandmother_number, is_core_flock, is_breeding_use, pregnancy_check, total_mated_ewes, natural_pregnancy_check_ewes, natural_conception_rate, artificial_pregnancy_check_ewes, artificial_conception_rate, ram_mother_milk_volume, milk_production_ebv, accuracy, information_count, is_paternity_tested, create_by, create_time, update_by, update_time, is_delete from breed_ram_file + + + + + + + + + + + + + + + + + + + + insert into breed_ram_file + + ordinary_ear_number, + ranch_id, + ranch_name, + sheepfold_id, + sheepfold_name, + electronic_tags, + variety_id, + variety, + sheep_category, + current_status, + birthday, + dynamic_info, + month_age, + birth_weight, + weaning_date, + weaning_day_age, + weaning_weight, + weaning_daily_gain, + post_weaning_daily_gain, + current_weight, + current_weight_date, + activity_level, + sexual_status, + scrotum_circumference, + sperm_collection_time, + sperm_volume, + sperm_vitality, + sperm_density, + sperm_quality, + breeding_status, + last_plan_time, + current_plan_time, + comment, + protein_rate_ebv, + milk_fat_rate_ebv, + scs_ebv, + growth_performance_ebv, + resistance_ebv, + reproduction_performance_ebv, + body_type_ebv, + comprehensive_breeding_value, + father_number, + mother_number, + grandfather_number, + grandmother_number, + maternal_grandfather_number, + maternal_grandmother_number, + is_core_flock, + is_breeding_use, + pregnancy_check, + total_mated_ewes, + natural_pregnancy_check_ewes, + natural_conception_rate, + artificial_pregnancy_check_ewes, + artificial_conception_rate, + ram_mother_milk_volume, + milk_production_ebv, + accuracy, + information_count, + is_paternity_tested, + create_by, + create_time, + update_by, + update_time, + is_delete, + + + #{ordinaryEarNumber}, + #{ranchId}, + #{ranchName}, + #{sheepfoldId}, + #{sheepfoldName}, + #{electronicTags}, + #{varietyId}, + #{variety}, + #{sheepCategory}, + #{currentStatus}, + #{birthday}, + #{dynamicInfo}, + #{monthAge}, + #{birthWeight}, + #{weaningDate}, + #{weaningDayAge}, + #{weaningWeight}, + #{weaningDailyGain}, + #{postWeaningDailyGain}, + #{currentWeight}, + #{currentWeightDate}, + #{activityLevel}, + #{sexualStatus}, + #{scrotumCircumference}, + #{spermCollectionTime}, + #{spermVolume}, + #{spermVitality}, + #{spermDensity}, + #{spermQuality}, + #{breedingStatus}, + #{lastPlanTime}, + #{currentPlanTime}, + #{remark}, + #{proteinRateEbv}, + #{milkFatRateEbv}, + #{scsEbv}, + #{growthPerformanceEbv}, + #{resistanceEbv}, + #{reproductionPerformanceEbv}, + #{bodyTypeEbv}, + #{comprehensiveBreedingValue}, + #{fatherNumber}, + #{motherNumber}, + #{grandfatherNumber}, + #{grandmotherNumber}, + #{maternalGrandfatherNumber}, + #{maternalGrandmotherNumber}, + #{isCoreFlock}, + #{isBreedingUse}, + #{pregnancyCheck}, + #{totalMatedEwes}, + #{naturalPregnancyCheckEwes}, + #{naturalConceptionRate}, + #{artificialPregnancyCheckEwes}, + #{artificialConceptionRate}, + #{ramMotherMilkVolume}, + #{milkProductionEbv}, + #{accuracy}, + #{informationCount}, + #{isPaternityTested}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{isDelete}, + + + + + update breed_ram_file + + ordinary_ear_number = #{ordinaryEarNumber}, + ranch_id = #{ranchId}, + ranch_name = #{ranchName}, + sheepfold_id = #{sheepfoldId}, + sheepfold_name = #{sheepfoldName}, + electronic_tags = #{electronicTags}, + variety_id = #{varietyId}, + variety = #{variety}, + sheep_category = #{sheepCategory}, + current_status = #{currentStatus}, + birthday = #{birthday}, + dynamic_info = #{dynamicInfo}, + month_age = #{monthAge}, + birth_weight = #{birthWeight}, + weaning_date = #{weaningDate}, + weaning_day_age = #{weaningDayAge}, + weaning_weight = #{weaningWeight}, + weaning_daily_gain = #{weaningDailyGain}, + post_weaning_daily_gain = #{postWeaningDailyGain}, + current_weight = #{currentWeight}, + current_weight_date = #{currentWeightDate}, + activity_level = #{activityLevel}, + sexual_status = #{sexualStatus}, + scrotum_circumference = #{scrotumCircumference}, + sperm_collection_time = #{spermCollectionTime}, + sperm_volume = #{spermVolume}, + sperm_vitality = #{spermVitality}, + sperm_density = #{spermDensity}, + sperm_quality = #{spermQuality}, + breeding_status = #{breedingStatus}, + last_plan_time = #{lastPlanTime}, + current_plan_time = #{currentPlanTime}, + comment = #{remark}, + protein_rate_ebv = #{proteinRateEbv}, + milk_fat_rate_ebv = #{milkFatRateEbv}, + scs_ebv = #{scsEbv}, + growth_performance_ebv = #{growthPerformanceEbv}, + resistance_ebv = #{resistanceEbv}, + reproduction_performance_ebv = #{reproductionPerformanceEbv}, + body_type_ebv = #{bodyTypeEbv}, + comprehensive_breeding_value = #{comprehensiveBreedingValue}, + father_number = #{fatherNumber}, + mother_number = #{motherNumber}, + grandfather_number = #{grandfatherNumber}, + grandmother_number = #{grandmotherNumber}, + maternal_grandfather_number = #{maternalGrandfatherNumber}, + maternal_grandmother_number = #{maternalGrandmotherNumber}, + is_core_flock = #{isCoreFlock}, + is_breeding_use = #{isBreedingUse}, + pregnancy_check = #{pregnancyCheck}, + total_mated_ewes = #{totalMatedEwes}, + natural_pregnancy_check_ewes = #{naturalPregnancyCheckEwes}, + natural_conception_rate = #{naturalConceptionRate}, + artificial_pregnancy_check_ewes = #{artificialPregnancyCheckEwes}, + artificial_conception_rate = #{artificialConceptionRate}, + ram_mother_milk_volume = #{ramMotherMilkVolume}, + milk_production_ebv = #{milkProductionEbv}, + accuracy = #{accuracy}, + information_count = #{informationCount}, + is_paternity_tested = #{isPaternityTested}, + update_by = #{updateBy}, + update_time = #{updateTime}, + is_delete = #{isDelete}, + + where id = #{id} + + + + delete from breed_ram_file where id = #{id} + + + + delete from breed_ram_file where id in + + #{id} + + + + \ No newline at end of file From 80d82c031f4c7bbbb7129a2a5fe7ca96137631ad Mon Sep 17 00:00:00 2001 From: wyt <414651037@qq.com> Date: Fri, 1 Aug 2025 18:07:48 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E7=BB=84?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=8E=E7=AB=AF=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zhyc/module/base/domain/BasSheepGroup.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java index 810cad1..e0d1adb 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java @@ -41,4 +41,7 @@ public class BasSheepGroup extends TreeEntity @Excel(name = "祖级列表名称") private String ancestorNames; + + private Integer isLeaf; + }