修改物料搜索接口
This commit is contained in:
parent
a79b7b0734
commit
7d8694ac0b
@ -93,4 +93,8 @@ public class ImMaterialBo extends BaseEntity {
|
||||
* jishikucun
|
||||
*/
|
||||
private String inInventory;
|
||||
/***
|
||||
* 是否使用自主查询. 默认不使用
|
||||
*/
|
||||
private Boolean useAutonomous = false;
|
||||
}
|
||||
|
||||
@ -1348,16 +1348,16 @@ public class MssqlQueryService {
|
||||
if (bo == null) {
|
||||
return where.toString();
|
||||
}
|
||||
appendLike(where, args, "m.FNUMBER", bo.getMaterialCode());
|
||||
appendLike(where, args, "ml.FNAME", bo.getMaterialName());
|
||||
appendLike(where, args, "m.FNUMBER", bo.getMaterialCode(), bo.getUseAutonomous());
|
||||
appendLike(where, args, "ml.FNAME", bo.getMaterialName(), bo.getUseAutonomous());
|
||||
if (StringUtils.isNotBlank(bo.getMaterialQuality())) {
|
||||
where.append(" AND (ml.FSPECIFICATION LIKE ? OR assl.FDATAVALUE LIKE ?) ");
|
||||
String qualityLike = "%" + bo.getMaterialQuality().trim() + "%";
|
||||
args.add(qualityLike);
|
||||
args.add(qualityLike);
|
||||
}
|
||||
appendLike(where, args, "ul.FNAME", bo.getUnit());
|
||||
appendLike(where, args, "c.FNUMBER", bo.getImCategory());
|
||||
appendLike(where, args, "ul.FNAME", bo.getUnit(), false);
|
||||
appendLike(where, args, "c.FNUMBER", bo.getImCategory(), false);
|
||||
if (bo.getSingleWeight() != null) {
|
||||
where.append(" AND m.F_HBYT_DZ = ? ");
|
||||
args.add(bo.getSingleWeight());
|
||||
@ -1373,14 +1373,30 @@ public class MssqlQueryService {
|
||||
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)) {
|
||||
return;
|
||||
}
|
||||
if(useAutonomous){
|
||||
// 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) {
|
||||
List<ImMaterialVo> list = new ArrayList<>();
|
||||
if (rows == null) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user