no message

main
暴炳林 2024-09-30 11:23:51 +08:00
parent 70718abd1d
commit ad92e11877
5 changed files with 342 additions and 94 deletions

View File

@ -4,6 +4,35 @@
<div class="div2" style="padding-bottom: 10px">
<el-form ref="form" :model="param" label-width="80px">
<el-row>
<el-col :span="4">
<el-form-item label="库区">
<el-select v-model="param.库区" multiple filterable placeholder="请选择库区" style="width: 100%;">
<el-option
v-for="item in Ku"
:key="item.index"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="创建日期:">
<el-date-picker style="width: 300px"
v-model="param.创建日期"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-button type="success" @click="find"></el-button>
<el-button type="success" @click="down"></el-button>
<el-button type="success" @click="rest"></el-button>&nbsp;&nbsp;
@ -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) {

View File

@ -6,8 +6,16 @@
<el-form ref="form" :model="param" label-width="80px">
<el-row :gutter="24">
<el-col :span="4">
<el-form-item label="出库类型:">
<el-input type="text" v-model="param.出库类型" style="width: 105px"></el-input>
<el-form-item label="出库类型">
<el-select v-model="param.出库类型" multiple filterable placeholder="请选择库区" style="width: 155px;">
<el-option
v-for="item in Pt"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
@ -21,8 +29,16 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="库区:">
<el-input type="textarea" v-model="param.库区" :rows="1"></el-input>
<el-form-item label="库区">
<el-select v-model="param.库区" multiple filterable placeholder="请选择库区" style="width: 100%;">
<el-option
v-for="item in Ku"
:key="item.index"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
@ -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) {

View File

@ -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&&param.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<Integer> 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<SapDo> sapDos=new ArrayList<>();
/* 返回的数据*/
List<JSONObject> jhBdReturn=new ArrayList<>();
/*返回时间列*/
List<Column> columnList=new ArrayList<>();
/* 初始化表格*/
columnList.add(new Column("sapName", "150px", "SAP类型"));
columnList.add(new Column("areaName", "150px", "库区"));
/* 查询所有数据*/
List<JhBd> jhBdList = entityManager.createNativeQuery(sqlFy,JhBd.class).getResultList();
if (jhBdList.size()>0){
/* 添加大汇总*/
JSONObject jhBdDJson = new JSONObject();
/*table 合并列行*/
int m=0;//列
int n=0;//行
/* 获取动态时间列-按时间进行分组获取全部动态时间列*/
/* 提取列表所有时间列并去重*/
Set<String> uniqueNames = new HashSet<>();
for (JhBd jhBd : jhBdList) {
String formattedDate=jhBd.getFormattedDate();
if (formattedDate!=null) {
uniqueNames.add(jhBd.getFormattedDate());
}else {
uniqueNames.add("unknown");
}
}
/* 去重后排序并转为List类型*/
List<String> 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<String, List<JhBd>> groupedMap = jhBdList.stream()
.collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getSapName(), "unknown")));
/*遍历所有SAP类型*/
List<String> sapKeys = panxu(groupedMap);
for (int i = 0; i < sapKeys.size(); i++) {
/* 添加汇总*/
JSONObject jhBdXJson = new JSONObject();
String sapName=sapKeys.get(i);
List<JhBd> sapJhBdList=groupedMap.get(sapName);
/*合并第一列*/
int[] sapMn={sapJhBdList.size(),1};
/* 按库区分组*/
Map<String, List<JhBd>> sapJhBdMap = sapJhBdList.stream()
.collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getAreaName(), "unknown")));
/*遍历所有库区*/
List<AreaDo> areaDos=new ArrayList<>();// 返回AreaDos
/*按库区合并第sap 行数+合计1行*/
int[] sapMn={sapJhBdMap.size()+1,1};
int[] areaMn={1,1};
List<String> areaNames = panxu(sapJhBdMap);//按表的id进行排序
for (int j = 0; j < areaNames.size(); j++) {
String areaName=areaNames.get(j);
List<JhBd> 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<String, List<JhBd>> dateJhBdMap = areaJhBdList.stream()
.collect(Collectors.groupingBy(jhBd -> Objects.toString(jhBd.getFormattedDate(), "unknown")));
/*遍历所有FormattedDate*/
List<FormattedDo> formattedDos=new ArrayList<>();// 返回FormattedDos
List<String> formattedDates=panxu(dateJhBdMap);
for (int k = 0; k < formattedDates.size(); k++) {
String formatted=formattedDates.get(k);
List<JhBd> 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<JhBd> 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<String,int[]> mergeData;
private Map<String,int[]> 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<String,int[]> 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;
}

View File

@ -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&&param.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&&param.getStr("任务号").length()>0){
querySql=querySql+" and 任务号 like '%"+param.getStr("任务号")+"%'";
@ -49,33 +69,14 @@ public class JianHuoXiaoLvController {
if (param.getStr("子任务号")!=null&&param.getStr("子任务号").length()>0){
querySql=querySql+" and 子任务号 like '%"+param.getStr("子任务号")+"%'";
}
if (param.getStr("库区")!=null&&param.getStr("库区").length()>0){
querySql=querySql+" and 库区 like '%"+param.getStr("库区")+"%'";
if (param.getJSONArray("库区")!=null&&param.getJSONArray("库区").size()>0){
querySql=querySql+" and 库区 in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("库区"), String.class))+")";
}
if (param.getStr("创建日期")!=null&&param.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<String> 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<String,int[]> mergeData=new HashMap() {{
put("单据类型", new int[]{1, 1});
}};;
}};
public void setMergeData(int[] sap,int[] area){
int[] mn={1,1};

View File

@ -0,0 +1,21 @@
package com.yc.wms.utils;
import java.util.List;
public class StringUtils {
/*把list集合转为 in sql语句*/
public static String strInSql(List<String> 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();
}
}