diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/DataAuthEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/DataAuthEnumUtil.java deleted file mode 100644 index 6c4d4c3..0000000 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/DataAuthEnumUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.estsh.i3plus.pojo.base.enumutil; - -import com.fasterxml.jackson.annotation.JsonFormat; - -/** - * @Description : wms数据权限枚举 - * @Reference : - * @Author : jack.lv - * @CreateDate : 2019-3-8 15:53 - * @Modify: - **/ -public class DataAuthEnumUtil { - - /** - * 数据对象枚举 - */ - @JsonFormat(shape = JsonFormat.Shape.OBJECT) - public enum DATA_OBJ_TYPE { - WAREHOUSE("10", "WAREHOUSE", "仓库对象"), - ZONE("20", "ZONE", "存储区对象"), - LOCATE("30", "LOCATE", "库位对象"); - - private String code; - private String description; - String value; - - DATA_OBJ_TYPE(String value, String code, String description) { - this.value = value; - this.code = code; - this.description = description; - } - - public String getValue() { - return value; - } - - public String getCode() { - return code; - } - - public String getDescription() { - return description; - } - } -} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java index ca1e277..c22bdc9 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java @@ -1819,18 +1819,53 @@ public class WmsEnumUtil { } /** - * 可选项类型枚举 + * 数据对象枚举 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum DATA_OBJ_TYPE { + WAREHOUSE(10, "WAREHOUSE", "仓库对象"), + ZONE(20, "ZONE", "存储区对象"), + LOCATE(30, "LOCATE", "库位对象"), + MATERIAL(40, "MATERIAL", "物料对象"); + + private String code; + private String description; + int value; + + DATA_OBJ_TYPE(int value, String code, String description) { + this.value = value; + this.code = code; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } + } + + /** + * 数据操作枚举 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) - public enum DATA_ROLE_TYPE { - WAREHOUSE(1, "WAREHOUSE", "仓库"), - STOCK(2, "STOCK", "库存"); + public enum DATA_OBJ_OP_TYPE { + ADD(10, "ADD", "新增"), + DEL(20, "DEL", "删除"), + UPD(30, "UPD", "修改"), + QUERY(40, "QUERY", "查询"); private String code; private String description; int value; - DATA_ROLE_TYPE(int value, String code, String description) { + DATA_OBJ_OP_TYPE(int value, String code, String description) { this.value = value; this.code = code; this.description = description; diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java index c01e38b..802e693 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java @@ -451,6 +451,32 @@ public class HqlPack { * @param columnName * @param result */ + public static void getInOrPackString(String data,String columnName, StringBuffer result){ + if (data != null && data.trim().length()>0) { + data = getSafeParam(data); + //判断最后一位是不是逗号 + if(data.lastIndexOf(",") != (data.length()-1)){ + data += ","; + } + String[] dataArray = data.substring(0, data.length()-1).split(","); + data = ""; + for (int i = 0 ; i < dataArray.length ;i++) { + if(i == dataArray.length -1){ + data += "'" + dataArray[i] + "'"; + }else{ + data += "'" + dataArray[i] + "',"; + } + } + result.append(" or model."+columnName+" in ( "+ data+ " )"); + } + } + + /** + * 封装in String查询语句 + * @param data + * @param columnName + * @param result + */ public static void getNotInPackString(String data,String columnName, StringBuffer result){ if (data != null && data.trim().length()>0) { data = getSafeParam(data); 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 048fea8..f039f32 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 @@ -2,19 +2,22 @@ package cn.estsh.i3plus.pojo.wms.sqlpack; import cn.estsh.i3plus.pojo.base.bean.BaseBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.DataAuthEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.base.tool.SqlPack; import cn.estsh.i3plus.pojo.wms.bean.*; +import com.alibaba.fastjson.JSONObject; import com.google.common.base.Strings; +import com.sun.org.apache.xerces.internal.xs.datatypes.ObjectList; import org.apache.commons.lang3.StringUtils; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import static com.alibaba.fastjson.JSON.parseArray; + /** * @Description : 仓库管理对象封装 * @Reference : @@ -1344,13 +1347,23 @@ public class WmsHqlPack { public static String packHqlWmsDataAuth(List roleIds) { StringBuffer result = new StringBuffer(); String data = String.join(",", roleIds); - // 参数数组 [1,2,3] -> "1,2,3" HqlPack.getInPack(data,"roleCode",result); getStringBuilderPack(new WmsDataAuth(), result); return result.toString(); } /** + * 根据用户角色id列表查询数据权限信息 + * @return + */ + public static String packHqlWmsDataAuth(WmsDataAuth dataAuth) { + StringBuffer result = new StringBuffer(); + HqlPack.getStringEqualPack(dataAuth.getDataObj() ,"dataObj", result); + getStringBuilderPack(new WmsDataAuth(), result); + return result.toString(); + } + + /** * 根据权限数据拼查询任务详情sql * @param groupDataAuth * @return @@ -1358,25 +1371,30 @@ public class WmsHqlPack { public static String packHqlWmsTaskDetail(Map> groupDataAuth) { StringBuffer result = new StringBuffer(); Set>> entries = groupDataAuth.entrySet(); - String warehouse = DataAuthEnumUtil.DATA_OBJ_TYPE.WAREHOUSE.getValue(); - String locate = DataAuthEnumUtil.DATA_OBJ_TYPE.LOCATE.getValue(); - String zone = DataAuthEnumUtil.DATA_OBJ_TYPE.ZONE.getValue(); //拼sql entries.stream().filter(o->!Strings.isNullOrEmpty(o.getKey())).forEach(o->{ List value = o.getValue(); List vList = value.stream().map(x -> x.getDataObjValue()).collect(Collectors.toList()); String data = String.join(",", vList); - if(warehouse.equals(o.getKey())){ - // 参数数组 [1,2,3] -> "1,2,3" - HqlPack.getInPack(data,"destWhNo",result); - } - if(locate.equals(o.getKey())){ - // 参数数组 [1,2,3] -> "1,2,3" - HqlPack.getInPack(data,"destLocateNo",result); - } - if(zone.equals(o.getKey())){ - // 参数数组 [1,2,3] -> "1,2,3" - HqlPack.getInPack(data,"destZoneNo",result); + if (StringUtils.isNotBlank(data)) { + List mapList = JSONObject.parseArray(data, Map.class); + if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.WAREHOUSE.getValue() + "", o.getKey())) { + for (Map whNoItem : mapList) { + HqlPack.getInOrPackString(whNoItem.get("WH_CODE").toString(), "destWhNo", result); + } + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.LOCATE.getValue() + "", o.getKey())) { + for (Map locateNoItem : mapList) { + HqlPack.getInOrPackString(locateNoItem.get("LOCATE_NO").toString(), "destLocateNo", result); + } + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.ZONE.getValue() + "", o.getKey())) { + for (Map zoneNoItem : mapList) { + HqlPack.getInOrPackString(zoneNoItem.get("ZONE_CODE").toString(), "destZoneNo", result); + } + } else if (StringUtils.equalsIgnoreCase(WmsEnumUtil.DATA_OBJ_TYPE.MATERIAL.getValue() + "", o.getKey())) { + for (Map zoneNoItem : mapList) { + HqlPack.getInOrPackString(zoneNoItem.get("PART_NO").toString(), "partNo", result); + } + } } }); getStringBuilderPack(new WmsDataAuth(), result); @@ -1392,7 +1410,7 @@ public class WmsHqlPack { public static String packHqlAndIn(BaseBean bean,String columnName,List vals) { StringBuffer result = new StringBuffer(); String data = String.join(",", vals); - HqlPack.getInPack(data,columnName,result); + HqlPack.getInPackString(data,columnName,result); getStringBuilderPack(bean, result); return result.toString(); }