<script type="text/javascript">
$(function () {
$.ajax({
url: "${url}getMesResourceCapacityBottleneckTitle",//这里这个方法是用来获取数据的动态表头的
data: {param: JSON.stringify(serializeObject($('#form')))},
type: 'post',
dataType: 'json',
success: function (r) {
if (r.flag == "success") {
var columns=[[]];
var list = r.title;
for(var i=0;i<list.length;i++){//根据查询结果,动态的拼接表头,具体这个地方怎么拼接需要根据自身情况来做
var titleDay = new Date(list[i].CALENDAR_DATE).format("yyyy-MM-dd");
columns[0].push({field: 'date'+i, title: titleDay, width: 80,halign: 'center',align: 'center', formatter:formatColor});
columns[0].push({field: 'dateContrast'+i, title: titleDay, width: 80,halign: 'center',align: 'center',hidden:true});
}
$('#dgMesResourceCapacityBottleneck').datagrid({
frozenColumns : [[//这一部分属于固定的已知表头的列,因为不是所有列都是动态的
{field: 'WorkLineName', halign: 'center', align: 'center', title: '生产线', width: 80},
{field: 'Zycode', halign: 'center', align: 'center', title: '资源名称', width: 80},
{field: 'FixedCapacity', halign: 'center', align: 'center', title: '天-能力', width: 80},
{field: 'Overdue', halign: 'center', align: 'center', title: '超期工时', width: 80, formatter:formatOverdue}
]],
columns : columns,//这里是动态拼出来的列
url: "${url}getMesResourceCapacityBottleneckByPage.json",//这里是加载数据的方法,后台加载的数据一定要和前台字段匹配
queryParams:{
param: JSON.stringify(serializeObject($('#form')))
}
});
} else {
$.messager.alert('提示','加载出错,请联系管理员!','warning');
}
}
});
});
</script>
<div data-options="region:'center'" border="false" style="background:#ffffff;">
<table id="dgMesResourceCapacityBottleneck"
data-options="
fit: true,
border: false,
rownumbers: false,
animate: true,
collapsible: false,
autoRowHeight: false,
idField :'id',
singleSelect: true,
checkOnSelect: true,
selectOnCheck: false,
pagination:true,
pageSize:dataOptions.pageSize,
pageList:dataOptions.pageList,
striped:true">
</table>
</div>
/**
* @description:数据拼装
* @param queryReqBean
* @return
* @throws Exception
*/
public Map<String,Object> doCreate(QueryReqBean<Map<String,Object>> queryReqBean) throws Exception {
try {
Map<String,Object> map = new HashMap<String, Object>();
List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> listHolidayMap = this.searchSumHours(queryReqBean.getSearchParams());
//这个统计出来的时间是资源能力工时调整表中的数据,需要加上该工作中心的当天能力工时,然后用来和实际工序工时进行比对判断
List<Map<String,Object>> adjustHoursMap = this.searchSumHoursAndHoliday(queryReqBean.getSearchParams());
QueryRespBean<Map<String,Object>> queryRespBean = this.searchMesResourceCapacityBottleneckByPage(queryReqBean);
/*Page<Map<String,Object>> mapPage = queryRespBean.getResult();
for (Map<String, Object> mp : mapPage) {
queryReqBean.getSearchParams().put("mdsWorkCenterId",mp.get("MDS_WORK_CENTER_ID"));
}*/
List<Map<String,Object>> mdsFactoryCalendarDateMap = this.searchMdsFactoryCalendarDate(queryReqBean.getSearchParams());
Page<Map<String,Object>> dataList = queryRespBean.getResult();
Page<Map<String,Object>> pageList = new Page<Map<String,Object>>();
pageList.setPageNum(dataList.getPageNum());
pageList.setPageSize(dataList.getPageSize());
pageList.setTotal(dataList.getTotal());
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<Map<String,Object>> listHeadMap = dataList.getResult();
for (Map<String, Object> map2 : listHeadMap) {
Map<String,Object> mapList = new HashMap<String, Object>();
mapList.put("ID", map2.get("ID"));
mapList.put("WorkLineName", map2.get("WORK_LINE_NAME"));
mapList.put("Zycode", map2.get("ZYCODE"));
mapList.put("FixedCapacity", map2.get("FIXED_CAPACITY"));
mapList.put("Overdue", map2.get("OVERDUE"));
mapList.put("Zyid", map2.get("ZYID"));
mapList.put("BottleneckType", map2.get("BOTTLENECK_TYPE"));
for (int i= 0;i<mdsFactoryCalendarDateMap.size();i++) {
for (Map<String, Object> map4 : listHolidayMap) {
String s = (String)map4.get("HOLIDAY");
String s1 = dateFormat.format(mdsFactoryCalendarDateMap.get(i).get("CALENDAR_DATE"));
if(s==null||s1==null){
continue;
}
if(s.equals(s1)){
if(map2.get("ZYID").equals(map4.get("ID"))){
mapList.put("date"+i, map4.get("SUMHOURS"));
}
}
}
if(!mapList.containsKey("date"+i)){
mapList.put("date"+i, 0);
}
for (Map<String, Object> map5 : adjustHoursMap) {
String s = (String)map5.get("HOLIDAY");
String s1 = dateFormat.format(mdsFactoryCalendarDateMap.get(i).get("CALENDAR_DATE"));
if(s==null||s1==null){
continue;
}
if(s.equals(s1)){
if(map2.get("ZYID").equals(map5.get("ID"))){
mapList.put("dateContrast"+i, Integer.parseInt(map2.get("FIXED_CAPACITY").toString())+Integer.parseInt(map5.get("SUMADJUSTHOURS").toString()));
}
}
}
if(!mapList.containsKey("dateContrast"+i)){
mapList.put("dateContrast"+i, map2.get("FIXED_CAPACITY"));
}
}
listMap.add(mapList);
pageList.add(mapList);
}
queryRespBean.setResult(pageList);
map.put("title", mdsFactoryCalendarDateMap);
map.put("data", queryRespBean);
return map;
} catch (Exception e) {
LOGGER.error("doCreate出错:", e);
e.printStackTrace();
throw new DaoException(e.getMessage(), e);
}
}