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<Object> params = new ArrayList<Object>();
|
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<QMOnlineCheckBean> list= new ArrayList<QMOnlineCheckBean>();
|
switch(orderType){
|
case "1":
|
if(total>0){
|
hql.append(" order by o.timestamp_ asc ");
|
List<QMProdCheck> 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<QMFilterProdCheck> 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<QMOnlineCheckDetailBean> list= new ArrayList<QMOnlineCheckDetailBean>();
|
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<QMOnlineCheckDetail> 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<QMFilterOnlineCheckDetail> 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<QMOnlineCheckBean> list= new ArrayList<QMOnlineCheckBean>();
|
try {
|
List<?> data =new ArrayList<>();
|
data=getQMOnlineCheck(orderBean,"count",pageParams);
|
long count = 0;
|
for(int j=0;j<data.size();j++){
|
count = Long.parseLong(data.get(j).toString());
|
if(count>0){
|
List<?> rows=getQMOnlineCheck(orderBean,"",pageParams);
|
for(int i=0;i<rows.size();i++){
|
Object[] o = (Object[]) rows.get(i);
|
QMOnlineCheckBean oneBean =changeQMOnlineChecBean(o);
|
list.add(oneBean);
|
}
|
}
|
}
|
return new DataGrid(list,count);
|
} catch (Exception e) {
|
log.error("POVO转换异常", e);
|
}
|
|
return new DataGrid(list, 0L) ;
|
}
|
/**
|
* 过程检测(在线综合测试台)
|
* @author Rengj
|
*/
|
public List<?> 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<String, QMOnlineCheckBean> checkRepMap=new HashMap<>();
|
//不同工单
|
List<QMOnlineCheckBean> beans=new ArrayList<>();
|
List<List<SchWorkorderCraft>> fList =new ArrayList<List<SchWorkorderCraft>>();
|
//一个工单多批次
|
List<QMOnlineCheckBean> qCBatchList=null;
|
//多项检测项目
|
List<QMOnlineCheckBean> itemList=null;
|
//检测项目详细
|
List<QMOnlineCheckDetailBean> 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<SchWorkorderCraft> 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<QMOnlineCheckBean> 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();
|
}
|
/**
|
* <p>功能描述:查询详细(成品)</p>
|
*shisihai
|
*2016下午2:02:08
|
*/
|
@Override
|
public DataGrid queryProdDetailList(String pid, String orderType, PageParams pageParams) throws Exception {
|
// if(StringUtil.notNull(pid)){
|
// List<QMOnlineCheckDetailBean> list= new ArrayList<QMOnlineCheckDetailBean>();
|
// 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<QMProdCheckDetail> 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<QMFilterOnlineCheckDetail> 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;
|
}
|
|
/**
|
* <p>QMOnlineCheckBean赋值</p>
|
*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<schWcList.size();j++){
|
Object[] obj = (Object[])schWcList.get(j);
|
if(obj[3].toString().contains("长度")){
|
oc.setLenStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setLenUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setLenLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}else if(obj[3].toString().contains("圆周")){
|
oc.setCirStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setCirUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setCirLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}else if(obj[3].toString().contains("单支质量") || obj[3].toString().contains("重量") ){
|
oc.setWeightStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setWeightUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setWeightLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}else if(obj[3].toString().contains("硬度")){
|
oc.setHdStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setHdUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setHdLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}else if(obj[3].toString().contains("吸阻")){
|
oc.setXzStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setXzUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setXzLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
|
}else if(obj[3].toString().contains("总通风率") || obj[3].toString().contains("总透气度")){
|
oc.setVentsStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setVentsUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setVentsLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}else if(obj[3].toString().contains("圆度")){
|
oc.setRoundStandVal(Float.parseFloat("".equals(obj[0]) || obj[0]==null?"0":obj[0].toString()));
|
oc.setRoundUpperVal(Float.parseFloat("".equals(obj[1]) || obj[1]==null?"0":obj[1].toString()));
|
oc.setRoundLowerVal(Float.parseFloat("".equals(obj[2]) || obj[2]==null?"0":obj[2].toString()));
|
}
|
}
|
// 检验类型 1
|
if("1".equals(param[2].toString())){
|
sql = " select q1.moisture_content,q1.final_content,q1.first_telos,q1.two_telos,q1.three_telos,q1.four_telos,q1.five_telos ,Q1.AVG_TELOS,Q1.status,COMPACTION from qm_finished_add q1 where q1.qmocid = '"+param[0].toString()+"'";
|
List<?> 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;i<qmFiniList.size();i++){
|
Object[] obj = (Object[]) qmFiniList.get(i);
|
if(qmFiniList.size()>1){
|
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<param.length;i++){
|
// 班组赋值
|
String team= "".equals(param[5]) || param[5]==null?"":param[5].toString();
|
if("1".equals(team)){
|
team= "甲";
|
}else if("2".equals(team)){
|
team= "乙";
|
}else if("3".equals(team)){
|
team= "丙";
|
}else{
|
team="-";
|
}
|
String sampleType ="".equals(param[9]) || param[9]==null?"1":param[9].toString(); // 取样类型
|
if("1".equals(sampleType)){
|
sampleType= "人工取样";
|
}else if("2".equals(sampleType)){
|
sampleType= "自动取样";
|
}
|
//设备名称
|
String equipmentName=("".equals(param[4]) || param[4]==null)?"":param[4].toString();
|
if(equipmentName.indexOf("K03")>=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<rows.size();i++){
|
Object[] o = (Object[]) rows.get(i);
|
QMOnlineCheckBean oneBean =changeQMOnlineChecBean(o);
|
list.add(oneBean);
|
}
|
} catch (ParseException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
return list;
|
}
|
|
@LogAnno(operateType = "质检记录反馈MES")
|
@Override
|
public void sendMsgCP(String id,String param) {
|
//先将传来的多个id值先按","进行分割得到字符串的数组
|
//然后使用工具类方法将字符串数组转换成一个字符串,格式为sql中的"'XXX','XXX'",方便在in中使用
|
id=StringUtil.arrayToStringBySqlin(id.split(","));
|
String sql ="";
|
|
if("add".equals(param)){
|
sql = getProcessCheckSql(id,"add");
|
}else{
|
//此判断只会执行该行代码
|
//该sql是查询表中一条数据的部分字段的信息.对传来的几个id进行筛选
|
sql = getProcessCheckSql(id,"cp");
|
}
|
|
List<?> datas=qmOnlineCheckDaoI.queryBySql(sql);
|
Map<String, QMOnlineCheckBean> checkRepMap=new HashMap<>();
|
//不同工单
|
List<QMOnlineCheckBean> beans=new ArrayList<>();
|
//一个工单多批次
|
List<QMOnlineCheckBean> qCBatchList=null;
|
//多项检测项目
|
List<QMOnlineCheckBean> itemList=null;
|
//检测项目详细
|
List<QMOnlineCheckDetailBean> 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<SchWorkorderCraft> getSchWorkOrderCraft(String oid,String param){
|
List<SchWorkorderCraft> listCraft=new ArrayList<SchWorkorderCraft>();
|
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<Object> qmIds=null;
|
String sql ="";
|
try {
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
SysLog log =null;
|
for(int i=0;i<ids.length;i++){
|
log=new SysLog();
|
qmIds=new ArrayList<Object>();
|
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<Object> qmIds=null;
|
String sql ="";
|
try {
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
SysLog log =null;
|
for(int i=0;i<ids.length;i++){
|
log=new SysLog();
|
qmIds=new ArrayList<Object>();
|
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<Object> params = new ArrayList<Object>();
|
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<idsList.size();i++){
|
Object obj = idsList.get(i);
|
ids += obj +",";
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return ids;
|
}
|
/**
|
* 保存含水含末
|
* @author Rengj
|
* @throws ParseException
|
*/
|
@Override
|
public String insertQmFinished(QMFinishedAddTo bean) {
|
String result = "添加失败!";
|
try {
|
List<Object> obj = new ArrayList<Object>();
|
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<Object> temp = new ArrayList<Object>();
|
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<Object> params = new ArrayList<Object>();
|
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<Object> params = new ArrayList<Object>();
|
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<QMOnlineCheckHsYsdBean> list= new ArrayList<QMOnlineCheckHsYsdBean>();
|
List<?> data = qmOnlineCheckDaoI.queryBySql(sql);
|
long count = 0;
|
for(int j=0;j<data.size();j++){
|
count = Long.parseLong(data.get(j).toString());
|
if(count>0){
|
sql = this.joinSql(bean, "", pageParams);
|
List<?> rows = qmOnlineCheckDaoI.queryBySql(sql);
|
QMOnlineCheckHsYsdBean b =null;
|
String sts="";
|
for(int i=0;i<rows.size();i++){
|
Object[] o = (Object[]) rows.get(i);
|
sts = String.valueOf(o[10]);
|
/*if("0".equals(sts)){
|
sts = "未反馈";
|
}else if("2".equals(sts)){
|
sts = "质检员反馈";
|
}else if("3".equals(sts)){
|
sts = "已反馈";
|
}else if("4".equals(sts)){
|
sts = "班长回退";
|
}*/
|
b = new QMOnlineCheckHsYsdBean();
|
b.setId(String.valueOf(o[0]));
|
b.setBatchNo(String.valueOf(o[1]));
|
b.setUserName(String.valueOf(o[2]));
|
b.setEqp(String.valueOf(o[3]));
|
b.setOrderNumber(String.valueOf(o[4]));
|
b.setYsd(Float.parseFloat(String.valueOf(o[5])));
|
b.setNum(Integer.parseInt(String.valueOf(o[6])));
|
b.setMat(String.valueOf(o[7]));
|
b.setTime(String.valueOf(o[8]).substring(0,19));
|
b.setDate_(String.valueOf(o[9]).substring(0,10));
|
b.setSts(sts);
|
b.setShift(String.valueOf(o[11]));
|
b.setHsl("".equals(String.valueOf(o[12]))||String.valueOf(o[12])==null || "null".equals(String.valueOf(o[12]))?"-":String.valueOf(o[12]) );
|
b.setHsl2("".equals(String.valueOf(o[13]))||String.valueOf(o[13])==null || "null".equals(String.valueOf(o[13]))?"-":String.valueOf(o[13]) );
|
b.setCreateUserName("".equals(o[15]) || o[15]==null?"":o[15].toString());
|
b.setCreateUserTime(o[16]==null?null:DateUtil.strToDate(o[16].toString(),"yyyy-MM-dd HH:mm:ss"));
|
b.setUpdateUserName("".equals(o[17]) || o[17]==null?"":o[17].toString());
|
b.setUpdateUserTime(o[18]==null?null:DateUtil.strToDate(o[18].toString(),"yyyy-MM-dd HH:mm:ss"));
|
list.add(b);
|
}
|
}
|
}
|
return new DataGrid(list,count);
|
}
|
/**
|
* 拼接sql
|
* Rengj
|
*/
|
private String joinSql(QMOnlineCheckHsYsdBean bean,String param,PageParams pageParams){
|
int pageIndex=pageParams.getPage();
|
int rows=pageParams.getRows();
|
int sRow=(pageIndex-1)*rows;
|
int eRow=pageIndex*rows;
|
String sql = "";
|
if("count".equals(param)){
|
sql = "select count(*) from (";
|
}else{
|
sql = "select * from (";
|
}
|
sql += "select Q1.ID,Q1.BATCH_NO,(select name from sys_user where id=Q1.UID_) userName, "
|
+ " (select equipment_name from MD_EQUIPMENT where id=Q1.EQP) eqp,S1.CODE, "
|
+ " Q1.YSD,Q1.NUM_,(select name from md_mat where id = S1.MAT) mat,Q1.TIME,S1.DATE_ ,q1.sts,"
|
+ " (select name from md_shift where id = s1.shift) shift,hsl,hsl2,rownum as rowno "
|
+ " ,q1.CREATE_USER_NAME,q1.CREATE_USER_TIME,q1.UPDATE_USER_NAME,q1.UPDATE_USER_TIME "
|
+ " from QM_ONLINECHECK_HSLYSD q1,SCH_WORKORDER s1 where Q1.OID = S1.ID ";
|
if(!"".equals(bean.getEqp()) && bean.getEqp() !=null){
|
sql += " and q1.eqp = '"+bean.getEqp()+"'";
|
}
|
if(!"".equals(bean.getMat()) && bean.getMat() !=null){
|
sql += " and s1.mat = '"+bean.getMat()+"'";
|
}
|
if(!"".equals(bean.getDate_()) && bean.getDate_() !=null){
|
sql += " and to_char(s1.date_,'yyyy-MM-dd') >= '"+bean.getDate_()+"'";
|
}
|
if(!"".equals(bean.getDate2_()) && bean.getDate2_() !=null){
|
sql += " and to_char(s1.date_,'yyyy-MM-dd') <= '"+bean.getDate2_()+"'";
|
}
|
if(!"".equals(bean.getShift()) && bean.getShift() !=null){
|
sql += " and s1.shift='"+bean.getShift()+"'";
|
}
|
if("inspector".equals(bean.getParam()) && bean.getParam() !=null){
|
// sql += " and Q1.sts in ('0','4') ";
|
sql += " and Q1.sts in ('0','2') ";
|
}else{
|
sql += " and Q1.sts in ('2','3') ";
|
}
|
if(!"".equals(bean.getSts()) && bean.getSts() !=null){
|
sql += " and Q1.sts ='"+bean.getSts()+"'";
|
}
|
if("count".equals(param)){
|
sql += " )";
|
}else{
|
sql +=" and rownum <= '"+eRow+"' ) table_alias where table_alias.rowno > '"+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<QMOnlineCheckHsYsdBean> list= new ArrayList<QMOnlineCheckHsYsdBean>();
|
List<?> data = qmOnlineCheckDaoI.queryBySql(sql);
|
long count = 0;
|
for(int j=0;j<data.size();j++){
|
count = Long.parseLong(data.get(j).toString());
|
if(count>0){
|
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<dateRows.size();i++){
|
Object[] o = (Object[]) dateRows.get(i);
|
b = new QMOnlineCheckHsYsdBean();
|
b.setHsl(String.valueOf(o[1]));
|
b.setTime(o[2].toString().substring(0,19));
|
b.setId(String.valueOf(o[0]));
|
b.setMat("".equals(String.valueOf(o[3])) || "null".equals(String.valueOf(o[3]))?"":String.valueOf(o[3]) );
|
list.add(b);
|
}
|
}
|
}
|
return new DataGrid(list,count);
|
}
|
|
/**
|
* 压实端反馈MES
|
* Rengj
|
*/
|
@LogAnno(operateType = "压实端反馈MES")
|
@Override
|
public String sendYsdMsg(String id) {
|
String xml="";
|
String sql="";
|
String [] ids = id.split(",");
|
String result = "反馈失败!";
|
for(int i=0;i<ids.length;i++){
|
try {
|
sql = " select ysd,(select code from md_mat where id = s1.mat) MaterialCode , "
|
+" 3 as InspectionType,s1.code ,TO_CHAR(Q1.time,'yyyy-MM-dd HH24:mi:ss') Timestamp,"
|
+" q1.BATCH_NO SubBatchCode,Q1.NUM_ SampleNumber, "
|
+ " ( select parameter_code from SCH_WORKORDER_CRAFT where parameter_code like '%YSD%' and dcs_type='ROL' "
|
+ " and PARAMETER_SET_REVISION=s1.PARAMETER_SET_REVISION and rownum=1 ) as ysdCode, "
|
+ " ( select parameter_code from SCH_WORKORDER_CRAFT where parameter_code like '%HSL%' and dcs_type='ROL' "
|
+ " and PARAMETER_SET_REVISION=s1.PARAMETER_SET_REVISION and rownum=1 ) as hslCode,hsl,hsl2 "
|
+ " from QM_ONLINECHECK_HSLYSD q1,SCH_WORKORDER s1 where Q1.OID= S1.ID "
|
+" and q1.id= '"+ids[i]+"'";
|
List<?> qmoutList = qmProdCheckDaoI.queryBySql(sql);
|
for(int j=0;j<qmoutList.size();j++){
|
Object[] obj =(Object[]) qmoutList.get(j);
|
Document document;
|
document=DocumentHelper.createDocument();
|
//Element root = document.addElement("xml");
|
Element dataset = document.addElement("dataset");
|
Element body = dataset.addElement("data");
|
Element materialCode =body.addElement("MaterialCode");
|
materialCode.setText(obj[1].toString());
|
Element inspectionType=body.addElement("InspectionType");
|
inspectionType.setText(obj[2].toString());
|
Element orderNumber=body.addElement("OrderNumber");
|
orderNumber.setText(obj[3].toString());
|
Element qCBatchs=body.addElement("QCBatchs");
|
qCBatchs.setText("");
|
Element item = body.addElement("Item");
|
Element timestamp=item.addElement("Timestamp");
|
timestamp.setText(obj[4].toString());
|
Element SubBatchCode=item.addElement("SubBatchCode");
|
SubBatchCode.setText(obj[5].toString());
|
Element sampleType=item.addElement("SampleType");
|
sampleType.setText("1");
|
Element sampleNumber=item.addElement("SampleNumber");
|
sampleNumber.setText(obj[6].toString());
|
|
Element check = item.addElement("CheckItems");
|
check.addElement("ParameterCode").setText(StringUtil.convertObjToString(obj[7]));
|
check.addElement("AverageValue").setText(StringUtil.convertObjToString(obj[0]));
|
check.addElement("SDValue").setText("0");
|
check.addElement("MaxValue").setText(StringUtil.convertObjToString(obj[0]));
|
check.addElement("MinValue").setText(StringUtil.convertObjToString(obj[0]));
|
Element detail =check.addElement("Detail");
|
detail.addElement("SeqNo").setText("1");
|
detail.addElement("CheckValue").setText(StringUtil.convertObjToString(obj[0]));
|
String hsl = StringUtil.convertObjToString(obj[9]);
|
String hsl2 = StringUtil.convertObjToString(obj[10]);
|
if(!"".equals(hsl) || !"".equals(hsl2)){
|
double avgHsl =0;
|
double maxHsl =0;
|
double minHsl =0;
|
int num =0;
|
if(!"".equals(hsl) && !"".equals(hsl2)){
|
avgHsl = (Double.parseDouble(hsl)+Double.parseDouble(hsl2))/2;
|
|
if(Double.parseDouble(hsl)>Double.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<ids.length;i++){
|
String sql = "delete from QM_ONLINECHECK_HSLYSD where id = '"+ids[i]+"'";
|
qmProdCheckDaoI.updateBySql(sql,null);
|
log=new SysLog();
|
log.setSys("PMS");
|
log.setName(sessionInfo.getUser().getName());//操作人
|
if("hsl".equals(param)){
|
log.setOptname("过程巡检外观含水率数据删除");//操作名或路径
|
}else{
|
log.setOptname("过程巡检外观压实端位置数据删除");//操作名或路径
|
}
|
log.setParams("删除的数据ID:"+ids[i]);//参数
|
log.setSuccess("操作成功");
|
log.setDate(new Date());
|
log.setDel(0L);
|
logdao.save(log);
|
}
|
result ="删除成功!";
|
} catch (Exception e) {
|
|
}
|
return result;
|
}
|
/**
|
* 压实端反馈班长/回退质检员
|
* Rengj
|
*/
|
@LogAnno(operateType = "压实端位置反馈班长/回退质检员")
|
@Override
|
public String sendMonitorOrInspector(String id, String param) {
|
String [] ids = id.split(",");
|
String result ="反馈失败!";
|
//更新修改人与修改时间
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
String updateUserName = sessionInfo.getUser().getName();
|
try {
|
if("inspector".equals(param)){
|
for(int i=0;i<ids.length;i++){
|
String sql = "update QM_ONLINECHECK_HSLYSD set sts=2,UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id = '"+ids[i]+"'";
|
qmProdCheckDaoI.updateBySql(sql,null);
|
}
|
result ="反馈班长成功";
|
}else{
|
for(int i=0;i<ids.length;i++){
|
String sql = "update QM_ONLINECHECK_HSLYSD set sts=0,UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id = '"+ids[i]+"'";
|
qmProdCheckDaoI.updateBySql(sql,null);
|
}
|
result ="回退质检员成功";
|
}
|
} catch (Exception e) {
|
|
}
|
return result;
|
}
|
@Override
|
public String sendMsgBz(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,"wl");
|
}
|
List<?> datas=qmOnlineCheckDaoI.queryBySql(sql);
|
if(datas!=null && datas.size()>0){
|
Map<String, QMOnlineCheckBean> checkRepMap=new HashMap<>();
|
//不同工单
|
List<QMOnlineCheckBean> beans=new ArrayList<>();
|
List<List<SchWorkorderCraft>> fList =new ArrayList<List<SchWorkorderCraft>>();
|
//一个工单多批次
|
List<QMOnlineCheckBean> qCBatchList=null;
|
//多项检测项目
|
List<QMOnlineCheckBean> itemList=null;
|
//检测项目详细
|
List<QMOnlineCheckDetailBean> 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<SchWorkorderCraft> 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<String, QMOnlineCheckBean> checkRepMap=new HashMap<>();
|
//不同工单
|
List<QMOnlineCheckBean> beans=new ArrayList<>();
|
List<List<SchWorkorderCraft>> fList =new ArrayList<List<SchWorkorderCraft>>();
|
//一个工单多批次
|
List<QMOnlineCheckBean> qCBatchList=null;
|
//多项检测项目
|
List<QMOnlineCheckBean> itemList=null;
|
//检测项目详细
|
List<QMOnlineCheckDetailBean> 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<SchWorkorderCraft> 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<idsList.size();i++){
|
Object obj = idsList.get(i);
|
ids += obj +",";
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return ids;
|
}
|
/**
|
* 查询压实端等质检数据
|
* @author Rengj
|
* @throws ParseException
|
*/
|
@Override
|
public QMFinishedAddTo queryFisaList(String ids) {
|
QMFinishedAddTo qt=new QMFinishedAddTo();;
|
String sql = "select * from qm_finished_add where qmocid='"+ids+"'";
|
List<?> fisList = qmOnlineCheckDaoI.queryBySql(sql);
|
for(int j=0;j<fisList.size();j++){
|
Object[] obj =(Object[]) fisList.get(j);
|
qt.setId(StringUtil.convertObjToString(obj[0]));
|
qt.setMoistureContent(StringUtil.convert2Float(StringUtil.convertObjToString(obj[2])));
|
qt.setFinalContent(StringUtil.convert2Float(StringUtil.convertObjToString(obj[3])));
|
qt.setFirstTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[4])));
|
qt.setTwoTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[5])));
|
qt.setThreeTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[6])));
|
qt.setFourTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[7])));
|
qt.setFiveTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[8])));
|
qt.setAvgTelos(StringUtil.convert2Float(StringUtil.convertObjToString(obj[9])));
|
qt.setCompaction(StringUtil.convertObjToString(obj[10]));
|
}
|
return qt;
|
}
|
/**
|
* 修改检测时间
|
* @author Rengj
|
*
|
*/
|
@LogAnno(operateType = "修改检测时间")
|
@Override
|
public String updateCheckTimes(String stim, String ids) {
|
String result = "";
|
//更新修改人与修改时间
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
String updateUserName = sessionInfo.getUser().getName();
|
try {
|
String sql = "update QM_ONLINECHECK set timestamp_ = to_date('"+stim+"','yyyy-MM-dd hh24:mi:ss'),UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id='"+ids+"'";
|
qmOnlineCheckDaoI.updateBySql(sql,null);
|
result ="保存成功!";
|
} catch (Exception e) {
|
result ="保存成失败!";
|
}
|
return result;
|
}
|
/**
|
* 含水追加到机台
|
* @author Rengj
|
*
|
*/
|
@LogAnno(operateType = "含水追加到机台")
|
@Override
|
public String additionalProd(String id,String param) {
|
String result ="";
|
try {
|
String sql ="select hsl,mat from qm_onlinecheck_hslysd where id ='"+id+"'";
|
List<?> hslList = qmOnlineCheckDaoI.queryBySql(sql);//得到含水率
|
Object[] o = (Object[]) hslList.get(0);
|
if(hslList.size()>0){
|
//通过当前系统时间,得到工厂日期信息
|
StringBuffer sb=new StringBuffer();
|
List<Object> params = new ArrayList<Object>();
|
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<idsList.size();i++){
|
Object obj = idsList.get(i);
|
temp +=ObjectUtils.toString(obj)+",";
|
}
|
String[] ids = temp.split(",");
|
//更新修改人与修改时间
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
String updateUserName = sessionInfo.getUser().getName();
|
for(int j=0;j<ids.length;j++){//根据压实端Id添加含水率
|
if("1".equals(param)){
|
sql = " update qm_onlinecheck_hslysd set hsl = '"+o[0]+"',UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id='"+ids[j]+"' and mat = '"+o[1]+"'";
|
}else{
|
sql = " update qm_onlinecheck_hslysd set hsl2 = '"+o[0]+"',UPDATE_USER_NAME = '"+updateUserName+"',UPDATE_USER_TIME = sysdate where id='"+ids[j]+"' and mat = '"+o[1]+"'";
|
}
|
qmOnlineCheckDaoI.updateBySql(sql, null);
|
}
|
|
}
|
}
|
result = "追加含水率到机台成功!";
|
} catch (Exception e) {
|
result = "追加含水率到机台失败!";
|
e.printStackTrace();
|
}
|
return result;
|
}
|
|
/***
|
* [功能说明]:成品含水记录查询 反馈MES
|
* @author wanchanghuang
|
* @date 2017年7月12日9:34:53
|
* */
|
@Override
|
public void sendMESToData(String id, String param) {
|
id=id.replaceAll(",", "','");
|
//查询选中的数据,含水含末数据
|
//通过数据查询含水率工艺标准
|
//封装XML,反馈MES
|
StringBuffer sql=new StringBuffer(100);
|
sql.append(" ");
|
sql.append(" SELECT ");
|
sql.append(" a.ID,a.materialcode,a.inspectiontype,a.ordernumber,a.team,to_char(a.TIMESTAMP_,'yyyy-MM-dd hh24:mi:ss') as date_,a.SUBBATCHCODE, ");
|
sql.append(" a.SAMPLENUMBER,b.MOISTURE_CONTENT,b.FINAL_CONTENT,b.FIRST_TELOS,b.TWO_TELOS,b.THREE_TELOS,b.FOUR_TELOS,b.FIVE_TELOS,b.AVG_TELOS,b.COMPACTION ");
|
sql.append(" FROM QM_ONLINECHECK a, QM_FINISHED_ADD b ");
|
sql.append(" where b.qmocid=a.id and nvl(b.status,0) in (0) ");
|
sql.append(" and a.id in('"+id+"') ");
|
List<Object> list=(List<Object>) 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<dbVal.length;i++){
|
Detail=Item.addElement("Detail");
|
SeqNo=Detail.addElement("SeqNo");
|
SeqNo.setText(i.toString());
|
CheckValue=Detail.addElement("CheckValue");
|
CheckValue.setText(String.valueOf(dbVal[i]) );
|
}
|
/**
|
* 含水率
|
*
|
* */
|
Element Item2=QCBatchs.addElement("Item");
|
Element ParameterCode2=Item2.addElement("ParameterCode");
|
ParameterCode2.setText(getSwkCByParam(date,matCode,shiftId,"HSL") );
|
//平均值
|
Element AverageValue2=Item2.addElement("AverageValue");
|
AverageValue2.setText(StringUtil.convertObjToString(temp[8]) );
|
//SD值
|
Element SDValue2=Item2.addElement("SDValue");
|
SDValue2.setText("0");
|
//最大值
|
Element MaxValue2=Item2.addElement("MaxValue");
|
MaxValue2.setText(StringUtil.convertObjToString(temp[8]) );
|
//最小值
|
Element MinValue2=Item2.addElement("MinValue");
|
MinValue2.setText(StringUtil.convertObjToString(temp[8]) );
|
/**
|
* 含末率
|
*
|
* */
|
Element Item3=QCBatchs.addElement("Item");
|
Element ParameterCode3=Item3.addElement("ParameterCode");
|
ParameterCode3.setText(getSwkCByParam(date,matCode,shiftId,"HML") );
|
//平均值
|
Element AverageValue3=Item3.addElement("AverageValue");
|
AverageValue3.setText(StringUtil.convertObjToString(temp[9]) );
|
//SD值
|
Element SDValue3=Item3.addElement("SDValue");
|
SDValue3.setText("0");
|
//最大值
|
Element MaxValue3=Item3.addElement("MaxValue");
|
MaxValue3.setText(StringUtil.convertObjToString(temp[9]) );
|
//最小值
|
Element MinValue3=Item3.addElement("MinValue");
|
MinValue3.setText(StringUtil.convertObjToString(temp[9]) );
|
|
/**
|
* 压实端
|
*
|
* */
|
Element Item4=QCBatchs.addElement("Item");
|
Element ParameterCode4=Item4.addElement("ParameterCode");
|
ParameterCode4.setText(getSwkCByParam(date,matCode,shiftId,"YSD") );
|
//平均值
|
Element AverageValue4=Item4.addElement("AverageValue");
|
AverageValue4.setText(StringUtil.convertObjToString(temp[16]) );
|
//SD值
|
Element SDValue4=Item4.addElement("SDValue");
|
SDValue4.setText("0");
|
//最大值
|
Element MaxValue4=Item4.addElement("MaxValue");
|
MaxValue4.setText(StringUtil.convertObjToString(temp[16]) );
|
//最小值
|
Element MinValue4=Item4.addElement("MinValue");
|
MinValue4.setText(StringUtil.convertObjToString(temp[16]) );
|
|
String xml=document.asXML();
|
//System.out.println("\n"+xml);
|
/**向MES发送XML*/
|
//----SendMessageClient.SendMessageToMes(xml,"DASSendQualityData");
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"[成品]含水含末端部反馈", 1, xml);
|
|
}
|
|
/**修改含水含末端部反馈状态*/
|
qmProdCheckDaoI.updateBySql("update QM_FINISHED_ADD set status = 1 where qmocid in ('"+id+"')", null);
|
}
|
}
|
/***
|
* [功能说明]:成型在线甘油施加量反馈mes
|
* @author bsw
|
* @date 2018年3月6日
|
* */
|
@LogAnno(operateType = "成型在线甘油施加量反馈mes")
|
@Override
|
public void sendGYSJLToMES(String id, String param) {
|
id=id.replaceAll(",", "','");
|
//查询选中的数据,含水含末数据
|
//通过数据查询含水率工艺标准
|
//封装XML,反馈MES
|
StringBuffer sql=new StringBuffer(100);
|
sql.append(" ");
|
sql.append(" select a.gy1,a.gy2,a.res,to_char(a.chk_date,'yyyy-MM-dd hh24:mi:ss') as chk_date,b.code batchCode, c.code ");
|
sql.append(" from QM_CXCHECK_ADD a join SCH_WORKORDER b on a.QMOCID = b.id ");
|
sql.append(" join md_mat c on b.mat = c.id ");
|
sql.append(" where nvl(a.status,0) in (0) and a.id in ('"+id+"') ");
|
List<Object> list=(List<Object>) 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])<StringUtil.converObj2Double(temp[1])?StringUtil.converObj2Double(temp[0])+"":StringUtil.converObj2Double(temp[1])+"" );
|
Element Detail = check.addElement("Detail");
|
Element SeqNo = Detail.addElement("SeqNo");
|
SeqNo.setText("0");
|
Element CheckValue = Detail.addElement("CheckValue");
|
CheckValue.setText(StringUtil.convertObjToString(temp[0]));
|
Element Detail1 = check.addElement("Detail");
|
Element SeqNo1 = Detail1.addElement("SeqNo");
|
SeqNo1.setText("1");
|
Element CheckValue1 = Detail1.addElement("CheckValue");
|
CheckValue1.setText(StringUtil.convertObjToString(temp[1]));
|
|
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);
|
}
|
}
|
|
/***
|
* [功能说明]:成型成品含水率反馈mes
|
* @author bsw
|
* @date 2018年3月6日
|
* */
|
@LogAnno(operateType = "成型成品含水率反馈mes")
|
@Override
|
public void sendHSLToMES(String id, String param) {
|
id=id.replaceAll(",", "','");
|
//查询选中的数据,含水含末数据
|
//通过数据查询含水率工艺标准
|
//封装XML,反馈MES
|
StringBuffer sql=new StringBuffer(100);
|
sql.append(" ");
|
sql.append(" select a.wat,b.materialcode,b.inspectiontype,b.ordernumber,b.qcbatchs, ");
|
sql.append(" to_char(b.timestamp_,'yyyy-MM-dd hh24:mi:ss') as timestamp_,b.subbatchcode,b.samplenumber,b.sampletype ");
|
sql.append(" from QM_CXCHECK_ADD a join QM_ONLINECHECK b on qmocid = b.id ");
|
sql.append(" where nvl(a.status,0) in (0) and a.id in ('"+id+"') ");
|
List<Object> list=(List<Object>) 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<Object> list=(List<Object>) 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<Object> list=(List<Object>) 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<Object> list=(List<Object>) 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<QmCxOnlineCHKGY> list= new ArrayList<>();
|
try {
|
List<?> data;
|
data=getQmCxOnlineCHKGY(orderBean,"count",pageParams);
|
long count = 0;
|
for(int j=0;j<data.size();j++){
|
count = Long.parseLong(data.get(j).toString());
|
if(count>0){
|
List<?> rows=getQmCxOnlineCHKGY(orderBean,"",pageParams);
|
for(int i=0;i<rows.size();i++){
|
Object[] o = (Object[]) rows.get(i);
|
QmCxOnlineCHKGY oneBean =changeQmCxOnlineCHKGY(o);
|
list.add(oneBean);
|
}
|
}
|
}
|
return new DataGrid(list,count);
|
} catch (Exception e) {
|
log.error("POVO转换异常", e);
|
}
|
|
return new DataGrid(list, 0L) ;
|
}
|
private QmCxOnlineCHKGY changeQmCxOnlineCHKGY(Object[] o) {
|
QmCxOnlineCHKGY bean = new QmCxOnlineCHKGY();
|
bean.setCode(StringUtil.convertObjToString(o[0]));
|
bean.setBth(StringUtil.convertObjToString(o[1]));
|
bean.setShift(StringUtil.convertObjToString(o[2]));
|
bean.setTeam(StringUtil.convertObjToString(o[3]));
|
bean.setEquipment(StringUtil.convertObjToString(o[4]));
|
bean.setMat(StringUtil.convertObjToString(o[5]));
|
bean.setDate(o[6]==null||"".equals(o[6])?null:StringUtil.convertObjToString(o[6]).substring(0,19));
|
bean.setId(StringUtil.convertObjToString(o[9]));
|
bean.setGy1(StringUtil.converObj2Double("".equals(o[7])||o[7]==null?0:o[7]));
|
bean.setGy2(StringUtil.converObj2Double("".equals(o[8])||o[8]==null?0:o[8]));
|
bean.setStatus(StringUtil.convertObjToString(o[10]));
|
bean.setCreateUserName(StringUtil.convertObjToString(o[11]));
|
bean.setCreateUserTime(DateUtil.formatStringToDate(StringUtil.convertObjToString(o[12]),"yyyy-MM-dd HH:mm:ss"));
|
bean.setUpdateUserName(StringUtil.convertObjToString(o[13]));
|
bean.setUpdateUserTime(DateUtil.formatStringToDate(StringUtil.convertObjToString(o[14]),"yyyy-MM-dd HH:mm:ss"));
|
return bean;
|
}
|
private List<?> 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<check.getSampleNumber()+1;i++){
|
detail = new QMOnlineCheckDetail();
|
detail.setPid(id);
|
detail.setId(UUID.randomUUID().toString().replace("-", ""));
|
detail.setNum(i);
|
qmOnlineCheckDetailDaoI.save(detail);
|
}
|
}
|
}
|
@LogAnno(operateType = "成型成品质量检测记录增加")
|
@Override
|
public void addorder1(QMOnlineCheckBean bean) {
|
|
String sql = "select a.code orderCode,a.team,c.code,a.type,b.work_center,a.shift 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());
|
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<check.getSampleNumber()+1;i++){
|
detail = new QMOnlineCheckDetail();
|
detail.setPid(id);
|
detail.setId(UUID.randomUUID().toString().replace("-", ""));
|
detail.setNum(i);
|
qmOnlineCheckDetailDaoI.save(detail);
|
}
|
}
|
|
}
|
@LogAnno(operateType = "成品物理指标记录增加")
|
@Override
|
public void addorder2(QMOnlineCheckBean bean) {
|
String sql = "select a.team,b.code from SCH_WORKORDER a join md_mat b on a.mat =b.id where to_char(a.date_,'yyyy-mm-dd') = ? and a.shift = ? and a.mat=?";
|
QMOnlineCheck check = new QMOnlineCheck();
|
List<?> 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<check.getSampleNumber()+1;i++){
|
detail = new QMOnlineCheckDetail();
|
detail.setPid(id);
|
detail.setId(UUID.randomUUID().toString().replace("-", ""));
|
detail.setNum(i);
|
qmOnlineCheckDetailDaoI.save(detail);
|
}*/
|
//手工烟 无工单
|
}else {
|
MdMat mat = matDao.findById(MdMat.class, bean.getOrderNumber());
|
String id = UUID.randomUUID().toString().replace("-", "");
|
check.setId(id);
|
check.setMaterialCode(mat.getCode());
|
check.setInspectionType(bean.getInspectionType());
|
Date date = new Date();
|
String time = new SimpleDateFormat("yyMMdd").format(date);
|
check.setOrderNumber(time+ mat.getCode()+"#"+bean.getShift()+bean.getTeam());
|
|
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(bean.getTeam());
|
check.setSubBatchCode("A04"+nowtime+MathUtil.getRandomInt(10, 99));
|
FillUserInfoUtil.fillCreateUserInfo(check,request);
|
qmOnlineCheckDaoI.save(check);
|
|
}
|
|
}
|
@Override
|
public String getorderRoller(WorkOrderBean bean) {
|
String sql = "select b.id,b.name from SCH_WORKORDER a join md_mat b on a.mat =b.id where to_char(a.date_,'yyyy-mm-dd') = ? and a.shift = ? and a.type = 1 group by b.id,b.name";
|
List<?> 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();
|
}
|
|
|
}
|