干奶录入查询问题
This commit is contained in:
@@ -49,16 +49,24 @@ public class ScDryMilkController extends BaseController
|
|||||||
public TableDataInfo list(ScDryMilk scDryMilk)
|
public TableDataInfo list(ScDryMilk scDryMilk)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
// 兼容逻辑:如果前端传了字符串形式的耳号(如导出或老接口调用),也转为List
|
// 处理耳号多选:将逗号/空格分隔的字符串转为List
|
||||||
if (scDryMilk.getManageTags() != null && !scDryMilk.getManageTags().trim().isEmpty()) {
|
if (scDryMilk.getManageTags() != null && !scDryMilk.getManageTags().trim().isEmpty()) {
|
||||||
if (scDryMilk.getManageTagsList() == null) {
|
if (scDryMilk.getManageTagsList() == null) {
|
||||||
scDryMilk.setManageTagsList(new ArrayList<>());
|
scDryMilk.setManageTagsList(new ArrayList<>());
|
||||||
}
|
}
|
||||||
// 支持中文逗号、英文逗号、空格分割
|
|
||||||
String[] tags = scDryMilk.getManageTags().trim().split("[,,\\s]+");
|
String[] tags = scDryMilk.getManageTags().trim().split("[,,\\s]+");
|
||||||
scDryMilk.getManageTagsList().addAll(Arrays.asList(tags));
|
scDryMilk.getManageTagsList().addAll(Arrays.asList(tags));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理技术员多选:将逗号分隔的字符串转为List
|
||||||
|
if (scDryMilk.getTecahnician() != null && !scDryMilk.getTecahnician().trim().isEmpty()) {
|
||||||
|
if (scDryMilk.getTechnicianList() == null) {
|
||||||
|
scDryMilk.setTechnicianList(new ArrayList<>());
|
||||||
|
}
|
||||||
|
String[] techs = scDryMilk.getTecahnician().trim().split("[,,\\s]+");
|
||||||
|
scDryMilk.getTechnicianList().addAll(Arrays.asList(techs));
|
||||||
|
}
|
||||||
|
|
||||||
startPage();
|
startPage();
|
||||||
List<ScDryMilk> list = scDryMilkService.selectScDryMilkList(scDryMilk);
|
List<ScDryMilk> list = scDryMilkService.selectScDryMilkList(scDryMilk);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
@@ -75,11 +83,21 @@ public class ScDryMilkController extends BaseController
|
|||||||
public AjaxResult searchEarNumbers(@RequestParam(value = "query", required = false) String query)
|
public AjaxResult searchEarNumbers(@RequestParam(value = "query", required = false) String query)
|
||||||
{
|
{
|
||||||
if (query == null) query = "";
|
if (query == null) query = "";
|
||||||
// 调用Service层
|
|
||||||
List<String> list = scDryMilkService.selectSheepEarNumberList(query);
|
List<String> list = scDryMilkService.selectSheepEarNumberList(query);
|
||||||
return AjaxResult.success(list);
|
return AjaxResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程搜索技术员列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/searchTechnicians")
|
||||||
|
public AjaxResult searchTechnicians(@RequestParam(value = "query", required = false) String query)
|
||||||
|
{
|
||||||
|
if (query == null) query = "";
|
||||||
|
List<String> list = scDryMilkService.selectTechnicianList(query);
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出干奶记录列表
|
* 导出干奶记录列表
|
||||||
*/
|
*/
|
||||||
@@ -89,10 +107,16 @@ public class ScDryMilkController extends BaseController
|
|||||||
public void export(HttpServletResponse response, ScDryMilk scDryMilk)
|
public void export(HttpServletResponse response, ScDryMilk scDryMilk)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
// 导出也需要支持多选查询
|
||||||
if (scDryMilk.getManageTags() != null) {
|
if (scDryMilk.getManageTags() != null) {
|
||||||
String[] tags = scDryMilk.getManageTags().trim().split("[,,\\s]+");
|
String[] tags = scDryMilk.getManageTags().trim().split("[,,\\s]+");
|
||||||
scDryMilk.setManageTagsList(Arrays.asList(tags));
|
scDryMilk.setManageTagsList(Arrays.asList(tags));
|
||||||
}
|
}
|
||||||
|
if (scDryMilk.getTecahnician() != null) {
|
||||||
|
String[] techs = scDryMilk.getTecahnician().trim().split("[,,\\s]+");
|
||||||
|
scDryMilk.setTechnicianList(Arrays.asList(techs));
|
||||||
|
}
|
||||||
|
|
||||||
List<ScDryMilk> list = scDryMilkService.selectScDryMilkList(scDryMilk);
|
List<ScDryMilk> list = scDryMilkService.selectScDryMilkList(scDryMilk);
|
||||||
ExcelUtil<ScDryMilk> util = new ExcelUtil<ScDryMilk>(ScDryMilk.class);
|
ExcelUtil<ScDryMilk> util = new ExcelUtil<ScDryMilk>(ScDryMilk.class);
|
||||||
util.exportExcel(response, list, "干奶记录数据");
|
util.exportExcel(response, list, "干奶记录数据");
|
||||||
@@ -122,7 +146,7 @@ public class ScDryMilkController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增干奶记录
|
* 新增干奶记录 (支持批量录入)
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('drymilk:drymilk:add')")
|
@PreAuthorize("@ss.hasPermi('drymilk:drymilk:add')")
|
||||||
@Log(title = "干奶记录", businessType = BusinessType.INSERT)
|
@Log(title = "干奶记录", businessType = BusinessType.INSERT)
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ package com.zhyc.module.produce.breed.domain;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.AllArgsConstructor;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import lombok.Data;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import com.zhyc.common.annotation.Excel;
|
import com.zhyc.common.annotation.Excel;
|
||||||
import com.zhyc.common.core.domain.BaseEntity;
|
import com.zhyc.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
@@ -15,9 +14,6 @@ import com.zhyc.common.core.domain.BaseEntity;
|
|||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
* @date 2025-07-15
|
* @date 2025-07-15
|
||||||
*/
|
*/
|
||||||
@Data
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class ScDryMilk extends BaseEntity
|
public class ScDryMilk extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@@ -50,13 +46,13 @@ public class ScDryMilk extends BaseEntity
|
|||||||
@Excel(name = "备注")
|
@Excel(name = "备注")
|
||||||
private String comment;
|
private String comment;
|
||||||
|
|
||||||
// --- 联表查询字段 ---
|
// --- 联表查询及辅助字段 ---
|
||||||
|
|
||||||
/** 管理耳号 (单个) */
|
/** 管理耳号 (单个,用于接收前端传参或导出显示) */
|
||||||
@Excel(name = "耳号")
|
@Excel(name = "耳号")
|
||||||
private String manageTags;
|
private String manageTags;
|
||||||
|
|
||||||
/** 多耳号查询列表 (核心修改:用于接收前端多选的数组) */
|
/** 多耳号查询列表 (用于MyBatis IN查询) */
|
||||||
private List<String> manageTagsList;
|
private List<String> manageTagsList;
|
||||||
|
|
||||||
/** 品种 */
|
/** 品种 */
|
||||||
@@ -70,4 +66,137 @@ public class ScDryMilk extends BaseEntity
|
|||||||
/** 事件类型 */
|
/** 事件类型 */
|
||||||
@Excel(name = "事件类型")
|
@Excel(name = "事件类型")
|
||||||
private String eventType;
|
private String eventType;
|
||||||
|
|
||||||
|
/** 技术员多选列表 (新增:用于MyBatis IN查询) */
|
||||||
|
private List<String> technicianList;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setSheepId(String sheepId)
|
||||||
|
{
|
||||||
|
this.sheepId = sheepId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSheepId()
|
||||||
|
{
|
||||||
|
return sheepId;
|
||||||
|
}
|
||||||
|
public void setDatetime(Date datetime)
|
||||||
|
{
|
||||||
|
this.datetime = datetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDatetime()
|
||||||
|
{
|
||||||
|
return datetime;
|
||||||
|
}
|
||||||
|
public void setStatus(Long status)
|
||||||
|
{
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getStatus()
|
||||||
|
{
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
public void setSheepfold(Long sheepfold)
|
||||||
|
{
|
||||||
|
this.sheepfold = sheepfold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getSheepfold()
|
||||||
|
{
|
||||||
|
return sheepfold;
|
||||||
|
}
|
||||||
|
public void setTecahnician(String tecahnician)
|
||||||
|
{
|
||||||
|
this.tecahnician = tecahnician;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTecahnician()
|
||||||
|
{
|
||||||
|
return tecahnician;
|
||||||
|
}
|
||||||
|
public void setComment(String comment)
|
||||||
|
{
|
||||||
|
this.comment = comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComment()
|
||||||
|
{
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getManageTags() {
|
||||||
|
return manageTags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setManageTags(String manageTags) {
|
||||||
|
this.manageTags = manageTags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getManageTagsList() {
|
||||||
|
return manageTagsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setManageTagsList(List<String> manageTagsList) {
|
||||||
|
this.manageTagsList = manageTagsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVariety() {
|
||||||
|
return variety;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariety(String variety) {
|
||||||
|
this.variety = variety;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSheepfoldName() {
|
||||||
|
return sheepfoldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSheepfoldName(String sheepfoldName) {
|
||||||
|
this.sheepfoldName = sheepfoldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEventType() {
|
||||||
|
return eventType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEventType(String eventType) {
|
||||||
|
this.eventType = eventType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getTechnicianList() {
|
||||||
|
return technicianList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTechnicianList(List<String> technicianList) {
|
||||||
|
this.technicianList = technicianList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.append("sheepId", getSheepId())
|
||||||
|
.append("datetime", getDatetime())
|
||||||
|
.append("status", getStatus())
|
||||||
|
.append("sheepfold", getSheepfold())
|
||||||
|
.append("tecahnician", getTecahnician())
|
||||||
|
.append("createBy", getCreateBy())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("comment", getComment())
|
||||||
|
.append("manageTags", getManageTags())
|
||||||
|
.append("variety", getVariety())
|
||||||
|
.append("sheepfoldName", getSheepfoldName())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -59,9 +59,12 @@ public interface ScDryMilkMapper
|
|||||||
public Long selectSheepIdByManageTags(String manageTags);
|
public Long selectSheepIdByManageTags(String manageTags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 远程搜索耳号列表 (新增)
|
* 远程搜索耳号列表
|
||||||
* @param query 搜索关键字
|
|
||||||
* @return 耳号列表
|
|
||||||
*/
|
*/
|
||||||
public List<String> selectSheepEarNumberList(@Param("query") String query);
|
public List<String> selectSheepEarNumberList(@Param("query") String query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程搜索技术员列表
|
||||||
|
*/
|
||||||
|
public List<String> searchTechnicianList(@Param("query") String query);
|
||||||
}
|
}
|
||||||
@@ -58,9 +58,12 @@ public interface IScDryMilkService
|
|||||||
public Long selectSheepIdByManageTags(String manageTags);
|
public Long selectSheepIdByManageTags(String manageTags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 远程搜索耳号列表 (新增方法)
|
* 远程搜索耳号列表
|
||||||
* @param query 搜索关键字
|
|
||||||
* @return 耳号列表
|
|
||||||
*/
|
*/
|
||||||
public List<String> selectSheepEarNumberList(String query);
|
public List<String> selectSheepEarNumberList(String query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程搜索技术员列表
|
||||||
|
*/
|
||||||
|
public List<String> selectTechnicianList(String query);
|
||||||
}
|
}
|
||||||
@@ -72,13 +72,11 @@ public class ScDryMilkServiceImpl implements IScDryMilkService
|
|||||||
@Override
|
@Override
|
||||||
public int deleteScDryMilkByIds(Long[] ids)
|
public int deleteScDryMilkByIds(Long[] ids)
|
||||||
{
|
{
|
||||||
// 假设ids是Long数组,需要转为String[]传给Mapper,或者修改Mapper接收Long[]
|
String[] strIds = new String[ids.length];
|
||||||
// 这里根据Mapper XML通常接收String[]或Array的习惯,做个转换
|
for(int i=0; i<ids.length; i++){
|
||||||
String[] stringIds = new String[ids.length];
|
strIds[i] = String.valueOf(ids[i]);
|
||||||
for(int i=0;i<ids.length;i++){
|
|
||||||
stringIds[i] = String.valueOf(ids[i]);
|
|
||||||
}
|
}
|
||||||
return scDryMilkMapper.deleteScDryMilkByIds(stringIds);
|
return scDryMilkMapper.deleteScDryMilkByIds(strIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -92,19 +90,18 @@ public class ScDryMilkServiceImpl implements IScDryMilkService
|
|||||||
return scDryMilkMapper.deleteScDryMilkById(id);
|
return scDryMilkMapper.deleteScDryMilkById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据耳号查询羊只ID
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public Long selectSheepIdByManageTags(String manageTags) {
|
public Long selectSheepIdByManageTags(String manageTags) {
|
||||||
return scDryMilkMapper.selectSheepIdByManageTags(manageTags);
|
return scDryMilkMapper.selectSheepIdByManageTags(manageTags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 远程搜索耳号列表 (新增实现)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> selectSheepEarNumberList(String query) {
|
public List<String> selectSheepEarNumberList(String query) {
|
||||||
return scDryMilkMapper.selectSheepEarNumberList(query);
|
return scDryMilkMapper.selectSheepEarNumberList(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> selectTechnicianList(String query) {
|
||||||
|
return scDryMilkMapper.searchTechnicianList(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -34,24 +34,33 @@
|
|||||||
<where>
|
<where>
|
||||||
<if test="manageTagsList != null and manageTagsList.size() > 0">
|
<if test="manageTagsList != null and manageTagsList.size() > 0">
|
||||||
AND s.bs_manage_tags IN
|
AND s.bs_manage_tags IN
|
||||||
<foreach collection="manageTagsList" item="item" open="(" separator="," close=")">
|
<foreach collection="manageTagsList" item="tag" open="(" separator="," close=")">
|
||||||
#{item}
|
#{tag}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="(manageTagsList == null or manageTagsList.size() == 0) and manageTags != null and manageTags != ''">
|
<if test="(manageTagsList == null or manageTagsList.size() == 0) and manageTags != null and manageTags != ''">
|
||||||
AND s.bs_manage_tags like concat('%', #{manageTags}, '%')
|
AND s.bs_manage_tags like concat('%', #{manageTags}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
<if test="technicianList != null and technicianList.size() > 0">
|
||||||
|
AND d.tecahnician IN
|
||||||
|
<foreach collection="technicianList" item="tech" open="(" separator="," close=")">
|
||||||
|
#{tech}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="(technicianList == null or technicianList.size() == 0) and tecahnician != null and tecahnician != ''">
|
||||||
|
AND d.tecahnician like concat('%', #{tecahnician}, '%')
|
||||||
|
</if>
|
||||||
|
|
||||||
<if test="params.beginTime != null and params.beginTime != ''">
|
<if test="params.beginTime != null and params.beginTime != ''">
|
||||||
AND d.datetime >= #{params.beginTime}
|
AND date_format(d.datetime,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="params.endTime != null and params.endTime != ''">
|
<if test="params.endTime != null and params.endTime != ''">
|
||||||
AND d.datetime <= #{params.endTime}
|
AND date_format(d.datetime,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
<if test="status != null "> and d.status = #{status}</if>
|
<if test="status != null "> and d.status = #{status}</if>
|
||||||
<if test="sheepfold != null "> and d.sheepfold = #{sheepfold}</if>
|
<if test="sheepfold != null "> and d.sheepfold = #{sheepfold}</if>
|
||||||
<if test="tecahnician != null and tecahnician != ''"> and d.tecahnician like concat('%', #{tecahnician}, '%')</if>
|
|
||||||
<if test="variety != null and variety != ''"> and s.variety like concat('%', #{variety}, '%')</if>
|
<if test="variety != null and variety != ''"> and s.variety like concat('%', #{variety}, '%')</if>
|
||||||
</where>
|
</where>
|
||||||
order by d.datetime desc
|
order by d.datetime desc
|
||||||
@@ -64,6 +73,13 @@
|
|||||||
LIMIT 20
|
LIMIT 20
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="searchTechnicianList" resultType="String">
|
||||||
|
SELECT nick_name
|
||||||
|
FROM sys_user
|
||||||
|
WHERE nick_name LIKE concat('%', #{query}, '%')
|
||||||
|
LIMIT 20
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectScDryMilkById" parameterType="Long" resultMap="ScDryMilkResult">
|
<select id="selectScDryMilkById" parameterType="Long" resultMap="ScDryMilkResult">
|
||||||
<include refid="selectScDryMilkVo"/>
|
<include refid="selectScDryMilkVo"/>
|
||||||
where d.id = #{id}
|
where d.id = #{id}
|
||||||
|
|||||||
Reference in New Issue
Block a user