diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/controller/NpRawMilkInspeController.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/controller/NpRawMilkInspeController.java new file mode 100644 index 0000000..d7989f1 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/controller/NpRawMilkInspeController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.dairyProducts.rawMilkTest.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.dairyProducts.rawMilkTest.domain.NpRawMilkInspe; +import com.zhyc.module.dairyProducts.rawMilkTest.service.INpRawMilkInspeService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 生乳检验记录Controller + * + * @author ruoyi + * @date 2025-07-15 + */ +@RestController +@RequestMapping("/rawMilkTest/rawMilkTest") +public class NpRawMilkInspeController extends BaseController +{ + @Autowired + private INpRawMilkInspeService npRawMilkInspeService; + + /** + * 查询生乳检验记录列表 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:list')") + @GetMapping("/list") + public TableDataInfo list(NpRawMilkInspe npRawMilkInspe) + { + startPage(); + List list = npRawMilkInspeService.selectNpRawMilkInspeList(npRawMilkInspe); + return getDataTable(list); + } + + /** + * 导出生乳检验记录列表 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:export')") + @Log(title = "生乳检验记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, NpRawMilkInspe npRawMilkInspe) + { + List list = npRawMilkInspeService.selectNpRawMilkInspeList(npRawMilkInspe); + ExcelUtil util = new ExcelUtil(NpRawMilkInspe.class); + util.exportExcel(response, list, "生乳检验记录数据"); + } + + /** + * 获取生乳检验记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(npRawMilkInspeService.selectNpRawMilkInspeById(id)); + } + + /** + * 新增生乳检验记录 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:add')") + @Log(title = "生乳检验记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody NpRawMilkInspe npRawMilkInspe) + { + return toAjax(npRawMilkInspeService.insertNpRawMilkInspe(npRawMilkInspe)); + } + + /** + * 修改生乳检验记录 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:edit')") + @Log(title = "生乳检验记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody NpRawMilkInspe npRawMilkInspe) + { + return toAjax(npRawMilkInspeService.updateNpRawMilkInspe(npRawMilkInspe)); + } + + /** + * 删除生乳检验记录 + */ + @PreAuthorize("@ss.hasPermi('rawMilkTest:rawMilkTest:remove')") + @Log(title = "生乳检验记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(npRawMilkInspeService.deleteNpRawMilkInspeByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/domain/NpRawMilkInspe.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/domain/NpRawMilkInspe.java new file mode 100644 index 0000000..34bd7b2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/domain/NpRawMilkInspe.java @@ -0,0 +1,647 @@ +//package com.zhyc.module.dairyProducts.rawMilkTest.domain; +// +//import java.util.Date; +//import com.fasterxml.jackson.annotation.JsonFormat; +//import org.apache.commons.lang3.builder.ToStringBuilder; +//import org.apache.commons.lang3.builder.ToStringStyle; +//import com.zhyc.common.annotation.Excel; +//import com.zhyc.common.core.domain.BaseEntity; +// +///** +// * 生乳检验记录对象 np_raw_milk_inspe +// * +// * @author ruoyi +// * @date 2025-07-15 +// */ +//public class NpRawMilkInspe extends BaseEntity +//{ +// private static final long serialVersionUID = 1L; +// +// /** $column.columnComment */ +// private Long id; +// +// /** 检测日期 */ +// @JsonFormat(pattern = "yyyy-MM-dd") +// @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd") +// private Date datetime; +// +// /** 来源 */ +// @Excel(name = "来源") +// private String source; +// +// /** 冰点(摄氏度) */ +// @Excel(name = "冰点", readConverterExp = "摄=氏度") +// private Double freeze; +// +// /** 相对密度(20摄氏度/40摄氏度) */ +// @Excel(name = "相对密度", readConverterExp = "2=0摄氏度/40摄氏度") +// private Double density; +// +// /** 脂肪g/100g */ +// @Excel(name = "脂肪g/100g") +// private Double fat; +// +// /** 蛋白质g/100g */ +// @Excel(name = "蛋白质g/100g") +// private Double protein; +// +// /** 非脂g/100g */ +// @Excel(name = "非脂g/100g") +// private Double nonFat; +// +// /** 干物质mg/100g */ +// @Excel(name = "干物质mg/100g") +// private Double dryMatter; +// +// /** 杂物质mg/100g */ +// @Excel(name = "杂物质mg/100g") +// private Double impurity; +// +// /** 乳糖g/100g */ +// @Excel(name = "乳糖g/100g") +// private Double lactose; +// +// /** 灰度g/100g */ +// @Excel(name = "灰度g/100g") +// private Double ashContent; +// +// /** 酸度 */ +// @Excel(name = "酸度") +// private Double acidity; +// +// /** ph */ +// @Excel(name = "ph") +// private Double ph; +// +// /** 菌落总数(CFU/g) */ +// @Excel(name = "菌落总数", readConverterExp = "C=FU/g") +// private Double bacterialColony; +// +// /** 乳铁蛋白(mg/L) */ +// @Excel(name = "乳铁蛋白", readConverterExp = "m=g/L") +// private Double lactoferrin; +// +// /** 免疫球蛋白(mg/L) */ +// @Excel(name = "免疫球蛋白", readConverterExp = "m=g/L") +// private Double ig; +// +// /** 体细胞(scc/ml) */ +// @Excel(name = "体细胞", readConverterExp = "s=cc/ml") +// private Double somaticCell; +// +// /** 尿素氮 */ +// @Excel(name = "尿素氮") +// private Double usea; +// +// /** 脂蛋比 */ +// @Excel(name = "脂蛋比") +// private Double fatRatio; +// +// /** 备注 */ +// @Excel(name = "备注") +// private String comment; +// +// public void setId(Long id) +// { +// this.id = id; +// } +// +// public Long getId() +// { +// return id; +// } +// +// public void setDatetime(Date datetime) +// { +// this.datetime = datetime; +// } +// +// public Date getDatetime() +// { +// return datetime; +// } +// +// public void setSource(String source) +// { +// this.source = source; +// } +// +// public String getSource() +// { +// return source; +// } +// +// public void setFreeze(Double freeze) +// { +// this.freeze = freeze; +// } +// +// public Double getFreeze() +// { +// return freeze; +// } +// +// public void setDensity(Double density) +// { +// this.density = density; +// } +// +// public Double getDensity() +// { +// return density; +// } +// +// public void setFat(Double fat) +// { +// this.fat = fat; +// } +// +// public Double getFat() +// { +// return fat; +// } +// +// public void setProtein(Double protein) +// { +// this.protein = protein; +// } +// +// public Double getProtein() +// { +// return protein; +// } +// +// public void setNonFat(Double nonFat) +// { +// this.nonFat = nonFat; +// } +// +// public Double getNonFat() +// { +// return nonFat; +// } +// +// public void setDryMatter(Double dryMatter) +// { +// this.dryMatter = dryMatter; +// } +// +// public Double getDryMatter() +// { +// return dryMatter; +// } +// +// public void setImpurity(Double impurity) +// { +// this.impurity = impurity; +// } +// +// public Double getImpurity() +// { +// return impurity; +// } +// +// public void setLactose(Double lactose) +// { +// this.lactose = lactose; +// } +// +// public Double getLactose() +// { +// return lactose; +// } +// +// public void setAshContent(Double ashContent) +// { +// this.ashContent = ashContent; +// } +// +// public Double getAshContent() +// { +// return ashContent; +// } +// +// public void setAcidity(Double acidity) +// { +// this.acidity = acidity; +// } +// +// public Double getAcidity() +// { +// return acidity; +// } +// +// public void setPh(Double ph) +// { +// this.ph = ph; +// } +// +// public Double getPh() +// { +// return ph; +// } +// +// public void setBacterialColony(Double bacterialColony) +// { +// this.bacterialColony = bacterialColony; +// } +// +// public Double getBacterialColony() +// { +// return bacterialColony; +// } +// +// public void setLactoferrin(Double lactoferrin) +// { +// this.lactoferrin = lactoferrin; +// } +// +// public Double getLactoferrin() +// { +// return lactoferrin; +// } +// +// public void setIg(Double ig) +// { +// this.ig = ig; +// } +// +// public Double getIg() +// { +// return ig; +// } +// +// public void setSomaticCell(Double somaticCell) +// { +// this.somaticCell = somaticCell; +// } +// +// public Double getSomaticCell() +// { +// return somaticCell; +// } +// +// public void setUsea(Double usea) +// { +// this.usea = usea; +// } +// +// public Double getUsea() +// { +// return usea; +// } +// +// public void setFatRatio(Double fatRatio) +// { +// this.fatRatio = fatRatio; +// } +// +// public Double getFatRatio() +// { +// return fatRatio; +// } +// +// public void setComment(String comment) +// { +// this.comment = comment; +// } +// +// public String getComment() +// { +// return comment; +// } +// +// @Override +// public String toString() { +// return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) +// .append("id", getId()) +// .append("datetime", getDatetime()) +// .append("source", getSource()) +// .append("freeze", getFreeze()) +// .append("density", getDensity()) +// .append("fat", getFat()) +// .append("protein", getProtein()) +// .append("nonFat", getNonFat()) +// .append("dryMatter", getDryMatter()) +// .append("impurity", getImpurity()) +// .append("lactose", getLactose()) +// .append("ashContent", getAshContent()) +// .append("acidity", getAcidity()) +// .append("ph", getPh()) +// .append("bacterialColony", getBacterialColony()) +// .append("lactoferrin", getLactoferrin()) +// .append("ig", getIg()) +// .append("somaticCell", getSomaticCell()) +// .append("usea", getUsea()) +// .append("fatRatio", getFatRatio()) +// .append("comment", getComment()) +// .append("createBy", getCreateBy()) +// .append("createTime", getCreateTime()) +// .toString(); +// } +//} +package com.zhyc.module.dairyProducts.rawMilkTest.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 生乳检验记录对象 np_raw_milk_inspe + * + * @author ruoyi + * @date 2025-07-15 + */ +public class NpRawMilkInspe extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 检测日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date datetime; + + /** 来源 */ + @Excel(name = "来源") + private String source; + + /** 冰点(摄氏度) */ + @Excel(name = "冰点", readConverterExp = "摄=氏度") + private Double freeze; + + /** 相对密度(20摄氏度/40摄氏度) */ + @Excel(name = "相对密度", readConverterExp = "2=0摄氏度/40摄氏度") + private Double density; + + /** 脂肪g/100g */ + @Excel(name = "脂肪g/100g") + private Double fat; + + /** 蛋白质g/100g */ + @Excel(name = "蛋白质g/100g") + private Double protein; + + /** 非脂g/100g */ + @Excel(name = "非脂g/100g") + private Double nonFat; + + /** 干物质mg/100g */ + @Excel(name = "干物质mg/100g") + private Double dryMatter; + + /** 杂质度mg/100g */ + @Excel(name = "杂质度mg/100g") + private Double impurityDegree; + + /** 乳糖g/100g */ + @Excel(name = "乳糖g/100g") + private Double lactose; + + /** 灰度g/100g */ + @Excel(name = "灰度g/100g") + private Double ashContent; + + /** 酸度 */ + @Excel(name = "酸度") + private Double acidity; + + /** ph */ + @Excel(name = "ph") + private Double ph; + + /** 菌落总数(CFU/g) */ + @Excel(name = "菌落总数", readConverterExp = "C=FU/g") + private Double bacterialColony; + + /** 乳铁蛋白(mg/L) */ + @Excel(name = "乳铁蛋白", readConverterExp = "m=g/L") + private Double lactoferrin; + + /** 免疫球蛋白(mg/L) */ + @Excel(name = "免疫球蛋白", readConverterExp = "m=g/L") + private Double ig; + + /** 体细胞(scc/ml) */ + @Excel(name = "体细胞", readConverterExp = "s=cc/ml") + private Double somaticCell; + + /** 尿素氮 */ + @Excel(name = "尿素氮") + private Double usea; + + /** 脂蛋比 */ + @Excel(name = "脂蛋比") + private Double fatRatio; + + /** 备注 */ + @Excel(name = "备注") + private String comment; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + // Getters and Setters + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setDatetime(Date datetime) { + this.datetime = datetime; + } + + public Date getDatetime() { + return datetime; + } + + public void setSource(String source) { + this.source = source; + } + + public String getSource() { + return source; + } + + public void setFreeze(Double freeze) { + this.freeze = freeze; + } + + public Double getFreeze() { + return freeze; + } + + public void setDensity(Double density) { + this.density = density; + } + + public Double getDensity() { + return density; + } + + public void setFat(Double fat) { + this.fat = fat; + } + + public Double getFat() { + return fat; + } + + public void setProtein(Double protein) { + this.protein = protein; + } + + public Double getProtein() { + return protein; + } + + public void setNonFat(Double nonFat) { + this.nonFat = nonFat; + } + + public Double getNonFat() { + return nonFat; + } + + public void setDryMatter(Double dryMatter) { + this.dryMatter = dryMatter; + } + + public Double getDryMatter() { + return dryMatter; + } + + public void setImpurityDegree(Double impurityDegree) { + this.impurityDegree = impurityDegree; + } + + public Double getImpurityDegree() { + return impurityDegree; + } + + public void setLactose(Double lactose) { + this.lactose = lactose; + } + + public Double getLactose() { + return lactose; + } + + public void setAshContent(Double ashContent) { + this.ashContent = ashContent; + } + + public Double getAshContent() { + return ashContent; + } + + public void setAcidity(Double acidity) { + this.acidity = acidity; + } + + public Double getAcidity() { + return acidity; + } + + public void setPh(Double ph) { + this.ph = ph; + } + + public Double getPh() { + return ph; + } + + public void setBacterialColony(Double bacterialColony) { + this.bacterialColony = bacterialColony; + } + + public Double getBacterialColony() { + return bacterialColony; + } + + public void setLactoferrin(Double lactoferrin) { + this.lactoferrin = lactoferrin; + } + + public Double getLactoferrin() { + return lactoferrin; + } + + public void setIg(Double ig) { + this.ig = ig; + } + + public Double getIg() { + return ig; + } + + public void setSomaticCell(Double somaticCell) { + this.somaticCell = somaticCell; + } + + public Double getSomaticCell() { + return somaticCell; + } + + public void setUsea(Double usea) { + this.usea = usea; + } + + public Double getUsea() { + return usea; + } + + public void setFatRatio(Double fatRatio) { + this.fatRatio = fatRatio; + } + + public Double getFatRatio() { + return fatRatio; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public String getComment() { + return comment; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("datetime", getDatetime()) + .append("source", getSource()) + .append("freeze", getFreeze()) + .append("density", getDensity()) + .append("fat", getFat()) + .append("protein", getProtein()) + .append("nonFat", getNonFat()) + .append("dryMatter", getDryMatter()) + .append("impurityDegree", getImpurityDegree()) + .append("lactose", getLactose()) + .append("ashContent", getAshContent()) + .append("acidity", getAcidity()) + .append("ph", getPh()) + .append("bacterialColony", getBacterialColony()) + .append("lactoferrin", getLactoferrin()) + .append("ig", getIg()) + .append("somaticCell", getSomaticCell()) + .append("usea", getUsea()) + .append("fatRatio", getFatRatio()) + .append("comment", getComment()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/mapper/NpRawMilkInspeMapper.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/mapper/NpRawMilkInspeMapper.java new file mode 100644 index 0000000..cbfd525 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/mapper/NpRawMilkInspeMapper.java @@ -0,0 +1,61 @@ +package com.zhyc.module.dairyProducts.rawMilkTest.mapper; + +import java.util.List; +import com.zhyc.module.dairyProducts.rawMilkTest.domain.NpRawMilkInspe; + +/** + * 生乳检验记录Mapper接口 + * + * @author ruoyi + * @date 2025-07-15 + */ +public interface NpRawMilkInspeMapper +{ + /** + * 查询生乳检验记录 + * + * @param id 生乳检验记录主键 + * @return 生乳检验记录 + */ + public NpRawMilkInspe selectNpRawMilkInspeById(Long id); + + /** + * 查询生乳检验记录列表 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 生乳检验记录集合 + */ + public List selectNpRawMilkInspeList(NpRawMilkInspe npRawMilkInspe); + + /** + * 新增生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + public int insertNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe); + + /** + * 修改生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + public int updateNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe); + + /** + * 删除生乳检验记录 + * + * @param id 生乳检验记录主键 + * @return 结果 + */ + public int deleteNpRawMilkInspeById(Long id); + + /** + * 批量删除生乳检验记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteNpRawMilkInspeByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/INpRawMilkInspeService.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/INpRawMilkInspeService.java new file mode 100644 index 0000000..2d4c1e3 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/INpRawMilkInspeService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.dairyProducts.rawMilkTest.service; + +import java.util.List; +import com.zhyc.module.dairyProducts.rawMilkTest.domain.NpRawMilkInspe; + +/** + * 生乳检验记录Service接口 + * + * @author ruoyi + * @date 2025-07-15 + */ +public interface INpRawMilkInspeService +{ + /** + * 查询生乳检验记录 + * + * @param id 生乳检验记录主键 + * @return 生乳检验记录 + */ + public NpRawMilkInspe selectNpRawMilkInspeById(Long id); + + /** + * 查询生乳检验记录列表 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 生乳检验记录集合 + */ + public List selectNpRawMilkInspeList(NpRawMilkInspe npRawMilkInspe); + + /** + * 新增生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + public int insertNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe); + + /** + * 修改生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + public int updateNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe); + + /** + * 批量删除生乳检验记录 + * + * @param ids 需要删除的生乳检验记录主键集合 + * @return 结果 + */ + public int deleteNpRawMilkInspeByIds(Long[] ids); + + /** + * 删除生乳检验记录信息 + * + * @param id 生乳检验记录主键 + * @return 结果 + */ + public int deleteNpRawMilkInspeById(Long id); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/impl/NpRawMilkInspeServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/impl/NpRawMilkInspeServiceImpl.java new file mode 100644 index 0000000..fa12858 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/dairyProducts/rawMilkTest/service/impl/NpRawMilkInspeServiceImpl.java @@ -0,0 +1,95 @@ +package com.zhyc.module.dairyProducts.rawMilkTest.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.dairyProducts.rawMilkTest.mapper.NpRawMilkInspeMapper; +import com.zhyc.module.dairyProducts.rawMilkTest.domain.NpRawMilkInspe; +import com.zhyc.module.dairyProducts.rawMilkTest.service.INpRawMilkInspeService; + +/** + * 生乳检验记录Service业务层处理 + * + * @author ruoyi + * @date 2025-07-15 + */ +@Service +public class NpRawMilkInspeServiceImpl implements INpRawMilkInspeService +{ + @Autowired + private NpRawMilkInspeMapper npRawMilkInspeMapper; + + /** + * 查询生乳检验记录 + * + * @param id 生乳检验记录主键 + * @return 生乳检验记录 + */ + @Override + public NpRawMilkInspe selectNpRawMilkInspeById(Long id) + { + return npRawMilkInspeMapper.selectNpRawMilkInspeById(id); + } + + /** + * 查询生乳检验记录列表 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 生乳检验记录 + */ + @Override + public List selectNpRawMilkInspeList(NpRawMilkInspe npRawMilkInspe) + { + return npRawMilkInspeMapper.selectNpRawMilkInspeList(npRawMilkInspe); + } + + /** + * 新增生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + @Override + public int insertNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe) + { + npRawMilkInspe.setCreateTime(DateUtils.getNowDate()); + return npRawMilkInspeMapper.insertNpRawMilkInspe(npRawMilkInspe); + } + + /** + * 修改生乳检验记录 + * + * @param npRawMilkInspe 生乳检验记录 + * @return 结果 + */ + @Override + public int updateNpRawMilkInspe(NpRawMilkInspe npRawMilkInspe) + { + return npRawMilkInspeMapper.updateNpRawMilkInspe(npRawMilkInspe); + } + + /** + * 批量删除生乳检验记录 + * + * @param ids 需要删除的生乳检验记录主键 + * @return 结果 + */ + @Override + public int deleteNpRawMilkInspeByIds(Long[] ids) + { + return npRawMilkInspeMapper.deleteNpRawMilkInspeByIds(ids); + } + + /** + * 删除生乳检验记录信息 + * + * @param id 生乳检验记录主键 + * @return 结果 + */ + @Override + public int deleteNpRawMilkInspeById(Long id) + { + return npRawMilkInspeMapper.deleteNpRawMilkInspeById(id); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupController.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupController.java index 7326485..0413aad 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupController.java @@ -94,4 +94,11 @@ public class BasSheepGroupController extends BaseController return toAjax(basSheepGroupService.deleteBasSheepGroupByGroupIds(groupIds)); } + @PreAuthorize("@ss.hasPermi('group_management:group_management:list')") + @GetMapping("/leaf") + public AjaxResult selectLeafNodes() { + List leafNodes = basSheepGroupService.selectLeafNodes(); + return success(leafNodes); + } + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupMappingController.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupMappingController.java new file mode 100644 index 0000000..b1d3417 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/controller/BasSheepGroupMappingController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.fileManagement.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.fileManagement.domain.BasSheepGroupMapping; +import com.zhyc.module.fileManagement.service.IBasSheepGroupMappingService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 羊只分组关联Controller + * + * @author wyt + * @date 2025-07-16 + */ +@RestController +@RequestMapping("/sheep_grouping/sheep_grouping") +public class BasSheepGroupMappingController extends BaseController +{ + @Autowired + private IBasSheepGroupMappingService basSheepGroupMappingService; + + /** + * 查询羊只分组关联列表 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:list')") + @GetMapping("/list") + public TableDataInfo list(BasSheepGroupMapping basSheepGroupMapping) + { + startPage(); + List list = basSheepGroupMappingService.selectBasSheepGroupMappingList(basSheepGroupMapping); + return getDataTable(list); + } + + /** + * 导出羊只分组关联列表 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:export')") + @Log(title = "羊只分组关联", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BasSheepGroupMapping basSheepGroupMapping) + { + List list = basSheepGroupMappingService.selectBasSheepGroupMappingList(basSheepGroupMapping); + ExcelUtil util = new ExcelUtil(BasSheepGroupMapping.class); + util.exportExcel(response, list, "羊只分组关联数据"); + } + + /** + * 获取羊只分组关联详细信息 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(basSheepGroupMappingService.selectBasSheepGroupMappingById(id)); + } + + /** + * 新增羊只分组关联 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:add')") + @Log(title = "羊只分组关联", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BasSheepGroupMapping basSheepGroupMapping) + { + return toAjax(basSheepGroupMappingService.insertBasSheepGroupMapping(basSheepGroupMapping)); + } + + /** + * 修改羊只分组关联 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:edit')") + @Log(title = "羊只分组关联", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BasSheepGroupMapping basSheepGroupMapping) + { + return toAjax(basSheepGroupMappingService.updateBasSheepGroupMapping(basSheepGroupMapping)); + } + + /** + * 删除羊只分组关联 + */ + @PreAuthorize("@ss.hasPermi('sheep_grouping:sheep_grouping:remove')") + @Log(title = "羊只分组关联", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(basSheepGroupMappingService.deleteBasSheepGroupMappingByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/domain/BasSheepGroupMapping.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/domain/BasSheepGroupMapping.java new file mode 100644 index 0000000..37798f3 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/domain/BasSheepGroupMapping.java @@ -0,0 +1,68 @@ +package com.zhyc.module.fileManagement.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 羊只分组关联对象 bas_sheep_group_mapping + * + * @author wyt + * @date 2025-07-16 + */ +public class BasSheepGroupMapping extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + @Excel(name = "主键ID") + private Long id; + + /** 羊只ID */ + @Excel(name = "羊只ID") + private Long sheepId; + + /** 分组ID */ + @Excel(name = "分组ID") + private Long groupId; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setSheepId(Long sheepId) + { + this.sheepId = sheepId; + } + + public Long getSheepId() + { + return sheepId; + } + + public void setGroupId(Long groupId) + { + this.groupId = groupId; + } + + public Long getGroupId() + { + return groupId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("sheepId", getSheepId()) + .append("groupId", getGroupId()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMapper.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMapper.java index dcdcaeb..a7a434d 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMapper.java @@ -60,4 +60,6 @@ public interface BasSheepGroupMapper */ public int deleteBasSheepGroupByGroupIds(Long[] groupIds); + List selectLeafNodes(); + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMappingMapper.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMappingMapper.java new file mode 100644 index 0000000..f38bf34 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/mapper/BasSheepGroupMappingMapper.java @@ -0,0 +1,63 @@ +package com.zhyc.module.fileManagement.mapper; + +import java.util.List; +import com.zhyc.module.fileManagement.domain.BasSheepGroupMapping; + +/** + * 羊只分组关联Mapper接口 + * + * @author wyt + * @date 2025-07-16 + */ +public interface BasSheepGroupMappingMapper +{ + /** + * 查询羊只分组关联 + * + * @param id 羊只分组关联主键 + * @return 羊只分组关联 + */ + public BasSheepGroupMapping selectBasSheepGroupMappingById(Long id); + + /** + * 查询羊只分组关联列表 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 羊只分组关联集合 + */ + public List selectBasSheepGroupMappingList(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 新增羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + public int insertBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 修改羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + public int updateBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 删除羊只分组关联 + * + * @param id 羊只分组关联主键 + * @return 结果 + */ + public int deleteBasSheepGroupMappingById(Long id); + + /** + * 批量删除羊只分组关联 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBasSheepGroupMappingByIds(Long[] ids); + + +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupMappingService.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupMappingService.java new file mode 100644 index 0000000..febb461 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupMappingService.java @@ -0,0 +1,63 @@ +package com.zhyc.module.fileManagement.service; + +import java.util.List; +import com.zhyc.module.fileManagement.domain.BasSheepGroupMapping; + +/** + * 羊只分组关联Service接口 + * + * @author wyt + * @date 2025-07-16 + */ +public interface IBasSheepGroupMappingService +{ + /** + * 查询羊只分组关联 + * + * @param id 羊只分组关联主键 + * @return 羊只分组关联 + */ + public BasSheepGroupMapping selectBasSheepGroupMappingById(Long id); + + /** + * 查询羊只分组关联列表 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 羊只分组关联集合 + */ + public List selectBasSheepGroupMappingList(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 新增羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + public int insertBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 修改羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + public int updateBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping); + + /** + * 批量删除羊只分组关联 + * + * @param ids 需要删除的羊只分组关联主键集合 + * @return 结果 + */ + public int deleteBasSheepGroupMappingByIds(Long[] ids); + + /** + * 删除羊只分组关联信息 + * + * @param id 羊只分组关联主键 + * @return 结果 + */ + public int deleteBasSheepGroupMappingById(Long id); + + +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupService.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupService.java index 2bd5c60..7f55e6f 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupService.java +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/IBasSheepGroupService.java @@ -60,5 +60,5 @@ public interface IBasSheepGroupService */ public int deleteBasSheepGroupByGroupId(Long groupId); - + List selectLeafNodes(); } diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupMappingServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupMappingServiceImpl.java new file mode 100644 index 0000000..d428848 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupMappingServiceImpl.java @@ -0,0 +1,96 @@ +package com.zhyc.module.fileManagement.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.fileManagement.mapper.BasSheepGroupMappingMapper; +import com.zhyc.module.fileManagement.domain.BasSheepGroupMapping; +import com.zhyc.module.fileManagement.service.IBasSheepGroupMappingService; + +/** + * 羊只分组关联Service业务层处理 + * + * @author wyt + * @date 2025-07-16 + */ +@Service +public class BasSheepGroupMappingServiceImpl implements IBasSheepGroupMappingService +{ + @Autowired + private BasSheepGroupMappingMapper basSheepGroupMappingMapper; + + /** + * 查询羊只分组关联 + * + * @param id 羊只分组关联主键 + * @return 羊只分组关联 + */ + @Override + public BasSheepGroupMapping selectBasSheepGroupMappingById(Long id) + { + return basSheepGroupMappingMapper.selectBasSheepGroupMappingById(id); + } + + /** + * 查询羊只分组关联列表 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 羊只分组关联 + */ + @Override + public List selectBasSheepGroupMappingList(BasSheepGroupMapping basSheepGroupMapping) + { + return basSheepGroupMappingMapper.selectBasSheepGroupMappingList(basSheepGroupMapping); + } + + /** + * 新增羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + @Override + public int insertBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping) + { + return basSheepGroupMappingMapper.insertBasSheepGroupMapping(basSheepGroupMapping); + } + + /** + * 修改羊只分组关联 + * + * @param basSheepGroupMapping 羊只分组关联 + * @return 结果 + */ + @Override + public int updateBasSheepGroupMapping(BasSheepGroupMapping basSheepGroupMapping) + { + return basSheepGroupMappingMapper.updateBasSheepGroupMapping(basSheepGroupMapping); + } + + /** + * 批量删除羊只分组关联 + * + * @param ids 需要删除的羊只分组关联主键 + * @return 结果 + */ + @Override + public int deleteBasSheepGroupMappingByIds(Long[] ids) + { + return basSheepGroupMappingMapper.deleteBasSheepGroupMappingByIds(ids); + } + + /** + * 删除羊只分组关联信息 + * + * @param id 羊只分组关联主键 + * @return 结果 + */ + @Override + public int deleteBasSheepGroupMappingById(Long id) + { + return basSheepGroupMappingMapper.deleteBasSheepGroupMappingById(id); + } + + + +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupServiceImpl.java index 970e21d..9df99d3 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/fileManagement/service/impl/BasSheepGroupServiceImpl.java @@ -108,4 +108,16 @@ public class BasSheepGroupServiceImpl implements IBasSheepGroupService { return basSheepGroupMapper.deleteBasSheepGroupByGroupId(groupId); } + + @Override + public List selectLeafNodes() { + List leafNodes = basSheepGroupMapper.selectLeafNodes(); + // 如果 ancestorNames 需要格式化,可以复用已有的逻辑 + leafNodes.forEach(group -> { + if (group.getAncestorNames() != null) { + group.setAncestorNames(group.getAncestorNames().replace(",", " / ")); + } + }); + return leafNodes; + } } diff --git a/zhyc-module/src/main/resources/mapper/dairyProducts/rawMilkTest/NpRawMilkInspeMapper.xml b/zhyc-module/src/main/resources/mapper/dairyProducts/rawMilkTest/NpRawMilkInspeMapper.xml new file mode 100644 index 0000000..e4ee584 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/dairyProducts/rawMilkTest/NpRawMilkInspeMapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, datetime, source, freeze, density, fat, protein, non_fat, dry_matter, + impurity, lactose, ash_content, acidity, ph, bacterial_colony, lactoferrin, + ig, somatic_cell, usea, fat_ratio, comment, create_by, create_time + from np_raw_milk_inspe + + + + + + + + insert into np_raw_milk_inspe + + datetime, + source, + freeze, + density, + fat, + protein, + non_fat, + dry_matter, + impurity, + lactose, + ash_content, + acidity, + ph, + bacterial_colony, + lactoferrin, + ig, + somatic_cell, + usea, + fat_ratio, + comment, + create_by, + create_time, + + + #{datetime}, + #{source}, + #{freeze}, + #{density}, + #{fat}, + #{protein}, + #{nonFat}, + #{dryMatter}, + #{impurityDegree}, + #{lactose}, + #{ashContent}, + #{acidity}, + #{ph}, + #{bacterialColony}, + #{lactoferrin}, + #{ig}, + #{somaticCell}, + #{usea}, + #{fatRatio}, + #{comment}, + #{createBy}, + #{createTime}, + + + + + update np_raw_milk_inspe + + datetime = #{datetime}, + source = #{source}, + freeze = #{freeze}, + density = #{density}, + fat = #{fat}, + protein = #{protein}, + non_fat = #{nonFat}, + dry_matter = #{dryMatter}, + impurity = #{impurityDegree}, + lactose = #{lactose}, + ash_content = #{ashContent}, + acidity = #{acidity}, + ph = #{ph}, + bacterial_colony = #{bacterialColony}, + lactoferrin = #{lactoferrin}, + ig = #{ig}, + somatic_cell = #{somaticCell}, + usea = #{usea}, + fat_ratio = #{fatRatio}, + comment = #{comment}, + + where id = #{id} + + + + delete from np_raw_milk_inspe where id = #{id} + + + + delete from np_raw_milk_inspe where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.txt b/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.txt new file mode 100644 index 0000000..be9a507 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.txt @@ -0,0 +1,80 @@ +This XML file does not appear to have any style information associated with it. The document tree is shown below. + + + + + + + + + + + + + + + + + + + +SELECT g.group_id, g.parent_id, g.group_name, g.ancestors, g.status, g.create_by, g.create_time, g.update_by, g.update_time, + +(SELECT GROUP_CONCAT(parent.group_name ORDER BY FIND_IN_SET(parent.group_id, g.ancestors)) FROM bas_sheep_group parent WHERE FIND_IN_SET(parent.group_id, g.ancestors) > 0 ) AS ancestor_names, (CASE WHEN (SELECT COUNT(1) FROM bas_sheep_group child WHERE child.parent_id = g.group_id) > 0 THEN 0 ELSE 1 END) AS is_leaf FROM bas_sheep_group g + + + + +insert into bas_sheep_group + +parent_id, +group_name, +ancestors, +status, +create_by, +create_time, +update_by, +update_time, + + +#{parentId}, +#{groupName}, +#{ancestors}, +#{status}, +#{createBy}, +#{createTime}, +#{updateBy}, +#{updateTime}, + + + +update bas_sheep_group + +parent_id = #{parentId}, +group_name = #{groupName}, +ancestors = #{ancestors}, +status = #{status}, +create_by = #{createBy}, +create_time = #{createTime}, +update_by = #{updateBy}, +update_time = #{updateTime}, + +where group_id = #{groupId} + + delete from bas_sheep_group where group_id = #{groupId} + +delete from bas_sheep_group where group_id in + #{groupId} + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.xml b/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.xml index dd632fd..379f397 100644 --- a/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.xml +++ b/zhyc-module/src/main/resources/mapper/fileManagement/BasSheepGroupMapper.xml @@ -49,6 +49,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and status = #{status} ORDER BY g.group_id + + + + + and sheep_id = #{sheepId} + and group_id = #{groupId} + + + + + + + insert into bas_sheep_group_mapping + + sheep_id, + group_id, + + + #{sheepId}, + #{groupId}, + + + + + update bas_sheep_group_mapping + + sheep_id = #{sheepId}, + group_id = #{groupId}, + + where id = #{id} + + + + delete from bas_sheep_group_mapping where id = #{id} + + + + delete from bas_sheep_group_mapping where id in + + #{id} + + + \ No newline at end of file