Merge remote-tracking branch 'origin/main'

This commit is contained in:
zyh 2025-07-17 09:59:02 +08:00
commit 0343c81ee6
18 changed files with 1688 additions and 1 deletions

View File

@ -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<NpRawMilkInspe> 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<NpRawMilkInspe> list = npRawMilkInspeService.selectNpRawMilkInspeList(npRawMilkInspe);
ExcelUtil<NpRawMilkInspe> util = new ExcelUtil<NpRawMilkInspe>(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));
}
}

View File

@ -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();
}
}

View File

@ -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<NpRawMilkInspe> 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);
}

View File

@ -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<NpRawMilkInspe> 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);
}

View File

@ -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<NpRawMilkInspe> 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);
}
}

View File

@ -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<BasSheepGroup> leafNodes = basSheepGroupService.selectLeafNodes();
return success(leafNodes);
}
}

View File

@ -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<BasSheepGroupMapping> 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<BasSheepGroupMapping> list = basSheepGroupMappingService.selectBasSheepGroupMappingList(basSheepGroupMapping);
ExcelUtil<BasSheepGroupMapping> util = new ExcelUtil<BasSheepGroupMapping>(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));
}
}

View File

@ -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();
}
}

View File

@ -60,4 +60,6 @@ public interface BasSheepGroupMapper
*/
public int deleteBasSheepGroupByGroupIds(Long[] groupIds);
List<BasSheepGroup> selectLeafNodes();
}

View File

@ -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<BasSheepGroupMapping> 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);
}

View File

@ -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<BasSheepGroupMapping> 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);
}

View File

@ -60,5 +60,5 @@ public interface IBasSheepGroupService
*/
public int deleteBasSheepGroupByGroupId(Long groupId);
List<BasSheepGroup> selectLeafNodes();
}

View File

@ -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<BasSheepGroupMapping> 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);
}
}

View File

