package com.shlanbao.tzsc.pms.sch.workorder.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.dao.BaseDaoI; import com.shlanbao.tzsc.base.model.DataGrid; import com.shlanbao.tzsc.base.model.PageParams; import com.shlanbao.tzsc.base.service.BaseService; import com.shlanbao.tzsc.pms.sch.workorder.beans.FaultWkBean; import com.shlanbao.tzsc.pms.sch.workorder.service.FaultWkServiceI; import com.shlanbao.tzsc.utils.tools.MathUtil; import com.shlanbao.tzsc.utils.tools.StringUtil; /** * * @ClassName: FaultWkServiceI * @Description: 设备运行故障信息 * @author luo * @date 2015年10月10日 上午10:05:39 * */ @Service public class FaultWkServiceImpl extends BaseService implements FaultWkServiceI{ @Autowired private BaseDaoI baseDao; @Override public DataGrid queryFaultWkGrid(FaultWkBean bean,PageParams pageParams) { String sql=getFaultWkSql(bean,""); List faultWkList=new ArrayList(); List faultWkObj = baseDao.queryBySql(sql); for(int i=(pageParams.getPage()-1)*pageParams.getRows();i exportFaultWkList(FaultWkBean bean,String param){ String sql=getFaultWkSql(bean,param); List faultWkList=new ArrayList(); List faultWkObj = baseDao.queryBySql(sql); for(Object o:faultWkObj){ //设备名称,工单code,生产日期,班组名称,班次名称,生产牌号,故障名称,故障发生时长,故障发生次数,生产时长 Object[] arr=(Object[]) o; FaultWkBean b=new FaultWkBean(); if(!"time".equals(param) && !"times".equals(param)){//统计信息只有三个字段 b.setEqp_name(StringUtil.convertObjToString(arr[0])); b.setWk_code(StringUtil.convertObjToString(arr[1])); b.setDate(StringUtil.convertObjToString(arr[2])); b.setTeam_name(StringUtil.convertObjToString(arr[3])); b.setShift_name(StringUtil.convertObjToString(arr[4])); b.setMat_name(StringUtil.convertObjToString(arr[5])); b.setFault_name(StringUtil.convertObjToString(arr[6])); b.setTime(StringUtil.convertObjToString(arr[7])); b.setTimes(StringUtil.convertObjToString(arr[8])); b.setRuntime(StringUtil.convertObjToString(arr[9])); }else{ b.setTime(StringUtil.convertObjToString(arr[0])); b.setTimes(StringUtil.convertObjToString(arr[1])); b.setFault_name(StringUtil.convertObjToString(arr[2])); } faultWkList.add(b); } return faultWkList; } private String getFaultWkSql(FaultWkBean bean ,String param){ StringBuffer sqlBuffer=new StringBuffer(); if("time".equals(param) || "times".equals(param)){//统计图查询 sqlBuffer.append(" SELECT * from (select sum(o.TIME) time,sum(o.TIMES) times, o.faultName from ( "); } //设备名称,工单code,生产日期,班组名称,班次名称,生产牌号,故障名称,故障发生时长,故障发生次数,生产时长 sqlBuffer.append(" SELECT e.EQUIPMENT_NAME, wo.CODE, to_char(wo.date_,'yyyy-MM-dd') as date_, "); sqlBuffer.append(" team.NAME AS teamName, shift.NAME AS shiftName, mat.NAME AS matName, "); sqlBuffer.append(" fault.NAME AS faultName, fault. TIME, fault.TIMES, sso.RUN_TIME "); /*sqlBuffer.append(" FROM SCH_WORKORDER wo "); sqlBuffer.append("sso.RUN_TIME ");*/ sqlBuffer.append("from SCH_WORKORDER wo left join SCH_STAT_OUTPUT sso on wo.ID=sso.OID "); sqlBuffer.append("left join SCH_STAT_FAULT fault on sso.ID=fault.OID "); sqlBuffer.append("left join MD_EQUIPMENT e on wo.EQP=e.ID "); sqlBuffer.append("left join MD_EQP_TYPE etype on e.EQP_TYPE_ID=etype.ID "); sqlBuffer.append("left join MD_EQP_CATEGORY cate on cate.ID=etype.CID "); sqlBuffer.append("left join MD_TEAM team on wo.TEAM=team.ID "); sqlBuffer.append("left join MD_SHIFT shift on wo.SHIFT=shift.ID "); sqlBuffer.append("left join MD_MAT mat on wo.MAT=mat.ID "); sqlBuffer.append("where fault.NAME is not null and fault.status = 0 "); if(StringUtil.notNull(bean.getWorkShop_id())){ sqlBuffer.append("and e.WORK_SHOP='"+bean.getWorkShop_id()+"' "); } if(StringUtil.notNull(bean.getEqp_type_cate_id())){ sqlBuffer.append("and cate.code='"+bean.getEqp_type_cate_id()+"' "); } if(StringUtil.notNull(bean.getStartDate())){ sqlBuffer.append("and to_char(wo.DATE_,'yyyy-MM-dd')>='"+bean.getStartDate()+"' "); } if(StringUtil.notNull(bean.getEndDate())){ sqlBuffer.append("and to_char(wo.DATE_,'yyyy-MM-dd')<='"+bean.getEndDate()+"' "); } if(StringUtil.notNull(bean.getEqp_type_id())){ sqlBuffer.append("and e.EQP_TYPE_ID='"+bean.getEqp_type_id()+"' "); } if(StringUtil.notNull(bean.getEqp_id())){ sqlBuffer.append("and wo.EQP='"+bean.getEqp_id()+"' "); } if(StringUtil.notNull(bean.getShift_id())){ sqlBuffer.append("and wo.SHIFT='"+bean.getShift_id()+"' "); } sqlBuffer.append(" ORDER BY wo.CODE,to_char(wo.date_,'yyyy-MM-dd'),fault.TIME DESC "); if("time".equals(param)){ sqlBuffer.append(" )o GROUP BY o.faultName ) ORDER BY time desc "); } if("times".equals(param)){ sqlBuffer.append(" )o GROUP BY o.faultName ) ORDER BY times desc "); } return sqlBuffer.toString(); } }