diff --git a/wms-vue/src/components/duochaxun/JianHuoBiaoDan.vue b/wms-vue/src/components/duochaxun/JianHuoBiaoDan.vue index 8bd1fd4..6d79fbe 100644 --- a/wms-vue/src/components/duochaxun/JianHuoBiaoDan.vue +++ b/wms-vue/src/components/duochaxun/JianHuoBiaoDan.vue @@ -4,6 +4,35 @@
+ + + + + + + + + + + + + + + + 查找 导出 重置   @@ -26,7 +55,7 @@ @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" - :page-sizes="[ 50, 100, 200,500]" + :page-sizes="[ 100000]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> @@ -39,41 +68,49 @@ export default { data() { return { + pickerOptions: { + shortcuts: [{ + text: '最近一周', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + } + }, { + text: '最近一个月', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + } + }, { + text: '最近三个月', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + } + }] + }, + /*多选下拉框-库区*/ + Ku: [], // 表头配置 columns: [ - { - prop: 'sapName', - minWidth: '150px', - label: 'SAP类型' - }, - { - prop: 'areaName', - minWidth: '150px', - label: '库区' - }, - { - prop: 'formattedDate', - minWidth: '150px', - label: 'FormattedDate' - }, - { - prop: 'taskCount', - minWidth: '150px', - label: '数量' - } ], - /*columns:[ - prop: 'a1', - ],*/ tableloding: false, isShow:false,//是否展示全部搜索条件 tableData: [], - pageSize: 50 + pageSize: 100000 ,spanArr: [], //每行合并数 pos: 0, //角标索引 pageNum: 1, total: 3, param: { + 创建日期:[new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()], + 库区:[], }, loading: false, checked: false, @@ -87,6 +124,7 @@ export default { }, mounted: function () { this.queryUser(); + this.KuS(); }, updated() { // 每次更新会重新对 Table 进行重新布局 @@ -101,7 +139,7 @@ export default { cellStyle({ row, column }) { // 找到数组中列>1那一个单元格,就是需要改变的样式 if (row['mergeData'][column.property] && row['mergeData'][column.property][1] && row['mergeData'][column.property][1] > 1) { - return { 'text-align': 'left' } + return { 'text-align': 'center' } } else { return {} } @@ -137,7 +175,8 @@ export default { }).then(res => res.data) .then(res => { if (res.code == 200) { - this.tableData = res.data + this.columns=res.data.columnList; + this.tableData = res.data.tableList this.total = res.total } else { this.$message.error('获取数据失败'); @@ -168,7 +207,7 @@ export default { },{responseType:'blob'}).then(res => { this.tableloding=false; //重命名文件 - this.downloadFile(res.data,'序列号库存清点'+ '数据', 'xlsx') + this.downloadFile(res.data,'拣货表单'+ '数据', 'xlsx') }); //列表数据加载 @@ -185,6 +224,23 @@ export default { link.click() document.body.removeChild(link) }, + KuS(){ + //库区下拉列表数据加载 + this.$axios.post(this.$httpUrl + '/Kucunhuizong/ku', { + + }).then(res => res.data) + .then(res => { + if (res.code == 200) { + this.Ku = res.data; + } else { + this.$message.error('获取数据失败'); + } + + // eslint-disable-next-line no-unused-vars + },err=>{ + this.tableloding=false; + }) + }, parseTime(time, cFormat) { //获取当前时间 if (arguments.length === 0) { diff --git a/wms-vue/src/components/duochaxun/JianHuoXiaoLv.vue b/wms-vue/src/components/duochaxun/JianHuoXiaoLv.vue index e262167..692145a 100644 --- a/wms-vue/src/components/duochaxun/JianHuoXiaoLv.vue +++ b/wms-vue/src/components/duochaxun/JianHuoXiaoLv.vue @@ -6,8 +6,16 @@ - - + + + + + @@ -21,8 +29,16 @@ - - + + + + + @@ -102,6 +118,10 @@ export default { } }] }, + /*多选下拉框-库区*/ + Ku: [], + /*多选下拉框-出库类型*/ + Pt: [], // 表头配置 columns: [ { @@ -237,6 +257,8 @@ export default { }, mounted: function () { this.queryUser(); + this.KuS(); + this.PtS(); }, updated() { // 每次更新会重新对 Table 进行重新布局 @@ -335,6 +357,40 @@ export default { link.click() document.body.removeChild(link) }, + KuS(){ + //库区下拉列表数据加载 + this.$axios.post(this.$httpUrl + '/Kucunhuizong/ku', { + + }).then(res => res.data) + .then(res => { + if (res.code == 200) { + this.Ku = res.data; + } else { + this.$message.error('获取数据失败'); + } + + // eslint-disable-next-line no-unused-vars + },err=>{ + this.tableloding=false; + }) + }, + PtS(){ + //库区下拉列表数据加载 + this.$axios.post(this.$httpUrl + '/JianHuoXiaoLv/inputPt', { + + }).then(res => res.data) + .then(res => { + if (res.code == 200) { + this.Pt = res.data; + } else { + this.$message.error('获取数据失败'); + } + + // eslint-disable-next-line no-unused-vars + },err=>{ + this.tableloding=false; + }) + }, parseTime(time, cFormat) { //获取当前时间 if (arguments.length === 0) { diff --git a/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java b/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java index 7ade832..59694a9 100644 --- a/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java +++ b/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java @@ -7,6 +7,7 @@ import com.yc.wms.bean.Xuliehao; import com.yc.wms.service.Xuliehaoqingdan; import com.yc.wms.until.QueryPageUtil; import com.yc.wms.until.Result; +import com.yc.wms.utils.StringUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -42,6 +43,23 @@ public class JianHuoBiaoDanController { query.setPageSize((int)jsonObject.get("pageSize")); query.setPageNum((int)jsonObject.get("pageNum")); JSONObject param= (JSONObject)jsonObject.get("param"); + String querySql="";//查询条件 + JSONArray createDate=param.getJSONArray("创建日期"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + /*获取7天前的日期*/ + c.add(Calendar.DATE, - 7); + Date monday = c.getTime(); + String startDate = sdf.format(monday); + String endDate = sdf.format(new Date()); + if (createDate!=null){ + startDate=sdf.format(createDate.getDate(0)); + endDate=sdf.format(createDate.getDate(1)); + } + querySql=" and formatted_date>='"+startDate+"' AND formatted_date<='"+endDate+"'"; + if (param.getJSONArray("库区")!=null&¶m.getJSONArray("库区").size()>0){ + querySql=querySql+" and area_name in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("库区"), String.class))+")"; + } /* 基础sql数据查询*/ String sql=" select Row_number() OVER(order by pt.sourceType,z.NAME,CONVERT(VARCHAR, t.OPERATE_TIME, 23)) as id, z.NAME as 'area_name',count(t.id) as 'task_count',max(bt.NAME) as 'bt_name',pt.sourceType as 'sap_name', " +" CONVERT(VARCHAR, t.OPERATE_TIME, 23) AS formatted_date " @@ -53,7 +71,9 @@ public class JianHuoBiaoDanController { +" left join [ZONE] z on z.id=loc.ZONE_ID " +" where t.PLAN_QUANTITY>0 " +" group by pt.sourceType,z.NAME,CONVERT(VARCHAR, t.OPERATE_TIME, 23) "; - String sqlCount = "select count(t.id) as nums from (" + sql+") t"; + String sqlCount = " select count(t.id) as nums from ( " + +" select max(id) id from ( " + sql+" ) t group by t.sap_name,t.area_name " + +" ) t "; /* 总条数*/ List counts = entityManager.createNativeQuery(sqlCount).getResultList(); /* 当前页数据*/ @@ -61,70 +81,145 @@ public class JianHuoBiaoDanController { int pageSize = query.getPageSize();//条数 String sqlFy = "select t.* from(" + sql+") t"; sqlFy+= " WHERE id BETWEEN " + (pageNum-1) * pageSize + " AND " + (pageNum) * pageSize; + sqlFy+= querySql; List sapDos=new ArrayList<>(); + /* 返回的数据*/ + List jhBdReturn=new ArrayList<>(); + /*返回时间列*/ + List columnList=new ArrayList<>(); + /* 初始化表格*/ + columnList.add(new Column("sapName", "150px", "SAP类型")); + columnList.add(new Column("areaName", "150px", "库区")); /* 查询所有数据*/ List jhBdList = entityManager.createNativeQuery(sqlFy,JhBd.class).getResultList(); if (jhBdList.size()>0){ + /* 添加大汇总*/ + JSONObject jhBdDJson = new JSONObject(); + /*table 合并列行*/ int m=0;//列 int n=0;//行 + /* 获取动态时间列-按时间进行分组获取全部动态时间列*/ + /* 提取列表所有时间列并去重*/ + Set uniqueNames = new HashSet<>(); + for (JhBd jhBd : jhBdList) { + String formattedDate=jhBd.getFormattedDate(); + if (formattedDate!=null) { + uniqueNames.add(jhBd.getFormattedDate()); + }else { + uniqueNames.add("unknown"); + } + } + /* 去重后排序并转为List类型*/ + List sortedUniqueNames = uniqueNames.stream() + .sorted() + .collect(Collectors.toList()); + /* 格式化数据*/ + for (String label:sortedUniqueNames){ + String prop=label; + if (label==null){ + prop=null; + } + Column column=new Column(prop,"150px",label); + columnList.add(column); + } + /* 按SAP类型分组*/ Map> groupedMap = jhBdList.stream() .collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getSapName(), "unknown"))); /*遍历所有SAP类型*/ List sapKeys = panxu(groupedMap); for (int i = 0; i < sapKeys.size(); i++) { + /* 添加汇总*/ + JSONObject jhBdXJson = new JSONObject(); + String sapName=sapKeys.get(i); List sapJhBdList=groupedMap.get(sapName); - /*合并第一列*/ - int[] sapMn={sapJhBdList.size(),1}; /* 按库区分组*/ Map> sapJhBdMap = sapJhBdList.stream() .collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getAreaName(), "unknown"))); /*遍历所有库区*/ List areaDos=new ArrayList<>();// 返回AreaDos + /*按库区合并第sap 行数+合计1行*/ + int[] sapMn={sapJhBdMap.size()+1,1}; + int[] areaMn={1,1}; List areaNames = panxu(sapJhBdMap);//按表的id进行排序 for (int j = 0; j < areaNames.size(); j++) { String areaName=areaNames.get(j); List areaJhBdList=sapJhBdMap.get(areaName); - /*合并第二列*/ - int[] areaMn={areaJhBdList.size(),1}; + + /*合并在第一条数据*/ + JhBd jhBdHb = jhBdList.stream() + .filter(person -> person.getId() == areaJhBdList.get(0).getId()) + .findFirst().get(); + jhBdHb.setMergeData(sapMn, areaMn); + /* 合并后重置*/ + sapMn = new int[2]; + /*按时间FormattedDate进行分组*/ Map> dateJhBdMap = areaJhBdList.stream() .collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getFormattedDate(), "unknown"))); /*遍历所有FormattedDate*/ List formattedDos=new ArrayList<>();// 返回FormattedDos List formattedDates=panxu(dateJhBdMap); - for (int k = 0; k < formattedDates.size(); k++) { - String formatted=formattedDates.get(k); - List jhBds =dateJhBdMap.get(formatted); - JhBd jhBd = jhBdList.stream() - .filter(person -> person.getId() == jhBds.get(0).getId()) - .findFirst().get(); - jhBd.setMergeData(sapMn, areaMn); - /* 合并后重置*/ - sapMn=new int[2]; - areaMn=new int[2]; - FormattedDo formattedDo=new FormattedDo(formatted, jhBds); - formattedDos.add(formattedDo); + /* 转为JSONObject类型*/ + JSONObject jhBdJson = JSONUtil.parseObj(jhBdHb); + if (jhBdXJson.size()<1){ + jhBdXJson.accumulate("areaName", "汇总"); + /* 隐藏SAP类型列*/ + JSONObject sapMergeData=new JSONObject(); + sapMergeData.accumulate("sapName",new int[]{0,0}); + jhBdXJson.accumulate("mergeData",sapMergeData); } - /*写入库区*/ - AreaDo areaDo=new AreaDo(); - areaDo.setAreaName(areaName); - areaDo.setFormatted(formattedDos); - areaDos.add(areaDo); + if (jhBdDJson.size()<1){ + jhBdDJson.accumulate("areaName", "汇总"); + /* 隐藏SAP类型列*/ + JSONObject sapMergeData=new JSONObject(); + sapMergeData.accumulate("sapName",new int[]{0,0}); + sapMergeData.accumulate("areaName",new int[]{1,2}); + jhBdDJson.accumulate("mergeData",sapMergeData); + } + for (int k = 0; k < formattedDates.size(); k++) { + //日期 + String formatted=formattedDates.get(k); + //日期关联的数据 + List jhBds =dateJhBdMap.get(formatted); + /* 写入返回数据*/ + //任务数量 + int taskCount= jhBds.get(0).getTaskCount(); + //添加到返回类列 + jhBdJson.accumulate(formatted,taskCount); + /*写入小汇总*/ + if (jhBdXJson.getInt(formatted)==null){ + jhBdXJson.set(formatted,taskCount); + }else { + jhBdXJson.set(formatted,Integer.valueOf(jhBdXJson.getStr(formatted))+taskCount); + } + /*写入大汇总*/ + if (jhBdDJson.getInt(formatted)==null){ + jhBdDJson.set(formatted,taskCount); + }else { + jhBdDJson.set(formatted,Integer.valueOf(jhBdDJson.getStr(formatted))+taskCount); + } + } + jhBdReturn.add(jhBdJson); } - SapDo sapDo=new SapDo(sapName,areaDos); - sapDos.add(sapDo); + /* 添加小汇总*/ + jhBdReturn.add(jhBdXJson); } - System.out.println("返回数据:"+sapDos); + /* 添加大汇总*/ + jhBdReturn.add(jhBdDJson); + System.out.println("返回数据:"+jhBdReturn); }else { System.out.println("为查询到值"); } + JSONObject returnBody=new JSONObject(); + returnBody.accumulate("tableList", jhBdReturn); + returnBody.accumulate("columnList", columnList); // long total=counts.get(0); - Result result=Result.result(200,"操作成功",Long.parseLong(counts.get(0).toString()), jhBdList); + Result result=Result.result(200,"操作成功",Long.parseLong(counts.get(0).toString()), returnBody); return result; } @@ -245,14 +340,20 @@ class JhBd implements Serializable { /* 库区名称*/ private String areaName=""; /* 任务数量*/ - private int taskCount; + private int taskCount=0; /* sap类型*/ private String sapName=""; /* 其他出库*/ private String btName=""; private String formattedDate=""; + /* 合并行,列设置*/ @Transient - private Map mergeData; + private Map mergeData = new HashMap() {{ + put("sapName", new int[]{0, 0}); + put("areaName", new int[]{0, 0}); + put("taskCount", new int[]{1, 1}); + put("formattedDate", new int[]{1, 1}); + }}; public void setMergeData(int[] sap,int[] area){ int[] mn={1,1}; @@ -264,14 +365,16 @@ class JhBd implements Serializable { map.put("formattedDate", mn); this.mergeData = map; } - public JhBd(){ - int[] mn={1,1}; - int[] mnc={0,0};/*默认不显示*/ - Map map=new HashMap<>(); - map.put("sapName", mnc); - map.put("areaName", mnc); - map.put("taskCount", mn); - map.put("formattedDate", mn); - this.mergeData = map; - } +} + +@Data +@AllArgsConstructor +/*动态列*/ +class Column { + /*数据映射*/ + private String prop; + /*宽度*/ + private String minWidth="150px"; + /*列明*/ + private String label; } \ No newline at end of file diff --git a/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java b/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java index 87dfda3..66473ca 100644 --- a/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java +++ b/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java @@ -6,6 +6,7 @@ import com.yc.wms.bean.Xuliehao; import com.yc.wms.service.Xuliehaoqingdan; import com.yc.wms.until.QueryPageUtil; import com.yc.wms.until.Result; +import com.yc.wms.utils.StringUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -31,6 +32,25 @@ public class JianHuoXiaoLvController { @Autowired private Xuliehaoqingdan xuliehaoqingdan; + private static /* 基础sql数据查询*/ + String sql=" select t.id,bt.NAME as '单据类型',pt.sourceType as '出库类型',pt.id as '任务号',t.BILLCODE as '子任务号', " + +" z.NAME as '库区',ptd.LINE_NUMBER as '拣货行' ,pt.UPDATE_TIME as '创建时间',t.dateBill3 as '生成合单任务时间', " + +" t.dateBill1 as '下发时间',t.OPERATE_TIME as '拣货时间',t.ARRIVAL_TIME as '清点时间',t.operator_Date as '合单时间', " + +" t.dateline as '交单时间', " + +" DATEDIFF(second, pt.UPDATE_TIME,t.dateBill1 )/60 as '创建-下发时间', " + +" DATEDIFF(second, t.dateBill1,t.OPERATE_TIME )/60 as '下发-拣货时间', " + +" DATEDIFF(second, t.OPERATE_TIME,t.operator_Date )/60 as '拣货-合单时间', " + +" DATEDIFF(second, t.operator_Date,t.dateline )/60 as '合单-交单时间', " + +" DATEDIFF(second, t.OPERATE_TIME,t.ARRIVAL_TIME )/60 as '拣货-清点时间', " + +" DATEDIFF(second, t.ARRIVAL_TIME,t.operator_Date )/60 as '清点-合单时间', " + +" DATEDIFF(second, t.OPERATE_TIME,t.dateline )/60 as '拣货-交单时间' " + +" from task t " + +" left join PICK_TICKET_DETAIL ptd on ptd.id=t.PICK_TICKET_DETAIL_ID " + +" left join PICK_TICKET pt on pt.id=ptd.PICK_TICKET_ID " + +" left join BILL_TYPE bt on bt.id=pt.BILL_TYPE_ID " + +" left join LOCATION loc on loc.id=t.SRC_LOC_ID " + +" left join [ZONE] z on z.id=loc.ZONE_ID " + +" where t.PLAN_QUANTITY>0 "; @PostMapping("/queryList") public Result queryList(@RequestBody String json) { /* 返回data设置*/ @@ -40,8 +60,8 @@ public class JianHuoXiaoLvController { query.setPageNum((int)jsonObject.get("pageNum")); String querySql="";//查询条件 JSONObject param= (JSONObject)jsonObject.get("param"); - if (param.getStr("出库类型")!=null&¶m.getStr("出库类型").length()>0){ - querySql=querySql+" and 出库类型 like '%"+param.getStr("出库类型")+"%'"; + if (param.getJSONArray("出库类型").size()>0){ + querySql=querySql+" and 出库类型 in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("出库类型"), String.class))+")"; } if (param.getStr("任务号")!=null&¶m.getStr("任务号").length()>0){ querySql=querySql+" and 任务号 like '%"+param.getStr("任务号")+"%'"; @@ -49,33 +69,14 @@ public class JianHuoXiaoLvController { if (param.getStr("子任务号")!=null&¶m.getStr("子任务号").length()>0){ querySql=querySql+" and 子任务号 like '%"+param.getStr("子任务号")+"%'"; } - if (param.getStr("库区")!=null&¶m.getStr("库区").length()>0){ - querySql=querySql+" and 库区 like '%"+param.getStr("库区")+"%'"; + if (param.getJSONArray("库区")!=null&¶m.getJSONArray("库区").size()>0){ + querySql=querySql+" and 库区 in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("库区"), String.class))+")"; } if (param.getStr("创建日期")!=null&¶m.getStr("创建日期").length()>0){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); querySql=querySql+" and 创建时间 >= '"+sdf.format(param.getJSONArray("创建日期").getDate(0))+"'"; querySql=querySql+" and 创建时间 <= '"+sdf.format(param.getJSONArray("创建日期").getDate(1))+"'"; } - /* 基础sql数据查询*/ - String sql=" select t.id,bt.NAME as '单据类型',pt.sourceType as '出库类型',pt.id as '任务号',t.BILLCODE as '子任务号', " - +" z.NAME as '库区',ptd.LINE_NUMBER as '拣货行' ,pt.UPDATE_TIME as '创建时间',t.dateBill3 as '生成合单任务时间', " - +" t.dateBill1 as '下发时间',t.OPERATE_TIME as '拣货时间',t.ARRIVAL_TIME as '清点时间',t.operator_Date as '合单时间', " - +" t.dateline as '交单时间', " - +" DATEDIFF(second, pt.UPDATE_TIME,t.dateBill1 )/60 as '创建-下发时间', " - +" DATEDIFF(second, t.dateBill1,t.OPERATE_TIME )/60 as '下发-拣货时间', " - +" DATEDIFF(second, t.OPERATE_TIME,t.operator_Date )/60 as '拣货-合单时间', " - +" DATEDIFF(second, t.operator_Date,t.dateline )/60 as '合单-交单时间', " - +" DATEDIFF(second, t.OPERATE_TIME,t.ARRIVAL_TIME )/60 as '拣货-清点时间', " - +" DATEDIFF(second, t.ARRIVAL_TIME,t.operator_Date )/60 as '清点-合单时间', " - +" DATEDIFF(second, t.OPERATE_TIME,t.dateline )/60 as '拣货-交单时间' " - +" from task t " - +" left join PICK_TICKET_DETAIL ptd on ptd.id=t.PICK_TICKET_DETAIL_ID " - +" left join PICK_TICKET pt on pt.id=ptd.PICK_TICKET_ID " - +" left join BILL_TYPE bt on bt.id=pt.BILL_TYPE_ID " - +" left join LOCATION loc on loc.id=t.SRC_LOC_ID " - +" left join [ZONE] z on z.id=loc.ZONE_ID " - +" where t.PLAN_QUANTITY>0 "; /* 当前页数据*/ int pageNum = query.getPageNum();//当前页 int pageSize = query.getPageSize();//条数 @@ -97,7 +98,18 @@ public class JianHuoXiaoLvController { return result; } + @PostMapping("/inputPt") + public Result inputPt(@RequestBody String json) { + String sqlInput=" select 出库类型 as 'name' from ( " + +sql + +" ) t " + +" WHERE 出库类型 is not null group by 出库类型 "; + List ptList = entityManager.createNativeQuery(sqlInput).getResultList(); + Result result=Result.result(200,"操作成功",1, ptList); + + return result; + } @PostMapping(value = "/download") public void exportCompany(HttpServletResponse response, @RequestBody String json) throws Exception { @@ -137,7 +149,7 @@ class JhXl implements Serializable { @Transient private Map mergeData=new HashMap() {{ put("单据类型", new int[]{1, 1}); - }};; + }}; public void setMergeData(int[] sap,int[] area){ int[] mn={1,1}; diff --git a/wms/src/main/java/com/yc/wms/utils/StringUtils.java b/wms/src/main/java/com/yc/wms/utils/StringUtils.java new file mode 100644 index 0000000..efadf01 --- /dev/null +++ b/wms/src/main/java/com/yc/wms/utils/StringUtils.java @@ -0,0 +1,21 @@ +package com.yc.wms.utils; + +import java.util.List; + +public class StringUtils { + /*把list集合转为 in sql语句*/ + public static String strInSql(List strList){ + StringBuffer sb = new StringBuffer(); + if (strList.size()<1){ + System.out.println("list集合为空"); + } + for (int i = 0; i< strList.size(); i++){ + if(sb.length()<1){ + sb.append("'"+ strList.get(i)+"'"); + }else { + sb.append(",'"+ strList.get(i)+"'"); + } + } + return sb.toString(); + } +}