feat(is): 添加检验委托单、检验任务和样品库存相关功能- 新增检验委托单、检验任务和样品库存的实体类、BO、VO

- 实现检验委托单、检验任务和样品库存的增删查改功能
- 添加检验任务与委托单的关联查询
This commit is contained in:
2025-08-15 09:41:32 +08:00
parent 62ebe2f592
commit 99c93793b2
24 changed files with 1748 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
package com.klp.mes.is.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.mes.is.domain.vo.IsInspectionCommissionVo;
import com.klp.mes.is.domain.bo.IsInspectionCommissionBo;
import com.klp.mes.is.service.IIsInspectionCommissionService;
import com.klp.common.core.page.TableDataInfo;
/**
* 检验委托单表
*
* @author Joshi
* @date 2025-08-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/is/inspectionCommission")
public class IsInspectionCommissionController extends BaseController {
private final IIsInspectionCommissionService iIsInspectionCommissionService;
/**
* 查询检验委托单表列表
*/
@GetMapping("/list")
public TableDataInfo<IsInspectionCommissionVo> list(IsInspectionCommissionBo bo, PageQuery pageQuery) {
return iIsInspectionCommissionService.queryPageList(bo, pageQuery);
}
/**
* 导出检验委托单表列表
*/
@Log(title = "检验委托单表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(IsInspectionCommissionBo bo, HttpServletResponse response) {
List<IsInspectionCommissionVo> list = iIsInspectionCommissionService.queryList(bo);
ExcelUtil.exportExcel(list, "检验委托单表", IsInspectionCommissionVo.class, response);
}
/**
* 获取检验委托单表详细信息
*
* @param commissionId 主键
*/
@GetMapping("/{commissionId}")
public R<IsInspectionCommissionVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long commissionId) {
return R.ok(iIsInspectionCommissionService.queryById(commissionId));
}
/**
* 新增检验委托单表
*/
@Log(title = "检验委托单表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody IsInspectionCommissionBo bo) {
return toAjax(iIsInspectionCommissionService.insertByBo(bo));
}
/**
* 修改检验委托单表
*/
@Log(title = "检验委托单表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody IsInspectionCommissionBo bo) {
return toAjax(iIsInspectionCommissionService.updateByBo(bo));
}
/**
* 删除检验委托单表
*
* @param commissionIds 主键串
*/
@Log(title = "检验委托单表", businessType = BusinessType.DELETE)
@DeleteMapping("/{commissionIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] commissionIds) {
return toAjax(iIsInspectionCommissionService.deleteWithValidByIds(Arrays.asList(commissionIds), true));
}
}

View File

@@ -0,0 +1,99 @@
package com.klp.mes.is.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.mes.is.domain.vo.IsInspectionTaskVo;
import com.klp.mes.is.domain.bo.IsInspectionTaskBo;
import com.klp.mes.is.service.IIsInspectionTaskService;
import com.klp.common.core.page.TableDataInfo;
/**
* 检验任务表
*
* @author Joshi
* @date 2025-08-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/is/inspectionTask")
public class IsInspectionTaskController extends BaseController {
private final IIsInspectionTaskService iIsInspectionTaskService;
/**
* 查询检验任务表列表
*/
@GetMapping("/list")
public TableDataInfo<IsInspectionTaskVo> list(IsInspectionTaskBo bo, PageQuery pageQuery) {
return iIsInspectionTaskService.queryPageList(bo, pageQuery);
}
/**
* 导出检验任务表列表
*/
@Log(title = "检验任务表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(IsInspectionTaskBo bo, HttpServletResponse response) {
List<IsInspectionTaskVo> list = iIsInspectionTaskService.queryList(bo);
ExcelUtil.exportExcel(list, "检验任务表", IsInspectionTaskVo.class, response);
}
/**
* 获取检验任务表详细信息
*
* @param taskId 主键
*/
@GetMapping("/{taskId}")
public R<IsInspectionTaskVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long taskId) {
return R.ok(iIsInspectionTaskService.queryById(taskId));
}
/**
* 新增检验任务表
*/
@Log(title = "检验任务表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody IsInspectionTaskBo bo) {
return toAjax(iIsInspectionTaskService.insertByBo(bo));
}
/**
* 修改检验任务表
*/
@Log(title = "检验任务表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody IsInspectionTaskBo bo) {
return toAjax(iIsInspectionTaskService.updateByBo(bo));
}
/**
* 删除检验任务表
*
* @param taskIds 主键串
*/
@Log(title = "检验任务表", businessType = BusinessType.DELETE)
@DeleteMapping("/{taskIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] taskIds) {
return toAjax(iIsInspectionTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
}
}

