修改物料搜索接口
This commit is contained in:
parent
a79b7b0734
commit
7d8694ac0b
@ -93,4 +93,8 @@ public class ImMaterialBo extends BaseEntity {
|
|||||||
* jishikucun
|
* jishikucun
|
||||||
*/
|
*/
|
||||||
private String inInventory;
|
private String inInventory;
|
||||||
|
/***
|
||||||
|
* 是否使用自主查询. 默认不使用
|
||||||
|
*/
|
||||||
|
private Boolean useAutonomous = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1348,16 +1348,16 @@ public class MssqlQueryService {
|
|||||||
if (bo == null) {
|
if (bo == null) {
|
||||||
return where.toString();
|
return where.toString();
|
||||||
}
|
}
|
||||||
appendLike(where, args, "m.FNUMBER", bo.getMaterialCode());
|
appendLike(where, args, "m.FNUMBER", bo.getMaterialCode(), bo.getUseAutonomous());
|
||||||
appendLike(where, args, "ml.FNAME", bo.getMaterialName());
|
appendLike(where, args, "ml.FNAME", bo.getMaterialName(), bo.getUseAutonomous());
|
||||||
if (StringUtils.isNotBlank(bo.getMaterialQuality())) {
|
if (StringUtils.isNotBlank(bo.getMaterialQuality())) {
|
||||||
where.append(" AND (ml.FSPECIFICATION LIKE ? OR assl.FDATAVALUE LIKE ?) ");
|
where.append(" AND (ml.FSPECIFICATION LIKE ? OR assl.FDATAVALUE LIKE ?) ");
|
||||||
String qualityLike = "%" + bo.getMaterialQuality().trim() + "%";
|
String qualityLike = "%" + bo.getMaterialQuality().trim() + "%";
|
||||||
args.add(qualityLike);
|
args.add(qualityLike);
|
||||||
args.add(qualityLike);
|
args.add(qualityLike);
|
||||||
}
|
}
|
||||||
appendLike(where, args, "ul.FNAME", bo.getUnit());
|
appendLike(where, args, "ul.FNAME", bo.getUnit(), false);
|
||||||
appendLike(where, args, "c.FNUMBER", bo.getImCategory());
|
appendLike(where, args, "c.FNUMBER", bo.getImCategory(), false);
|
||||||
if (bo.getSingleWeight() != null) {
|
if (bo.getSingleWeight() != null) {
|
||||||
where.append(" AND m.F_HBYT_DZ = ? ");
|
where.append(" AND m.F_HBYT_DZ = ? ");
|
||||||
args.add(bo.getSingleWeight());
|
args.add(bo.getSingleWeight());
|
||||||
@ -1373,12 +1373,28 @@ public class MssqlQueryService {
|
|||||||
return where.toString();
|
return where.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void appendLike(StringBuilder where, List<Object> args, String column, String value) {
|
private static void appendLike(StringBuilder where, List<Object> args, String column, String value, Boolean useAutonomous) {
|
||||||
if (StringUtils.isBlank(value)) {
|
if (StringUtils.isBlank(value)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
where.append(" AND ").append(column).append(" LIKE ? ");
|
if(useAutonomous){
|
||||||
args.add("%" + value.trim() + "%");
|
// where.append(" AND ").append(column).append(" in (?) ");
|
||||||
|
List<String> values = new ArrayList<>();
|
||||||
|
for (String v : value.trim().split(",")){
|
||||||
|
for (String v1 : v.trim().split("\\s*[,;:]\\s*")){
|
||||||
|
values.add(v1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String[] placeHolder = new String[values.size()];
|
||||||
|
Arrays.fill(placeHolder, "?");
|
||||||
|
String inSql = String.join(",", placeHolder);
|
||||||
|
where.append(" AND ").append(column).append(" IN (").append(inSql).append(") ");
|
||||||
|
args.addAll(values);
|
||||||
|
}else{
|
||||||
|
where.append(" AND ").append(column).append(" LIKE ? ");
|
||||||
|
args.add("%" + value.trim() + "%");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ImMaterialVo> mapKingdeeMaterialVos(List<Map<String, Object>> rows) {
|
private List<ImMaterialVo> mapKingdeeMaterialVos(List<Map<String, Object>> rows) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user