sql优化

yun-zuoyi
陈思洁 6 years ago
parent 721ddbee3c
commit 91999948b6

@ -1462,26 +1462,29 @@ public class WmsHqlPack {
if (StringUtils.isNotBlank(data)) {
List<Map> mapList = JSONObject.parseArray(data, Map.class);
if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.WAREHOUSE.getValue() + "", key)) {
packMutilConditionHql(mapList, "WH_CODE", "destWhNo", result);
} else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.LOCATE.getValue() + "", key)) {
packMutilConditionHql(mapList, "LOCATE_NO", "destLocateNo", result);
} else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.ZONE.getValue() + "", key)) {
packMutilConditionHql(mapList, "ZONE_CODE", "destZoneNo", result);
} else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.MATERIAL.getValue() + "", key)) {
packMutilConditionHql(mapList, "PART_NO", "partNo", result);
}
DdlPreparedPack.getInPackList(cyclicTraversal(mapList,"WH_CODE"), "destWhNo", result);
//packMutilConditionHql(mapList, "WH_CODE", "destWhNo", result);
}/* else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.LOCATE.getValue() + "", key)) {
DdlPreparedPack.getInPackList(cyclicTraversal(mapList,"LOCATE_NO"), "destLocateNo", result);
//packMutilConditionHql(mapList, "LOCATE_NO", "destLocateNo", result);
}*/ else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.ZONE.getValue() + "", key)) {
DdlPreparedPack.getInPackList(cyclicTraversal(mapList,"ZONE_CODE"), "destZoneNo", result);
//packMutilConditionHql(mapList, "ZONE_CODE", "destZoneNo", result);
} /*else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.MATERIAL.getValue() + "", key)) {
DdlPreparedPack.getInPackList(cyclicTraversal(mapList,"PART_NO"), "partNo", result);
//packMutilConditionHql(mapList, "PART_NO", "partNo", result);
}*/
}
}
//转换封装后的hql
String packedHql = result.getPackedHql();
/*String packedHql = result.getPackedHql();
if(packedHql.startsWith(" or")){
packedHql = " and (" + packedHql.substring(3,packedHql.length()) + ") ";
System.out.println(packedHql);
}
result.setWhereAppend(packedHql);
result.setWhereAppend(packedHql);*/
// 通用数据拼接
WmsDataAuth wmsDataAuth = new WmsDataAuth();
wmsDataAuth.setOrganizeCode(organizeCode);
@ -1490,6 +1493,20 @@ public class WmsHqlPack {
}
/**
* List<Map> List<String>
* @param mapList
* @param keyName
*/
private static List<String> cyclicTraversal(List<Map> mapList,String keyName) {
List<String> list = new ArrayList<String>();
for(int i=0;i<mapList.size();i++){
Map<String,String> map = mapList.get(i);
list.add(map.get(keyName));
}
return list;
}
/**
* List<Map> HQL
* @param mapList
* @param keyName
@ -1518,37 +1535,31 @@ public class WmsHqlPack {
*/
public static DdlPackBean packHqlAndIn(WmsTaskInfo bean, String columnName, List<String> orderList,Map<String, List<WmsDataAuth>> groupDataAuth) {
DdlPackBean packBean = new DdlPackBean();
Set<Map.Entry<String, List<WmsDataAuth>>> entries = groupDataAuth.entrySet();
//拼sql
entries.stream().filter(o -> !Strings.isNullOrEmpty(o.getKey()));
for (Map.Entry<String, List<WmsDataAuth>> map : entries) {
String key = map.getKey();
List<WmsDataAuth> valueList = map.getValue();
List<String> vList = valueList.stream().map(x -> x.getDataObjValue()).collect(Collectors.toList());
String data = String.join(",", vList);
if (StringUtils.isNotBlank(data)) {
List<Map> mapList = JSONObject.parseArray(data, Map.class);
if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.TRANS_TYPE.getValue() + "", key)) {
packMutilConditionHql(mapList, "TRANS_TYPE_CODE", "transTypeCode", packBean);
DdlPreparedPack.getInPackList(cyclicTraversal(mapList,"TRANS_TYPE_CODE"), "transTypeCode", packBean);
//packMutilConditionHql(mapList, "TRANS_TYPE_CODE", "transTypeCode", packBean);
break;
}
}
}
//转换封装后的hql
String packedHql = packBean.getPackedHql();
/*String packedHql = packBean.getPackedHql();
if(packedHql.startsWith(" or")){
packedHql = " and (" + packedHql.substring(3,packedHql.length()) + ") ";
System.out.println(packedHql);
}
packBean.setWhereAppend(packedHql);
packBean.setWhereAppend(packedHql);*/
DdlPreparedPack.getInPackList(orderList, columnName, packBean);
DdlPreparedPack.getStringRightLikerPack(bean.getOrderNo(), "orderNo", packBean);
DdlPreparedPack.getNumNOEqualPack(bean.getTaskStatus(), "taskStatus", packBean);

Loading…
Cancel
Save