修改羊舍管理页面,完善删除、导出功能
This commit is contained in:
@@ -8,6 +8,7 @@ import com.zhyc.common.enums.BusinessType;
|
||||
import com.zhyc.common.utils.poi.ExcelUtil;
|
||||
import com.zhyc.module.base.domain.BasSheep;
|
||||
import com.zhyc.module.base.domain.DaSheepfold;
|
||||
import com.zhyc.module.base.domain.DaSheepfoldSummaryExportVO;
|
||||
import com.zhyc.module.base.service.IDaSheepfoldService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -80,6 +81,73 @@ public class DaSheepfoldController extends BaseController
|
||||
util.exportExcel(response, list, "羊舍管理数据");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出羊舍管理汇总列表(主表格数据)- 新增方法
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('sheepfold_management:sheepfold_management:export')")
|
||||
@Log(title = "羊舍管理汇总导出", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportSummary")
|
||||
public void exportSummary(HttpServletResponse response, DaSheepfold daSheepfold) {
|
||||
// 1. 查询汇总数据
|
||||
List<DaSheepfold> list = daSheepfoldService.selectDaSheepfoldSummaryList(daSheepfold);
|
||||
|
||||
// 2. 转换为导出VO
|
||||
List<DaSheepfoldSummaryExportVO> exportList = convertToExportVO(list);
|
||||
|
||||
// 3. 使用VO类导出Excel
|
||||
ExcelUtil<DaSheepfoldSummaryExportVO> util = new ExcelUtil<>(DaSheepfoldSummaryExportVO.class);
|
||||
util.exportExcel(response, exportList, "羊舍管理汇总数据");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将DaSheepfold列表转换为导出VO列表
|
||||
*/
|
||||
private List<DaSheepfoldSummaryExportVO> convertToExportVO(List<DaSheepfold> daSheepfoldList) {
|
||||
List<DaSheepfoldSummaryExportVO> voList = new ArrayList<>();
|
||||
|
||||
for (DaSheepfold entity : daSheepfoldList) {
|
||||
DaSheepfoldSummaryExportVO vo = new DaSheepfoldSummaryExportVO();
|
||||
|
||||
// 字典翻译:牧场ID -> 牧场名称
|
||||
if (entity.getRanchId() != null) {
|
||||
String ranchName = DictUtils.getDictLabel("da_ranch", entity.getRanchId().toString());
|
||||
vo.setRanchName(ranchName != null ? ranchName : entity.getRanchId().toString());
|
||||
} else {
|
||||
vo.setRanchName("");
|
||||
}
|
||||
|
||||
// 使用汇总查询中的羊舍名称
|
||||
vo.setSheepfoldName(entity.getSheepfoldName() != null ? entity.getSheepfoldName() : "");
|
||||
|
||||
// 字典翻译:羊舍类型ID -> 羊舍类型名称
|
||||
if (entity.getSheepfoldTypeId() != null) {
|
||||
String typeName = DictUtils.getDictLabel("bas_sheepfold_type", entity.getSheepfoldTypeId().toString());
|
||||
vo.setSheepfoldTypeName(typeName != null ? typeName : entity.getSheepfoldTypeId().toString());
|
||||
} else {
|
||||
vo.setSheepfoldTypeName("");
|
||||
}
|
||||
|
||||
// 羊舍编号
|
||||
vo.setSheepfoldNo(entity.getSheepfoldNo() != null ? entity.getSheepfoldNo() : "");
|
||||
|
||||
// 羊数(确保不为空)
|
||||
vo.setTotalSheepCount(entity.getTotalSheepCount() != null ? entity.getTotalSheepCount() : 0);
|
||||
|
||||
// 备注
|
||||
vo.setComment(entity.getComment() != null ? entity.getComment() : "");
|
||||
|
||||
voList.add(vo);
|
||||
}
|
||||
|
||||
return voList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取羊舍管理详细信息
|
||||
*/
|
||||
@@ -112,16 +180,74 @@ public class DaSheepfoldController extends BaseController
|
||||
return toAjax(daSheepfoldService.updateDaSheepfold(daSheepfold));
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 删除羊舍管理
|
||||
// */
|
||||
// @PreAuthorize("@ss.hasPermi('sheepfold_management:sheepfold_management:remove')")
|
||||
// @Log(title = "羊舍管理", businessType = BusinessType.DELETE)
|
||||
// @DeleteMapping("/{ids}")
|
||||
// public AjaxResult remove(@PathVariable Long[] ids)
|
||||
// {
|
||||
// return toAjax(daSheepfoldService.deleteDaSheepfoldByIds(ids));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 删除羊舍管理
|
||||
* 修改后:根据组合条件删除羊圈信息(单条)
|
||||
* 接收ranch_id/sheepfold_no/sheepfold_type_id/sheepfold_name组合条件
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('sheepfold_management:sheepfold_management:remove')")
|
||||
@Log(title = "羊舍管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(daSheepfoldService.deleteDaSheepfoldByIds(ids));
|
||||
@PreAuthorize("@ss.hasPermi('sheep:sheepfold:remove')")
|
||||
@DeleteMapping("/deleteByCondition")
|
||||
public AjaxResult removeByCondition(@RequestBody DaSheepfold sheepfold) {
|
||||
// 1. 校验核心条件非空(避免条件缺失导致误删)
|
||||
if (sheepfold.getRanchId() == null
|
||||
|| sheepfold.getSheepfoldNo() == null || sheepfold.getSheepfoldNo().isEmpty()
|
||||
|| sheepfold.getSheepfoldTypeId() == null) {
|
||||
return AjaxResult.error("删除失败:核心条件(牧场ID/羊圈编号/羊圈类型ID)不能为空");
|
||||
}
|
||||
// 2. 调用Service执行组合条件删除
|
||||
boolean deleteResult = daSheepfoldService.deleteSheepfoldByCondition(sheepfold);
|
||||
if (deleteResult) {
|
||||
return AjaxResult.success("删除成功");
|
||||
} else {
|
||||
return AjaxResult.error("删除失败:未找到匹配条件的记录");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 【扩展】批量删除:接收多条组合条件数据,循环删除
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('sheep:sheepfold:remove')")
|
||||
@DeleteMapping("/batchDeleteByCondition")
|
||||
public AjaxResult batchRemoveByCondition(@RequestBody List<DaSheepfold> sheepfoldList) {
|
||||
if (sheepfoldList == null || sheepfoldList.isEmpty()) {
|
||||
return AjaxResult.error("删除失败:请选择要删除的羊圈数据");
|
||||
}
|
||||
// 统计成功删除的数量
|
||||
int successCount = 0;
|
||||
for (DaSheepfold sheepfold : sheepfoldList) {
|
||||
// 跳过条件不全的记录
|
||||
if (sheepfold.getRanchId() == null
|
||||
|| sheepfold.getSheepfoldNo() == null || sheepfold.getSheepfoldNo().isEmpty()
|
||||
|| sheepfold.getSheepfoldTypeId() == null) {
|
||||
continue;
|
||||
}
|
||||
if (daSheepfoldService.deleteSheepfoldByCondition(sheepfold)) {
|
||||
successCount++;
|
||||
}
|
||||
}
|
||||
if (successCount == 0) {
|
||||
return AjaxResult.error("批量删除失败:无符合条件的记录可删除");
|
||||
} else {
|
||||
return AjaxResult.success("批量删除成功,共删除" + successCount + "条记录");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 检查羊舍编号是否已存在
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.zhyc.module.base.domain;
|
||||
|
||||
import com.zhyc.common.annotation.Excel;
|
||||
import com.zhyc.common.core.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* 羊舍汇总导出VO
|
||||
*/
|
||||
@Data
|
||||
public class DaSheepfoldSummaryExportVO {
|
||||
|
||||
/** 牧场名称 */
|
||||
@Excel(name = "牧场")
|
||||
private String ranchName;
|
||||
|
||||
/** 羊舍名称 */
|
||||
@Excel(name = "羊舍名称")
|
||||
private String sheepfoldName;
|
||||
|
||||
/** 羊舍类型名称 */
|
||||
@Excel(name = "羊舍类型")
|
||||
|
||||
private String sheepfoldTypeName;
|
||||
|
||||
/** 羊舍编号 */
|
||||
@Excel(name = "羊舍编号")
|
||||
private String sheepfoldNo;
|
||||
|
||||
/** 羊舍总羊数 */
|
||||
@Excel(name = "羊数")
|
||||
private Integer totalSheepCount;
|
||||
|
||||
/** 备注 */
|
||||
@Excel(name = "备注")
|
||||
private String comment;
|
||||
|
||||
// 构造函数
|
||||
public DaSheepfoldSummaryExportVO() {
|
||||
}
|
||||
|
||||
public DaSheepfoldSummaryExportVO(String ranchName, String sheepfoldName,
|
||||
String sheepfoldTypeName, String sheepfoldNo,
|
||||
Integer totalSheepCount, String comment) {
|
||||
this.ranchName = ranchName;
|
||||
this.sheepfoldName = sheepfoldName;
|
||||
this.sheepfoldTypeName = sheepfoldTypeName;
|
||||
this.sheepfoldNo = sheepfoldNo;
|
||||
this.totalSheepCount = totalSheepCount;
|
||||
this.comment = comment;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.zhyc.module.base.mapper;
|
||||
|
||||
import com.zhyc.module.base.domain.DaSheepfold;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -69,5 +70,13 @@ public interface DaSheepfoldMapper
|
||||
public int deleteDaSheepfoldByIds(Long[] ids);
|
||||
|
||||
public int selectCount(DaSheepfold daSheepfold);
|
||||
|
||||
// 新增:按组合条件删除的自定义方法(核心)
|
||||
int deleteSheepfoldByCondition(
|
||||
@Param("ranchId") Long ranchId,
|
||||
@Param("sheepfoldNo") String sheepfoldNo,
|
||||
@Param("sheepfoldTypeId") Long sheepfoldTypeId
|
||||
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -75,4 +75,8 @@ public interface IDaSheepfoldService
|
||||
|
||||
// 根据羊舍id获取该羊舍的羊
|
||||
List<BasSheep> sheepListById(String id);
|
||||
|
||||
|
||||
/** 新增:根据组合条件删除羊圈记录 */
|
||||
boolean deleteSheepfoldByCondition(DaSheepfold sheepfold);
|
||||
}
|
||||
|
||||
@@ -1,39 +1,40 @@
|
||||
package com.zhyc.module.base.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zhyc.module.base.domain.BasSheep;
|
||||
import com.zhyc.module.base.domain.DaSheepfold;
|
||||
import com.zhyc.module.base.mapper.BasSheepMapper;
|
||||
import com.zhyc.module.base.mapper.DaSheepfoldMapper;
|
||||
import com.zhyc.module.base.service.IDaSheepfoldService;
|
||||
import org.slf4j.Logger; // 核心修正:导入SLF4J的Logger
|
||||
import org.slf4j.LoggerFactory; // 核心修正:导入SLF4J的LoggerFactory
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 羊舍管理Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author wyt
|
||||
* @date 2025-07-11
|
||||
*/
|
||||
@Service
|
||||
public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
{
|
||||
@Autowired
|
||||
private DaSheepfoldMapper daSheepfoldMapper;
|
||||
@Autowired
|
||||
private BasSheepMapper basSheepMapper;
|
||||
|
||||
|
||||
// 新增:创建日志对象
|
||||
// 日志对象
|
||||
private static final Logger log = LoggerFactory.getLogger(DaSheepfoldServiceImpl.class);
|
||||
|
||||
|
||||
/**
|
||||
* 查询羊舍管理
|
||||
*
|
||||
*
|
||||
* @param id 羊舍管理主键
|
||||
* @return 羊舍管理
|
||||
*/
|
||||
@@ -45,54 +46,27 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
|
||||
/**
|
||||
* 查询羊舍管理列表
|
||||
*
|
||||
*
|
||||
* @param daSheepfold 羊舍管理
|
||||
* @return 羊舍管理
|
||||
*/
|
||||
@Override
|
||||
public List<DaSheepfold> selectDaSheepfoldList(DaSheepfold daSheepfold)
|
||||
{
|
||||
|
||||
List<DaSheepfold> sheepfoldList = daSheepfoldMapper.selectDaSheepfoldList(daSheepfold);
|
||||
|
||||
// 新增调试打印:输出每个栏位的羊数
|
||||
log.info("===== 栏位羊数调试 =====");
|
||||
log.info("查询条件:牧场ID={}, 羊舍类型ID={}, 羊舍编号={}",
|
||||
daSheepfold.getRanchId(), daSheepfold.getSheepfoldTypeId(), daSheepfold.getSheepfoldNo());
|
||||
log.info("共查询到{}个栏位", sheepfoldList.size());
|
||||
|
||||
for (DaSheepfold fold : sheepfoldList) {
|
||||
log.info("栏位ID={}, 羊舍编号={}, 排号={}, 栏数={}, 羊数={}",
|
||||
fold.getId(), fold.getSheepfoldNo(), fold.getRowNo(), fold.getColumns(), fold.getSheepCount());
|
||||
}
|
||||
log.info("===== 调试结束 =====\n");
|
||||
return daSheepfoldMapper.selectDaSheepfoldList(daSheepfold);
|
||||
return sheepfoldList; // 修复:原代码重复调用Mapper,改为返回已查询的列表
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 羊舍级别汇总查询(主表格)
|
||||
*/
|
||||
public List<DaSheepfold> selectDaSheepfoldSummaryList(DaSheepfold daSheepfold) {
|
||||
// List<DaSheepfold> summaryList = daSheepfoldMapper.selectDaSheepfoldSummaryList(daSheepfold);
|
||||
//
|
||||
// // 新增调试打印:输出羊舍汇总羊数
|
||||
// log.info("===== 羊舍汇总羊数调试 =====");
|
||||
// log.info("查询条件:牧场ID={}, 羊舍类型ID={}",
|
||||
// daSheepfold.getRanchId(), daSheepfold.getSheepfoldTypeId());
|
||||
// log.info("共查询到{}个羊舍", summaryList.size());
|
||||
//
|
||||
// for (DaSheepfold fold : summaryList) {
|
||||
// log.info("羊舍编号={}, 羊舍名称={}, 总羊数={}",
|
||||
// fold.getSheepfoldNo(), fold.getSheepfoldName(), fold.getTotalSheepCount());
|
||||
// }
|
||||
// log.info("===== 汇总调试结束 =====\n");
|
||||
return daSheepfoldMapper.selectDaSheepfoldSummaryList(daSheepfold);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增羊舍管理
|
||||
*
|
||||
*
|
||||
* @param daSheepfold 羊舍管理
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -104,7 +78,7 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
|
||||
/**
|
||||
* 修改羊舍管理
|
||||
*
|
||||
*
|
||||
* @param daSheepfold 羊舍管理
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -116,7 +90,7 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
|
||||
/**
|
||||
* 批量删除羊舍管理
|
||||
*
|
||||
*
|
||||
* @param ids 需要删除的羊舍管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -128,7 +102,7 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
|
||||
/**
|
||||
* 删除羊舍管理信息
|
||||
*
|
||||
*
|
||||
* @param id 羊舍管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -138,7 +112,6 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
return daSheepfoldMapper.deleteDaSheepfoldById(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean checkSheepfoldNoExist(Long ranchId, Long sheepfoldTypeId, String sheepfoldNo) {
|
||||
DaSheepfold query = new DaSheepfold();
|
||||
@@ -153,4 +126,40 @@ public class DaSheepfoldServiceImpl implements IDaSheepfoldService
|
||||
List<BasSheep> basSheep = basSheepMapper.selectBasSheepBySheepfold(id);
|
||||
return basSheep;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 核心实现:根据组合条件删除(完全自定义,无MP依赖)
|
||||
* 条件:ranch_id = ? AND sheepfold_no = ? AND sheepfold_type_id = ?
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteSheepfoldByCondition(DaSheepfold sheepfold) {
|
||||
// 1. 前置校验:仅校验3个核心字段(移除sheepfoldName的校验)
|
||||
if (sheepfold.getRanchId() == null
|
||||
|| !StringUtils.hasText(sheepfold.getSheepfoldNo())
|
||||
|| sheepfold.getSheepfoldTypeId() == null) {
|
||||
log.error("删除失败:核心条件不能为空!牧场ID={}, 羊舍编号={}, 羊舍类型ID={}",
|
||||
sheepfold.getRanchId(), sheepfold.getSheepfoldNo(), sheepfold.getSheepfoldTypeId());
|
||||
throw new IllegalArgumentException("删除失败:牧场ID、羊舍编号、羊舍类型ID不能为空");
|
||||
}
|
||||
|
||||
// 2. 调用Mapper方法:仅传递3个核心字段(移除sheepfoldName)
|
||||
int deleteCount = daSheepfoldMapper.deleteSheepfoldByCondition(
|
||||
sheepfold.getRanchId(),
|
||||
sheepfold.getSheepfoldNo(),
|
||||
sheepfold.getSheepfoldTypeId()
|
||||
);
|
||||
boolean isSuccess = deleteCount > 0;
|
||||
|
||||
// 3. 日志打印:移除sheepfoldName相关内容
|
||||
if (isSuccess) {
|
||||
log.info("成功删除羊舍记录:牧场ID={}, 羊舍编号={}, 羊舍类型ID={}",
|
||||
sheepfold.getRanchId(), sheepfold.getSheepfoldNo(), sheepfold.getSheepfoldTypeId());
|
||||
} else {
|
||||
log.warn("未找到匹配条件的羊舍记录:牧场ID={}, 羊舍编号={}, 羊舍类型ID={}",
|
||||
sheepfold.getRanchId(), sheepfold.getSheepfoldNo(), sheepfold.getSheepfoldTypeId());
|
||||
}
|
||||
|
||||
return isSuccess;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,16 @@
|
||||
<result property="sheepCount" column="sheep_count"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 汇总结果映射(主表格用) -->
|
||||
<resultMap id="DaSheepfoldSummaryResult" type="com.zhyc.module.base.domain.DaSheepfold">
|
||||
<result property="ranchId" column="ranch_id"/>
|
||||
<result property="sheepfoldTypeId" column="sheepfold_type_id"/>
|
||||
<result property="sheepfoldNo" column="sheepfold_no"/>
|
||||
<result property="sheepfoldName" column="sheepfoldName"/>
|
||||
<result property="comment" column="comment"/>
|
||||
<result property="totalSheepCount" column="totalSheepCount"/> <!-- 羊舍总羊数 -->
|
||||
</resultMap>
|
||||
|
||||
<!-- 基础栏位表查询字段 -->
|
||||
<sql id="selectDaSheepfoldVo">
|
||||
SELECT
|
||||
@@ -31,7 +41,6 @@
|
||||
FROM da_sheepfold ds
|
||||
</sql>
|
||||
|
||||
|
||||
<!-- 1. 主表格:羊舍级别汇总查询(统计每个羊舍的总羊数) -->
|
||||
<select id="selectDaSheepfoldSummaryList" parameterType="DaSheepfold" resultMap="DaSheepfoldSummaryResult">
|
||||
SELECT
|
||||
@@ -59,7 +68,6 @@
|
||||
ORDER BY ds.sheepfold_no
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 2. 子表格:栏位级别明细查询(统计单个栏位的羊数) -->
|
||||
<select id="selectDaSheepfoldList" parameterType="DaSheepfold" resultMap="DaSheepfoldResult">
|
||||
SELECT
|
||||
@@ -89,17 +97,6 @@
|
||||
ORDER BY SUBSTRING_INDEX(ds.row_no, '-', 1), CAST(ds.columns AS UNSIGNED)
|
||||
</select>
|
||||
|
||||
<!-- 汇总结果映射(主表格用) -->
|
||||
<resultMap id="DaSheepfoldSummaryResult" type="DaSheepfold">
|
||||
<result property="ranchId" column="ranch_id"/>
|
||||
<result property="sheepfoldTypeId" column="sheepfold_type_id"/>
|
||||
<result property="sheepfoldNo" column="sheepfold_no"/>
|
||||
<result property="sheepfoldName" column="sheepfoldName"/>
|
||||
<result property="comment" column="comment"/>
|
||||
<result property="totalSheepCount" column="totalSheepCount"/> <!-- 羊舍总羊数 -->
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectDaSheepfoldById" parameterType="Long" resultMap="DaSheepfoldResult">
|
||||
<include refid="selectDaSheepfoldVo"/>
|
||||
where id = #{id}
|
||||
@@ -161,4 +158,12 @@
|
||||
AND sheepfold_type_id = #{sheepfoldTypeId}
|
||||
AND sheepfold_no = #{sheepfoldNo}
|
||||
</select>
|
||||
|
||||
<!-- 新增:按组合条件删除羊舍记录 -->
|
||||
<delete id="deleteSheepfoldByCondition">
|
||||
DELETE FROM da_sheepfold
|
||||
WHERE ranch_id = #{ranchId}
|
||||
AND sheepfold_no = #{sheepfoldNo}
|
||||
AND sheepfold_type_id = #{sheepfoldTypeId}
|
||||
</delete>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user