@ -108,4 +108,16 @@ public class BasSheepGroupServiceImpl implements IBasSheepGroupService
{
return basSheepGroupMapper.deleteBasSheepGroupByGroupId(groupId);
}
@Override
public List<BasSheepGroup> selectLeafNodes() {
List<BasSheepGroup> leafNodes = basSheepGroupMapper.selectLeafNodes();
// 如果 ancestorNames 需要格式化可以复用已有的逻辑
leafNodes.forEach(group -> {
if (group.getAncestorNames() != null) {
group.setAncestorNames(group.getAncestorNames().replace(",", " / "));
}
});
return leafNodes;
}
}

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhyc.module.dairyProducts.rawMilkTest.mapper.NpRawMilkInspeMapper">
<resultMap type="NpRawMilkInspe" id="NpRawMilkInspeResult">
<result property="id" column="id" />
<result property="datetime" column="datetime" />
<result property="source" column="source" />
<result property="freeze" column="freeze" />
<result property="density" column="density" />
<result property="fat" column="fat" />
<result property="protein" column="protein" />
<result property="nonFat" column="non_fat" />
<result property="dryMatter" column="dry_matter" />
<result property="impurityDegree" column="impurity" />
<result property="lactose" column="lactose" />
<result property="ashContent" column="ash_content" />
<result property="acidity" column="acidity" />
<result property="ph" column="ph" />
<result property="bacterialColony" column="bacterial_colony" />
<result property="lactoferrin" column="lactoferrin" />
<result property="ig" column="ig" />
<result property="somaticCell" column="somatic_cell" />
<result property="usea" column="usea" />
<result property="fatRatio" column="fat_ratio" />
<result property="comment" column="comment" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectNpRawMilkInspeVo">
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
</sql>
<select id="selectNpRawMilkInspeList" parameterType="NpRawMilkInspe" resultMap="NpRawMilkInspeResult">
<include refid="selectNpRawMilkInspeVo"/>
<where>
<if test="datetime != null "> and datetime = #{datetime}</if>
<if test="source != null and source != ''"> and source like concat('%', #{source}, '%')</if>
</where>
</select>
<select id="selectNpRawMilkInspeById" parameterType="Long" resultMap="NpRawMilkInspeResult">
<include refid="selectNpRawMilkInspeVo"/>
where id = #{id}
</select>
<insert id="insertNpRawMilkInspe" parameterType="NpRawMilkInspe" useGeneratedKeys="true" keyProperty="id">
insert into np_raw_milk_inspe
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="datetime != null">datetime,</if>
<if test="source != null">source,</if>
<if test="freeze != null">freeze,</if>
<if test="density != null">density,</if>
<if test="fat != null">fat,</if>
<if test="protein != null">protein,</if>
<if test="nonFat != null">non_fat,</if>
<if test="dryMatter != null">dry_matter,</if>
<if test="impurityDegree != null">impurity,</if>
<if test="lactose != null">lactose,</if>
<if test="ashContent != null">ash_content,</if>
<if test="acidity != null">acidity,</if>
<if test="ph != null">ph,</if>
<if test="bacterialColony != null">bacterial_colony,</if>
<if test="lactoferrin != null">lactoferrin,</if>
<if test="ig != null">ig,</if>
<if test="somaticCell != null">somatic_cell,</if>
<if test="usea != null">usea,</if>
<if test="fatRatio != null">fat_ratio,</if>
<if test="comment != null">comment,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="datetime != null">#{datetime},</if>
<if test="source != null">#{source},</if>
<if test="freeze != null">#{freeze},</if>
<if test="density != null">#{density},</if>
<if test="fat != null">#{fat},</if>
<if test="protein != null">#{protein},</if>
<if test="nonFat != null">#{nonFat},</if>
<if test="dryMatter != null">#{dryMatter},</if>
<if test="impurityDegree != null">#{impurityDegree},</if>
<if test="lactose != null">#{lactose},</if>
<if test="ashContent != null">#{ashContent},</if>
<if test="acidity != null">#{acidity},</if>
<if test="ph != null">#{ph},</if>
<if test="bacterialColony != null">#{bacterialColony},</if>
<if test="lactoferrin != null">#{lactoferrin},</if>
<if test="ig != null">#{ig},</if>
<if test="somaticCell != null">#{somaticCell},</if>
<if test="usea != null">#{usea},</if>
<if test="fatRatio != null">#{fatRatio},</if>
<if test="comment != null">#{comment},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
</insert>
<update id="updateNpRawMilkInspe" parameterType="NpRawMilkInspe">
update np_raw_milk_inspe
<trim prefix="SET" suffixOverrides=",">
<if test="datetime != null">datetime = #{datetime},</if>
<if test="source != null">source = #{source},</if>
<if test="freeze != null">freeze = #{freeze},</if>
<if test="density != null">density = #{density},</if>
<if test="fat != null">fat = #{fat},</if>
<if test="protein != null">protein = #{protein},</if>
<if test="nonFat != null">non_fat = #{nonFat},</if>
<if test="dryMatter != null">dry_matter = #{dryMatter},</if>
<if test="impurityDegree != null">impurity = #{impurityDegree},</if>
<if test="lactose != null">lactose = #{lactose},</if>
<if test="ashContent != null">ash_content = #{ashContent},</if>
<if test="acidity != null">acidity = #{acidity},</if>
<if test="ph != null">ph = #{ph},</if>
<if test="bacterialColony != null">bacterial_colony = #{bacterialColony},</if>
<if test="lactoferrin != null">lactoferrin = #{lactoferrin},</if>
<if test="ig != null">ig = #{ig},</if>
<if test="somaticCell != null">somatic_cell = #{somaticCell},</if>
<if test="usea != null">usea = #{usea},</if>
<if test="fatRatio != null">fat_ratio = #{fatRatio},</if>
<if test="comment != null">comment = #{comment},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteNpRawMilkInspeById" parameterType="Long">
delete from np_raw_milk_inspe where id = #{id}
</delete>
<delete id="deleteNpRawMilkInspeByIds" parameterType="String">
delete from np_raw_milk_inspe where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,80 @@
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<mapper namespace="com.zhyc.module.fileManagement.mapper.BasSheepGroupMapper">
<resultMap type="BasSheepGroup" id="BasSheepGroupResult">
<result property="groupId" column="group_id"/>
<result property="parentId" column="parent_id"/>
<result property="groupName" column="group_name"/>
<result property="ancestors" column="ancestors"/>
<result property="ancestorNames" column="ancestor_names"/>
<result property="isLeaf" column="is_leaf"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<!-- <sql id="selectBasSheepGroupVo"> -->
<!-- select group_id, parent_id, group_name, ancestors, status, create_by, create_time, update_by, update_time from bas_sheep_group -->
<!-- </sql> -->
<!-- 修改基础查询语句 -->
<sql id="selectBasSheepGroupVo">
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
</sql>
<select id="selectBasSheepGroupList" parameterType="BasSheepGroup" resultMap="BasSheepGroupResult">
<include refid="selectBasSheepGroupVo"/>
<where>
<if test="groupName != null and groupName != ''"> and group_name like concat('%', #{groupName}, '%')</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
ORDER BY g.group_id
<!-- 确保正确排序 -->
</select>
<select id="selectBasSheepGroupByGroupId" parameterType="Long" resultMap="BasSheepGroupResult">
<include refid="selectBasSheepGroupVo"/>
where group_id = #{groupId}
</select>
<insert id="insertBasSheepGroup" parameterType="BasSheepGroup" useGeneratedKeys="true" keyProperty="groupId">
insert into bas_sheep_group
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="parentId != null">parent_id,</if>
<if test="groupName != null and groupName != ''">group_name,</if>
<if test="ancestors != null">ancestors,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="parentId != null">#{parentId},</if>
<if test="groupName != null and groupName != ''">#{groupName},</if>
<if test="ancestors != null">#{ancestors},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBasSheepGroup" parameterType="BasSheepGroup">
update bas_sheep_group
<trim prefix="SET" suffixOverrides=",">
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="groupName != null and groupName != ''">group_name = #{groupName},</if>
<if test="ancestors != null">ancestors = #{ancestors},</if>
<if test="status != null">status = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where group_id = #{groupId}
</update>
<delete id="deleteBasSheepGroupByGroupId" parameterType="Long"> delete from bas_sheep_group where group_id = #{groupId} </delete>
<delete id="deleteBasSheepGroupByGroupIds" parameterType="String">
delete from bas_sheep_group where group_id in
<foreach item="groupId" collection="array" open="(" separator="," close=")"> #{groupId} </foreach>
</delete>
</mapper>

View File

@ -49,6 +49,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''"> and status = #{status}</if>
</where>ORDER BY g.group_id <!-- 确保正确排序 -->
</select>
<select id="selectLeafNodes" resultMap="BasSheepGroupResult">
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
WHERE g.status = '0'
HAVING is_leaf = 1
</select>
<select id="selectBasSheepGroupByGroupId" parameterType="Long" resultMap="BasSheepGroupResult">
<include refid="selectBasSheepGroupVo"/>

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhyc.module.fileManagement.mapper.BasSheepGroupMappingMapper">
<resultMap type="BasSheepGroupMapping" id="BasSheepGroupMappingResult">
<result property="id" column="id" />
<result property="sheepId" column="sheep_id" />
<result property="groupId" column="group_id" />
</resultMap>
<sql id="selectBasSheepGroupMappingVo">
select id, sheep_id, group_id from bas_sheep_group_mapping
</sql>
<select id="selectBasSheepGroupMappingList" parameterType="BasSheepGroupMapping" resultMap="BasSheepGroupMappingResult">
<include refid="selectBasSheepGroupMappingVo"/>
<where>
<if test="sheepId != null "> and sheep_id = #{sheepId}</if>
<if test="groupId != null "> and group_id = #{groupId}</if>
</where>
</select>
<select id="selectBasSheepGroupMappingById" parameterType="Long" resultMap="BasSheepGroupMappingResult">
<include refid="selectBasSheepGroupMappingVo"/>
where id = #{id}
</select>
<insert id="insertBasSheepGroupMapping" parameterType="BasSheepGroupMapping" useGeneratedKeys="true" keyProperty="id">
insert into bas_sheep_group_mapping
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="sheepId != null">sheep_id,</if>
<if test="groupId != null">group_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sheepId != null">#{sheepId},</if>
<if test="groupId != null">#{groupId},</if>
</trim>
</insert>
<update id="updateBasSheepGroupMapping" parameterType="BasSheepGroupMapping">
update bas_sheep_group_mapping
<trim prefix="SET" suffixOverrides=",">
<if test="sheepId != null">sheep_id = #{sheepId},</if>
<if test="groupId != null">group_id = #{groupId},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBasSheepGroupMappingById" parameterType="Long">
delete from bas_sheep_group_mapping where id = #{id}
</delete>
<delete id="deleteBasSheepGroupMappingByIds" parameterType="String">
delete from bas_sheep_group_mapping where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>