View File

@@ -0,0 +1,99 @@
package com.klp.mes.is.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.mes.is.domain.vo.IsSampleInventoryVo;
import com.klp.mes.is.domain.bo.IsSampleInventoryBo;
import com.klp.mes.is.service.IIsSampleInventoryService;
import com.klp.common.core.page.TableDataInfo;
/**
* 样品库存表
*
* @author Joshi
* @date 2025-08-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/is/sampleInventory")
public class IsSampleInventoryController extends BaseController {
private final IIsSampleInventoryService iIsSampleInventoryService;
/**
* 查询样品库存表列表
*/
@GetMapping("/list")
public TableDataInfo<IsSampleInventoryVo> list(IsSampleInventoryBo bo, PageQuery pageQuery) {
return iIsSampleInventoryService.queryPageList(bo, pageQuery);
}
/**
* 导出样品库存表列表
*/
@Log(title = "样品库存表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(IsSampleInventoryBo bo, HttpServletResponse response) {
List<IsSampleInventoryVo> list = iIsSampleInventoryService.queryList(bo);
ExcelUtil.exportExcel(list, "样品库存表", IsSampleInventoryVo.class, response);
}
/**
* 获取样品库存表详细信息
*
* @param sampleId 主键
*/
@GetMapping("/{sampleId}")
public R<IsSampleInventoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long sampleId) {
return R.ok(iIsSampleInventoryService.queryById(sampleId));
}
/**
* 新增样品库存表
*/
@Log(title = "样品库存表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody IsSampleInventoryBo bo) {
return toAjax(iIsSampleInventoryService.insertByBo(bo));
}
/**
* 修改样品库存表
*/
@Log(title = "样品库存表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody IsSampleInventoryBo bo) {
return toAjax(iIsSampleInventoryService.updateByBo(bo));
}
/**
* 删除样品库存表
*
* @param sampleIds 主键串
*/
@Log(title = "样品库存表", businessType = BusinessType.DELETE)
@DeleteMapping("/{sampleIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] sampleIds) {
return toAjax(iIsSampleInventoryService.deleteWithValidByIds(Arrays.asList(sampleIds), true));
}
}

View File

