From c3ff60a581ee6e82e656578e59e8affaa0f5d1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E5=AD=A6=E6=9D=B0?= Date: Tue, 18 Jun 2019 13:18:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E8=A7=A3=E5=86=B3=20WMS=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E6=9F=A5=E8=AF=A2=E6=97=B6=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=80=BC=E8=A6=86=E7=9B=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java | 49 +++++++++++++++------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java index cba3169..01280f0 100644 --- a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java +++ b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java @@ -1402,32 +1402,31 @@ public class WmsHqlPack { entries.stream().filter(o -> !Strings.isNullOrEmpty(o.getKey())); for (Map.Entry> map : entries) { + String key = map.getKey(); List valueList = map.getValue(); List vList = valueList.stream().map(x -> x.getDataObjValue()).collect(Collectors.toList()); String data = String.join(",", vList); + if (StringUtils.isNotBlank(data)) { + List mapList = JSONObject.parseArray(data, Map.class); + if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.WAREHOUSE.getValue() + "", key)) { - for (Map whNoItem : mapList) { - // 拼接仓库查询sql - DdlPreparedPack.getStringEqualPackOr(whNoItem.get("WH_CODE").toString(), "destWhNo", result); - } + + packMutilConditionHql(mapList, "WH_CODE", "destWhNo", result); + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.LOCATE.getValue() + "", key)) { - for (Map locateNoItem : mapList) { - // 拼接库位查询sql - DdlPreparedPack.getStringEqualPackOr(locateNoItem.get("LOCATE_NO").toString(), "destLocateNo", result); - } + + packMutilConditionHql(mapList, "LOCATE_NO", "destLocateNo", result); + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.ZONE.getValue() + "", key)) { - for (Map zoneNoItem : mapList) { - // 拼接存储区查询sql - DdlPreparedPack.getStringEqualPackOr(zoneNoItem.get("ZONE_CODE").toString(), "destZoneNo", result); - } + + packMutilConditionHql(mapList, "ZONE_CODE", "destZoneNo", result); + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.MATERIAL.getValue() + "", key)) { - for (Map partNoItem : mapList) { - // 拼接物料查询sql - DdlPreparedPack.getStringEqualPackOr(partNoItem.get("PART_NO").toString(), "partNo", result); - } + + packMutilConditionHql(mapList, "PART_NO", "partNo", result); } } } @@ -1443,6 +1442,24 @@ public class WmsHqlPack { } /** + * 把 List 中的一组查询条件封装成 HQL + * @param mapList + * @param keyName + * @param columnName + * @param packBean + */ + private static void packMutilConditionHql(List mapList, String keyName, + String columnName, DdlPackBean packBean) { + Integer index = 1; + + for (Map item : mapList) { + packBean.addColumnQuery(columnName," or model." + + columnName + " = :m_" + columnName + (index++).toString(), + item.get(keyName).toString()); + } + } + + /** * 给定字段动态in sql * * @param columnName