package com.shlanbao.tzsc.pms.qm.onlineCheck.service.impl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import com.shlanbao.tzsc.base.dao.*; import com.shlanbao.tzsc.base.mapping.*; import com.shlanbao.tzsc.utils.tools.*; import org.apache.commons.lang.ObjectUtils; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.interceptor.PMSXmlDataInterceptor; import com.shlanbao.tzsc.base.interceptor.WorkOrderStatChangeInterceptor; import com.shlanbao.tzsc.base.model.DataGrid; import com.shlanbao.tzsc.base.model.Json; import com.shlanbao.tzsc.base.model.PageParams; import com.shlanbao.tzsc.base.model.SessionInfo; import com.shlanbao.tzsc.base.service.BaseService; import com.shlanbao.tzsc.data.webservice.client.SendMessageClient; import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QMOnlineCheckBean; import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QMOnlineCheckDetailBean; import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QMOnlineCheckHsYsdBean; import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QmCxOnlineCHKGY; import com.shlanbao.tzsc.pms.qm.onlineCheck.service.QMOnlineCheckService; import com.shlanbao.tzsc.pms.sch.manualshift.beans.SchCalendarBean; import com.shlanbao.tzsc.pms.sch.workorder.beans.WorkOrderBean; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 综合测试台 * @author shisihai */ @Service public class QmOnlineCheckServiceImpl extends BaseService implements QMOnlineCheckService{ @Autowired private QmOnlineCheckDaoI qmOnlineCheckDaoI; @Autowired private QmProdCheckDaoI qmProdCheckDaoI; @Autowired private QmFilterProdCheckDaoI qmFilterProdCheckDaoI; @Autowired private QmOnlineCheckDetailDaoI qmOnlineCheckDetailDaoI; @Autowired private SysLogDaoI logdao; @Autowired private HttpServletRequest request; @Autowired private MdMatDaoI matDao; /** * 成品检测(综合测试台) */ @Override public DataGrid queryList(QMOnlineCheckBean bean, String orderType,PageParams pageParams) throws Exception{ StringBuffer hql=new StringBuffer(); if(orderType.equals("1")){ hql.append("from QMProdCheck o where 1=1 "); }else if(orderType.equals("4")){ hql.append("from QMFilterProdCheck o where 1=1 "); } List params = new ArrayList(); if(StringUtil.notNull(bean.getTimestamp_())){//检测日期 hql.append(" and o.timestamp_ >=? "); bean.setTimestamp_(bean.getTimestamp_()+" 00:00:00"); Date dateStr = DateUtil.strToDate(bean.getTimestamp_(), "yyyy-MM-dd HH:mm:ss"); params.add(dateStr); } if(StringUtil.notNull(bean.getTimestamp_())){// hql.append(" and o.timestamp_ <=? "); String endTime=bean.getTimestamp_()+" 23:59:59"; Date dateStr = DateUtil.strToDate(endTime, "yyyy-MM-dd HH:mm:ss"); params.add(dateStr); } if(StringUtil.notNull(bean.getTeam())){// 班组 hql.append("and o.team =? "); params.add(bean.getTeam()); } if(bean.getInspectionType()!=null){//检测类型 hql.append(" and o.inspectionType=? "); params.add(bean.getInspectionType()); } try { long total=qmOnlineCheckDaoI.queryTotal("select count(*) "+hql.toString(),params); List list= new ArrayList(); switch(orderType){ case "1": if(total>0){ hql.append(" order by o.timestamp_ asc "); List rows = qmProdCheckDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows(), params); for(QMProdCheck beanMapping:rows){ QMOnlineCheckBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckBean.class); list.add(oneBean); } } break; case "4": if(total>0){ hql.append(" order by o.timestamp_ asc "); List rows = qmFilterProdCheckDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows(), params); for(QMFilterProdCheck beanMapping:rows){ QMOnlineCheckBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckBean.class); list.add(oneBean); } } break; } return new DataGrid(list, total); } catch (Exception e) { log.error("POVO转换异常", e); } return null; } @Override public DataGrid queryDetailList(String pid,String orderType, PageParams pageParams) throws Exception { if(StringUtil.notNull(pid)){ List list= new ArrayList(); StringBuffer hql=null; long total=0L; hql=new StringBuffer("from QMOnlineCheckDetail o where o.pid='"+pid+"'"); total=qmOnlineCheckDaoI.queryTotal("select count(*) "+hql.toString()); if(total>0){ hql.append(" order by o.num asc "); List rows = qmOnlineCheckDetailDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows()); for(QMOnlineCheckDetail beanMapping:rows){ QMOnlineCheckDetailBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckDetailBean.class); list.add(oneBean); } } // switch(orderType){ // case "1": // // break; // case "4": // hql=new StringBuffer("from QMFilterOnlineCheckDetail o where o.pid='"+pid+"'"); // total=qmFilterOnlineCheckDetailDaoI.queryTotal("select count(*) "+hql.toString()); // if(total>0){ // hql.append(" order by o.num asc "); // List rows = qmFilterOnlineCheckDetailDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows()); // for(QMFilterOnlineCheckDetail beanMapping:rows){ // QMOnlineCheckDetailBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckDetailBean.class); // list.add(oneBean); // } // } // break; // } return new DataGrid(list, total); } return null; } //过程检测(在线综合测试台) public DataGrid productqueryList(WorkOrderBean orderBean,PageParams pageParams){ List list= new ArrayList(); try { List data =new ArrayList<>(); data=getQMOnlineCheck(orderBean,"count",pageParams); long count = 0; for(int j=0;j0){ List rows=getQMOnlineCheck(orderBean,"",pageParams); for(int i=0;i getQMOnlineCheck(WorkOrderBean orderBean,String param,PageParams pageParams){ int pageIndex=pageParams.getPage(); int rows=pageParams.getRows(); int sRow=(pageIndex-1)*rows; int eRow=pageIndex*rows; try { StringBuffer sb=new StringBuffer(); if("count".equals(param)){ sb.append(" select count(*) from ( "); } if("cp".equals(orderBean.getParam())){//成品质量检测 if(!"count".equals(param)){ //sb.append(" select * from( "); sb.append(" select * From (select table_alias.*,rownum as rowno from( "); } sb.append(" select "); sb.append(" qm.ID,qm.MATERIALCODE,qm.INSPECTIONTYPE,qm.ORDERNUMBER,qm.QCBATCHS,qm.TEAM,qm.TIMESTAMP_,qm.SUBBATCHCODE,qm.SAMPLENUMBER,qm.SAMPLETYPE,qm.DETAILID, qm.WEIGHTSTANDVAL, qm.WEIGHTUPPERVAL, qm.WEIGHTLOWERVAL,qm.WEIGHTMAX,qm.WEIGHTMIN,"); sb.append(" qm.WEIGHTAVG,qm.WEIGHTSD,qm.WEIGHTCV,qm.WEIGHTCPK,qm.WEIGHTOUT,qm.CIRSTANDVAL, qm.CIRUPPERVAL, qm.CIRLOWERVAL,qm.CIRMAX,qm.CIRMIN,qm.CIRAVG,qm.CIRSD,qm.CIRCV,qm.CIRCPK,"); sb.append(" qm.CIROUT,qm.ROUNDSTANDVAL, qm.ROUNDUPPERVAL, qm.ROUNDLOWERVAL,qm.ROUNDMAX,qm.ROUNDMIN,qm.ROUNDAVG,qm.ROUNDSD,qm.ROUNDCV,qm.ROUNDCPK,qm.ROUNDOUT,qm.LENSTANDVAL, qm.LENUPPERVAL, qm.LENLOWERVAL,qm.LENMAX,qm.LENMIN,qm.LENAVG,qm.LENSD,"); sb.append(" qm.LENCV,qm.LENCPK,qm.LENOUT,qm.XZSTANDVAL, qm.XZUPPERVAL, qm.XZLOWERVAL,qm.XZMAX,qm.XZMIN,qm.XZAVG,qm.XZSD,qm.XZCV,qm.XZCPK,qm.XZOUT,qm.VENTSSTANDVAL, qm.VENTSUPPERVAL, qm.VENTSLOWERVAL,qm.VENTSMAX,qm.VENTSMIN,qm.VENTSAVG,qm.VENTSSD,qm.VENTSCV,qm.VENTSCPK,qm.VENTSOUT,"); sb.append(" qm.HDSTANDVAL, qm.HDUPPERVAL, qm.HDLOWERVAL,qm.HDMAX,qm.HDMIN,qm.HDAVG,qm.HDSD,qm.HDCV,qm.HDCPK,qm.HDOUT,"); sb.append(" qm.STS,qm.TYPE"); sb.append(" ,(select name from md_mat where code = qm.materialcode and tid in (1,14) and rownum=1 ) as materialname "); sb.append(" ,qm.CREATE_USER_NAME,qm.CREATE_USER_TIME,qm.UPDATE_USER_NAME,qm.UPDATE_USER_TIME "); //sb.append(" rownum as rowno from qm_onlinecheck qm LEFT JOIN qm_finished_add q1 on QM.id = Q1.QMOCID where 1=1 "); sb.append(" from qm_onlinecheck qm LEFT JOIN qm_finished_add q1 on QM.id = Q1.QMOCID where 1=1 "); if(!"".equals(orderBean.getSts()) && orderBean.getSts()!=null){ if("zq".equals(orderBean.getZxq())){//含水含末等 if("2".equals(String.valueOf(orderBean.getSts()))){ sb.append(" and Q1.status is null "); }else{ sb.append(" and nvl(Q1.status,0) = '"+orderBean.getSts()+"'"); } }else{ sb.append(" and qm.sts = '"+orderBean.getSts()+"'"); } }else{ if("Inspector".equals(orderBean.getParameter())){ sb.append(" and qm.sts in('0','3') "); }else if("Monitor".equals(orderBean.getParameter())){ sb.append(" and qm.sts in('1','2') "); } } }else{//在线过程检测 if(!"count".equals(param)){ //sb.append(" select * from( "); sb.append(" select * From (select table_alias.*,rownum as rowno from( "); } //sb.append(" select * from ( select qsm.*, rownum as rowno from ("); //sb.append(" select * From (select table_alias.*,rownum as rowno from( "); //sb.append(" ( select qm.*, mat. name as materialname, "); sb.append(" select "); sb.append(" qm.ID,qm.MATERIALCODE,qm.INSPECTIONTYPE,qm.ORDERNUMBER,qm.QCBATCHS,qm.TEAM,qm.TIMESTAMP_,qm.SUBBATCHCODE,qm.SAMPLENUMBER,qm.SAMPLETYPE,qm.DETAILID, qm.WEIGHTSTANDVAL, qm.WEIGHTUPPERVAL, qm.WEIGHTLOWERVAL,qm.WEIGHTMAX,qm.WEIGHTMIN,"); sb.append(" qm.WEIGHTAVG,qm.WEIGHTSD,qm.WEIGHTCV,qm.WEIGHTCPK,qm.WEIGHTOUT,qm.CIRSTANDVAL, qm.CIRUPPERVAL, qm.CIRLOWERVAL,qm.CIRMAX,qm.CIRMIN,qm.CIRAVG,qm.CIRSD,qm.CIRCV,qm.CIRCPK,"); sb.append(" qm.CIROUT,qm.ROUNDSTANDVAL, qm.ROUNDUPPERVAL, qm.ROUNDLOWERVAL,qm.ROUNDMAX,qm.ROUNDMIN,qm.ROUNDAVG,qm.ROUNDSD,qm.ROUNDCV,qm.ROUNDCPK,qm.ROUNDOUT,qm.LENSTANDVAL, qm.LENUPPERVAL, qm.LENLOWERVAL,qm.LENMAX,qm.LENMIN,qm.LENAVG,qm.LENSD,"); sb.append(" qm.LENCV,qm.LENCPK,qm.LENOUT,qm.XZSTANDVAL, qm.XZUPPERVAL, qm.XZLOWERVAL,qm.XZMAX,qm.XZMIN,qm.XZAVG,qm.XZSD,qm.XZCV,qm.XZCPK,qm.XZOUT,qm.VENTSSTANDVAL, qm.VENTSUPPERVAL, qm.VENTSLOWERVAL,qm.VENTSMAX,qm.VENTSMIN,qm.VENTSAVG,qm.VENTSSD,qm.VENTSCV,qm.VENTSCPK,qm.VENTSOUT,"); sb.append(" qm.HDSTANDVAL, qm.HDUPPERVAL, qm.HDLOWERVAL,qm.HDMAX,qm.HDMIN,qm.HDAVG,qm.HDSD,qm.HDCV,qm.HDCPK,qm.HDOUT,"); sb.append(" qm.STS,qm.TYPE"); sb.append(" , mat. name as materialname, "); sb.append(" ( select EQUIPMENT_NAME from MD_EQUIPMENT where id=OWD.EQP and rownum=1 ) eqpName "); sb.append(" ,qm.CREATE_USER_NAME,qm.CREATE_USER_TIME,qm.UPDATE_USER_NAME,qm.UPDATE_USER_TIME "); sb.append(" from qm_onlinecheck qm, sch_workorder owd, md_mat mat "); sb.append(" where qm.ordernumber = owd.code and owd.mat = mat. id "); if(!"".equals(orderBean.getSts()) && orderBean.getSts()!=null){ sb.append(" and qm.sts = '"+orderBean.getSts()+"'"); }else{ if("Inspector".equals(orderBean.getParameter())){ //sb.append(" and qm.sts in('0','3') "); sb.append(" and (qm.sts in('0','1','2') or qm.sts is null ) "); //0默认未反馈 1:已反馈班长 2:已反馈MES }else if("Monitor".equals(orderBean.getParameter())){ sb.append(" and qm.sts in('1','2') "); } } if(StringUtil.notNull(orderBean.getShiftId())){ sb.append(" and owd.shift='"+orderBean.getShiftId()+"'"); } if(StringUtil.notNull(orderBean.getTeamId())){ sb.append(" and owd.team='"+orderBean.getTeamId()+"'"); } if(StringUtil.notNull(orderBean.getMatId())){ sb.append(" and owd.mat='"+orderBean.getMatId()+"'"); } if(StringUtil.notNull(orderBean.getEquipmentId())){ sb.append(" and owd.eqp='"+orderBean.getEquipmentId()+"'"); } //工单类型 if(orderBean.getType()!=null){ sb.append(" and owd.type='"+orderBean.getType()+"'"); } if(StringUtil.notNull(orderBean.getDate())){ sb.append(" and to_char( owd.date_,'yyyy-MM-dd') >= '"+orderBean.getDate().trim()+"'"); } if(StringUtil.notNull(orderBean.getEtim())){ sb.append(" and to_char( owd.date_,'yyyy-MM-dd') <= '"+orderBean.getEtim().trim()+"'"); } } if("cp".equals(orderBean.getParam())){ if(StringUtil.notNull(orderBean.getTeamId())){ sb.append(" and qm.team = '"+orderBean.getTeamId()+"'"); } if(StringUtil.notNull(orderBean.getDate())){ sb.append(" and to_char(qm.timestamp_,'yyyy-MM-dd') >= '"+orderBean.getDate().trim()+"'"); } if(StringUtil.notNull(orderBean.getEtim())){ sb.append(" and to_char(qm.timestamp_,'yyyy-MM-dd') <= '"+orderBean.getEtim().trim()+"'"); } if(StringUtil.notNull(orderBean.getCode())){ sb.append(" and qm.ORDERNUMBER like '%"+orderBean.getCode()+"' "); } if("count".equals(param)){ sb.append(" and qm.inspectiontype = "+orderBean.getInspectionType()+" order by qm.timestamp_ asc "); //sb.append(" ) table_alias where table_alias.rowno >= '"+sRow+"'"); sb.append(" ) table_alias "); }else{ sb.append(" and qm.inspectiontype = "+orderBean.getInspectionType()+" "); //sb.append(" and rownum <= '"+eRow+"' order by qm.timestamp_ desc ) table_alias where table_alias.rowno > '"+sRow+"'"); sb.append(" order by qm.timestamp_ desc ) table_alias )t where t.rowno > '"+sRow+"' and t.rowno <= '"+eRow+"' " ); } }else{ //sb.append(" and qm.inspectiontype = "+orderBean.getInspectionType()+" order by qm.timestamp_ desc ) qsm "); sb.append(" and qm.inspectiontype = "+orderBean.getInspectionType()+" order by qm.timestamp_ asc "); if("count".equals(param)){ sb.append(" ) table_alias "); }else{ sb.append(" ) table_alias )t where t.rowno > '"+sRow+"' and t.rowno <= '"+eRow+"' " ); } } System.out.println("\n"+sb.toString()+"\n"); List list = (List) qmOnlineCheckDaoI.queryBySql(sb.toString()); return list; } catch (Exception e) { e.printStackTrace(); } return null; } /** * [共能说明]:物理自检 * cp:自动 * wl:手动 * 定时器当班结束前10分钟自动反馈 * @author wanchanghuang * @date 2017年5月20日10:03:25 * * */ @Override @LogAnno(operateType="在线过程质量检测自检记录反馈MES") public String sendMsg(String id,String param) { String sql=""; String result ="选择的工单没有数据需要反馈MES!"; try { if("".equals(id)){ id = this.queryIds(); if("".equals(id)){ return result; } id =StringUtil.arrayToStringBySqlin(id.split(",")); sql = getProcessCheckSql(id,"cp"); }else{ id=StringUtil.arrayToStringBySqlin(id.split(",")); sql = getProcessCheckSql(id,"zd");// } List datas=qmOnlineCheckDaoI.queryBySql(sql); if(datas!=null && datas.size()>0){ Map checkRepMap=new HashMap<>(); //不同工单 List beans=new ArrayList<>(); List> fList =new ArrayList>(); //一个工单多批次 List qCBatchList=null; //多项检测项目 List itemList=null; //检测项目详细 List detailList=null; QMOnlineCheckBean bean=null; QMOnlineCheckBean bean1=null; QMOnlineCheckBean bean2=null; QMOnlineCheckDetailBean detail=null; Object[] obj=null; for (Object object : datas) { //释放对象 bean1=null; bean2=null; obj=(Object[]) object; String oid=StringUtil.convertObjToString(obj[2]);//工单号 bean=checkRepMap.get(oid); if(bean==null){ bean=new QMOnlineCheckBean(); bean.setMaterialCode(StringUtil.convertObjToString(obj[0])); String type=StringUtil.convertObjToString(obj[1]); if(!StringUtil.notEmpty(type)){ type="0"; } bean.setInspectionType(Integer.valueOf(type)); bean.setOrderNumber(oid); List faultList = getSchWorkOrderCraft(oid,param); fList.add(faultList); //新的需要添加到集合中 beans.add(bean); } String batchNo=StringUtil.convertObjToString(obj[4]); //bean1,多批次信息 qCBatchList=bean.getqCBatchList(); bean1=initBean(qCBatchList,batchNo,bean1); bean1.setId(StringUtil.convertObjToString(obj[35])); bean1.setSubBatchCode(batchNo); bean1.setTimestamp_(StringUtil.convertObjToString(obj[3])); String samNum=StringUtil.convertObjToString(obj[5]); if(!StringUtil.notEmpty(samNum)){ samNum="0"; } bean1.setSampleNumber(Integer.valueOf(samNum)); String samType=StringUtil.convertObjToString(obj[6]); if(!StringUtil.notEmpty(samType)){ samType="1"; } bean1.setSampleType(samType); //bean2 多检测项 itemList=bean1.getItemList(); bean2=initBean(itemList,batchNo,bean2); bean2.setSubBatchCode(batchNo); bean2.setWeightAvg(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); bean2.setWeightSD(StringUtil.convert2Float(!"".equals(obj[8]) && obj[8] != null?obj[8]:"0")); bean2.setWeightMax(StringUtil.convert2Float(!"".equals(obj[9]) && obj[9] != null?obj[9]:"0")); bean2.setWeightMin(StringUtil.convert2Float(!"".equals(obj[10]) && obj[10] != null?obj[10]:"0")); bean2.setCirAvg(StringUtil.convert2Float(!"".equals(obj[11]) && obj[11] != null?obj[11]:"0")); bean2.setCirSD(StringUtil.convert2Float(!"".equals(obj[12]) && obj[12] != null?obj[12]:"0")); bean2.setCirMax(StringUtil.convert2Float(!"".equals(obj[13]) && obj[13] != null?obj[13]:"0")); bean2.setCirMin(StringUtil.convert2Float(!"".equals(obj[14]) && obj[14] != null?obj[14]:"0")); bean2.setRoundAvg(StringUtil.convert2Float(!"".equals(obj[15]) && obj[15] != null?obj[15]:"0")); bean2.setRoundSD(StringUtil.convert2Float(!"".equals(obj[16]) && obj[16] != null?obj[16]:"0")); bean2.setRoundMax(StringUtil.convert2Float(!"".equals(obj[17]) && obj[17] != null?obj[17]:"0")); bean2.setRoundMin(StringUtil.convert2Float(!"".equals(obj[18]) && obj[18] != null?obj[18]:"0")); bean2.setLenAvg(StringUtil.convert2Float(!"".equals(obj[19]) && obj[19] != null?obj[19]:"0")); bean2.setLenSD(StringUtil.convert2Float(!"".equals(obj[20]) && obj[20] != null?obj[20]:"0")); bean2.setLenMax(StringUtil.convert2Float(!"".equals(obj[21]) && obj[21] != null?obj[21]:"0")); bean2.setLenMin(StringUtil.convert2Float(!"".equals(obj[22]) && obj[22] != null?obj[22]:"0")); bean2.setXzAvg(StringUtil.convert2Float(!"".equals(obj[23]) && obj[23] != null?obj[23]:"0")); bean2.setXzSD(StringUtil.convert2Float(!"".equals(obj[24]) && obj[24] != null?obj[24]:"0")); bean2.setXzMax(StringUtil.convert2Float(!"".equals(obj[25]) && obj[25] != null?obj[25]:"0")); bean2.setXzMin(StringUtil.convert2Float(!"".equals(obj[26]) && obj[26] != null?obj[26]:"0")); bean2.setVentsAvg(StringUtil.convert2Float(!"".equals(obj[27]) && obj[27] != null?obj[27]:"0")); bean2.setVentsSD(StringUtil.convert2Float(!"".equals(obj[28]) && obj[28] != null?obj[28]:"0")); bean2.setVentsMax(StringUtil.convert2Float(!"".equals(obj[29]) && obj[29] != null?obj[29]:"0")); bean2.setVentsMin(StringUtil.convert2Float(!"".equals(obj[30]) && obj[30] != null?obj[30]:"0")); bean2.setHdAvg(StringUtil.convert2Float(!"".equals(obj[31]) && obj[31] != null?obj[31]:"0")); bean2.setHdSD(StringUtil.convert2Float(!"".equals(obj[32]) && obj[32] != null?obj[32]:"0")); bean2.setHdMax(StringUtil.convert2Float(!"".equals(obj[33]) && obj[33] != null?obj[33]:"0")); bean2.setHdMin(StringUtil.convert2Float(!"".equals(obj[34]) && obj[34] != null?obj[34]:"0")); checkRepMap.put(oid, bean); } //设置详细 String detailSql=getCheckDetailSql(); String beanId=null; List Detaildatas=null; for (QMOnlineCheckBean checkBean : beans) { qCBatchList=checkBean.getqCBatchList(); for (QMOnlineCheckBean b : qCBatchList) { beanId=b.getId(); Detaildatas=qmOnlineCheckDaoI.queryBySql(detailSql,beanId); itemList=b.getItemList(); for (QMOnlineCheckBean b2 : itemList) { detailList=b2.getDetailList(); for (Object object : Detaildatas) { obj=(Object[]) object; detail=new QMOnlineCheckDetailBean(); detail.setNum(StringUtil.convert2Integer(!"".equals(obj[0]) && obj[0] != null?obj[0]:"0")); detail.setWeight(StringUtil.convert2Float(!"".equals(obj[1]) && obj[1] != null?obj[1]:"0")); detail.setCir(StringUtil.convert2Float(!"".equals(obj[2]) && obj[2] != null?obj[2]:"0")); detail.setRound(StringUtil.convert2Float(!"".equals(obj[3]) && obj[3] != null?obj[3]:"0")); detail.setLen(StringUtil.convert2Float(!"".equals(obj[4]) && obj[4] != null?obj[4]:"0")); detail.setXz(StringUtil.convert2Float(!"".equals(obj[5]) && obj[5] != null?obj[5]:"0")); detail.setVents(StringUtil.convert2Float(!"".equals(obj[6]) && obj[6] != null?obj[6]:"0")); detail.setHd(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); detailList.add(detail); } } } } try { if(fList!=null && fList.size()>0){ WorkOrderStatChangeInterceptor.getInstance().dasSendQualityCheck(beans,fList,id,param); result = "反馈MES成功!"; } } catch (Exception e) { e.printStackTrace(); } } return result; } catch (Exception e) { e.printStackTrace(); } return result; } private String getCheckDetailSql() { StringBuffer sb=new StringBuffer(); sb.append("SELECT num,WEIGHT,CIR,ROUND,LEN,XZ,VENTS,HD "); sb.append(" from QM_ONLINECHECK_DETAIL "); sb.append(" WHERE PID=? "); return sb.toString(); } private QMOnlineCheckBean initBean(List list, String batchNo,QMOnlineCheckBean bean) { for (QMOnlineCheckBean qmOnlineCheckBean : list) { if(qmOnlineCheckBean.getSubBatchCode().equals(batchNo)){ bean=qmOnlineCheckBean; } } if(bean==null){ bean=new QMOnlineCheckBean(); list.add(bean); } return bean; } private String getProcessCheckSql(String ids,String param){ StringBuffer sb=new StringBuffer(); sb.append("SELECT "); sb.append(" a.MATERIALCODE ,a.INSPECTIONTYPE,a.ORDERNUMBER,to_char(a.TIMESTAMP_,'yyyy-mm-dd hh24:mi:ss'),"); sb.append(" a.SUBBATCHCODE,a.SAMPLENUMBER,a.SAMPLETYPE,"); sb.append(" a.WEIGHTAVG,a.WEIGHTSD,a.WEIGHTMAX,a.WEIGHTMIN,"); sb.append(" a.CIRAVG,a.CIRSD,a.CIRMAX,a.CIRMIN,"); sb.append(" a.ROUNDAVG,a.ROUNDSD,a.ROUNDMAX,a.ROUNDMIN,"); sb.append(" a.LENAVG,a.LENSD,a.LENMAX,a.LENMIN,"); sb.append(" a.XZAVG,a.XZSD,a.XZMAX,a.XZMIN,"); sb.append(" a.VENTSAVG,a.VENTSSD,a.VENTSMAX,a.VENTSMIN,"); sb.append(" a.HDAVG,a.HDSD,a.HDMAX,a.HDMIN,a.id,a.qcbatchs"); sb.append(" from QM_ONLINECHECK a "); if("wl".equals(param)){ sb.append(" where a.sts =1 and a.id in("+ids+")"); //wl 0:默认 1:班长 2:MES }else if("add".equals(param)){ sb.append(" where a.sts in('0','1') and a.id in("+ids+")"); }else{ sb.append(" where (a.sts =0 or a.sts is null) and a.id in("+ids+")"); } return sb.toString(); } /** *

功能描述:查询详细(成品)

*shisihai *2016下午2:02:08 */ @Override public DataGrid queryProdDetailList(String pid, String orderType, PageParams pageParams) throws Exception { // if(StringUtil.notNull(pid)){ // List list= new ArrayList(); // StringBuffer hql=null; // long total=0L; // switch(orderType){ // case "1": // hql=new StringBuffer("from QMProdCheckDetail o where o.pid='"+pid+"'"); // total=qmProdCheckDaoI.queryTotal("select count(*) "+hql.toString()); // if(total>0){ // hql.append(" order by o.num asc "); // List rows = qmProdCheckDetailDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows()); // for(QMProdCheckDetail beanMapping:rows){ // QMOnlineCheckDetailBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckDetailBean.class); // list.add(oneBean); // } // } // break; // case "4": // hql=new StringBuffer("from QMFilterOnlineCheckDetail o where o.pid='"+pid+"'"); // total=qmFilterOnlineCheckDetailDaoI.queryTotal("select count(*) "+hql.toString()); // if(total>0){ // hql.append(" order by o.num asc "); // List rows = qmFilterOnlineCheckDetailDaoI.queryByPage(hql.toString(), pageParams.getPage(), pageParams.getRows()); // for(QMFilterOnlineCheckDetail beanMapping:rows){ // QMOnlineCheckDetailBean oneBean = BeanConvertor.copyProperties(beanMapping, QMOnlineCheckDetailBean.class); // list.add(oneBean); // } // } // break; // } // return new DataGrid(list, total); // }; return null; } /** *

QMOnlineCheckBean赋值

*Rengj *2016-12-1 */ public QMOnlineCheckBean changeQMOnlineChecBean(Object[] param){ QMOnlineCheckBean oc =new QMOnlineCheckBean(); // 根据工单号查询工单类型 List orderTypelist=qmProdCheckDaoI.queryBySql("select type from sch_workorder where code='"+param[3].toString()+"'"); String orderType =""; if(orderTypelist.size()>0){ orderType= orderTypelist.get(0).toString(); } if("1".equals(orderType)){//卷烟机 orderType= "ROL"; }else if("2".equals(orderType)){//包装机 orderType= "PKG"; }else if("3".equals(orderType)){//封箱机 orderType= "PBOX"; }else if("4".equals(orderType)){ orderType = "FLT"; } //查询上下限标准 String sql = " SELECT s1.std,s1.uval,s1.lval,s1.parameter_name " +" FROM SCH_WORKORDER_CRAFT s1,SCH_WORKORDER s2 " +" WHERE s1.MATERIAL_CODE =s2.mat and s1.dcs_type = '"+orderType+"' " +" and s1.ord_code !='-1' and s1.param_type='1' " +" and s2.parameter_set_revision = s1.parameter_setrevision " +" AND s2.code ='"+param[3].toString()+"'"; List schWcList = qmOnlineCheckDaoI.queryBySql(sql);//查询上下限标准 // 标准上下限赋值 for(int j=0;j qmFiniList = qmOnlineCheckDaoI.queryBySql(sql);//查询含水含末端部数值 String moistureContent = "";//含水率 String finalContent = "";//含末率 String firstTelos = "";//端部数值一 String twoTelos = "";//端部数值2 String threeTelos = "";//端部数值3 String fourTelos = "";//端部数值4 String fiveTelos = "";//端部数值5 String avgTelos = "";//端部平均值 String status = ""; String compaction=""; if(qmFiniList.size()>0){ for(int i=0;i1){ moistureContent = moistureContent+obj[0].toString()+"/"; }else{ moistureContent = moistureContent+obj[0].toString(); } if(qmFiniList.size()>1){ finalContent = finalContent+obj[1].toString()+"/"; }else{ finalContent = finalContent+obj[1].toString(); } if(qmFiniList.size()>1){ firstTelos = firstTelos+obj[2].toString()+"/"; }else{ firstTelos = firstTelos+obj[2].toString(); } if(qmFiniList.size()>1){ twoTelos = twoTelos+obj[3].toString()+"/"; }else{ twoTelos = twoTelos+obj[3].toString(); } if(qmFiniList.size()>1){ threeTelos = threeTelos+obj[4].toString()+"/"; }else{ threeTelos = threeTelos+obj[4].toString(); } if(qmFiniList.size()>1){ fourTelos = fourTelos+obj[5].toString()+"/"; }else{ fourTelos = fourTelos+obj[5].toString(); } if(qmFiniList.size()>1){ fiveTelos = fiveTelos+obj[6].toString()+"/"; }else{ fiveTelos = fiveTelos+obj[6].toString(); } if(qmFiniList.size()>1){ avgTelos = avgTelos+obj[7].toString()+"/"; }else{ avgTelos = avgTelos+obj[7].toString(); } if(qmFiniList.size()>1){ compaction = compaction+obj[9].toString()+"/"; }else{ compaction = compaction+obj[9].toString(); } status = String.valueOf(obj[8]); } oc.setMoistureContent(moistureContent); oc.setFinalContent(finalContent); oc.setFirstTelos(firstTelos); oc.setTwoTelos(twoTelos); oc.setThreeTelos(threeTelos); oc.setFourTelos(fourTelos); oc.setFiveTelos(fiveTelos); oc.setAvgTelos(avgTelos); oc.setCompaction(compaction); oc.setStatus(status); }else{ oc.setMoistureContent("—"); oc.setFinalContent("—"); oc.setFirstTelos("—"); oc.setTwoTelos("—"); oc.setThreeTelos("—"); oc.setFourTelos("—"); oc.setFiveTelos("—"); oc.setAvgTelos("—"); oc.setCompaction("—"); oc.setStatus("3"); } } //for(int i=0;i=0){ equipmentName="3#成型机"; }else if(equipmentName.indexOf("K02")>=0){ equipmentName="2#成型机"; }else if(equipmentName.indexOf("K01")>=0){ equipmentName="1#成型机"; } oc.setEquipmentName(equipmentName); oc.setId(param[0].toString()); oc.setMaterialCode("".equals(param[1]) || param[1]==null?"":param[1].toString()); oc.setInspectionType(Integer.parseInt("".equals(param[2]) || param[2]==null?"0":param[2].toString())); oc.setOrderNumber("".equals(param[3]) || param[3]==null?"":param[3].toString()); oc.setqCBatchs("".equals(param[4]) || param[4]==null?"":param[4].toString()); oc.setTeam(team); oc.setTimestamp_("".equals(param[6]) || param[6]==null?"":param[6].toString().substring(0,19)); oc.setSubBatchCode("".equals(param[7]) || param[7]==null?"":param[7].toString()); oc.setSampleNumber(Integer.parseInt("".equals(param[8]) || param[8]==null?"0":param[8].toString())); oc.setSampleType(sampleType); oc.setDetailId("".equals(param[10]) || param[10]==null?"":param[10].toString()); oc.setWeightMax(Float.parseFloat("".equals(param[14]) || param[14]==null?"0":param[14].toString())); oc.setWeightMin(Float.parseFloat("".equals(param[15]) || param[15]==null?"0":param[15].toString())); oc.setWeightAvg(Float.parseFloat("".equals(param[16]) || param[16]==null?"0":param[16].toString())); oc.setWeightSD(Float.parseFloat("".equals(param[17]) || param[17]==null?"0":param[17].toString())); oc.setWeightCV(Float.parseFloat("".equals(param[18]) || param[18]==null?"0":param[18].toString())); oc.setWeightCPK(Float.parseFloat("".equals(param[19]) || param[19]==null?"0":param[19].toString())); oc.setWeightOut(Float.parseFloat("".equals(param[20]) || param[20]==null?"0":param[20].toString())); oc.setCirMax(Float.parseFloat("".equals(param[24]) || param[24]==null?"0":param[24].toString())); oc.setCirMin(Float.parseFloat("".equals(param[25]) || param[25]==null?"0":param[25].toString())); oc.setCirAvg(Float.parseFloat("".equals(param[26]) || param[26]==null?"0":param[26].toString())); oc.setCirSD(Float.parseFloat("".equals(param[27]) || param[27]==null?"0":param[27].toString())); oc.setCirCV(Float.parseFloat("".equals(param[28]) || param[28]==null?"0":param[28].toString())); oc.setCirCPK(Float.parseFloat("".equals(param[29]) || param[29]==null?"0":param[29].toString())); oc.setCirOut(Float.parseFloat("".equals(param[30]) || param[30]==null?"0":param[30].toString())); oc.setRoundMax(Float.parseFloat("".equals(param[34]) || param[34]==null?"0":param[34].toString())); oc.setRoundMin(Float.parseFloat("".equals(param[35]) || param[35]==null?"0":param[35].toString())); oc.setRoundAvg(Float.parseFloat("".equals(param[36]) || param[36]==null?"0":param[36].toString())); oc.setRoundSD(Float.parseFloat("".equals(param[37]) || param[37]==null?"0":param[37].toString())); oc.setRoundCV(Float.parseFloat("".equals(param[38]) || param[38]==null?"0":param[38].toString())); oc.setRoundCPK(Float.parseFloat("".equals(param[39]) || param[39]==null?"0":param[38].toString())); oc.setRoundOut(Float.parseFloat("".equals(param[40]) || param[40]==null?"0":param[40].toString())); oc.setLenMax(Float.parseFloat("".equals(param[44]) || param[44]==null?"0":param[44].toString())); oc.setLenMin(Float.parseFloat("".equals(param[45]) || param[45]==null?"0":param[45].toString())); oc.setLenAvg(Float.parseFloat("".equals(param[46]) || param[46]==null?"0":param[46].toString())); oc.setLenSD(Float.parseFloat("".equals(param[47]) || param[47]==null?"0":param[47].toString())); oc.setLenCV(Float.parseFloat("".equals(param[48]) || param[48]==null?"0":param[48].toString())); oc.setLenCPK(Float.parseFloat("".equals(param[49]) || param[49]==null?"0":param[49].toString())); oc.setLenOut(Float.parseFloat("".equals(param[50]) || param[50]==null?"0":param[50].toString())); oc.setXzMax(Float.parseFloat("".equals(param[54]) || param[54]==null?"0":param[54].toString())); oc.setXzMin(Float.parseFloat("".equals(param[55]) || param[55]==null?"0":param[55].toString())); oc.setXzAvg(Float.parseFloat("".equals(param[56]) || param[56]==null?"0":param[56].toString())); oc.setXzSD(Float.parseFloat("".equals(param[57]) || param[57]==null?"0":param[57].toString())); oc.setXzCV(Float.parseFloat("".equals(param[58]) || param[58]==null?"0":param[58].toString())); oc.setXzCPK(Float.parseFloat("".equals(param[59]) || param[59]==null?"0":param[59].toString())); oc.setXzOut(Float.parseFloat("".equals(param[60]) || param[60]==null?"0":param[60].toString())); oc.setVentsMax(Float.parseFloat("".equals(param[64]) || param[64]==null?"0":param[64].toString())); oc.setVentsMin(Float.parseFloat("".equals(param[65]) || param[65]==null?"0":param[65].toString())); oc.setVentsAvg(Float.parseFloat("".equals(param[66]) || param[66]==null?"0":param[66].toString())); oc.setVentsSD(Float.parseFloat("".equals(param[67]) || param[67]==null?"0":param[67].toString())); oc.setVentsCV(Float.parseFloat("".equals(param[68]) || param[68]==null?"0":param[68].toString())); oc.setVentsCPK(Float.parseFloat("".equals(param[69]) || param[69]==null?"0":param[69].toString())); oc.setVentsOut(Float.parseFloat("".equals(param[70]) || param[70]==null?"0":param[70].toString())); oc.setHdMax(Float.parseFloat("".equals(param[74]) || param[74]==null?"0":param[74].toString())); oc.setHdMin(Float.parseFloat("".equals(param[75]) || param[75]==null?"0":param[75].toString())); oc.setHdAvg(Float.parseFloat("".equals(param[76]) || param[76]==null?"0":param[76].toString())); oc.setHdSD(Float.parseFloat("".equals(param[77]) || param[77]==null?"0":param[77].toString())); oc.setHdCV(Float.parseFloat("".equals(param[78]) || param[78]==null?"0":param[78].toString())); oc.setHdCPK(Float.parseFloat("".equals(param[79]) || param[79]==null?"0":param[79].toString())); oc.setHdOut(Float.parseFloat("".equals(param[80]) || param[80]==null?"0":param[80].toString())); String sts = "".equals(param[81]) || param[81]==null?"0":param[81].toString(); /*if("0".equals(sts)){ sts = "未反馈"; }else if("1".equals(sts)){ sts = "已反馈MES"; }else if("2".equals(sts)){ sts = "质检员反馈"; }else if("3".equals(sts)){ sts = "班长反馈"; }*/ oc.setSts(sts); oc.setMaterialName("".equals(param[83]) || param[83]==null?"":param[83].toString()); oc.setEqpName("".equals(param[84]) || param[84]==null?"":param[84].toString()); //成品物理指标记录查询模块param[2]为1,成型成品质量检测记录模块param[2]为2,都适用以下代码 //注意:在线过程质量检测巡检质检员记录查询模块param[2]为3,在线过程质量检测自检记录模块param[2]为0,不适用以下代码需另外写创建修改信息填充代码 String flag = "".equals(param[2]) || param[2] == null ? "" : param[2].toString(); if("1".equals(flag)||"2".equals(flag)){ oc.setCreateUserName("".equals(param[84]) || param[84]==null?"":param[84].toString()); oc.setCreateUserTime(param[85]==null?null:DateUtil.strToDate(param[85].toString(),"yyyy-MM-dd HH:mm:ss")); oc.setUpdateUserName("".equals(param[86]) || param[86]==null?"":param[86].toString()); oc.setUpdateUserTime(param[87]==null?null:DateUtil.strToDate(param[87].toString(),"yyyy-MM-dd HH:mm:ss")); }else if("3".equals(flag)||"0".equals(flag)){ oc.setCreateUserName("".equals(param[85]) || param[85]==null?"":param[85].toString()); oc.setCreateUserTime(param[86]==null?null:DateUtil.strToDate(param[86].toString(),"yyyy-MM-dd HH:mm:ss")); oc.setUpdateUserName("".equals(param[87]) || param[87]==null?"":param[87].toString()); oc.setUpdateUserTime(param[88]==null?null:DateUtil.strToDate(param[88].toString(),"yyyy-MM-dd HH:mm:ss")); } return oc; } /** * 过程检测(在线综合测试台) * @author Rengj * @throws ParseException */ public List getQMOnlineCheck() throws ParseException{ StringBuffer sb=new StringBuffer(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date=new java.util.Date(); sb.append( " SELECT qm.*, mat. NAME AS materialName,(select equipment_name from md_equipment where id = owd.eqp) eqpName FROM "); sb.append(" QM_ONLINECHECK qm, SCH_WORKORDER owd, MD_MAT mat "); sb.append(" WHERE QM.ORDERNUMBER = OWD.code AND owd.mat = mat. ID "); sb.append(" AND qm.TIMESTAMP_ BETWEEN owd.STIM and owd.etim and owd.sts =2 "); //sb.append(" and qm.TIMESTAMP_>=to_date('2016-11-28 08:00:00','yyyy-mm-dd hh24:mi:ss') and qm.TIMESTAMP_< to_date('2016-11-28 17:00:00','yyyy-mm-dd hh24:mi:ss')"); sb.append(" AND QM.INSPECTIONTYPE = 0 ORDER BY QM.TIMESTAMP_ desc "); List list = (List) qmOnlineCheckDaoI.queryBySql(sb.toString()); return list; } public String compareDate() { Calendar cal = Calendar.getInstance(); String shift =""; int hour = cal.get(Calendar.HOUR_OF_DAY); if (hour >= 8 && hour < 17){ shift = "早班"; } else if(hour > 17) { shift = "中班"; } else { shift = "晚班"; } return shift; } @Override public List getProdJson() { List list =new ArrayList(); List rows; try { rows = (List ) getQMOnlineCheck(); for(int i=0;i datas=qmOnlineCheckDaoI.queryBySql(sql); Map checkRepMap=new HashMap<>(); //不同工单 List beans=new ArrayList<>(); //一个工单多批次 List qCBatchList=null; //多项检测项目 List itemList=null; //检测项目详细 List detailList=null; QMOnlineCheckBean bean=null; QMOnlineCheckBean bean1=null; QMOnlineCheckBean bean2=null; QMOnlineCheckDetailBean detail=null; Object[] obj=null; for (Object object : datas) { //释放对象 bean1=null; bean2=null; obj=(Object[]) object; String oid=StringUtil.convertObjToString(obj[2]);//工单号 if(!"add".equals(param)){ bean=checkRepMap.get(oid); }else{ bean=null; } if(bean==null){ bean=new QMOnlineCheckBean(); bean.setMaterialCode(StringUtil.convertObjToString(obj[0])); String type=StringUtil.convertObjToString(obj[1]); if(!StringUtil.notEmpty(type)){ type="0"; } bean.setDate(StringUtil.convertObjToString(obj[3]).substring(0,10)); bean.setInspectionType(Integer.valueOf(type)); bean.setOrderNumber(oid); bean.setqCBatchs(StringUtil.convertObjToString(obj[36])); //新的需要添加到集合中 beans.add(bean); } String batchNo=StringUtil.convertObjToString(obj[4]); //bean1,多批次信息 qCBatchList=bean.getqCBatchList(); bean1=initBean(qCBatchList,batchNo,bean1); bean1.setId(StringUtil.convertObjToString(obj[35])); bean1.setSubBatchCode(batchNo); bean1.setTimestamp_(StringUtil.convertObjToString(obj[3])); String samNum=StringUtil.convertObjToString(obj[5]); if(!StringUtil.notEmpty(samNum)){ samNum="0"; } bean1.setSampleNumber(Integer.valueOf(samNum)); String samType=StringUtil.convertObjToString(obj[6]); if(!StringUtil.notEmpty(samType)){ samType="1"; } bean1.setSampleType(samType); //bean2 多检测项 itemList=bean1.getItemList(); bean2=initBean(itemList,batchNo,bean2); bean2.setSubBatchCode(batchNo); bean2.setWeightAvg(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); bean2.setWeightSD(StringUtil.convert2Float(!"".equals(obj[8]) && obj[8] != null?obj[8]:"0")); bean2.setWeightMax(StringUtil.convert2Float(!"".equals(obj[9]) && obj[9] != null?obj[9]:"0")); bean2.setWeightMin(StringUtil.convert2Float(!"".equals(obj[10]) && obj[10] != null?obj[10]:"0")); bean2.setCirAvg(StringUtil.convert2Float(!"".equals(obj[11]) && obj[11] != null?obj[11]:"0")); bean2.setCirSD(StringUtil.convert2Float(!"".equals(obj[12]) && obj[12] != null?obj[12]:"0")); bean2.setCirMax(StringUtil.convert2Float(!"".equals(obj[13]) && obj[13] != null?obj[13]:"0")); bean2.setCirMin(StringUtil.convert2Float(!"".equals(obj[14]) && obj[14] != null?obj[14]:"0")); bean2.setRoundAvg(StringUtil.convert2Float(!"".equals(obj[15]) && obj[15] != null?obj[15]:"0")); bean2.setRoundSD(StringUtil.convert2Float(!"".equals(obj[16]) && obj[16] != null?obj[16]:"0")); bean2.setRoundMax(StringUtil.convert2Float(!"".equals(obj[17]) && obj[17] != null?obj[17]:"0")); bean2.setRoundMin(StringUtil.convert2Float(!"".equals(obj[18]) && obj[18] != null?obj[18]:"0")); bean2.setLenAvg(StringUtil.convert2Float(!"".equals(obj[19]) && obj[19] != null?obj[19]:"0")); bean2.setLenSD(StringUtil.convert2Float(!"".equals(obj[20]) && obj[20] != null?obj[20]:"0")); bean2.setLenMax(StringUtil.convert2Float(!"".equals(obj[21]) && obj[21] != null?obj[21]:"0")); bean2.setLenMin(StringUtil.convert2Float(!"".equals(obj[22]) && obj[22] != null?obj[22]:"0")); bean2.setXzAvg(StringUtil.convert2Float(!"".equals(obj[23]) && obj[23] != null?obj[23]:"0")); bean2.setXzSD(StringUtil.convert2Float(!"".equals(obj[24]) && obj[24] != null?obj[24]:"0")); bean2.setXzMax(StringUtil.convert2Float(!"".equals(obj[25]) && obj[25] != null?obj[25]:"0")); bean2.setXzMin(StringUtil.convert2Float(!"".equals(obj[26]) && obj[26] != null?obj[26]:"0")); bean2.setVentsAvg(StringUtil.convert2Float(!"".equals(obj[27]) && obj[27] != null?obj[27]:"0")); bean2.setVentsSD(StringUtil.convert2Float(!"".equals(obj[28]) && obj[28] != null?obj[28]:"0")); bean2.setVentsMax(StringUtil.convert2Float(!"".equals(obj[29]) && obj[29] != null?obj[29]:"0")); bean2.setVentsMin(StringUtil.convert2Float(!"".equals(obj[30]) && obj[30] != null?obj[30]:"0")); bean2.setHdAvg(StringUtil.convert2Float(!"".equals(obj[31]) && obj[31] != null?obj[31]:"0")); bean2.setHdSD(StringUtil.convert2Float(!"".equals(obj[32]) && obj[32] != null?obj[32]:"0")); bean2.setHdMax(StringUtil.convert2Float(!"".equals(obj[33]) && obj[33] != null?obj[33]:"0")); bean2.setHdMin(StringUtil.convert2Float(!"".equals(obj[34]) && obj[34] != null?obj[34]:"0")); checkRepMap.put(oid, bean); } //设置详细 String detailSql=getCheckDetailSql(); String beanId=null; List Detaildatas=null; for (QMOnlineCheckBean checkBean : beans) { qCBatchList=checkBean.getqCBatchList(); for (QMOnlineCheckBean b : qCBatchList) { beanId=b.getId(); Detaildatas=qmOnlineCheckDaoI.queryBySql(detailSql,beanId); itemList=b.getItemList(); for (QMOnlineCheckBean b2 : itemList) { detailList=b2.getDetailList(); for (Object object : Detaildatas) { obj=(Object[]) object; detail=new QMOnlineCheckDetailBean(); detail.setNum(StringUtil.convert2Integer(!"".equals(obj[0]) && obj[0] != null?obj[0]:"0")); detail.setWeight(StringUtil.convert2Float(!"".equals(obj[1]) && obj[1] != null?obj[1]:"0")); detail.setCir(StringUtil.convert2Float(!"".equals(obj[2]) && obj[2] != null?obj[2]:"0")); detail.setRound(StringUtil.convert2Float(!"".equals(obj[3]) && obj[3] != null?obj[3]:"0")); detail.setLen(StringUtil.convert2Float(!"".equals(obj[4]) && obj[4] != null?obj[4]:"0")); detail.setXz(StringUtil.convert2Float(!"".equals(obj[5]) && obj[5] != null?obj[5]:"0")); detail.setVents(StringUtil.convert2Float(!"".equals(obj[6]) && obj[6] != null?obj[6]:"0")); detail.setHd(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); detailList.add(detail); } } } } try { //xml WorkOrderStatChangeInterceptor.getInstance().dasSendQualityCheckCP(beans,param,id); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("反馈失败!"); } } /** * 过程检测(在线综合测试台) * @author Rengj * @throws ParseException */ public List getSchWorkOrderCraft(String oid,String param){ List listCraft=new ArrayList(); SchWorkorderCraft craft=null; List orderTypelist=qmProdCheckDaoI.queryBySql("select type from sch_workorder where code='"+oid+"'"); String orderType= orderTypelist.get(0).toString(); String sql = "select s1.parameter_code,s1.ord_code,parameter_name from SCH_WORKORDER_CRAFT s1,SCH_WORKORDER s2 " +"where s2.PARAMETER_SET_REVISION=s1.parameter_setrevision and PARAM_TYPE=1 " + //"and pcp = 0 " + "and ORD_CODE != -1 " +"and s2.code = ? "; if("1".equals(orderType)){//卷烟机 sql += " and s1.DCS_TYPE ='ROL'"; }else if("2".equals(orderType)){//包装机 sql += " and s1.DCS_TYPE ='PKG'"; }else if("3".equals(orderType)){//封箱机 sql += " and s1.DCS_TYPE ='PBOX'"; }else{ sql += " and s1.DCS_TYPE ='FLT'"; } List queryList =qmOnlineCheckDaoI.queryBySql(sql,oid); if(queryList.size()>0){ for(Object o:queryList){ craft=new SchWorkorderCraft(); Object[] temp=(Object[]) o; if(temp[1]!=null){ craft.setOrdCode(temp[1].toString()); } if(temp[0]!=null){ craft.setParameterCode(temp[0].toString()); } listCraft.add(craft); } }else{ //异常数据记录接口日志 PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈OID", 0, "通过工单号"+oid+"不能查询到工艺标准;sql="+sql.toString()); } return listCraft; } /** * 批量删除过程巡检记录(在线综合测试台) * @author Rengj * @throws ParseException */ @LogAnno(operateType="批量删除检验记录") public String deleteProd(String id,String param,HttpServletRequest request) { String result ="删除失败!"; String [] ids = id.split(","); List qmIds=null; String sql =""; try { SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); SysLog log =null; for(int i=0;i(); if("exterior".equals(param)){//删除外观质量检验 sql = "delete from QM_OUTWARD_DET where qo_id = ?" ; qmIds.add(ids[i]); qmOnlineCheckDaoI.updateBySql(sql, qmIds);//外观质量缺陷详细 sql = " delete from QM_OUTWARD where id = ? ";//质量 qmOnlineCheckDaoI.updateBySql(sql, qmIds); log.setOptname("批量删除外观质量巡检");//操作名或路径 }else if("deleteHslYsd".equals(param)){ sql = "delete from qm_finished_add where qmocid = '"+ids[i]+"'"; qmOnlineCheckDaoI.updateBySql(sql, null);//删除质检详细数据 log.setOptname("批量删除成品物理含水含末");//操作名或路径 }else{ //物理检验 sql="delete from qm_onlinecheck_detail where pid= ?"; qmIds.add(ids[i]); qmOnlineCheckDaoI.updateBySql(sql, qmIds);//删除质检详细数据 sql = "delete from QM_ONLINECHECK where id= ?"; qmOnlineCheckDaoI.updateBySql(sql, qmIds);//删除质检数据 if("1".equals(param)){ log.setOptname("批量删除成品物理指标记录");//操作名或路径 }else{ log.setOptname("批量删除物理过程巡检记录");//操作名或路径 } } log.setSys("PMS"); log.setName(sessionInfo.getUser().getName());//操作人 log.setParams("删除的数据ID:"+ids[i]);//参数 log.setSuccess("操作成功"); log.setDate(new Date()); log.setDel(0L); logdao.save(log); } result = "删除成功"; } catch (Exception e) { e.printStackTrace(); } return result; } /** * 批量删除成型成品记录(在线综合测试台) * @author Zhouzq * @throws ParseException */ @LogAnno(operateType="批量删除成型成品检验记录") @Override public String deleteCprod(String id, String param, HttpServletRequest request) { String result ="删除失败!"; String [] ids = id.split(","); List qmIds=null; String sql =""; try { SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); SysLog log =null; for(int i=0;i(); sql="delete from qm_onlinecheck_detail where pid= ?"; qmIds.add(ids[i]); qmOnlineCheckDaoI.updateBySql(sql, qmIds);//删除质检详细数据 sql = "delete from QM_ONLINECHECK where id= ?"; qmOnlineCheckDaoI.updateBySql(sql, qmIds);//删除质检数据 log.setOptname("批量删除成成型成品物理指标记录");//操作名或路径 log.setSys("PMS"); log.setName(sessionInfo.getUser().getName());//操作人 log.setParams("删除的数据ID:"+ids[i]);//参数 log.setSuccess("操作成功"); log.setDate(new Date()); log.setDel(0L); logdao.save(log); } result = "删除成功"; } catch (Exception e) { e.printStackTrace(); } return result; } /** * 反馈班长/质检员 * @author Rengj * @throws ParseException */ @LogAnno(operateType="在线过程质量检测巡检反馈班长/质检员") @Override public String updateFeedback(String id, String param) { String ids = StringUtil.arrayToStringBySqlin(id.split(",")); String result ="反馈失败!"; //更新修改人与修改时间 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String updateUserName = sessionInfo.getUser().getName(); try { String sql = "update QM_ONLINECHECK SET sts = '"+param+"',UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id in ("+ids+")"; qmOnlineCheckDaoI.updateBySql(sql, null); result = "反馈成功!"; } catch (Exception e) { e.printStackTrace(); } return result; } /** * 查询上一班次物理质检Ids * @author Rengj * @throws ParseException */ private String queryIds(){ String ids=""; try { /** * 1)获得当前系统时间 * 2)查询工厂日历,得到:开始日期,结束 日期,班次,班组信息 * 3)通过这些日期时间,查询工单表 * * */ //通过当前系统时间,得到工厂日期信息 StringBuffer sql=new StringBuffer(); List params = new ArrayList(); sql.append("select ID,SHIFT,TEAM,to_char(DATE_,'yyyy-MM-dd') as date_,STIM,ETIM,WORKSHOP from Sch_Calendar "); sql.append("where (to_date(?,'yyyy-mm-dd hh24:mi:ss') between STIM and ETIM) and del=0 and workshop=1 "); String beginDay = DateUtil.dateAdd("d",0,new Date(),"yyyy-MM-dd HH:mm:ss");//当前换班时间 params.add(beginDay); List list= qmOnlineCheckDaoI.queryBySql(sql.toString(), params); SchCalendarBean scbt=new SchCalendarBean(); if(null!=list&&list.size()>0){ Object[] arr0=(Object[]) list.get(0); scbt.setId(ObjectUtils.toString(arr0[0])); scbt.setMdShiftCode(ObjectUtils.toString(arr0[1]));//班次 早 中 晚 ... scbt.setMdTeamCode(ObjectUtils.toString(arr0[2]));//班组 甲乙丙丁 scbt.setDate(ObjectUtils.toString(arr0[3]));//新增时间 scbt.setStim(ObjectUtils.toString(arr0[4]));//计划开始时间 scbt.setEtim(ObjectUtils.toString(arr0[5]));//计划结束时间 scbt.setMdWorkshopCode(ObjectUtils.toString(arr0[6]));//车间 } sql.setLength(0); sql.append(" select q1.id from QM_ONLINECHECK q1, SCH_WORKORDER s1 "); sql.append(" where q1.orderNumber = s1.code "); sql.append(" and to_char(s1.date_,'yyyy-MM-dd')='"+scbt.getDate()+"' ");//查询当天工单 sql.append(" and inspectiontype = 0 and s1.sts in (2,4) "); sql.append(" and s1.shift= '"+scbt.getMdShiftCode()+"' "); List idsList = qmOnlineCheckDaoI.queryBySql(sql.toString()); for(int i=0;i obj = new ArrayList(); String sql = ""; if(!"".equals(bean.getId()) && bean.getId()!=null && !"null".equals(bean.getId())){ sql = " update QM_FINISHED_ADD set MOISTURE_CONTENT=?,FINAL_CONTENT=?,FIRST_TELOS=?,TWO_TELOS=?,THREE_TELOS=?,FOUR_TELOS=?,FIVE_TELOS=?,AVG_TELOS=?,COMPACTION=? where id='"+bean.getId()+"'"; obj.add(bean.getMoistureContent()==null?0:bean.getMoistureContent()); obj.add(bean.getFinalContent()==null?0:bean.getFinalContent()); obj.add(bean.getFirstTelos()==null?0:bean.getFirstTelos()); obj.add(bean.getTwoTelos()==null?0:bean.getTwoTelos()); obj.add(bean.getThreeTelos()==null?0:bean.getThreeTelos()); obj.add(bean.getFourTelos()==null?0:bean.getFourTelos()); obj.add(bean.getFiveTelos()==null?0:bean.getFiveTelos()); obj.add(bean.getAvgTelos()==null?0:bean.getAvgTelos()); obj.add(bean.getCompaction()== null || "".equals(bean.getCompaction())?0:bean.getCompaction()); qmOnlineCheckDaoI.updateBySql(sql, obj); result = "编辑成功!"; }else{ sql = "select * from QM_FINISHED_ADD where QMOCID = '"+bean.getQmOcId()+"'"; List qmFsList = qmOnlineCheckDaoI.queryBySql(sql); if(qmFsList.size()>0){ result = "该条数据已添加过含水等数据,请选择编辑更改 !"; }else{ sql = " insert into QM_FINISHED_ADD(id,QMOCID,MOISTURE_CONTENT,FINAL_CONTENT,FIRST_TELOS,TWO_TELOS,THREE_TELOS,FOUR_TELOS,FIVE_TELOS,AVG_TELOS,COMPACTION,STATUS) "; sql += " values(?,?,?,?,?,?,?,?,?,?,?,?)"; obj.add(UUID.randomUUID().toString()); obj.add(bean.getQmOcId()); obj.add(bean.getMoistureContent()==null?0:bean.getMoistureContent()); obj.add(bean.getFinalContent()==null?0:bean.getFinalContent()); obj.add(bean.getFirstTelos()==null?0:bean.getFirstTelos()); obj.add(bean.getTwoTelos()==null?0:bean.getTwoTelos()); obj.add(bean.getThreeTelos()==null?0:bean.getThreeTelos()); obj.add(bean.getFourTelos()==null?0:bean.getFourTelos()); obj.add(bean.getFiveTelos()==null?0:bean.getFiveTelos()); obj.add(bean.getAvgTelos()==null?0:bean.getAvgTelos()); obj.add(bean.getCompaction()== null || "".equals(bean.getCompaction())?0:bean.getCompaction()); obj.add("0"); qmOnlineCheckDaoI.updateBySql(sql, obj); result = "添加成功!"; } } } catch (Exception e) { } return result; } /** * 保存含水率/压实端数据 * Rengj */ @LogAnno(operateType = "保存含水率/压实端数据") @Override public void saveOnHsYsd(QMOnlineCheckHsYsdBean bean, String param){ try { String sql=""; //增加创建人与创建时间信息 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String createUserName = sessionInfo.getUser().getName(); String updateUserName = createUserName; //通过当前系统时间,得到工厂日期信息 /*StringBuffer sb=new StringBuffer(); List temp = new ArrayList(); sb.append("select ID,SHIFT,TEAM,to_char(DATE_,'yyyy-MM-dd') as date_,STIM,ETIM,WORKSHOP from Sch_Calendar "); sb.append("where (to_date(?,'yyyy-mm-dd hh24:mi:ss') between STIM and ETIM) and del=0 and workshop=1 "); String beginDay = DateUtil.dateAdd("d",0,new Date(),"yyyy-MM-dd HH:mm:ss");//当前换班时间 temp.add(beginDay); List list= qmOnlineCheckDaoI.queryBySql(sb.toString(), temp); SchCalendarBean scbt=new SchCalendarBean(); if(null!=list&&list.size()>0){ Object[] arr0=(Object[]) list.get(0); scbt.setId(ObjectUtils.toString(arr0[0])); scbt.setMdShiftCode(ObjectUtils.toString(arr0[1]));//班次 早 中 晚 ... scbt.setMdTeamCode(ObjectUtils.toString(arr0[2]));//班组 甲乙丙丁 scbt.setDate(ObjectUtils.toString(arr0[3]));//新增时间 scbt.setStim(ObjectUtils.toString(arr0[4]));//计划开始时间 scbt.setEtim(ObjectUtils.toString(arr0[5]));//计划结束时间 scbt.setMdWorkshopCode(ObjectUtils.toString(arr0[6]));//车间 }*/ /*String sql = "select mat from sch_workorder s1 where s1.sts =2 and s1.type=1 and to_char(s1.date_,'yyyy-MM-dd') = '"+scbt.getDate()+"' and s1.shift = '"+scbt.getMdShiftCode()+"'"; List matList = qmOnlineCheckDaoI.queryBySql(sql); if(matList.size()>0){ Object obj = matList.get(0);*/ if("ysd".equals(bean.getParam())){ sql = " INSERT INTO QM_ONLINECHECK_HSLYSD(ID,UID_,OID,TIME,BATCH_NO,NUM_,YSD,STS,eqp,mat,CREATE_USER_NAME,CREATE_USER_TIME,UPDATE_USER_NAME,UPDATE_USER_TIME) VALUES(?,?,?,TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'),?,?,?,?,?,?,?,?,?,?)"; String uuid = UUID.randomUUID().toString(); /* Date date =new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); String createTime = sf.format(date)+" "+bean.getTime()+":"+date.getSeconds();*/ String createTime =DateUtil.getNowDateTime(""); List params = new ArrayList(); params.add(uuid); params.add(bean.getUid()); params.add(bean.getOid()); params.add(createTime); params.add(bean.getBatchNo()); params.add(bean.getNum()); params.add(bean.getYsd()); params.add("0"); params.add(bean.getEqp()); params.add(bean.getMat()); params.add(createUserName); params.add(new Date()); params.add(updateUserName); params.add(params.get(11)); qmOnlineCheckDaoI.updateBySql(sql, params); }else{ sql = " INSERT INTO QM_ONLINECHECK_HSLYSD(ID,HSL,TIME,STS,mat,CREATE_USER_NAME,CREATE_USER_TIME,UPDATE_USER_NAME,UPDATE_USER_TIME) VALUES(?,?,to_date ( ? , 'YYYY-MM-DD HH24:MI:SS' ),?,?,?,?,?,?)"; String uuid = UUID.randomUUID().toString(); Date date =new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String createTime = sf.format(date); List params = new ArrayList(); params.add(uuid); params.add(bean.getHsl()); params.add(createTime); params.add("1"); params.add(bean.getMat()); params.add(createUserName); params.add(new Date()); params.add(updateUserName); params.add(params.get(6)); qmOnlineCheckDaoI.updateBySql(sql, params); } //} } catch (Exception e) { } } /** * 压实端数据查询 * Rengj */ @Override public DataGrid queryYsdList(QMOnlineCheckHsYsdBean bean,PageParams pageParams) throws Exception { String sql = this.joinSql(bean, "count", pageParams); List list= new ArrayList(); List data = qmOnlineCheckDaoI.queryBySql(sql); long count = 0; for(int j=0;j0){ sql = this.joinSql(bean, "", pageParams); List rows = qmOnlineCheckDaoI.queryBySql(sql); QMOnlineCheckHsYsdBean b =null; String sts=""; for(int i=0;i '"+sRow+"'"; } return sql; } /** * 含水率数据查询 * Rengj */ @Override public DataGrid queryHslList(QMOnlineCheckHsYsdBean bean,PageParams pageParams) throws Exception { int pageIndex=pageParams.getPage(); int rows=pageParams.getRows(); int sRow=(pageIndex-1)*rows; int eRow=pageIndex*rows; String sql = " select count(*) from (select hsl,time from QM_ONLINECHECK_HSLYSD q1 where q1.sts = '1' "; if(!"".equals(bean.getDate_()) && bean.getDate_() !=null){ sql +=" and to_char(q1.time,'yyyy-MM-dd') >= '"+bean.getDate_().substring(0,10)+"'"; } if(!"".equals(bean.getDate2_()) && bean.getDate2_() !=null){ sql +=" and to_char(q1.time,'yyyy-MM-dd') <= '"+bean.getDate2_().substring(0,10)+"'"; } sql +=")"; List list= new ArrayList(); List data = qmOnlineCheckDaoI.queryBySql(sql); long count = 0; for(int j=0;j0){ sql = "select * from (select q1.id, hsl,time ,(select name from md_mat where id = q1.MAT) mat, rownum as rowno from QM_ONLINECHECK_HSLYSD q1 where q1.sts = '1' "; if(!"".equals(bean.getDate_()) && bean.getDate_() !=null){ sql +=" and to_char(q1.time,'yyyy-MM-dd') >= '"+bean.getDate_().substring(0,10)+"'"; } if(!"".equals(bean.getDate2_()) && bean.getDate2_() !=null){ sql +=" and to_char(q1.time,'yyyy-MM-dd') <= '"+bean.getDate2_().substring(0,10)+"'"; } sql += " ) q1 where q1.rowno > '"+sRow+"' and q1.rowno <= '"+eRow+"'"; List dateRows = qmOnlineCheckDaoI.queryBySql(sql); QMOnlineCheckHsYsdBean b =null; for(int i=0;i qmoutList = qmProdCheckDaoI.queryBySql(sql); for(int j=0;jDouble.parseDouble(hsl2)){ maxHsl = Double.parseDouble(hsl); minHsl = Double.parseDouble(hsl2); }else{ maxHsl = Double.parseDouble(hsl2); minHsl = Double.parseDouble(hsl); } num = 1; }else if(!"".equals(hsl) && "".equals(hsl2)){ avgHsl = Double.parseDouble(hsl); maxHsl = Double.parseDouble(hsl); minHsl = Double.parseDouble(hsl); num = 2; }else if("".equals(hsl) && !"".equals(hsl2)){ avgHsl = Double.parseDouble(hsl2); maxHsl = Double.parseDouble(hsl2); minHsl = Double.parseDouble(hsl2); num = 3; } Element items = qCBatchs.addElement("Item"); //因开发时MES暂未下发属于ROL的含水率工艺标准故暂用成品的含水率 items.addElement("ParameterCode").setText("".equals(StringUtil.convertObjToString(obj[8]))?"CP007HSL":StringUtil.convertObjToString(obj[8])); items.addElement("AverageValue").setText(new java.text.DecimalFormat("#.000").format(avgHsl)); items.addElement("SDValue").setText("0"); items.addElement("MaxValue").setText(StringUtil.convertObjToString(maxHsl)); items.addElement("MinValue").setText(StringUtil.convertObjToString(minHsl)); Element details =items.addElement("Detail"); if(num==1){ details.addElement("SeqNo").setText("1"); details.addElement("CheckValue").setText(hsl); Element detailss =items.addElement("Detail"); detailss.addElement("SeqNo").setText("2"); detailss.addElement("CheckValue").setText(hsl2); }else if(num==2){ details.addElement("SeqNo").setText("1"); details.addElement("CheckValue").setText(hsl); }else if(num==3){ details.addElement("SeqNo").setText("1"); details.addElement("CheckValue").setText(hsl2); } } xml=document.asXML(); //向MES发送XML //-----SendMessageClient.SendMessageToMes(xml,"DASSendQualityData"); /** 日志 1-成功 */ PMSXmlDataInterceptor.getInstance().addLog(true,"巡检压实端检测数据反馈", 1, xml); //更新修改人与修改时间 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String updateUserName = sessionInfo.getUser().getName(); sql = "update QM_ONLINECHECK_HSLYSD set sts = 3,UPDATE_USER_NAME = '"+updateUserName+"' , UPDATE_USER_TIME = sysdate where id='"+ids[i].toString()+"'"; qmProdCheckDaoI.updateBySql(sql,null); } result = " 反馈成功!!!"; } catch (Exception e) { result = " 反馈失败!!!"; } } return result; } /** * 压实端反馈数据删除 * Rengj */ @LogAnno(operateType = "含水率数据/压实端位置数据删除") @Override public String deleteYsdMsg(String id,String param,HttpServletRequest request) { String [] ids = id.split(","); String result ="删除失败!"; SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); try { SysLog log =null; for(int i=0;i datas=qmOnlineCheckDaoI.queryBySql(sql); if(datas!=null && datas.size()>0){ Map checkRepMap=new HashMap<>(); //不同工单 List beans=new ArrayList<>(); List> fList =new ArrayList>(); //一个工单多批次 List qCBatchList=null; //多项检测项目 List itemList=null; //检测项目详细 List detailList=null; QMOnlineCheckBean bean=null; QMOnlineCheckBean bean1=null; QMOnlineCheckBean bean2=null; QMOnlineCheckDetailBean detail=null; Object[] obj=null; for (Object object : datas) { //释放对象 bean1=null; bean2=null; obj=(Object[]) object; String oid=StringUtil.convertObjToString(obj[2]);//工单号 bean=checkRepMap.get(oid); if(bean==null){ bean=new QMOnlineCheckBean(); bean.setMaterialCode(StringUtil.convertObjToString(obj[0])); String type=StringUtil.convertObjToString(obj[1]); if(!StringUtil.notEmpty(type)){ type="0"; } bean.setInspectionType(Integer.valueOf(type)); bean.setOrderNumber(oid); List faultList = getSchWorkOrderCraft(oid,param); fList.add(faultList); //新的需要添加到集合中 beans.add(bean); } String batchNo=StringUtil.convertObjToString(obj[4]); //bean1,多批次信息 qCBatchList=bean.getqCBatchList(); bean1=initBean(qCBatchList,batchNo,bean1); bean1.setId(StringUtil.convertObjToString(obj[35])); bean1.setSubBatchCode(batchNo); bean1.setTimestamp_(StringUtil.convertObjToString(obj[3])); String samNum=StringUtil.convertObjToString(obj[5]); if(!StringUtil.notEmpty(samNum)){ samNum="0"; } bean1.setSampleNumber(Integer.valueOf(samNum)); String samType=StringUtil.convertObjToString(obj[6]); if(!StringUtil.notEmpty(samType)){ samType="1"; } bean1.setSampleType(samType); //bean2 多检测项 itemList=bean1.getItemList(); bean2=initBean(itemList,batchNo,bean2); bean2.setSubBatchCode(batchNo); bean2.setWeightAvg(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); bean2.setWeightSD(StringUtil.convert2Float(!"".equals(obj[8]) && obj[8] != null?obj[8]:"0")); bean2.setWeightMax(StringUtil.convert2Float(!"".equals(obj[9]) && obj[9] != null?obj[9]:"0")); bean2.setWeightMin(StringUtil.convert2Float(!"".equals(obj[10]) && obj[10] != null?obj[10]:"0")); bean2.setCirAvg(StringUtil.convert2Float(!"".equals(obj[11]) && obj[11] != null?obj[11]:"0")); bean2.setCirSD(StringUtil.convert2Float(!"".equals(obj[12]) && obj[12] != null?obj[12]:"0")); bean2.setCirMax(StringUtil.convert2Float(!"".equals(obj[13]) && obj[13] != null?obj[13]:"0")); bean2.setCirMin(StringUtil.convert2Float(!"".equals(obj[14]) && obj[14] != null?obj[14]:"0")); bean2.setRoundAvg(StringUtil.convert2Float(!"".equals(obj[15]) && obj[15] != null?obj[15]:"0")); bean2.setRoundSD(StringUtil.convert2Float(!"".equals(obj[16]) && obj[16] != null?obj[16]:"0")); bean2.setRoundMax(StringUtil.convert2Float(!"".equals(obj[17]) && obj[17] != null?obj[17]:"0")); bean2.setRoundMin(StringUtil.convert2Float(!"".equals(obj[18]) && obj[18] != null?obj[18]:"0")); bean2.setLenAvg(StringUtil.convert2Float(!"".equals(obj[19]) && obj[19] != null?obj[19]:"0")); bean2.setLenSD(StringUtil.convert2Float(!"".equals(obj[20]) && obj[20] != null?obj[20]:"0")); bean2.setLenMax(StringUtil.convert2Float(!"".equals(obj[21]) && obj[21] != null?obj[21]:"0")); bean2.setLenMin(StringUtil.convert2Float(!"".equals(obj[22]) && obj[22] != null?obj[22]:"0")); bean2.setXzAvg(StringUtil.convert2Float(!"".equals(obj[23]) && obj[23] != null?obj[23]:"0")); bean2.setXzSD(StringUtil.convert2Float(!"".equals(obj[24]) && obj[24] != null?obj[24]:"0")); bean2.setXzMax(StringUtil.convert2Float(!"".equals(obj[25]) && obj[25] != null?obj[25]:"0")); bean2.setXzMin(StringUtil.convert2Float(!"".equals(obj[26]) && obj[26] != null?obj[26]:"0")); bean2.setVentsAvg(StringUtil.convert2Float(!"".equals(obj[27]) && obj[27] != null?obj[27]:"0")); bean2.setVentsSD(StringUtil.convert2Float(!"".equals(obj[28]) && obj[28] != null?obj[28]:"0")); bean2.setVentsMax(StringUtil.convert2Float(!"".equals(obj[29]) && obj[29] != null?obj[29]:"0")); bean2.setVentsMin(StringUtil.convert2Float(!"".equals(obj[30]) && obj[30] != null?obj[30]:"0")); bean2.setHdAvg(StringUtil.convert2Float(!"".equals(obj[31]) && obj[31] != null?obj[31]:"0")); bean2.setHdSD(StringUtil.convert2Float(!"".equals(obj[32]) && obj[32] != null?obj[32]:"0")); bean2.setHdMax(StringUtil.convert2Float(!"".equals(obj[33]) && obj[33] != null?obj[33]:"0")); bean2.setHdMin(StringUtil.convert2Float(!"".equals(obj[34]) && obj[34] != null?obj[34]:"0")); checkRepMap.put(oid, bean); } //设置详细 String detailSql=getCheckDetailSql(); String beanId=null; List Detaildatas=null; for (QMOnlineCheckBean checkBean : beans) { qCBatchList=checkBean.getqCBatchList(); for (QMOnlineCheckBean b : qCBatchList) { beanId=b.getId(); Detaildatas=qmOnlineCheckDaoI.queryBySql(detailSql,beanId); itemList=b.getItemList(); for (QMOnlineCheckBean b2 : itemList) { detailList=b2.getDetailList(); for (Object object : Detaildatas) { obj=(Object[]) object; detail=new QMOnlineCheckDetailBean(); detail.setNum(StringUtil.convert2Integer(!"".equals(obj[0]) && obj[0] != null?obj[0]:"0")); detail.setWeight(StringUtil.convert2Float(!"".equals(obj[1]) && obj[1] != null?obj[1]:"0")); detail.setCir(StringUtil.convert2Float(!"".equals(obj[2]) && obj[2] != null?obj[2]:"0")); detail.setRound(StringUtil.convert2Float(!"".equals(obj[3]) && obj[3] != null?obj[3]:"0")); detail.setLen(StringUtil.convert2Float(!"".equals(obj[4]) && obj[4] != null?obj[4]:"0")); detail.setXz(StringUtil.convert2Float(!"".equals(obj[5]) && obj[5] != null?obj[5]:"0")); detail.setVents(StringUtil.convert2Float(!"".equals(obj[6]) && obj[6] != null?obj[6]:"0")); detail.setHd(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); detailList.add(detail); } } } } try { if(fList!=null && fList.size()>0){ WorkOrderStatChangeInterceptor.getInstance().dasSendQualityCheck(beans,fList,id,param); result = "反馈MES成功!"; } } catch (Exception e) { e.printStackTrace(); } } return result; } catch (Exception e) { e.printStackTrace(); } return result; } /** * 保存超标支数 * Rengj */ @LogAnno(operateType = "保存超标支数") @Override public String saveOverProof(QMOnlineCheckBean bean) { //更新修改人与修改时间 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String updateUserName = sessionInfo.getUser().getName(); String result = ""; try { String sql = "update QM_ONLINECHECK set weightOut="+bean.getWeightOut()+", cirOut="+bean.getCirOut() +" ,roundOut="+bean.getRoundOut()+", lenOut="+bean.getLenOut()+", xzOut="+bean.getXzOut() +", ventsOut="+bean.getVentsOut()+", hdOut="+bean.getHdOut()+",UPDATE_USER_NAME='"+updateUserName+"',UPDATE_USER_TIME=sysdate where id = '"+bean.getId()+"'"; qmOnlineCheckDaoI.updateBySql(sql, null); result = "保存成功!"; } catch (Exception e) { result = " 保存超标支数失败!"; e.printStackTrace(); } return result; } @Override public String sendMsgZJZD(String id,String param) { String sql=""; String result ="选择的工单没有数据需要反馈MES!"; try { if("".equals(id)){ id = this.queryIdsZD(); if("".equals(id)){ return result; } id =StringUtil.arrayToStringBySqlin(id.split(",")); sql = getProcessCheckSql(id,"cp"); }else{ id=StringUtil.arrayToStringBySqlin(id.split(",")); sql = getProcessCheckSql(id,"zd");// } List datas=qmOnlineCheckDaoI.queryBySql(sql); if(datas!=null && datas.size()>0){ Map checkRepMap=new HashMap<>(); //不同工单 List beans=new ArrayList<>(); List> fList =new ArrayList>(); //一个工单多批次 List qCBatchList=null; //多项检测项目 List itemList=null; //检测项目详细 List detailList=null; QMOnlineCheckBean bean=null; QMOnlineCheckBean bean1=null; QMOnlineCheckBean bean2=null; QMOnlineCheckDetailBean detail=null; Object[] obj=null; for (Object object : datas) { //释放对象 bean1=null; bean2=null; obj=(Object[]) object; String oid=StringUtil.convertObjToString(obj[2]);//工单号 bean=checkRepMap.get(oid); if(bean==null){ bean=new QMOnlineCheckBean(); bean.setMaterialCode(StringUtil.convertObjToString(obj[0])); String type=StringUtil.convertObjToString(obj[1]); if(!StringUtil.notEmpty(type)){ type="0"; } bean.setInspectionType(Integer.valueOf(type)); bean.setOrderNumber(oid); List faultList = getSchWorkOrderCraft(oid,param); fList.add(faultList); //新的需要添加到集合中 beans.add(bean); } String batchNo=StringUtil.convertObjToString(obj[4]); //bean1,多批次信息 qCBatchList=bean.getqCBatchList(); bean1=initBean(qCBatchList,batchNo,bean1); bean1.setId(StringUtil.convertObjToString(obj[35])); bean1.setSubBatchCode(batchNo); bean1.setTimestamp_(StringUtil.convertObjToString(obj[3])); String samNum=StringUtil.convertObjToString(obj[5]); if(!StringUtil.notEmpty(samNum)){ samNum="0"; } bean1.setSampleNumber(Integer.valueOf(samNum)); String samType=StringUtil.convertObjToString(obj[6]); if(!StringUtil.notEmpty(samType)){ samType="1"; } bean1.setSampleType(samType); //bean2 多检测项 itemList=bean1.getItemList(); bean2=initBean(itemList,batchNo,bean2); bean2.setSubBatchCode(batchNo); bean2.setWeightAvg(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); bean2.setWeightSD(StringUtil.convert2Float(!"".equals(obj[8]) && obj[8] != null?obj[8]:"0")); bean2.setWeightMax(StringUtil.convert2Float(!"".equals(obj[9]) && obj[9] != null?obj[9]:"0")); bean2.setWeightMin(StringUtil.convert2Float(!"".equals(obj[10]) && obj[10] != null?obj[10]:"0")); bean2.setCirAvg(StringUtil.convert2Float(!"".equals(obj[11]) && obj[11] != null?obj[11]:"0")); bean2.setCirSD(StringUtil.convert2Float(!"".equals(obj[12]) && obj[12] != null?obj[12]:"0")); bean2.setCirMax(StringUtil.convert2Float(!"".equals(obj[13]) && obj[13] != null?obj[13]:"0")); bean2.setCirMin(StringUtil.convert2Float(!"".equals(obj[14]) && obj[14] != null?obj[14]:"0")); bean2.setRoundAvg(StringUtil.convert2Float(!"".equals(obj[15]) && obj[15] != null?obj[15]:"0")); bean2.setRoundSD(StringUtil.convert2Float(!"".equals(obj[16]) && obj[16] != null?obj[16]:"0")); bean2.setRoundMax(StringUtil.convert2Float(!"".equals(obj[17]) && obj[17] != null?obj[17]:"0")); bean2.setRoundMin(StringUtil.convert2Float(!"".equals(obj[18]) && obj[18] != null?obj[18]:"0")); bean2.setLenAvg(StringUtil.convert2Float(!"".equals(obj[19]) && obj[19] != null?obj[19]:"0")); bean2.setLenSD(StringUtil.convert2Float(!"".equals(obj[20]) && obj[20] != null?obj[20]:"0")); bean2.setLenMax(StringUtil.convert2Float(!"".equals(obj[21]) && obj[21] != null?obj[21]:"0")); bean2.setLenMin(StringUtil.convert2Float(!"".equals(obj[22]) && obj[22] != null?obj[22]:"0")); bean2.setXzAvg(StringUtil.convert2Float(!"".equals(obj[23]) && obj[23] != null?obj[23]:"0")); bean2.setXzSD(StringUtil.convert2Float(!"".equals(obj[24]) && obj[24] != null?obj[24]:"0")); bean2.setXzMax(StringUtil.convert2Float(!"".equals(obj[25]) && obj[25] != null?obj[25]:"0")); bean2.setXzMin(StringUtil.convert2Float(!"".equals(obj[26]) && obj[26] != null?obj[26]:"0")); bean2.setVentsAvg(StringUtil.convert2Float(!"".equals(obj[27]) && obj[27] != null?obj[27]:"0")); bean2.setVentsSD(StringUtil.convert2Float(!"".equals(obj[28]) && obj[28] != null?obj[28]:"0")); bean2.setVentsMax(StringUtil.convert2Float(!"".equals(obj[29]) && obj[29] != null?obj[29]:"0")); bean2.setVentsMin(StringUtil.convert2Float(!"".equals(obj[30]) && obj[30] != null?obj[30]:"0")); bean2.setHdAvg(StringUtil.convert2Float(!"".equals(obj[31]) && obj[31] != null?obj[31]:"0")); bean2.setHdSD(StringUtil.convert2Float(!"".equals(obj[32]) && obj[32] != null?obj[32]:"0")); bean2.setHdMax(StringUtil.convert2Float(!"".equals(obj[33]) && obj[33] != null?obj[33]:"0")); bean2.setHdMin(StringUtil.convert2Float(!"".equals(obj[34]) && obj[34] != null?obj[34]:"0")); checkRepMap.put(oid, bean); } //设置详细 String detailSql=getCheckDetailSql(); String beanId=null; List Detaildatas=null; for (QMOnlineCheckBean checkBean : beans) { qCBatchList=checkBean.getqCBatchList(); for (QMOnlineCheckBean b : qCBatchList) { beanId=b.getId(); Detaildatas=qmOnlineCheckDaoI.queryBySql(detailSql,beanId); itemList=b.getItemList(); for (QMOnlineCheckBean b2 : itemList) { detailList=b2.getDetailList(); for (Object object : Detaildatas) { obj=(Object[]) object; detail=new QMOnlineCheckDetailBean(); detail.setNum(StringUtil.convert2Integer(!"".equals(obj[0]) && obj[0] != null?obj[0]:"0")); detail.setWeight(StringUtil.convert2Float(!"".equals(obj[1]) && obj[1] != null?obj[1]:"0")); detail.setCir(StringUtil.convert2Float(!"".equals(obj[2]) && obj[2] != null?obj[2]:"0")); detail.setRound(StringUtil.convert2Float(!"".equals(obj[3]) && obj[3] != null?obj[3]:"0")); detail.setLen(StringUtil.convert2Float(!"".equals(obj[4]) && obj[4] != null?obj[4]:"0")); detail.setXz(StringUtil.convert2Float(!"".equals(obj[5]) && obj[5] != null?obj[5]:"0")); detail.setVents(StringUtil.convert2Float(!"".equals(obj[6]) && obj[6] != null?obj[6]:"0")); detail.setHd(StringUtil.convert2Float(!"".equals(obj[7]) && obj[7] != null?obj[7]:"0")); detailList.add(detail); } } } } try { if(fList!=null && fList.size()>0){ WorkOrderStatChangeInterceptor.getInstance().dasSendQualityCheck(beans,fList,id,param); result = "反馈MES成功!"; } } catch (Exception e) { e.printStackTrace(); } } return result; } catch (Exception e) { e.printStackTrace(); } return result; } /** * 查询上一班次物理质检Ids * @author Rengj * @throws ParseException */ private String queryIdsZD(){ String ids=""; try { //通过当前系统时间,得到工厂日期信息 StringBuffer sql=new StringBuffer(); sql.append(" select q1.id from QM_ONLINECHECK q1, SCH_WORKORDER s1 "); sql.append(" where q1.orderNumber = s1.code and s1.type !=4 ");// and s1.type !=4 成型机质检数据量较大故暂时停止反馈MES sql.append(" and inspectiontype = 0 and s1.sts in (2,4) and (q1.sts = 0 or q1.sts is null ) "); sql.append(" and to_date('"+DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss")+"','yyyy-MM-dd hh24:mi:ss') BETWEEN s1.STIM AND s1.ETIM"); List idsList = qmOnlineCheckDaoI.queryBySql(sql.toString()); for(int i=0;i fisList = qmOnlineCheckDaoI.queryBySql(sql); for(int j=0;j hslList = qmOnlineCheckDaoI.queryBySql(sql);//得到含水率 Object[] o = (Object[]) hslList.get(0); if(hslList.size()>0){ //通过当前系统时间,得到工厂日期信息 StringBuffer sb=new StringBuffer(); List params = new ArrayList(); sb.append("select ID,SHIFT,TEAM,to_char(DATE_,'yyyy-MM-dd') as date_,STIM,ETIM,WORKSHOP from Sch_Calendar "); sb.append("where (to_date(?,'yyyy-mm-dd hh24:mi:ss') between STIM and ETIM) and del=0 and workshop=1 "); String beginDay = DateUtil.dateAdd("d",0,new Date(),"yyyy-MM-dd HH:mm:ss");//当前换班时间 params.add(beginDay); List list= qmOnlineCheckDaoI.queryBySql(sb.toString(), params); SchCalendarBean scbt=new SchCalendarBean(); if(null!=list&&list.size()>0){ Object[] arr0=(Object[]) list.get(0); scbt.setId(ObjectUtils.toString(arr0[0])); scbt.setMdShiftCode(ObjectUtils.toString(arr0[1]));//班次 早 中 晚 ... scbt.setMdTeamCode(ObjectUtils.toString(arr0[2]));//班组 甲乙丙丁 scbt.setDate(ObjectUtils.toString(arr0[3]));//新增时间 scbt.setStim(ObjectUtils.toString(arr0[4]));//计划开始时间 scbt.setEtim(ObjectUtils.toString(arr0[5]));//计划结束时间 scbt.setMdWorkshopCode(ObjectUtils.toString(arr0[6]));//车间 } sql = " select q1.id from qm_onlinecheck_hslysd q1,sch_workorder s1 where Q1.oid = s1.id " + " and to_char(S1.date_,'yyyy-MM-dd') ='"+scbt.getDate()+"' and s1.shift = '"+scbt.getMdShiftCode()+"'" + " and S1. team = '"+scbt.getMdTeamCode()+"'"; List idsList = qmOnlineCheckDaoI.queryBySql(sql);//得到当前班次各压实端id String temp =""; if(idsList.size()>0){ for(int i=0;i list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); //多批次 if(list!=null && list.size()>0){ Document document = null; Double dbVal[]=null; for(Object o:list){ Object[] temp=(Object[]) o; document=DocumentHelper.createDocument(); //xml Element root = document.addElement("xml"); Element body = root.addElement("Body"); Element MaterialCode=body.addElement("MaterialCode"); MaterialCode.setText(StringUtil.convertObjToString(temp[1]) ); Element InspectionType=body.addElement("InspectionType"); InspectionType.setText(StringUtil.convertObjToString(temp[2]) ); Element OrderNumber=body.addElement("OrderNumber"); OrderNumber.setText(StringUtil.convertObjToString(temp[3]) ); //QCBatchs Element QCBatchs=body.addElement("QCBatchs"); Element Timestamp=QCBatchs.addElement("Timestamp"); Timestamp.setText(StringUtil.convertObjToString(temp[5]) ); Element SubBatchCode=QCBatchs.addElement("SubBatchCode"); SubBatchCode.setText(StringUtil.convertObjToString(temp[6])+"2" ); Element SampleNumber=QCBatchs.addElement("SampleNumber"); SampleNumber.setText(StringUtil.convertObjToString(temp[7]) ); Element SampleType=QCBatchs.addElement("SampleType"); SampleType.setText(StringUtil.convertObjToString(temp[2]) ); /** * MS:通过工单版本号,查询工艺标准的工艺 * 170410123457#11 * 成型成品,通过工单ID关联工地那表得到工艺标准批次号 * 在通过工艺标准批次号得到工艺标准详细 * * */ String oid=StringUtil.convertObjToString(temp[3]); //得到日期,牌号,班次 String date= "20"+oid.substring(0, 2)+"-"+oid.substring(2, 4)+"-"+oid.substring(4, 6); String matCode=oid.substring(6, oid.indexOf("#")); String shiftId=oid.substring( oid.indexOf("#")+1,oid.indexOf("#")+2); //ITEM Element Item=QCBatchs.addElement("Item"); //端部落丝量 Element ParameterCode=Item.addElement("ParameterCode"); ParameterCode.setText(getSwkCByParam(date,matCode,shiftId,"LSL")); //System.out.println(getSwkCByParam(date,matCode,shiftId,"YSD")+"================压实端"); //平均值 Element AverageValue=Item.addElement("AverageValue"); AverageValue.setText(StringUtil.convertObjToString(temp[15]) ); //SD值 Element SDValue=Item.addElement("SDValue"); SDValue.setText("0"); //将端部1~5丢到数组,返回最大值,最小值 dbVal=new Double[5]; dbVal[0]=StringUtil.converObj2Double(temp[10]); dbVal[1]=StringUtil.converObj2Double(temp[11]); dbVal[2]=StringUtil.converObj2Double(temp[12]); dbVal[3]=StringUtil.converObj2Double(temp[13]); dbVal[4]=StringUtil.converObj2Double(temp[14]); //最大值 Element MaxValue=Item.addElement("MaxValue"); MaxValue.setText(String.valueOf( StringUtil.getMaxAndMinVal(dbVal, 1)) ); //System.out.println(StringUtil.getMaxAndMinVal(dbVal, 1)+"=======返回的最大值"); //最小值 Element MinValue=Item.addElement("MinValue"); MinValue.setText(String.valueOf( StringUtil.getMaxAndMinVal(dbVal, 2)) );//返回最小值 // System.out.println(StringUtil.getMaxAndMinVal(dbVal, 1)+"########返回的最最小值"); //遍历数组 Element Detail=null; Element SeqNo=null; Element CheckValue=null; for(Integer i=0;i list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); //多批次 if(list!=null && list.size()>0){ Document document = null; Double dbVal[]=null; for(Object o:list){ Object[] temp=(Object[]) o; document=DocumentHelper.createDocument(); //xml //Element root = document.addElement("xml"); Element dataset = document.addElement("dataset"); Element body = dataset.addElement("data"); Element MaterialCode=body.addElement("MaterialCode"); MaterialCode.setText(StringUtil.convertObjToString(temp[5]) ); Element InspectionType=body.addElement("InspectionType"); InspectionType.setText("0"); Element OrderNumber=body.addElement("OrderNumber"); OrderNumber.setText(StringUtil.convertObjToString(temp[4]) ); //QCBatchs Element QCBatchs=body.addElement("QCBatchs"); QCBatchs.setText(""); Element item=body.addElement("item"); Element Timestamp=item.addElement("Timestamp"); Timestamp.setText(StringUtil.convertObjToString(temp[3]) ); Element SubBatchCode=item.addElement("SubBatchCode"); SubBatchCode.setText(StringUtil.convertObjToString(temp[2]) ); Element SampleNumber=item.addElement("SampleNumber"); SampleNumber.setText("10"); Element SampleType=item.addElement("SampleType"); SampleType.setText("1" ); /** * MS:通过工单版本号,查询工艺标准的工艺 * 170410123457#11 * 成型成品,通过工单ID关联工地那表得到工艺标准批次号 * 在通过工艺标准批次号得到工艺标准详细 * * */ String oid=StringUtil.convertObjToString(temp[4]); Element check=item.addElement("CheckItems"); Element ParameterCode3=check.addElement("ParameterCode"); ParameterCode3.setText(getCXSwkCByParam(oid,"GYSJL") ); //平均值 Element AverageValue3=check.addElement("AverageValue"); AverageValue3.setText((StringUtil.converObj2Double(temp[0])+StringUtil.converObj2Double(temp[1]))/2+"" ); //SD值 Element SDValue3=check.addElement("SDValue"); SDValue3.setText("0"); //最大值 Element MaxValue3=check.addElement("MaxValue"); MaxValue3.setText(StringUtil.converObj2Double(temp[0])>StringUtil.converObj2Double(temp[1])?StringUtil.converObj2Double(temp[0])+"":StringUtil.converObj2Double(temp[1])+""); //最小值 Element MinValue3=check.addElement("MinValue"); MinValue3.setText(StringUtil.converObj2Double(temp[0]) list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); //多批次 if(list!=null && list.size()>0){ Document document = null; Double dbVal[]=null; for(Object o:list){ Object[] temp=(Object[]) o; document=DocumentHelper.createDocument(); //xml //Element root = document.addElement("xml"); Element dataset = document.addElement("dataset"); Element body = dataset.addElement("data"); Element MaterialCode=body.addElement("MaterialCode"); MaterialCode.setText(StringUtil.convertObjToString(temp[1]) ); Element InspectionType=body.addElement("InspectionType"); InspectionType.setText(StringUtil.convertObjToString(temp[2])); Element OrderNumber=body.addElement("OrderNumber"); OrderNumber.setText(StringUtil.convertObjToString(temp[3]) ); //QCBatchs Element QCBatchs=body.addElement("QCBatchs"); Element Timestamp=QCBatchs.addElement("Timestamp"); Timestamp.setText(StringUtil.convertObjToString(temp[5]) ); Element SubBatchCode=QCBatchs.addElement("SubBatchCode"); SubBatchCode.setText(StringUtil.convertObjToString(temp[6]) ); Element SampleNumber=QCBatchs.addElement("SampleNumber"); SampleNumber.setText(StringUtil.convertObjToString(temp[7])); Element SampleType=QCBatchs.addElement("SampleType"); SampleType.setText(StringUtil.convertObjToString(temp[8])); /** * MS:通过工单版本号,查询工艺标准的工艺 * 170410123457#11 * 成型成品,通过工单ID关联工地那表得到工艺标准批次号 * 在通过工艺标准批次号得到工艺标准详细 * * */ String oid=StringUtil.convertObjToString(temp[3]); //得到日期,牌号,班次 String date= "20"+oid.substring(0, 2)+"-"+oid.substring(2, 4)+"-"+oid.substring(4, 6); String matCode=oid.substring(6, oid.indexOf("#")); String shiftId=oid.substring( oid.indexOf("#")+1,oid.indexOf("#")+2); //ITEM Element Item3=QCBatchs.addElement("Item"); //端部落丝量 Element ParameterCode=Item3.addElement("ParameterCode"); ParameterCode.setText(getCXSwkCByParam(date,matCode,shiftId,"HSL")); //平均值 Element AverageValue3=Item3.addElement("AverageValue"); AverageValue3.setText((StringUtil.convertObjToString(temp[0]))); //SD值 Element SDValue3=Item3.addElement("SDValue"); SDValue3.setText("0"); //最大值 Element MaxValue3=Item3.addElement("MaxValue"); MaxValue3.setText((StringUtil.convertObjToString(temp[0]))); //最小值 Element MinValue3=Item3.addElement("MinValue"); MinValue3.setText((StringUtil.convertObjToString(temp[0]))); String xml=document.asXML(); System.out.println("\n"+xml); /**向MES发送XML*/ //-----SendMessageClient.SendMessageToMes(xml,"DASSendQualityData"); /** 日志 1-成功 */ PMSXmlDataInterceptor.getInstance().addLog(true,"[成型成品]含水率反馈", 1, xml); } //更新修改人与修改时间 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String updateUserName = sessionInfo.getUser().getName(); /**修改反馈状态*/ qmProdCheckDaoI.updateBySql("update QM_CXCHECK_ADD set status = 1,UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id in ('"+id+"')", null); } } //含水,含末,端部 public String getSwkCByParam(String date,String matCode,String shiftId,String parameterCode){ StringBuffer sql=new StringBuffer(100); try { //sql.append(" "); sql.append(" select parameter_code from SCH_WORKORDER_CRAFT where dcs_type='CP' and param_type=1 "); sql.append(" and parameter_setrevision in ( "); sql.append(" select a.PARAMETER_SET_REVISION from SCH_WORKORDER a,md_mat b where a.mat=b.id and a.del=0 "); sql.append(" and b.del=0 and a.type=1 and a.shift='"+shiftId+"' and to_char(a.date_,'yyyy-MM-dd')='"+date+"' and b.code='"+matCode+"' and rownum=1 "); sql.append(" )and parameter_code like '%"+parameterCode+"%' and rownum=1 "); List list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); if(list!=null &&list.size()>0){ String temp=list.get(0).toString(); return StringUtil.convertObjToString(temp); } } catch (Exception e) { log.info("查询含水,含末,端部异常!!!!!"+sql.toString()); } return ""; } public String getCXSwkCByParam(String date,String matCode,String shiftId,String parameterCode){ StringBuffer sql=new StringBuffer(100); try { //sql.append(" "); sql.append(" select parameter_code from SCH_WORKORDER_CRAFT where dcs_type='CXCP' and param_type=1 "); sql.append(" and parameter_setrevision in ( "); sql.append(" select a.PARAMETER_SET_REVISION from SCH_WORKORDER a,md_mat b where a.mat=b.id and a.del=0 "); sql.append(" and b.del=0 and a.type=4 and a.shift='"+shiftId+"' and to_char(a.date_,'yyyy-MM-dd')='"+date+"' and b.code='"+matCode+"' and rownum=1 "); sql.append(" )and parameter_code like '%"+parameterCode+"%' and rownum=1 "); List list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); if(list!=null &&list.size()>0){ String temp=list.get(0).toString(); return StringUtil.convertObjToString(temp); } } catch (Exception e) { log.info("查询含水,含末,端部异常!!!!!"+sql.toString()); } return ""; } //含水,含末,端部 public String getCXSwkCByParam(String oid,String parameterCode){ StringBuffer sql=new StringBuffer(100); try { //sql.append(" "); sql.append(" select parameter_code from SCH_WORKORDER_CRAFT where dcs_type='FTL' and param_type=1 "); sql.append(" and parameter_setrevision in ( "); sql.append(" select PARAMETER_SET_REVISION from SCH_WORKORDER where code = '"+oid+"'"); sql.append(" )and parameter_code like '%"+parameterCode+"%' and rownum=1 "); List list=(List) qmOnlineCheckDaoI.queryBySql(sql.toString(),null); if(list!=null &&list.size()>0){ String temp=list.get(0).toString(); return StringUtil.convertObjToString(temp); } } catch (Exception e) { log.info("查询异常!!!!!"+sql.toString()); } return ""; } @Override public void sendRequest(String sts, String date, String shift) { Document document; document=DocumentHelper.createDocument(); Element root = document.addElement("xml"); Element body = root.addElement("Body"); Element WorkOrders=body.addElement("WorkOrders"); Element date2=WorkOrders.addElement("Date"); date2.setText(date); Element shift2=WorkOrders.addElement("Shift"); shift2.setText(shift); Element type2=WorkOrders.addElement("Type"); type2.setText(sts); String strXml=document.asXML(); //------SendMessageClient.SendMessagesToWCT(strXml, "PBMSSendRequst"); } @Override public DataGrid getCxGyList(WorkOrderBean orderBean, PageParams pageParams) { List list= new ArrayList<>(); try { List data; data=getQmCxOnlineCHKGY(orderBean,"count",pageParams); long count = 0; for(int j=0;j0){ List rows=getQmCxOnlineCHKGY(orderBean,"",pageParams); for(int i=0;i getQmCxOnlineCHKGY(WorkOrderBean orderBean, String param, PageParams pageParams) { int pageIndex=pageParams.getPage(); int rows=pageParams.getRows(); int sRow=(pageIndex-1)*rows; int eRow=pageIndex*rows; try { StringBuffer sb=new StringBuffer(); if("count".equals(param)){ sb.append(" select count(*) from ( "); } else { sb.append(" select t.code,t.bth,t.shiftname,t.teamname,t.equipment_name,t.matname,t.date_ ,t.gy1,t.gy2,t.id,t.status,t.CREATE_USER_NAME,t.CREATE_USER_TIME,t.UPDATE_USER_NAME,t.UPDATE_USER_TIME from ( "); } sb.append(" select rownum rn,a.id bth,a.code,e.name shiftname,d.name teamname,c.equipment_name ,f.name matname,b.chk_date as date_ ,b.gy1,b.gy2,b.id,b.status,b.CREATE_USER_NAME,b.CREATE_USER_TIME,b.UPDATE_USER_NAME,b.UPDATE_USER_TIME "); sb.append(" from SCH_WORKORDER a join MD_EQUIPMENT c on a.eqp = c.id join md_team d on a.team = d.id "); sb.append(" join MD_SHIFT e on a.shift = e.id join MD_MAT f on a.mat = f.id left join QM_CXCHECK_ADD b on a.id = b.qmocid "); sb.append(" where a.type = 4 "); if(StringUtil.notNull(orderBean.getShift())){ sb.append(" and a.shift='"+orderBean.getShift()+"'"); } if(StringUtil.notNull(orderBean.getTeam())){ sb.append(" and a.team='"+orderBean.getTeam()+"'"); } if(StringUtil.notNull(orderBean.getMatId())){ sb.append(" and a.mat='"+orderBean.getMatId()+"'"); } if(StringUtil.notNull(orderBean.getEquipmentId())){ sb.append(" and a.eqp='"+orderBean.getEquipmentId()+"'"); } if(orderBean.getSts()!=null&&!"".equals(orderBean.getSts())){ sb.append(" and b.status='"+orderBean.getSts()+"'"); } if(StringUtil.notNull(orderBean.getDate())){ sb.append(" and to_char( a.date_,'yyyy-MM-dd') >= '"+orderBean.getDate().trim()+"'"); } if(StringUtil.notNull(orderBean.getEtim())){ sb.append(" and to_char( a.date_,'yyyy-MM-dd') <= '"+orderBean.getEtim().trim()+"'"); } if("count".equals(param)){ sb.append(" ) "); } else { sb.append(" ) t where rn > "+sRow+" and rn <= "+eRow); } System.out.println("\n"+sb.toString()+"\n"); List list = (List) qmOnlineCheckDaoI.queryBySql(sb.toString()); return list; } catch(Exception e) { } return new ArrayList<>(); } @LogAnno(operateType = "编辑甘油施加量") @Override public String saveCxOnlineCHKGY(QmCxOnlineCHKGY bean) { String sql = null; //增加创建人与创建时间信息 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String createUserName = sessionInfo.getUser().getName(); String updateUserName = createUserName; if(bean.getId()==null||"".equals(bean.getId())){ String select = "select equipment_code from MD_EQUIPMENT where id = (select eqp from SCH_WORKORDER where id = '"+bean.getQmocid()+"')"; List list = qmOnlineCheckDaoI.queryBySql(select, null); sql="insert into QM_CXCHECK_ADD(id,qmocid,gy1,gy2,res,status,CHK_DATE,CREATE_USER_NAME,CREATE_USER_TIME,UPDATE_USER_NAME,UPDATE_USER_TIME) values(sys_guid(),'"+bean.getQmocid()+"',"+bean.getGy1()+","+bean.getGy2()+","+ genBatchNo(list.get(0).toString())+",0,SYSDATE,'"+createUserName+"',sysdate,'"+updateUserName+"',sysdate)"; }else { sql="update QM_CXCHECK_ADD set gy1 = "+bean.getGy1()+",gy2="+bean.getGy2()+",UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id = '"+bean.getId()+"'"; } qmOnlineCheckDaoI.updateBySql(sql,null); return "操作成功!"; } /** * 生成外观质量检测批次号 * */ private String genBatchNo(String eqpCode){ String batchNo=DateUtil.formatDateToString(new Date(), "yyyyMMddHHmm"); batchNo+=eqpCode+MathUtil.getRandomInt(100, 1000); return batchNo; } @Override public String getorder(WorkOrderBean bean) { String sql = "select a.id,b.name from SCH_WORKORDER a join md_mat b on a.mat =b.id where to_char(date_,'yyyy-mm-dd') = ? and shift = ? and eqp = ?"; List list = qmOnlineCheckDaoI.queryBySql(sql,bean.getDate(),bean.getShift(),bean.getEquipment()); JSONArray jArray = new JSONArray(); if (list != null && list.size() > 0) { for (Object o : list) { Object[] temp = (Object[]) o; JSONObject obj = new JSONObject(); obj.put("id", temp[0] == null ? null : temp[0].toString()); obj.put("text", temp[1] == null ? null : temp[1].toString()); jArray.add(obj); } } return jArray.toString(); } @LogAnno(operateType = "在线过程质量检测巡检质检员记录增加") @Override public void addorder(QMOnlineCheckBean bean) { String sql = "select a.code orderCode,a.team,c.code,a.type,b.work_center from SCH_WORKORDER a join MD_EQUIPMENT b on a.eqp = b.id join md_mat c on a.mat = c.id where a.id = ? "; QMOnlineCheck check = new QMOnlineCheck(); List list = qmOnlineCheckDaoI.queryBySql(sql, bean.getOrderNumber()); if (list!=null&&list.size()>0) { Object[] o = (Object[]) list.get(0); String id = UUID.randomUUID().toString().replace("-", ""); check.setId(id); check.setMaterialCode(o[2].toString()); check.setInspectionType(bean.getInspectionType()); check.setOrderNumber(o[0].toString()); check.setqCBatchs(o[0].toString()); check.setSampleNumber(bean.getSampleNumber()); check.setSampleType(1); check.setType(bean.getType()); Date date = new Date(); String nowtime = new SimpleDateFormat("yyMMddHHmmss").format(date); check.setTimestamp_(date); check.setTeam(o[1].toString()); check.setSubBatchCode(o[4].toString()+nowtime+MathUtil.getRandomInt(10, 99)); FillUserInfoUtil.fillCreateUserInfo(check,request); qmOnlineCheckDaoI.save(check); QMOnlineCheckDetail detail = null; for(int i=1;i list = qmOnlineCheckDaoI.queryBySql(sql, bean.getOrderNumber()); if (list!=null&&list.size()>0) { Object[] o = (Object[]) list.get(0); String id = UUID.randomUUID().toString().replace("-", ""); check.setId(id); check.setMaterialCode(o[2].toString()); check.setInspectionType(bean.getInspectionType()); Date date = new Date(); String time = new SimpleDateFormat("yyMMdd").format(date); check.setOrderNumber(time+o[2].toString()+"#"+o[5].toString()+o[1].toString()+o[4].toString()); check.setqCBatchs(check.getOrderNumber()); check.setSampleNumber(bean.getSampleNumber()); check.setSampleType(1); String nowtime = new SimpleDateFormat("yyMMddHHmmss").format(date); String notime = new SimpleDateFormat("HH:mm:ss").format(date); notime = bean.getDate()+" "+notime; Date tDate = null; try { tDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(notime); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } check.setTimestamp_(tDate); check.setTeam(o[1].toString()); check.setSubBatchCode(o[4].toString()+nowtime+MathUtil.getRandomInt(10, 99)); FillUserInfoUtil.fillCreateUserInfo(check,request); qmOnlineCheckDaoI.save(check); QMOnlineCheckDetail detail = null; for(int i=1;i list = qmOnlineCheckDaoI.queryBySql(sql,bean.getDate(),bean.getShift(),bean.getOrderNumber()); //普通烟 if (list!=null&&list.size()>0) { Object[] o = (Object[]) list.get(0); String id = UUID.randomUUID().toString().replace("-", ""); check.setId(id); check.setMaterialCode(o[1].toString()); check.setInspectionType(bean.getInspectionType()); Date date = new Date(); String time = new SimpleDateFormat("yyMMdd").format(date); check.setOrderNumber(time+o[1].toString()+"#"+bean.getShift()+o[0].toString()); check.setSampleNumber(bean.getSampleNumber()); String notime = new SimpleDateFormat("HH:mm:ss").format(date); notime = bean.getDate()+" "+notime; Date tDate = null; try { tDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(notime); String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tDate); String s = format.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", ""); check.setqCBatchs(s); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } check.setTimestamp_(tDate); check.setSampleType(1); String nowtime = new SimpleDateFormat("yyMMddHHmmss").format(date); check.setTeam(o[0].toString()); check.setSubBatchCode("A04"+nowtime+MathUtil.getRandomInt(10, 99)); FillUserInfoUtil.fillCreateUserInfo(check,request); qmOnlineCheckDaoI.save(check); //TODO 去掉新增空数据 /* QMOnlineCheckDetail detail = null; for(int i=1;i list = qmOnlineCheckDaoI.queryBySql(sql,bean.getDate(),bean.getShift()); JSONArray jArray = new JSONArray(); if (list != null && list.size() > 0) { for (Object o : list) { Object[] temp = (Object[]) o; JSONObject obj = new JSONObject(); obj.put("id", temp[0] == null ? null : temp[0].toString()); obj.put("text", temp[1] == null ? null : temp[1].toString()); jArray.add(obj); } } return jArray.toString(); } }