1. UI如下, 共有四个查询条件,每个查询可以多选,所以考虑用in查询
2. 查询DTO类封装如下:
@Data
@ApiModel(value = "整机下市明细信息查询对象")
public class MachineOffMarketQueryDto {
@ApiModelProperty(value = "型号编码集合", required = true)
@NotEmpty(message="型号编码集合不能为空")
private List<String> productCodes;
@ApiModelProperty(value = "型号名称集合", required = true)
@NotEmpty(message="型号名称集合不能为空")
private List<String> productNames;
@ApiModelProperty(value = "PLC状态集合", required = true)
@NotEmpty(message="PLC状态集合不能为空")
private List<String> plcStates;
@ApiModelProperty(value = "PLC状态实际日期集合", required = true)
@NotEmpty(message="PLC状态实际日期集合不能为空")
private List<String> dateActuals;
@ApiModelProperty(value = "查询页码", required = true)
@NotNull(message="查询页码不能为空")
private Integer pageNumber;
@ApiModelProperty(value = "查询页size", required = true)
@NotNull(message="查询页码大小不能为空")
private Integer pageSize;
public String toString(){
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("productCodes", getProductCodes())
.append("productNames", getProductNames())
.append("plcStates", getPlcStates())
.append("dateActuals", getDateActuals())
.append("pageNumber", getPageNumber())
.append("pageSize", getPageSize())
.toString();
}
}
3. Controller
4. service:
4. Mapper.xml
<select id="selectMachineOffMarketInfo" parameterType="MachineOffMarketQueryDto" resultType="DiOffMarketModelDetailDo">标签:多个,private,查询,value,为空,mybatis,message,append From: https://www.cnblogs.com/andy1234/p/17816881.html
SELECT product_code, product_name, sub_pl_code, sub_pl_name, industry, prod_life_state, date_plan, date_actual, src_etl_date, trg_etl_date,
pt, product_place, offline_number, creator, create_time, update_time
from di_off_market_model_detail
where 1='1'
<if test="productCodes != null and productCodes.size() >0">
and product_code in
<foreach collection="productCodes" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="productNames != null and productNames.size() >0">
and product_name in
<foreach collection="productNames" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="plcStates != null and plcStates.size() >0">
and prod_life_state in
<foreach collection="plcStates" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="dateActuals != null and dateActuals.size() >0">
and date_actual in
<foreach collection="dateActuals" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
</select>