@@ -0,0 +1,75 @@
package com.klp.mes.is.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 检验委托单表对象 is_inspection_commission
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("is_inspection_commission")
public class IsInspectionCommission extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 委托单ID
*/
@TableId(value = "commission_id")
private Long commissionId;
/**
* 委托单号
*/
private String commissionNo;
/**
* 委托单位ID外键关联客户表
*/
private Long clientId;
/**
* 样品名称
*/
private String sampleName;
/**
* 样品类型
*/
private String sampleType;
/**
* 样品数量
*/
private Long quantity;
/**
* 检验项目JSON数组
*/
private String inspectionItems;
/**
* 委托日期
*/
private Date commissionDate;
/**
* 要求完成日期
*/
private Date deadline;
/**
* 状态
*/
private String status;
/**
* 删除标志0=正常1=删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,75 @@
package com.klp.mes.is.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 检验任务表对象 is_inspection_task
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("is_inspection_task")
public class IsInspectionTask extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 任务ID
*/
@TableId(value = "task_id")
private Long taskId;
/**
* 任务单号
*/
private String taskNo;
/**
* 关联委托单ID
*/
private Long commissionId;
/**
* 负责人用户ID
*/
private Long assignedTo;
/**
* 任务开始时间
*/
private Date startTime;
/**
* 任务完成时间
*/
private Date endTime;
/**
* 检验结果
*/
private String result;
/**
* 检验结论
*/
private String conclusion;
/**
* 状态
*/
private String status;
/**
* 优先级1-普通, 2-紧急)
*/
private Long priority;
/**
* 删除标志0=正常1=删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.klp.mes.is.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 样品库存表对象 is_sample_inventory
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("is_sample_inventory")
public class IsSampleInventory extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 样品ID
*/
@TableId(value = "sample_id")
private Long sampleId;
/**
* 关联委托单ID
*/
private Long commissionId;
/**
* 存放位置A区-3排-2架
*/
private String location;
/**
* 当前库存量
*/
private Long currentQuantity;
/**
* 入库时间
*/
private Date storageTime;
/**
* 有效期至
*/
private Date expirationDate;
/**
* 状态
*/
private String status;
/**
* 操作人用户ID
*/
private Long operatorId;
/**
* 最后更新时间
*/
private Date lastUpdate;
/**
* 删除标志0=正常1=删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,78 @@
package com.klp.mes.is.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 检验委托单表业务对象 is_inspection_commission
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class IsInspectionCommissionBo extends BaseEntity {
/**
* 委托单ID
*/
private Long commissionId;
/**
* 委托单号
*/
private String commissionNo;
/**
* 委托单位ID外键关联客户表
*/
private Long clientId;
/**
* 样品名称
*/
private String sampleName;
/**
* 样品类型
*/
private String sampleType;
/**
* 样品数量
*/
private Long quantity;
/**
* 检验项目JSON数组
*/
private String inspectionItems;
/**
* 委托日期
*/
private Date commissionDate;
/**
* 要求完成日期
*/
private Date deadline;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,78 @@
package com.klp.mes.is.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 检验任务表业务对象 is_inspection_task
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class IsInspectionTaskBo extends BaseEntity {
/**
* 任务ID
*/
private Long taskId;
/**
* 任务单号
*/
private String taskNo;
/**
* 关联委托单ID
*/
private Long commissionId;
/**
* 负责人用户ID
*/
private Long assignedTo;
/**
* 任务开始时间
*/
private Date startTime;
/**
* 任务完成时间
*/
private Date endTime;
/**
* 检验结果
*/
private String result;
/**
* 检验结论
*/
private String conclusion;
/**
* 状态
*/
private String status;
/**
* 优先级1-普通, 2-紧急)
*/
private Long priority;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,73 @@
package com.klp.mes.is.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 样品库存表业务对象 is_sample_inventory
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class IsSampleInventoryBo extends BaseEntity {
/**
* 样品ID
*/
private Long sampleId;
/**
* 关联委托单ID
*/
private Long commissionId;
/**
* 存放位置A区-3排-2架
*/
private String location;
/**
* 当前库存量
*/
private Long currentQuantity;
/**
* 入库时间
*/
private Date storageTime;
/**
* 有效期至
*/
private Date expirationDate;
/**
* 状态
*/
private String status;
/**
* 操作人用户ID
*/
private Long operatorId;
/**
* 最后更新时间
*/
private Date lastUpdate;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,93 @@
package com.klp.mes.is.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 检验委托单表视图对象 is_inspection_commission
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@ExcelIgnoreUnannotated
public class IsInspectionCommissionVo {
private static final long serialVersionUID = 1L;
/**
* 委托单ID
*/
@ExcelProperty(value = "委托单ID")
private Long commissionId;
/**
* 委托单号
*/
@ExcelProperty(value = "委托单号")
private String commissionNo;
/**
* 委托单位ID外键关联客户表
*/
@ExcelProperty(value = "委托单位ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "外=键关联客户表")
private Long clientId;
/**
* 样品名称
*/
@ExcelProperty(value = "样品名称")
private String sampleName;
/**
* 样品类型
*/
@ExcelProperty(value = "样品类型")
private String sampleType;
/**
* 样品数量
*/
@ExcelProperty(value = "样品数量")
private Long quantity;
/**
* 检验项目JSON数组
*/
@ExcelProperty(value = "检验项目", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "J=SON数组")
private String inspectionItems;
/**
* 委托日期
*/
@ExcelProperty(value = "委托日期")
private Date commissionDate;
/**
* 要求完成日期
*/
@ExcelProperty(value = "要求完成日期")
private Date deadline;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,93 @@
package com.klp.mes.is.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 检验任务表视图对象 is_inspection_task
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@ExcelIgnoreUnannotated
public class IsInspectionTaskVo {
private static final long serialVersionUID = 1L;
/**
* 任务ID
*/
@ExcelProperty(value = "任务ID")
private Long taskId;
/**
* 任务单号
*/
@ExcelProperty(value = "任务单号")
private String taskNo;
/**
* 关联委托单ID
*/
@ExcelProperty(value = "关联委托单ID")
private Long commissionId;
/**
* 负责人用户ID
*/
@ExcelProperty(value = "负责人", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "用=户ID")
private Long assignedTo;
/**
* 任务开始时间
*/
@ExcelProperty(value = "任务开始时间")
private Date startTime;
/**
* 任务完成时间
*/
@ExcelProperty(value = "任务完成时间")
private Date endTime;
/**
* 检验结果
*/
@ExcelProperty(value = "检验结果")
private String result;
/**
* 检验结论
*/
@ExcelProperty(value = "检验结论")
private String conclusion;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 优先级1-普通, 2-紧急)
*/
@ExcelProperty(value = "优先级", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=-普通,,2=-紧急")
private Long priority;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,87 @@
package com.klp.mes.is.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 样品库存表视图对象 is_sample_inventory
*
* @author Joshi
* @date 2025-08-15
*/
@Data
@ExcelIgnoreUnannotated
public class IsSampleInventoryVo {
private static final long serialVersionUID = 1L;
/**
* 样品ID
*/
@ExcelProperty(value = "样品ID")
private Long sampleId;
/**
* 关联委托单ID
*/
@ExcelProperty(value = "关联委托单ID")
private Long commissionId;
/**
* 存放位置A区-3排-2架
*/
@ExcelProperty(value = "存放位置", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "如=A区-3排-2架")
private String location;
/**
* 当前库存量
*/
@ExcelProperty(value = "当前库存量")
private Long currentQuantity;
/**
* 入库时间
*/
@ExcelProperty(value = "入库时间")
private Date storageTime;
/**
* 有效期至
*/
@ExcelProperty(value = "有效期至")
private Date expirationDate;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 操作人用户ID
*/
@ExcelProperty(value = "操作人", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "用=户ID")
private Long operatorId;
/**
* 最后更新时间
*/
@ExcelProperty(value = "最后更新时间")
private Date lastUpdate;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.klp.mes.is.mapper;
import com.klp.mes.is.domain.IsInspectionCommission;
import com.klp.mes.is.domain.vo.IsInspectionCommissionVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 检验委托单表Mapper接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IsInspectionCommissionMapper extends BaseMapperPlus<IsInspectionCommissionMapper, IsInspectionCommission, IsInspectionCommissionVo> {
}

View File

@@ -0,0 +1,18 @@
package com.klp.mes.is.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.mes.is.domain.IsInspectionTask;
import com.klp.mes.is.domain.bo.IsInspectionTaskBo;
import com.klp.mes.is.domain.vo.IsInspectionTaskVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 检验任务表Mapper接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IsInspectionTaskMapper extends BaseMapperPlus<IsInspectionTaskMapper, IsInspectionTask, IsInspectionTaskVo> {
Page<IsInspectionTaskVo> selectVoPagePlus(Page<Object> build, IsInspectionTaskBo bo);
}

View File

@@ -0,0 +1,18 @@
package com.klp.mes.is.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.mes.is.domain.IsSampleInventory;
import com.klp.mes.is.domain.bo.IsSampleInventoryBo;
import com.klp.mes.is.domain.vo.IsSampleInventoryVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 样品库存表Mapper接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IsSampleInventoryMapper extends BaseMapperPlus<IsSampleInventoryMapper, IsSampleInventory, IsSampleInventoryVo> {
Page<IsSampleInventoryVo> selectVoPagePlus(Page<Object> build, IsSampleInventoryBo bo);
}

View File

@@ -0,0 +1,49 @@
package com.klp.mes.is.service;
import com.klp.mes.is.domain.IsInspectionCommission;
import com.klp.mes.is.domain.vo.IsInspectionCommissionVo;
import com.klp.mes.is.domain.bo.IsInspectionCommissionBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 检验委托单表Service接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IIsInspectionCommissionService {
/**
* 查询检验委托单表
*/
IsInspectionCommissionVo queryById(Long commissionId);
/**
* 查询检验委托单表列表
*/
TableDataInfo<IsInspectionCommissionVo> queryPageList(IsInspectionCommissionBo bo, PageQuery pageQuery);
/**
* 查询检验委托单表列表
*/
List<IsInspectionCommissionVo> queryList(IsInspectionCommissionBo bo);
/**
* 新增检验委托单表
*/
Boolean insertByBo(IsInspectionCommissionBo bo);
/**
* 修改检验委托单表
*/
Boolean updateByBo(IsInspectionCommissionBo bo);
/**
* 校验并批量删除检验委托单表信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.mes.is.service;
import com.klp.mes.is.domain.IsInspectionTask;
import com.klp.mes.is.domain.vo.IsInspectionTaskVo;
import com.klp.mes.is.domain.bo.IsInspectionTaskBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 检验任务表Service接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IIsInspectionTaskService {
/**
* 查询检验任务表
*/
IsInspectionTaskVo queryById(Long taskId);
/**
* 查询检验任务表列表
*/
TableDataInfo<IsInspectionTaskVo> queryPageList(IsInspectionTaskBo bo, PageQuery pageQuery);
/**
* 查询检验任务表列表
*/
List<IsInspectionTaskVo> queryList(IsInspectionTaskBo bo);
/**
* 新增检验任务表
*/
Boolean insertByBo(IsInspectionTaskBo bo);
/**
* 修改检验任务表
*/
Boolean updateByBo(IsInspectionTaskBo bo);
/**
* 校验并批量删除检验任务表信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.mes.is.service;
import com.klp.mes.is.domain.IsSampleInventory;
import com.klp.mes.is.domain.vo.IsSampleInventoryVo;
import com.klp.mes.is.domain.bo.IsSampleInventoryBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 样品库存表Service接口
*
* @author Joshi
* @date 2025-08-15
*/
public interface IIsSampleInventoryService {
/**
* 查询样品库存表
*/
IsSampleInventoryVo queryById(Long sampleId);
/**
* 查询样品库存表列表
*/
TableDataInfo<IsSampleInventoryVo> queryPageList(IsSampleInventoryBo bo, PageQuery pageQuery);
/**
* 查询样品库存表列表
*/
List<IsSampleInventoryVo> queryList(IsSampleInventoryBo bo);
/**
* 新增样品库存表
*/
Boolean insertByBo(IsSampleInventoryBo bo);
/**
* 修改样品库存表
*/
Boolean updateByBo(IsSampleInventoryBo bo);
/**
* 校验并批量删除样品库存表信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,117 @@
package com.klp.mes.is.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.mes.is.domain.bo.IsInspectionCommissionBo;
import com.klp.mes.is.domain.vo.IsInspectionCommissionVo;
import com.klp.mes.is.domain.IsInspectionCommission;
import com.klp.mes.is.mapper.IsInspectionCommissionMapper;
import com.klp.mes.is.service.IIsInspectionCommissionService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 检验委托单表Service业务层处理
*
* @author Joshi
* @date 2025-08-15
*/
@RequiredArgsConstructor
@Service
public class IsInspectionCommissionServiceImpl implements IIsInspectionCommissionService {
private final IsInspectionCommissionMapper baseMapper;
/**
* 查询检验委托单表
*/
@Override
public IsInspectionCommissionVo queryById(Long commissionId){
return baseMapper.selectVoById(commissionId);
}
/**
* 查询检验委托单表列表
*/
@Override
public TableDataInfo<IsInspectionCommissionVo> queryPageList(IsInspectionCommissionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<IsInspectionCommission> lqw = buildQueryWrapper(bo);
Page<IsInspectionCommissionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询检验委托单表列表
*/
@Override
public List<IsInspectionCommissionVo> queryList(IsInspectionCommissionBo bo) {
LambdaQueryWrapper<IsInspectionCommission> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<IsInspectionCommission> buildQueryWrapper(IsInspectionCommissionBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<IsInspectionCommission> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getCommissionNo()), IsInspectionCommission::getCommissionNo, bo.getCommissionNo());
lqw.eq(bo.getClientId() != null, IsInspectionCommission::getClientId, bo.getClientId());
lqw.like(StringUtils.isNotBlank(bo.getSampleName()), IsInspectionCommission::getSampleName, bo.getSampleName());
lqw.eq(StringUtils.isNotBlank(bo.getSampleType()), IsInspectionCommission::getSampleType, bo.getSampleType());
lqw.eq(bo.getQuantity() != null, IsInspectionCommission::getQuantity, bo.getQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getInspectionItems()), IsInspectionCommission::getInspectionItems, bo.getInspectionItems());
lqw.eq(bo.getCommissionDate() != null, IsInspectionCommission::getCommissionDate, bo.getCommissionDate());
lqw.eq(bo.getDeadline() != null, IsInspectionCommission::getDeadline, bo.getDeadline());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), IsInspectionCommission::getStatus, bo.getStatus());
return lqw;
}
/**
* 新增检验委托单表
*/
@Override
public Boolean insertByBo(IsInspectionCommissionBo bo) {
IsInspectionCommission add = BeanUtil.toBean(bo, IsInspectionCommission.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setCommissionId(add.getCommissionId());
}
return flag;
}
/**
* 修改检验委托单表
*/
@Override
public Boolean updateByBo(IsInspectionCommissionBo bo) {
IsInspectionCommission update = BeanUtil.toBean(bo, IsInspectionCommission.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(IsInspectionCommission entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除检验委托单表
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,116 @@
package com.klp.mes.is.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.mes.is.domain.bo.IsInspectionTaskBo;
import com.klp.mes.is.domain.vo.IsInspectionTaskVo;
import com.klp.mes.is.domain.IsInspectionTask;
import com.klp.mes.is.mapper.IsInspectionTaskMapper;
import com.klp.mes.is.service.IIsInspectionTaskService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 检验任务表Service业务层处理
*
* @author Joshi
* @date 2025-08-15
*/
@RequiredArgsConstructor
@Service
public class IsInspectionTaskServiceImpl implements IIsInspectionTaskService {
private final IsInspectionTaskMapper baseMapper;
/**
* 查询检验任务表
*/
@Override
public IsInspectionTaskVo queryById(Long taskId){
return baseMapper.selectVoById(taskId);
}
/**
* 查询检验任务表列表
*/
@Override
public TableDataInfo<IsInspectionTaskVo> queryPageList(IsInspectionTaskBo bo, PageQuery pageQuery) {
Page<IsInspectionTaskVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
/**
* 查询检验任务表列表
*/
@Override
public List<IsInspectionTaskVo> queryList(IsInspectionTaskBo bo) {
LambdaQueryWrapper<IsInspectionTask> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<IsInspectionTask> buildQueryWrapper(IsInspectionTaskBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<IsInspectionTask> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTaskNo()), IsInspectionTask::getTaskNo, bo.getTaskNo());
lqw.eq(bo.getCommissionId() != null, IsInspectionTask::getCommissionId, bo.getCommissionId());
lqw.eq(bo.getAssignedTo() != null, IsInspectionTask::getAssignedTo, bo.getAssignedTo());
lqw.eq(bo.getStartTime() != null, IsInspectionTask::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, IsInspectionTask::getEndTime, bo.getEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getResult()), IsInspectionTask::getResult, bo.getResult());
lqw.eq(StringUtils.isNotBlank(bo.getConclusion()), IsInspectionTask::getConclusion, bo.getConclusion());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), IsInspectionTask::getStatus, bo.getStatus());
lqw.eq(bo.getPriority() != null, IsInspectionTask::getPriority, bo.getPriority());
return lqw;
}
/**
* 新增检验任务表
*/
@Override
public Boolean insertByBo(IsInspectionTaskBo bo) {
IsInspectionTask add = BeanUtil.toBean(bo, IsInspectionTask.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTaskId(add.getTaskId());
}
return flag;
}
/**
* 修改检验任务表
*/
@Override
public Boolean updateByBo(IsInspectionTaskBo bo) {
IsInspectionTask update = BeanUtil.toBean(bo, IsInspectionTask.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(IsInspectionTask entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除检验任务表
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,115 @@
package com.klp.mes.is.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.mes.is.domain.bo.IsSampleInventoryBo;
import com.klp.mes.is.domain.vo.IsSampleInventoryVo;
import com.klp.mes.is.domain.IsSampleInventory;
import com.klp.mes.is.mapper.IsSampleInventoryMapper;
import com.klp.mes.is.service.IIsSampleInventoryService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 样品库存表Service业务层处理
*
* @author Joshi
* @date 2025-08-15
*/
@RequiredArgsConstructor
@Service
public class IsSampleInventoryServiceImpl implements IIsSampleInventoryService {
private final IsSampleInventoryMapper baseMapper;
/**
* 查询样品库存表
*/
@Override
public IsSampleInventoryVo queryById(Long sampleId){
return baseMapper.selectVoById(sampleId);
}
/**
* 查询样品库存表列表
*/
@Override
public TableDataInfo<IsSampleInventoryVo> queryPageList(IsSampleInventoryBo bo, PageQuery pageQuery) {
Page<IsSampleInventoryVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
/**
* 查询样品库存表列表
*/
@Override
public List<IsSampleInventoryVo> queryList(IsSampleInventoryBo bo) {
LambdaQueryWrapper<IsSampleInventory> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<IsSampleInventory> buildQueryWrapper(IsSampleInventoryBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<IsSampleInventory> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCommissionId() != null, IsSampleInventory::getCommissionId, bo.getCommissionId());
lqw.eq(StringUtils.isNotBlank(bo.getLocation()), IsSampleInventory::getLocation, bo.getLocation());
lqw.eq(bo.getCurrentQuantity() != null, IsSampleInventory::getCurrentQuantity, bo.getCurrentQuantity());
lqw.eq(bo.getStorageTime() != null, IsSampleInventory::getStorageTime, bo.getStorageTime());
lqw.eq(bo.getExpirationDate() != null, IsSampleInventory::getExpirationDate, bo.getExpirationDate());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), IsSampleInventory::getStatus, bo.getStatus());
lqw.eq(bo.getOperatorId() != null, IsSampleInventory::getOperatorId, bo.getOperatorId());
lqw.eq(bo.getLastUpdate() != null, IsSampleInventory::getLastUpdate, bo.getLastUpdate());
return lqw;
}
/**
* 新增样品库存表
*/
@Override
public Boolean insertByBo(IsSampleInventoryBo bo) {
IsSampleInventory add = BeanUtil.toBean(bo, IsSampleInventory.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setSampleId(add.getSampleId());
}
return flag;
}
/**
* 修改样品库存表
*/
@Override
public Boolean updateByBo(IsSampleInventoryBo bo) {
IsSampleInventory update = BeanUtil.toBean(bo, IsSampleInventory.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(IsSampleInventory entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除样品库存表
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,27 @@
<?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.klp.mes.is.mapper.IsInspectionCommissionMapper">
<resultMap type="com.klp.mes.is.domain.IsInspectionCommission" id="IsInspectionCommissionResult">
<result property="commissionId" column="commission_id"/>
<result property="commissionNo" column="commission_no"/>
<result property="clientId" column="client_id"/>
<result property="sampleName" column="sample_name"/>
<result property="sampleType" column="sample_type"/>
<result property="quantity" column="quantity"/>
<result property="inspectionItems" column="inspection_items"/>
<result property="commissionDate" column="commission_date"/>
<result property="deadline" column="deadline"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,80 @@
<?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.klp.mes.is.mapper.IsInspectionTaskMapper">
<resultMap type="com.klp.mes.is.domain.IsInspectionTask" id="IsInspectionTaskResult">
<result property="taskId" column="task_id"/>
<result property="taskNo" column="task_no"/>
<result property="commissionId" column="commission_id"/>
<result property="assignedTo" column="assigned_to"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="result" column="result"/>
<result property="conclusion" column="conclusion"/>
<result property="status" column="status"/>
<result property="priority" column="priority"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.klp.mes.is.domain.vo.IsInspectionTaskVo">
SELECT
t.task_id,
t.task_no,
t.commission_id,
c.commission_no,
t.assigned_to,
t.start_time,
t.end_time,
t.result,
t.conclusion,
t.status,
t.priority,
t.del_flag,
t.create_time,
t.create_by,
t.update_time,
t.update_by,
t.remark
FROM is_inspection_task t
LEFT JOIN is_inspection_commission c ON t.commission_id = c.commission_id AND c.del_flag = 0
<where>
t.del_flag = 0
<if test="taskNo != null and taskNo != ''">
AND t.task_no = #{taskNo}
</if>
<if test="commissionId != null">
AND t.commission_id = #{commissionId}
</if>
<if test="assignedTo != null">
AND t.assigned_to = #{assignedTo}
</if>
<if test="startTime != null">
AND t.start_time = #{startTime}
</if>
<if test="endTime != null">
AND t.end_time = #{endTime}
</if>
<if test="result != null and result != ''">
AND t.result = #{result}
</if>
<if test="conclusion != null and conclusion != ''">
AND t.conclusion = #{conclusion}
</if>
<if test="status != null and status != ''">
AND t.status = #{status}
</if>
<if test="priority != null">
AND t.priority = #{priority}
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,75 @@
<?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.klp.mes.is.mapper.IsSampleInventoryMapper">
<resultMap type="com.klp.mes.is.domain.IsSampleInventory" id="IsSampleInventoryResult">
<result property="sampleId" column="sample_id"/>
<result property="commissionId" column="commission_id"/>
<result property="location" column="location"/>
<result property="currentQuantity" column="current_quantity"/>
<result property="storageTime" column="storage_time"/>
<result property="expirationDate" column="expiration_date"/>
<result property="status" column="status"/>
<result property="operatorId" column="operator_id"/>
<result property="lastUpdate" column="last_update"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.klp.mes.is.domain.vo.IsSampleInventoryVo">
SELECT
s.sample_id,
s.commission_id,
c.commission_no,
s.location,
s.current_quantity,
s.storage_time,
s.expiration_date,
s.status,
s.operator_id,
s.last_update,
s.del_flag,
s.create_time,
s.create_by,
s.update_time,
s.update_by,
s.remark
FROM is_sample_inventory s
LEFT JOIN is_inspection_commission c ON s.commission_id = c.commission_id AND c.del_flag = 0
<where>
s.del_flag = 0
<if test="commissionId != null">
AND s.commission_id = #{commissionId}
</if>
<if test="location != null and location != ''">
AND s.location = #{location}
</if>
<if test="currentQuantity != null">
AND s.current_quantity = #{currentQuantity}
</if>
<if test="storageTime != null">
AND s.storage_time = #{storageTime}
</if>
<if test="expirationDate != null">
AND s.expiration_date = #{expirationDate}
</if>
<if test="status != null and status != ''">
AND s.status = #{status}
</if>
<if test="operatorId != null">
AND s.operator_id = #{operatorId}
</if>
<if test="lastUpdate != null">
AND s.last_update = #{lastUpdate}
</if>
</where>
</select>
</mapper>