package com.shlanbao.tzsc.base.interceptor;
|
|
import java.io.BufferedWriter;
|
import java.io.File;
|
import java.io.FileWriter;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import com.shlanbao.tzsc.pms.sch.workorder.beans.*;
|
import org.dom4j.Document;
|
import org.dom4j.DocumentHelper;
|
import org.dom4j.Element;
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import com.shlanbao.tzsc.base.dao.QmProdCheckDaoI;
|
import com.shlanbao.tzsc.base.mapping.EqmFixRec;
|
import com.shlanbao.tzsc.base.mapping.EqmTrouble;
|
import com.shlanbao.tzsc.base.mapping.EqmWheelCovelParam;
|
import com.shlanbao.tzsc.base.mapping.EqmWheelCovelPlanInfo;
|
import com.shlanbao.tzsc.base.mapping.SchWorkorder;
|
import com.shlanbao.tzsc.base.mapping.SchWorkorderCraft;
|
import com.shlanbao.tzsc.data.webservice.client.SendMessageClient;
|
import com.shlanbao.tzsc.pms.equ.assessment.EqmAssessment;
|
import com.shlanbao.tzsc.pms.equ.assessment.EqmWkshopAssessmentBean;
|
import com.shlanbao.tzsc.pms.equ.overhaul.beans.EqmCallServiceBean;
|
import com.shlanbao.tzsc.pms.equ.overhaul.beans.EqmServiceSparePartBean;
|
import com.shlanbao.tzsc.pms.md.eqp.beans.EquipmentsBean;
|
import com.shlanbao.tzsc.pms.md.fixCode.beans.FixCodeBean;
|
import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QMOnlineCheckBean;
|
import com.shlanbao.tzsc.pms.qm.onlineCheck.bean.QMOnlineCheckDetailBean;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmOutWardBatchMainInfo;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmOutWardFaultInfo;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmWardMainInfo;
|
import com.shlanbao.tzsc.utils.params.SysEqpTypeBase;
|
import com.shlanbao.tzsc.utils.tools.ApplicationContextUtil;
|
import com.shlanbao.tzsc.utils.tools.DateUtil;
|
import com.shlanbao.tzsc.utils.tools.StringUtil;
|
|
|
/**
|
* [类说明]:存放封装XML数据并反馈MES
|
* @date 2016年6月15日15:12:03
|
* @author Wanchanghuang
|
* @updateName
|
* @updateTime
|
*
|
* */
|
public class WorkOrderStatChangeInterceptor {
|
//定义静态变量
|
private static WorkOrderStatChangeInterceptor instance = null;
|
@Autowired
|
private QmProdCheckDaoI qmProdCheckDaoI;
|
public static WorkOrderStatChangeInterceptor getInstance(){
|
if (instance == null){
|
instance = new WorkOrderStatChangeInterceptor();
|
}
|
return instance;
|
}
|
|
|
/**
|
* [功能说明]:卷包成型质量外观检验数据
|
* 缺陷代码: PKG001CD 长度
|
* PKG002YZ 圆周
|
* PKG005YD 硬度
|
* PKG006XZ 吸阻
|
* 单只质量
|
* 圆度
|
* 总通风率
|
* shisihai
|
* */
|
public void dasSendQualityCheck(List<QMOnlineCheckBean> beans,List<List<SchWorkorderCraft>> fList,String id,String param){
|
//通过:牌号,工单号,版本号,类型(1-成品 0-卷包烟机) ,查询最新工艺批次
|
String olid="";
|
String xml="";
|
int paramNum =0;
|
for (int k=0;k<beans.size();k++) {
|
List<SchWorkorderCraft> faultList = fList.get(k);
|
QMOnlineCheckBean bean1 = beans.get(k);
|
try {
|
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(bean1.getMaterialCode());
|
Element InspectionType=body.addElement("InspectionType");
|
InspectionType.setText(StringUtil.convertObj(bean1.getInspectionType()));
|
Element CheckList=body.addElement("CheckList");
|
CheckList.setText("1");
|
Element OrderNumber=body.addElement("OrderNumber");
|
OrderNumber.setText(bean1.getOrderNumber());
|
//多批次
|
List<QMOnlineCheckBean> bean2s=bean1.getqCBatchList();
|
for (QMOnlineCheckBean bean2 : bean2s) {
|
olid+=bean2.getId()+",";
|
// Element QCBatchs=body.addElement("QCBatchs");
|
Element item =body.addElement("item");
|
Element Timestamp=item.addElement("Timestamp");
|
Timestamp.setText(bean2.getTimestamp_());
|
Element SubBatchCode=item.addElement("SubBatchCode");
|
SubBatchCode.setText(bean2.getSubBatchCode());
|
Element SampleNumber=item.addElement("SampleNumber");
|
SampleNumber.setText(StringUtil.convertObjToString(bean2.getSampleNumber()));
|
Element SampleType=item.addElement("SampleType");
|
SampleType.setText(StringUtil.convertObjToString(bean2.getSampleType()));
|
if("add".equals(param)){
|
String[] ids = id.split(",");
|
String sql = "select q1.moisture_content,q1.compaction from qm_finished_add q1 where q1.qmocid = "+ids[paramNum].toString();
|
if(null==qmProdCheckDaoI){
|
qmProdCheckDaoI = ApplicationContextUtil.getBean(QmProdCheckDaoI.class);
|
}
|
List<?> listQfa= qmProdCheckDaoI.queryBySql(sql.toString());
|
List<Object> list = new ArrayList<Object>();
|
if(listQfa.size()>0){
|
for(Object o:listQfa){
|
Object[] temp=(Object[]) o;
|
list.add(temp);
|
|
}
|
}
|
int num =0;
|
if(listQfa.size()>0){
|
for(Object o:listQfa){
|
Object[] temp=(Object[]) o;
|
num++;
|
if(num>1)
|
continue;
|
for(int k2=0;k2<temp.length;k2++){
|
String p = "";
|
for(int j=0;j<list.size();j++){//获取具体数值比大小
|
Object[] ob = (Object[]) list.get(j);
|
p = p + ob[k2].toString()+",";
|
}
|
String[] x = p.split(",");
|
float min,max,avg = 0;
|
min=max=Float.parseFloat(x[0].toString());
|
for(int i=0;i<x.length;i++)
|
{
|
if(Float.parseFloat(x[i].toString())>max) // 判断最大值
|
max=Float.parseFloat(x[i].toString());
|
if(Float.parseFloat(x[i].toString())<min) // 判断最小值
|
min=Float.parseFloat(x[i].toString());
|
avg = (max+min)/x.length;//计算平均值
|
}
|
Element check=null;
|
Element ParameterCode=null;
|
Element AverageValue=null;
|
Element SDValue=null;
|
Element MaxValue=null;
|
Element MinValue=null;
|
check=item.addElement("CheckItems");
|
ParameterCode=check.addElement("ParameterCode");
|
AverageValue=check.addElement("AverageValue");
|
SDValue=check.addElement("SDValue");
|
MaxValue=check.addElement("MaxValue");
|
MinValue=check.addElement("MinValue");
|
switch (k2) {
|
case 0:
|
ParameterCode.setText("HSL");
|
AverageValue.setText(String.valueOf(avg));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(max));
|
MinValue.setText(String.valueOf(min));
|
addCheckDetail(null,list, check,k,0);
|
break;
|
case 1:
|
ParameterCode.setText("XXX");
|
AverageValue.setText(String.valueOf(avg));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(max));
|
MinValue.setText(String.valueOf(min));
|
addCheckDetail(null,list, check,k,0);
|
break;
|
|
}
|
|
}
|
}
|
}else{
|
//异常数据记录接口日志
|
PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈OID", 0, "通过qmocid"+id+"不能查询到添加的含水含末率;sql="+sql.toString());
|
//不能查询到工艺标准,直接跳出
|
continue;
|
}
|
}else{
|
/**
|
* 自检数据自动反馈
|
*
|
* */
|
//检测项目
|
List<QMOnlineCheckBean> bean3s=bean2.getItemList();
|
int i=-1;
|
for(SchWorkorderCraft ft:faultList){
|
Element check=item.addElement("CheckItems");
|
Element ParameterCode=check.addElement("ParameterCode");
|
Element AverageValue=check.addElement("AverageValue");
|
Element SDValue=check.addElement("SDValue");
|
Element MaxValue=check.addElement("MaxValue");
|
Element MinValue=check.addElement("MinValue");
|
for (QMOnlineCheckBean b3 : bean3s) {
|
List<QMOnlineCheckDetailBean> detailList=b3.getDetailList();
|
//最多7个检测项
|
i=Integer.parseInt(ft.getOrdCode());
|
int node =0;
|
if(i==0 && ("0.0".equals(StringUtil.convertObjToString(b3.getWeightMax())))){
|
node++;
|
}
|
if(i==1 && ("0.0".equals(StringUtil.convertObjToString(b3.getCirAvg())))){
|
node++;
|
}
|
if(i==2 && ("0.0".equals(StringUtil.convertObjToString(b3.getRoundAvg())))){
|
node++;
|
}
|
if(i==3 && ("0.0".equals(StringUtil.convertObjToString(b3.getLenAvg())))){
|
node++;
|
}
|
if(i==4 && ("0.0".equals(StringUtil.convertObjToString(b3.getXzAvg())))){
|
node++;
|
}
|
if(i==5 && ("0.0".equals(StringUtil.convertObjToString(b3.getVentsAvg())))){
|
node++;
|
}
|
if(i==6 && ("0.0".equals(StringUtil.convertObjToString(b3.getHdAvg())))){
|
node++;
|
}
|
if(i==-1){
|
item.remove(check);
|
check.remove(ParameterCode);
|
check.remove(AverageValue);
|
check.remove(SDValue);
|
check.remove(MaxValue);
|
check.remove(MinValue);
|
continue;
|
}
|
if(node==1){
|
item.remove(check);
|
check.remove(ParameterCode);
|
check.remove(AverageValue);
|
check.remove(SDValue);
|
check.remove(MaxValue);
|
check.remove(MinValue);
|
continue;
|
}
|
switch(i){
|
case 0:
|
//重量
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("WEIGHT", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getWeightAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getWeightSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getWeightMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getWeightMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 1:
|
//圆周
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("CIR", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getCirAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getCirSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getCirMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getCirMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 2:
|
//圆度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("ROUND", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getRoundAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getRoundSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getRoundMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getRoundMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 3:
|
//长度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("LEN", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getLenAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getLenSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getLenMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getLenMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 4:
|
//吸阻
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("XZ", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getXzAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getXzSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getXzMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getXzMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 5:
|
//总通风率
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("Vents", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getVentsAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getVentsSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getVentsMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getVentsMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
case 6:
|
//硬度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("HD", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(ft.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getHdAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getHdSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getHdMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getHdMin()));
|
addCheckDetail(detailList,null,check,i,0);
|
break;
|
}
|
|
}
|
}
|
}
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
|
SendMessageClient.SendMsgToSPCValue(xml); //重复冗余数据
|
|
//更改状态
|
PMSXmlDataInterceptor.getInstance().updateQmOLinkCheck(olid,param);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈", 1, xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-失败 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈", 0, xml,e.getMessage());
|
}
|
paramNum++;
|
}
|
}
|
|
/**
|
* [功能说明]:成品,成型成品
|
*
|
* */
|
public void dasSendQualityCheckCP(List<QMOnlineCheckBean> beans,String param,String id){
|
//查询工艺批次号得到详细
|
String xml="";
|
List<SchWorkorderCraft> listCraft=new ArrayList<SchWorkorderCraft>();
|
SchWorkorderCraft skcf=null;
|
String olid="";
|
int paramNum =0;
|
for (QMOnlineCheckBean bean1 : beans) {
|
try {
|
/**
|
* 170410123457#11
|
* 成型成品,通过工单ID关联工地那表得到工艺标准批次号
|
* 在通过工艺标准批次号得到工艺标准详细
|
*
|
* */
|
//获取工单号
|
final String oid=bean1.getOrderNumber();
|
final String batchs = bean1.getqCBatchs();
|
//得到日期,牌号,班次
|
final String date= batchs.substring(0, 4)+"-"+batchs.substring(4, 6)+"-"+batchs.substring(6, 8);
|
final String matCode=oid.substring(6, oid.indexOf("#"));
|
//String shiftId=oid.substring( oid.indexOf("#")+1,oid.indexOf("#")+2);
|
final String itype=bean1.getInspectionType()==1?"CPJ":bean1.getInspectionType()==2?"CXCP":"";
|
//1-成品 2-成型成品
|
/* if(bean1.getInspectionType()==1){
|
itype="CPJ";
|
}else if(bean1.getInspectionType()==2){
|
itype="CXCP";
|
}*/
|
StringBuffer sb=new StringBuffer(100);
|
/*sb.append(" select cf.ORD_CODE,cf.PARAMETER_CODE From ( ");
|
sb.append(" select parameter_set_revision,mat,(select EQUIPMENT_name From MD_EQUIPMENT where id=eqp) as eqpName ");
|
sb.append(" from SCH_WORKORDER ");
|
sb.append(" where to_char(date_,'yyyy-MM-dd')='"+date+"' and del=0 and shift='"+shiftId+"' ");
|
sb.append(" ) t left join ");
|
//sb.append(" (select * from SCH_WORKORDER_CRAFT where del=0 and param_type=1 and pcp='"+bean1.getInspectionType()+"' and dcs_type='"+itype+"' ) cf on t.PARAMETER_SET_REVISION=cf.PARAMETER_SETREVISION ");
|
sb.append(" (select * from SCH_WORKORDER_CRAFT where del=0 and param_type=1 and dcs_type='"+itype+"' ) cf on t.PARAMETER_SET_REVISION=cf.PARAMETER_SETREVISION ");
|
sb.append(" left join md_mat mt on mt.id=t.mat ");
|
sb.append(" where mt.code='"+matCode+"' and cf.ORD_CODE >=0 group by cf.ORD_CODE,cf.PARAMETER_CODE ");*/
|
sb.append(" select a.ord_code,a.parameter_code from SCH_WORKORDER_CRAFT a where a.PARAMETER_SETREVISION = ( " +
|
" select a.PARAMETER_SETREVISION from ( " +
|
" select a.PARAMETER_SETREVISION from SCH_WORKORDER_CRAFT a " +
|
" join md_mat b on a.MATERIAL_CODE = b.id " +
|
" where to_char(a.EFFECT_TIME,'yyyy-mm-dd') <= '"+date+"' " +
|
" and b.code = '"+matCode+"'" +
|
" group by a.PARAMETER_SETREVISION,a.EFFECT_TIME order by a.EFFECT_TIME desc" +
|
" ) where rownum = 1) " +
|
" and a.dcs_type='"+itype+"'" +
|
" and a.ord_code >=0 " +
|
" group by a.ord_code,a.parameter_code ");
|
if(null==qmProdCheckDaoI){
|
qmProdCheckDaoI = ApplicationContextUtil.getBean(QmProdCheckDaoI.class);
|
}
|
List<?> listSwc=qmProdCheckDaoI.queryBySql(sb.toString());
|
if(listSwc.size()>0){
|
for(Object o:listSwc){
|
skcf=new SchWorkorderCraft();
|
Object[] temp=(Object[]) o;
|
if(temp[0]!=null){
|
skcf.setOrdCode(temp[0].toString());
|
}
|
if(temp[1]!=null){
|
skcf.setParameterCode(temp[1].toString());
|
}
|
listCraft.add(skcf);
|
}
|
}else{
|
//异常数据记录接口日志
|
PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈OID", 0, "通过工单号"+oid+"不能查询到工艺标准;sql="+sb.toString());
|
//不能查询到工艺标准,直接跳出
|
continue;
|
}
|
if("add".equals(param)){ // 反馈含水含末端部 Rengj
|
String[] ids = id.split(",");
|
String sql = "select q1.moisture_content,q1.final_content,q1.first_telos,q1.two_telos,q1.three_telos,q1.four_telos,q1.five_telos,compaction,id, "
|
+ " (SELECT parameter_code FROM SCH_WORKORDER_CRAFT WHERE parameter_code LIKE '%HSL%' AND dcs_type = 'CP' AND ROWNUM = 1) HSL, "
|
+ " (SELECT parameter_code FROM SCH_WORKORDER_CRAFT WHERE parameter_code LIKE '%HML%' AND dcs_type = 'CP' AND ROWNUM = 1) HML, "
|
+ " (SELECT parameter_code FROM SCH_WORKORDER_CRAFT WHERE parameter_code LIKE '%LSL%' AND dcs_type = 'CP' AND ROWNUM = 1 and LENGTH(parameter_code)<=8) LSL, "
|
+ " (SELECT parameter_code FROM SCH_WORKORDER_CRAFT WHERE parameter_code LIKE '%YSD%' AND dcs_type = 'CP' AND ROWNUM = 1) YSD "
|
+ " from qm_finished_add q1 where q1.qmocid = "+ids[paramNum].toString();
|
List<?> listQfa= qmProdCheckDaoI.queryBySql(sql.toString());
|
List<Object> list = null;
|
String[] aArray = new String[5];
|
if(listQfa.size()>0){
|
int n = 0;//判断共多少条记录
|
int nums = 0;//批次号累加
|
for(int f= 0;f<listQfa.size();f++){
|
list = new ArrayList<Object>();
|
Object[] temp=(Object[]) listQfa.get(n);
|
String ps = temp[2].toString()+","+temp[3].toString()+","+temp[4].toString()+","+temp[5].toString()+","+temp[6].toString();
|
aArray = ps.split(",");//获取端部长度/反馈条数
|
list.add(temp);
|
Document document = null;
|
for(int k=0;k<aArray.length;k++){
|
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(bean1.getMaterialCode());
|
Element InspectionType=body.addElement("InspectionType");
|
InspectionType.setText(StringUtil.convertObj(bean1.getInspectionType()));
|
Element OrderNumber=body.addElement("OrderNumber");
|
OrderNumber.setText(bean1.getOrderNumber());
|
//多批次
|
List<QMOnlineCheckBean> bean2s=bean1.getqCBatchList();
|
for (QMOnlineCheckBean bean2 : bean2s) {
|
olid+=bean2.getId()+",";
|
Element QCBatchs=body.addElement("QCBatchs");
|
Element Timestamp=QCBatchs.addElement("Timestamp");
|
Timestamp.setText(bean2.getTimestamp_());
|
Element SubBatchCode=QCBatchs.addElement("SubBatchCode");
|
String subBatchCode = bean2.getSubBatchCode();
|
if(k>0){//多条数批次累加
|
int a = Integer.parseInt(subBatchCode.substring(subBatchCode.length()-1, subBatchCode.length()))+nums;
|
SubBatchCode.setText( subBatchCode.substring(0,subBatchCode.length()-1)+a);
|
}else{
|
if(n >= 1){//多条数批次累加
|
int a = Integer.parseInt(subBatchCode.substring(subBatchCode.length()-1, subBatchCode.length()))+nums;
|
SubBatchCode.setText( subBatchCode.substring(0,subBatchCode.length()-1)+a);
|
}else{//单条数批次累加
|
SubBatchCode.setText(subBatchCode);
|
}
|
}
|
Element SampleNumber=QCBatchs.addElement("SampleNumber");
|
SampleNumber.setText(StringUtil.convertObjToString(bean2.getSampleNumber()));
|
Element SampleType=QCBatchs.addElement("SampleType");
|
SampleType.setText(StringUtil.convertObjToString(bean2.getSampleType()));
|
for(int z=0;z<4;z++){
|
String p = "";
|
if(k==1 && z ==2){//第2次LSL
|
p = p + temp[3].toString();
|
}else if(k==2 && z ==2){//第3次LSL
|
p = p + temp[4].toString();
|
}else if(k==3 && z ==2){//第4次LSL
|
p = p + temp[5].toString();
|
}else if(k==4 && z ==2){//第5次LSL
|
p = p + temp[6].toString();
|
}else if(z==3){//取YSD数值
|
p = p + String.valueOf(temp[7]);
|
}else////第1次LSL
|
p = p + temp[z].toString();
|
Element Item=null;
|
Element ParameterCode=null;
|
Element AverageValue=null;
|
Element SDValue=null;
|
Element MaxValue=null;
|
Element MinValue=null;
|
Item=QCBatchs.addElement("Item");
|
ParameterCode=Item.addElement("ParameterCode");
|
AverageValue=Item.addElement("AverageValue");
|
SDValue=Item.addElement("SDValue");
|
MaxValue=Item.addElement("MaxValue");
|
MinValue=Item.addElement("MinValue");
|
switch (z) {
|
case 0:
|
ParameterCode.setText(String.valueOf(temp[9]));
|
AverageValue.setText(String.valueOf(p));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(p));
|
MinValue.setText(String.valueOf(p));
|
addCheckDetail(null,list, Item,z,k);
|
break;
|
case 1:
|
ParameterCode.setText(String.valueOf(temp[10]));
|
AverageValue.setText(String.valueOf(p));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(p));
|
MinValue.setText(String.valueOf(p));
|
addCheckDetail(null,list, Item,z,k);
|
break;
|
case 2:
|
ParameterCode.setText(String.valueOf(temp[11]));
|
AverageValue.setText(String.valueOf(p));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(p));
|
MinValue.setText(String.valueOf(p));
|
addCheckDetail(null,list, Item,z,k);
|
break;
|
case 3:
|
ParameterCode.setText(String.valueOf(temp[12]));
|
AverageValue.setText(String.valueOf(p));
|
SDValue.setText("0");
|
MaxValue.setText(String.valueOf(p));
|
MinValue.setText(String.valueOf(p));
|
addCheckDetail(null,list, Item,z,k);
|
break;
|
}
|
|
|
}
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
SendMessageClient.SendMsgToSPCValue(xml); // TODO 暂不通过接口传送
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"含水含末端部反馈", 1, xml);
|
nums++;
|
}
|
//修改含水含末端部反馈状态
|
String s = "update QM_FINISHED_ADD set status = 1 where id ='"+temp[8].toString()+"'";
|
qmProdCheckDaoI.updateBySql(s, null);
|
n++;
|
}
|
}else{
|
//异常数据记录接口日志
|
PMSXmlDataInterceptor.getInstance().addLog(true,"含水含末端部反馈", 0, "通过qmocid"+id+"不能查询到添加的含水含末率;sql="+sql.toString());
|
//不能查询到工艺标准,直接跳出
|
continue;
|
}
|
}else{
|
/**
|
* 通过数据封装xml
|
* */
|
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(bean1.getMaterialCode());
|
Element InspectionType=body.addElement("InspectionType");
|
InspectionType.setText(StringUtil.convertObj(bean1.getInspectionType()));
|
Element OrderNumber=body.addElement("OrderNumber");
|
OrderNumber.setText(bean1.getOrderNumber());
|
//多批次
|
List<QMOnlineCheckBean> bean2s=bean1.getqCBatchList();
|
for (QMOnlineCheckBean bean2 : bean2s) {
|
olid+=bean2.getId()+",";
|
Element QCBatchs=body.addElement("QCBatchs");
|
Element Timestamp=QCBatchs.addElement("Timestamp");
|
Timestamp.setText(date);
|
Element SubBatchCode=QCBatchs.addElement("SubBatchCode");
|
SubBatchCode.setText(bean2.getSubBatchCode());
|
Element SampleNumber=QCBatchs.addElement("SampleNumber");
|
SampleNumber.setText(StringUtil.convertObjToString(bean2.getSampleNumber()));
|
Element SampleType=QCBatchs.addElement("SampleType");
|
SampleType.setText(StringUtil.convertObjToString(bean2.getSampleType()));
|
//检测项目
|
List<QMOnlineCheckBean> bean3s=bean2.getItemList();
|
int i=-1;
|
for (QMOnlineCheckBean b3 : bean3s) {
|
List<QMOnlineCheckDetailBean> detailList=b3.getDetailList();
|
Element Item=null;
|
Element ParameterCode=null;
|
Element AverageValue=null;
|
Element SDValue=null;
|
Element MaxValue=null;
|
Element MinValue=null;
|
//最多7个检测项
|
for (SchWorkorderCraft sc:listCraft) {
|
i=Integer.parseInt(sc.getOrdCode());
|
if(i==0 && "0.0".equals(StringUtil.convertObjToString(b3.getWeightMax()))){
|
continue;//重量
|
}
|
if(i==1 && "0.0".equals(StringUtil.convertObjToString(b3.getCirMax()))){
|
continue;//圆周
|
}
|
if(i==2 && "0.0".equals(StringUtil.convertObjToString(b3.getRoundMax()))){
|
continue;//圆度
|
}
|
if(i==3 && "0.0".equals(StringUtil.convertObjToString(b3.getLenMax()))){
|
continue;//长度
|
}
|
if(i==4 && "0.0".equals(StringUtil.convertObjToString(b3.getXzMax()))){
|
continue;//吸阻
|
}
|
if(i==5 && "0.0".equals(StringUtil.convertObjToString(b3.getVentsMax()))){
|
continue;//通风率
|
}
|
if(i==6 && "0.0".equals(StringUtil.convertObjToString(b3.getHdMax()))){
|
continue;//硬度
|
}
|
Item=QCBatchs.addElement("Item");
|
ParameterCode=Item.addElement("ParameterCode");
|
AverageValue=Item.addElement("AverageValue");
|
SDValue=Item.addElement("SDValue");
|
MaxValue=Item.addElement("MaxValue");
|
MinValue=Item.addElement("MinValue");
|
switch(i){
|
case 0:
|
//重量
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("WEIGHT", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getWeightAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getWeightSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getWeightMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getWeightMin()));
|
addCheckDetail(detailList, null,Item,i,0);
|
break;
|
case 1:
|
//圆周
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("CIR", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getCirAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getCirSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getCirMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getCirMin()));
|
addCheckDetail(detailList, null,Item,i,0);
|
break;
|
case 2:
|
//圆度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("ROUND", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getRoundAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getRoundSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getRoundMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getRoundMin()));
|
addCheckDetail(detailList,null, Item,i,0);
|
break;
|
case 3:
|
//长度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("LEN", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getLenAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getLenSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getLenMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getLenMin()));
|
addCheckDetail(detailList,null,Item,i,0);
|
break;
|
case 4:
|
//吸阻
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("XZ", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getXzAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getXzSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getXzMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getXzMin()));
|
addCheckDetail(detailList, null,Item,i,0);
|
break;
|
case 5:
|
//总通风率
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("Vents", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getVentsAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getVentsSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getVentsMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getVentsMin()));
|
addCheckDetail(detailList,null, Item,i,0);
|
break;
|
case 6:
|
//硬度
|
//ParameterCode.setText(SysEqpTypeBase.getFixCodeByMesCode("HD", "QMITEMDEFINITION", false).getMesCode());
|
ParameterCode.setText(sc.getParameterCode());
|
AverageValue.setText(StringUtil.convertObjToString(b3.getHdAvg()));
|
SDValue.setText(StringUtil.convertObjToString(b3.getHdSD()));
|
MaxValue.setText(StringUtil.convertObjToString(b3.getHdMax()));
|
MinValue.setText(StringUtil.convertObjToString(b3.getHdMin()));
|
addCheckDetail(detailList,null, Item,i,0);
|
break;
|
}
|
}
|
}
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
SendMessageClient.SendMsgToSPCValue(xml);
|
//更改状态
|
PMSXmlDataInterceptor.getInstance().updateQmOLinkCheck(olid,null);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"物理质量检测数据反馈", 1, xml);
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-失败 */
|
if("add".equals(param)){
|
PMSXmlDataInterceptor.getInstance().addLog(true,"含水含末检测数据反馈", 0, xml,e.getMessage());
|
}else {
|
PMSXmlDataInterceptor.getInstance().addLog(true, "物理质量检测数据反馈", 0, xml, e.getMessage());
|
}
|
|
throw new RuntimeException("反馈mes失败!" + e.getMessage());
|
}
|
paramNum++;
|
}
|
}
|
|
/**
|
* [功能说明]查询工艺标准表
|
* @param itype
|
* @param shiftId
|
* @param matId
|
* @param date */
|
private List<SchWorkorderCraft> querySchWorkOrderCraft(String date, String matId, String shiftId, String itype) {
|
|
return null;
|
}
|
|
|
private void addCheckDetail(List<QMOnlineCheckDetailBean> detailList,List<Object> list, Element Item,int i,int temp) {
|
if(list !=null && list.size()>0){
|
int num = 0;
|
for(int k=0;k<list.size();k++){
|
Element Detail=Item.addElement("Detail");
|
Element SeqNo=Detail.addElement("SeqNo");
|
Element CheckValue=Detail.addElement("CheckValue");
|
Object[] obj =(Object[])list.get(k);
|
num++;
|
switch(i){
|
case 0:
|
SeqNo.setText(String.valueOf(num));
|
CheckValue.setText(obj[i].toString());
|
break;
|
case 1:
|
SeqNo.setText(String.valueOf(num));
|
CheckValue.setText(obj[i].toString());
|
break;
|
case 2:
|
SeqNo.setText(String.valueOf(num));
|
if(temp==1){
|
CheckValue.setText(obj[3].toString());
|
}else if(temp==2){
|
CheckValue.setText(obj[4].toString());
|
}else if(temp==3){
|
CheckValue.setText(obj[5].toString());
|
}else if(temp==4){
|
CheckValue.setText(obj[6].toString());
|
}else{
|
CheckValue.setText(obj[i].toString());
|
}
|
break;
|
case 3:
|
SeqNo.setText(String.valueOf(num));
|
CheckValue.setText(String.valueOf(obj[7]));
|
break;
|
|
}
|
}
|
|
}else{
|
for (QMOnlineCheckDetailBean detail : detailList) {
|
Element Detail=Item.addElement("Detail");
|
Element SeqNo=Detail.addElement("SeqNo");
|
Element CheckValue=Detail.addElement("CheckValue");
|
switch(i){
|
case 0:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getWeight()));
|
break;
|
case 1:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getCir()));
|
break;
|
case 2:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getRound()));
|
break;
|
case 3:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getLen()));
|
break;
|
case 4:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getXz()));
|
break;
|
case 5:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getVents()));
|
break;
|
case 6:
|
SeqNo.setText(StringUtil.convertObjToString(detail.getNum()));
|
CheckValue.setText(StringUtil.convertObjToString(detail.getHd()));
|
break;
|
}
|
}
|
}
|
}
|
|
/**
|
* [功能说明]:卷包成型外观缺陷数据
|
* shisihai
|
* */
|
public void DASSendOutWard(List<QmWardMainInfo> beans,String param,String id,String sts){
|
String xml="";
|
int num = 0;
|
String sql="";
|
if(null==qmProdCheckDaoI){
|
qmProdCheckDaoI = ApplicationContextUtil.getBean(QmProdCheckDaoI.class);
|
}
|
for (QmWardMainInfo bean : beans) {
|
String[] ids = id.split(",");
|
try {
|
//20支质量
|
if("20".equals(param)){
|
//String sb = " select nvl(first_len,0),nvl(two_len,0),nvl(three_len,0),oid from QM_OUTWARD where id = "+ids[num].toString();
|
sql=" SELECT nvl(a.first_len,0),nvl(a.two_len,0), nvl(a.three_len,0), "
|
+ "( select parameter_code from SCH_WORKORDER_CRAFT where 1=1 and PARAMETER_SETREVISION=(select parameter_set_revision from SCH_WORKORDER where id=a.oid) and del=0 and parameter_name like '%20%' and param_type=1 and del=0"
|
+ " ) as qxCode,oid "
|
+ "FROM QM_OUTWARD a WHERE a.ID ="+ids[num].toString();
|
List<?> qmoutList = qmProdCheckDaoI.queryBySql(sql);
|
String[] len =new String[3];
|
if(qmoutList.size()>0){
|
int temp =0;
|
int nums =0;
|
for(int i=0;i<qmoutList.size();i++){
|
Object[] ob = (Object[]) qmoutList.get(temp);
|
String parameter = ob[0].toString()+","+ob[1].toString()+","+ob[2].toString();
|
len = parameter.split(",");//获取20支质量录入数量
|
for(int j=0;j<len.length;j++){//20支质量按次数单独反馈mes
|
if(ob[3]==null){
|
PMSXmlDataInterceptor.getInstance().addLog(true,"20支质量检测数据反馈(K)", 0, "工单号:"+ob[4]==null?ob[4].toString():" "+";业务说明:通过工单ID,找到工艺标准,工艺标准没有20支质量数据, MES业务要求,没有20支质量编码,就不反馈");
|
continue;
|
}
|
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(bean.getMaterialCode());
|
Element inspectionType=body.addElement("InspectionType");
|
inspectionType.setText(bean.getInspectionType());
|
Element orderNumber=body.addElement("OrderNumber");
|
orderNumber.setText(bean.getOrderNumber());
|
List<QmOutWardBatchMainInfo> batchInfos=bean.getBatchInfo();
|
for (QmOutWardBatchMainInfo batchMainInfo : batchInfos) {
|
Element qCBatchs=body.addElement("item");
|
Element timestamp=qCBatchs.addElement("Timestamp");
|
timestamp.setText(batchMainInfo.getTimestamp());
|
Element SubBatchCode=qCBatchs.addElement("SubBatchCode");
|
String subBatchCode = batchMainInfo.getSubBatchCode();
|
if(num>=1){
|
if(j>=1){
|
int a = Integer.parseInt(subBatchCode.substring(subBatchCode.length()-1, subBatchCode.length()))+nums;
|
SubBatchCode.setText( subBatchCode.substring(0,subBatchCode.length()-1)+a);
|
}
|
}else{
|
if(j>=1){
|
int a = Integer.parseInt(subBatchCode.substring(subBatchCode.length()-1, subBatchCode.length()))+nums;
|
SubBatchCode.setText( subBatchCode.substring(0,subBatchCode.length()-1)+a);
|
}else{
|
SubBatchCode.setText(subBatchCode);
|
}
|
|
}
|
|
Element sampleType=qCBatchs.addElement("SampleType");
|
sampleType.setText("1");
|
Element sampleNumber=qCBatchs.addElement("SampleNumber");
|
sampleNumber.setText("20");
|
Element item = qCBatchs.addElement("CheckItems");
|
item.addElement("ParameterCode").setText(ob[3].toString());
|
item.addElement("AverageValue").setText(len[j].toString());
|
item.addElement("SDValue").setText("0");
|
item.addElement("MaxValue").setText(len[j].toString());
|
item.addElement("MinValue").setText(len[j].toString());
|
Element detail =item.addElement("Detail");
|
detail.addElement("SeqNo").setText("1");
|
detail.addElement("CheckValue").setText(len[j].toString());
|
|
}
|
xml=document.asXML();
|
//向MES发送XML //DASSendQualityData
|
SendMessageClient.SendMsgToSPCValue(xml);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"20支质量检测数据反馈", 1, xml);
|
nums++;
|
}
|
}
|
temp++;
|
}
|
}else{
|
//质量外观反馈
|
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(bean.getMaterialCode());
|
Element inspectionType=body.addElement("InspectionType");
|
inspectionType.setText(bean.getInspectionType());
|
Element orderNumber=body.addElement("OrderNumber");
|
orderNumber.setText(bean.getOrderNumber());
|
List<QmOutWardBatchMainInfo> batchInfos=bean.getBatchInfo();
|
/* if(null==qmProdCheckDaoI){
|
qmProdCheckDaoI = ApplicationContextUtil.getBean(QmProdCheckDaoI.class);
|
}*/
|
|
// List<?> orderTypelist=qmProdCheckDaoI.queryBySql("select type,parameter_set_revision,mat from sch_workorder where code='"+bean.getOrderNumber()+"'");
|
//Object[] objf = (Object[]) orderTypelist.get(0);
|
//String orderType=StringUtil.convertObjToString(objf[0]);
|
/* sql = " select DISTINCT q1.paramter_code from qm_outward_defect_item q1, sch_workorder s1, sch_workorder_craft s2 "
|
+" where 1=1 and s1.parameter_set_revision = s2.parameter_setrevision "
|
+" and s2.parameter_code = q1.paramter_code and s2.param_type=2 and s1.code = '"+bean.getOrderNumber()+"'";
|
|
if("1".equals(orderType)){//卷烟机
|
sql += " and s2.DCS_TYPE ='ROL'";
|
}else if("2".equals(orderType)){//包装机
|
sql += " and s2.DCS_TYPE ='PKG'";
|
}else if("3".equals(orderType)){//封箱机
|
sql += " and s2.DCS_TYPE ='PBOX'";
|
}else{
|
sql += " and s2.DCS_TYPE ='FTL'";
|
}*/
|
//List<?> listOutward=qmProdCheckDaoI.queryBySql(sql.toString());
|
for (QmOutWardBatchMainInfo batchMainInfo : batchInfos) {
|
Element qCBatchs=body.addElement("item");
|
Element timestamp=qCBatchs.addElement("Timestamp");
|
timestamp.setText(batchMainInfo.getTimestamp());
|
Element subBatchCode=qCBatchs.addElement("SubBatchCode");
|
subBatchCode.setText(batchMainInfo.getSubBatchCode());
|
Element faultType=qCBatchs.addElement("FaultType");
|
faultType.setText(batchMainInfo.getFaultType());
|
List<QmOutWardFaultInfo> faults=batchMainInfo.getFaults();
|
for (QmOutWardFaultInfo faultInfo : faults) {
|
// 如果没有缺陷或没有缺陷数量时不发送空节点到mes
|
/*if (faultInfo.getFaultCode()==null || faultInfo.getFaultCode().equals("") || faultInfo.getFaultNumber()==null || faultInfo.getFaultNumber().equals("")) {
|
continue;
|
}*/
|
Element FaultParameters=qCBatchs.addElement("Details");
|
Element ParameterCode=FaultParameters.addElement("FaultCode");
|
ParameterCode.setText(faultInfo.getFaultCode());
|
Element sampleNumber=FaultParameters.addElement("FaultNumber");
|
sampleNumber.setText(faultInfo.getFaultNumber());
|
//新增检验人
|
Element checkName=FaultParameters.addElement("CheckName");
|
checkName.setText(batchMainInfo.getCheckName());
|
|
}
|
|
/*if(listOutward.size()>0){
|
for(Object o:listOutward){
|
sql = "select std from sch_workorder_craft where parameter_code= '"+String.valueOf(o)+"' "
|
+ " and material_code = ( select id from MD_MAT where id ='"+StringUtil.convertObjToString(objf[2])+"')"
|
+ " and parameter_setrevision='"+StringUtil.convertObjToString(objf[1])+"' " ;
|
List<?> stdList=qmProdCheckDaoI.queryBySql(sql.toString());
|
if(stdList!=null && stdList.size()>0){
|
Element FaultParameters=qCBatchs.addElement("Details");
|
Element ParameterCode=FaultParameters.addElement("FaultCode");
|
ParameterCode.setText(o.toString());
|
Element sampleNumber=FaultParameters.addElement("FaultNumber");
|
sampleNumber.setText(String.valueOf(stdList.get(0)));
|
//新增检验人
|
Element checkName=FaultParameters.addElement("CheckName");
|
checkName.setText(batchMainInfo.getCheckName());
|
|
*//*for (QmOutWardFaultInfo faultInfo : faults) {
|
String sq = "select PARAMTER_CODE from QM_OUTWARD_DEFECT_ITEM where code ='"+faultInfo.getFaultCode()+"'";
|
List<?> listP=qmProdCheckDaoI.queryBySql(sq);
|
if(listP.size()>0){
|
Object obj =(Object) listP.get(0);
|
if(!"".equals(faultInfo.getFaultCode()) && faultInfo.getFaultCode() !=null){
|
if(obj.toString().equals(o.toString())){
|
Element item=FaultParameters.addElement("item");
|
Element details=item.addElement("Details");
|
Element faultCode=details.addElement("FaultCode");
|
faultCode.setText(faultInfo.getFaultCode());
|
Element faultNumber=details.addElement("FaultNumber");
|
faultNumber.setText(faultInfo.getFaultNumber());
|
}
|
}
|
}
|
}*//*
|
}
|
}
|
}*/
|
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
SendMessageClient.SendMsgToVisuRes(xml);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"质量外观检测数据反馈", 1, xml);
|
}
|
num++;
|
//已发送数据,修改状态
|
//PMSXmlDataInterceptor.getInstance().updateQmOutWard(id,sts,true);
|
if("20".equals(param)){
|
//已发送数据,修改状态
|
PMSXmlDataInterceptor.getInstance().updateQmOutWard(id,sts,true);
|
}else{
|
//已发送数据,修改状态
|
PMSXmlDataInterceptor.getInstance().updateQmOutWard(id,sts,false);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-失败 */
|
if("20".equals(param)){
|
PMSXmlDataInterceptor.getInstance().addLog(true,"20支质量检测数据反馈", 0, xml,e.getMessage());
|
}else{
|
PMSXmlDataInterceptor.getInstance().addLog(true,"质量外观检测数据反馈", 0, xml,e.getMessage());
|
}
|
}
|
}
|
}
|
|
/**
|
* [功能说明]:工单实际反馈 (工单执行结果)
|
*
|
* */
|
public void DASSendOrderResult( MesWorkOrderBean bean,List<String> ids){
|
String xml="";
|
try {
|
Document document;
|
document=DocumentHelper.createDocument();
|
|
Element dataset = document.addElement("dataset");
|
Element journalElement = dataset.addElement("data");
|
Element EquipmentCode = journalElement.addElement("WorkOrderCode");
|
EquipmentCode.setText(bean.getCode() );//生产工单编号
|
Element Shift = journalElement.addElement("Shift");
|
Shift.setText(bean.getShift()); //班次
|
Element Team = journalElement.addElement("Team");
|
Team.setText(bean.getTeam()); //班组
|
Element StartTime = journalElement.addElement("StartTime");
|
StartTime.setText(bean.getReal_stim()); //实际开始时间
|
Element EndTime = journalElement.addElement("EndTime");
|
EndTime.setText(bean.getReal_etim()); //实际结束时间
|
|
List<MesMdMatBean> listMatBean=bean.getListFl();
|
if(listMatBean!=null && listMatBean.size()>0 ){
|
for(MesMdMatBean mmb:listMatBean){
|
//辅料 0...n
|
Element Consume = journalElement.addElement("Consume");
|
Element MaterialCode = Consume.addElement("MaterialCode");
|
MaterialCode.setText(mmb.getMaterialCode()); //物料代码
|
/*Element ConsumeTime = Consume.addElement("ConsumeTime");
|
ConsumeTime.setText("0");//物料消耗时间(开始投料时间)*/
|
Element Quantity = Consume.addElement("Quantity");
|
Quantity.setText(mmb.getQuantity().toString());//辅料数量
|
Element Uom = Consume.addElement("Uom");
|
Uom.setText(mmb.getUom());//单位
|
}
|
}
|
Element MaterialCode2 = journalElement.addElement("MaterialCode");
|
MaterialCode2.setText(bean.getMatName()); //牌号名称
|
Element Output = journalElement.addElement("Output");
|
Output.setText(bean.getOutput().toString()); //工单产量
|
Element YZQuantity = journalElement.addElement("YZQuantity");
|
YZQuantity.setText(bean.getYzQuantity()==null?"0":bean.getYzQuantity().toString()); //烟支产量
|
/*Element YZUom = journalElement.addElement("YZUom");
|
YZUom.setText("箱"); //牌号名称*/
|
Element XHQuantity = journalElement.addElement("XHQuantity");
|
XHQuantity.setText(bean.getXhQuantity()==null?"0":bean.getXhQuantity().toString()); //小盒产量
|
Element THQuantity = journalElement.addElement("THQuantity");
|
THQuantity.setText(bean.getThQuantity()==null?"0":bean.getThQuantity().toString()); //条盒产量
|
|
Element downTime = journalElement.addElement("Downtime");
|
Element EquipmentNo = downTime.addElement("EquipmentNo");
|
EquipmentNo.setText(StringUtil.nullToString(bean.getEqpCode())); //设备号-mes设备CODE
|
Element DowntimeTimes = downTime.addElement("DowntimeTimes");
|
DowntimeTimes.setText(bean.getDowntimeTimes().toString()); //停机次数
|
Element DowntimeDuration = downTime.addElement("DowntimeDuration");
|
DowntimeDuration.setText(bean.getDowntimeDuration()); //停机时间(单位分钟)
|
|
xml=document.asXML();
|
//向MES发送XML
|
SendMessageClient.SendMsgToWorkOrderRes(xml);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单实际反馈", 1, xml);
|
|
String orderId=bean.getId();
|
ids.add(orderId);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单实际反馈", 0, xml,e.getMessage());
|
}
|
|
|
}
|
|
|
/**
|
* [功能说明]:发射机工单实际反馈 (工单执行结果)
|
*
|
* */
|
public void DASSendFSJOrderResult( TransmitterWorkOrderBean bean,List<String> ids){
|
String xml="";
|
try {
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
Element EquipmentCode = journalElement.addElement("WorkOrderCode");
|
EquipmentCode.setText(bean.getWorkOrderCode() );//生产工单编号
|
Element Shift = journalElement.addElement("Shift");
|
Shift.setText(bean.getShift()); //班次
|
Element Team = journalElement.addElement("Team");
|
Team.setText(bean.getTeam()); //班组
|
Element StartTime = journalElement.addElement("StartTime");
|
StartTime.setText(DateUtil.datetoStr(bean.getStim(),"yyyy-MM-dd HH:mm:ss")); //实际开始时间
|
Element EndTime = journalElement.addElement("EndTime");
|
EndTime.setText(DateUtil.datetoStr(bean.getEtim(),"yyyy-MM-dd HH:mm:ss")); //实际结束时间
|
|
List<TransmitterOutput> listOutputBean=bean.getOutputs();
|
if(listOutputBean!=null && listOutputBean.size()>0 ){
|
for(TransmitterOutput output:listOutputBean){
|
//辅料 0...n
|
Element ShutDetail = journalElement.addElement("ShutDetail");
|
Element PipingCode = ShutDetail.addElement("PipingCode");
|
PipingCode.setText(output.getPipingNo());
|
Element PackageWorkOrder = ShutDetail.addElement("PackageWorkOrder");
|
PackageWorkOrder.setText(output.getWorkCode());
|
Element ReceiveNO = ShutDetail.addElement("ReceiveNO");
|
ReceiveNO.setText(output.getReceiveNo().toString());
|
Element ShutNO = ShutDetail.addElement("ShutNO");
|
ShutNO.setText(output.getShutNo().toString());
|
Element WorkCenter = ShutDetail.addElement("WorkCenter");
|
WorkCenter.setText(output.getEqpId());
|
Element DumpNO = ShutDetail.addElement("DumpNO");
|
DumpNO.setText(output.getDumpNo().toString());
|
}
|
}
|
Element MaterialCode = journalElement.addElement("MaterialCode");
|
MaterialCode.setText(bean.getMatName()); //牌号名称
|
Element Output = journalElement.addElement("Output");
|
Output.setText(bean.getQty()==null?"0":bean.getQty().toString()); //工单产量
|
Element Remark = journalElement.addElement("Remark");
|
if(bean.getRemark()==null){
|
Remark.setText("");
|
} else {
|
Remark.setText(bean.getRemark()); //工单产量
|
}
|
|
|
xml=document.asXML();
|
// System.out.println(xml);
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(xml,"DASSSendTransmitterWorkOrderResult"); // TODO 暂不通过接口传送
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"发射工单实际反馈", 1, xml);
|
|
String orderId=bean.getId();
|
|
bean.setIsFeedback("1");
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"发射工单实际反馈", 0, xml,e.getMessage());
|
}
|
|
|
}
|
|
/**
|
* 修改后维修记录反馈
|
*/
|
public void dasSendEquipmentRepairRecord(EqmCallServiceBean bean){
|
String xml="";
|
try {
|
FixCodeBean fcb=null;
|
Document document;
|
document=DocumentHelper.createDocument();
|
//Element root = document.addElement("xml");
|
Element dataset = document.addElement("dataset");
|
Element data=dataset.addElement("data");
|
Element repairNo=data.addElement("RepairNo");
|
repairNo.setText(StringUtil.convertObjToString(bean.getId()));
|
Element repairDate=data.addElement("RepairDate");
|
repairDate.setText(StringUtil.convertObjToString(bean.getRepairDate()));
|
Element shift=data.addElement("Shift");
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(bean.getShift(), "SHIFT0001", false);
|
if(fcb==null){
|
throw new Exception(bean.getId()+"班次在md_fix_code表不能转换");
|
}
|
shift.setText(fcb.getMesCode());
|
Element group=data.addElement("Group");
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(bean.getGroup(), "TEAM0001", false);
|
if(fcb==null){
|
throw new Exception(bean.getId()+"班组在md_fix_code表不能转换");
|
}
|
group.setText( StringUtil.nullToString( fcb.getMesCode() ));
|
Element equipmentCode=data.addElement("EquipmentCode");
|
equipmentCode.setText(StringUtil.convertObjToString(bean.getEquipmentCode()));
|
Element shutdownType=data.addElement("ShutdownType");
|
shutdownType.setText(StringUtil.convertObjToString(bean.getShutdownType()));
|
Element repairType=data.addElement("RepairType");
|
repairType.setText(StringUtil.convertObjToString(bean.getRepairType()));
|
Element Repairer=data.addElement("Repairer");
|
Repairer.setText(StringUtil.convertObjToString(bean.getRepairer()));
|
Element Duration=data.addElement("Duration");
|
Duration.setText(StringUtil.convertObjToString(bean.getDuration()));
|
Element EMWorkOrderCode=data.addElement("EMWorkOrderCode");
|
EMWorkOrderCode.setText(StringUtil.convertObjToString(bean.geteMWorkOrderCode()));
|
Element Solution=data.addElement("Solution");
|
Solution.setText(StringUtil.convertObjToString(bean.getSolution()));
|
Element Description=data.addElement("Description");
|
Description.setText(StringUtil.convertObjToString(bean.getDescription()));
|
/*Element Comment=data.addElement("Comment");
|
Comment.setText(StringUtil.convertObjToString(bean.getComment()));
|
Element FaultReason=data.addElement("FaultReason");
|
FaultReason.setText(StringUtil.convertObjToString(bean.getFaultReason()));
|
Element ShutdownTime=data.addElement("ShutdownTime");
|
ShutdownTime.setText(StringUtil.convertObjToString(bean.getShutdownTime()));*/
|
for (EqmServiceSparePartBean sparepart : bean.getParts()) {
|
Element partChange=data.addElement("item");
|
Element PartCode=partChange.addElement("PartCode");
|
PartCode.setText(StringUtil.convertObjToString(sparepart.getPartCode()));
|
Element PartName=partChange.addElement("PartName");
|
PartName.setText(StringUtil.convertObjToString(sparepart.getPartName()));
|
Element Quantity=partChange.addElement("Quantity");
|
Quantity.setText(StringUtil.convertObjToString(sparepart.getQuantity()));
|
Element Unit=partChange.addElement("Unit");
|
Unit.setText(StringUtil.convertObjToString(sparepart.getUnit()));
|
Element Reason=partChange.addElement("Reason");
|
Reason.setText(StringUtil.convertObjToString(sparepart.getReason()));
|
Element Remark=partChange.addElement("Remark");
|
Remark.setText(StringUtil.convertObjToString(sparepart.getRemark()));
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(xml,"DASSendEquipmentRepairRecord"); // TODO 暂不通过接口传送
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"维修记录反馈", 1, xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"维修记录反馈", 0, xml,e.getMessage());
|
}
|
}
|
|
/**
|
* [功能说明]:设备维修记录
|
* @createTime 2016年6月17日16:00:37
|
* @author wch
|
* @param eqmfrlist 设备维修记录表
|
* @param eqmtlist 备品备件更换记录表
|
* @throws Exception
|
* */
|
public void dasSendEquipmentRepairRecord(List<EqmTrouble> eqmtlist, List<EqmFixRec> eqmfrlist) throws Exception{
|
Document document;
|
FixCodeBean fcb=null;
|
EquipmentsBean mdt=null;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
for(EqmTrouble etb:eqmtlist){
|
Element EMRepair = journalElement.addElement("EMRepair");
|
Element RepairNo = EMRepair.addElement("RepairNo"); //维修记录编号
|
RepairNo.setText(StringUtil.nullToString( etb.getId()) );
|
Element RepairDate = EMRepair.addElement("RepairDate");//维修日期
|
Date date=DateUtil.strToDate(etb.getRepair_date(), "yyyy-MM-dd");
|
RepairDate.setText( date!=null?date.toString():"" );
|
//RepairDate.setText("2016-06-24");
|
Element Shift = EMRepair.addElement("Shift");//班次
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(etb.getShift_id(), "SHIFT0001", false);
|
if(fcb==null){
|
throw new Exception(etb.getId()+"班次在md_fix_code表不能转换");
|
}
|
Shift.setText(fcb.getMesCode());
|
Element Group = EMRepair.addElement("Group");//班组
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(etb.getTeam_id(), "TEAM0001", false);
|
if(fcb==null){
|
throw new Exception(etb.getId()+"班组在md_fix_code表不能转换");
|
}
|
Group.setText( StringUtil.nullToString( fcb.getMesCode() ));
|
Element EquipmentCode = EMRepair.addElement("EquipmentCode");//设备ID转MES_CODE
|
mdt=SysEqpTypeBase.getEquipmentByMesCodeToId(etb.getEqu_id(), false);
|
if(mdt==null){
|
throw new Exception(etb.getId()+"设备ID转MES_code异常");
|
}
|
EquipmentCode.setText( StringUtil.nullToString(mdt.getMesEqpCode() ));
|
|
Element ShutdownType = EMRepair.addElement("ShutdownType");//停机类型
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(etb.getShutdown_type().toString(), "SHUTDOWN0001", false);
|
if(fcb==null){
|
throw new Exception(etb.getId()+"停机类型在md_fix_code未录入, 异常");
|
}
|
ShutdownType.setText(fcb.getMesCode());
|
|
Element RepairType = EMRepair.addElement("RepairType"); //维修类型
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(etb.getRepair_type().toString(), "REPAIRTYPE0001", false);
|
if(fcb==null){
|
throw new Exception(etb.getId()+"停机类型在md_fix_code未录入, 异常");
|
}
|
RepairType.setText(fcb.getMesCode());
|
Element Repairer = EMRepair.addElement("Repairer");//维修人
|
Repairer.setText(StringUtil.nullToString(etb.getUpdate_user_name()) );
|
Element Duration = EMRepair.addElement("Duration"); //维修时长
|
Duration.setText(StringUtil.nullToString( etb.getDuration() ));
|
Element EMWorkOrderCode = EMRepair.addElement("EMWorkOrderCode");//关联保养工单
|
EMWorkOrderCode.setText( StringUtil.nullToString( etb.getEmwork_order_code() ));
|
Element Solution = EMRepair.addElement("Solution");//处理措施
|
Solution.setText( StringUtil.nullToString( etb.getSolution() ));
|
Element Description = EMRepair.addElement("Description");//故障描述
|
Description.setText(StringUtil.nullToString(etb.getDescription() ));
|
Element Comment = EMRepair.addElement("Comment");//维修评价
|
Comment.setText(StringUtil.nullToString( etb.getComments() ));
|
//备品备件
|
for(EqmFixRec efc:eqmfrlist){
|
if(etb.getId().equals(efc.getTrouble_id())){
|
Element PartChange = EMRepair.addElement("PartChange");
|
Element PartCode = PartChange.addElement("PartCode");//备件编号
|
PartCode.setText( StringUtil.nullToString( efc.getSpare_parts_code()));
|
Element PartName = PartChange.addElement("PartName");//备件名称
|
PartName.setText( StringUtil.nullToString( efc.getSpare_parts_name()) );
|
Element Quantity = PartChange.addElement("Quantity");//备件数量
|
Quantity.setText(StringUtil.nullToString( efc.getSpare_parts_num().toString() ));
|
Element Unit = PartChange.addElement("Unit");//备件单位
|
Unit.setText("1");
|
Element Reason = PartChange.addElement("Reason");//故障原因
|
Reason.setText( StringUtil.nullToString( etb.getFault_reason()));
|
Element Remark = PartChange.addElement("Remark");//备注
|
Remark.setText(StringUtil.nullToString( etb.getDes() ));
|
//Remark.setText("test");
|
|
}
|
}
|
Element FaultReason = EMRepair.addElement("FaultReason");//故障原因
|
FaultReason.setText(etb.getFault_reason());
|
Element ShutdownTime = EMRepair.addElement("ShutdownTime");//停机时长
|
ShutdownTime.setText(StringUtil.nullToString(etb.getDuration()));
|
}
|
String xml=document.asXML();
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(document.asXML(),"DASSendEquipmentRepairRecord"); // TODO 暂不通过接口传送
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"设备维修记录反馈", 1, xml);
|
}
|
|
|
/**
|
* [功能说明]:设备运行状态
|
* @param mesEqpCode -mes下发的设备编号
|
* @param statusCode -mes设备故障 1运行 2故障 3停机
|
* */
|
public void dasSendEquipmentStatus(String mesEqpCode,String statusCode){
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
Element EquipmentCode = journalElement.addElement("EquipmentCode");
|
EquipmentCode.setText(mesEqpCode);
|
Element StatusCode = journalElement.addElement("StatusCode");
|
StatusCode.setText(statusCode);
|
Element OperationTime = journalElement.addElement("OperationTime");
|
OperationTime.setText(DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss"));
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(document.asXML(),"DASSendEquipmentStatus"); // TODO 暂不通过接口传送
|
}
|
|
|
/**
|
* [功能说明]:工单状态变化(工单状态变化)
|
* @param schWorkorder
|
* @param sts -MES工单状态
|
*
|
* */
|
public void dasSendOrderChange(String sts, SchWorkorder schWorkorder){
|
String xml="";
|
try {
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element datasetElement = catalogElement.addElement("dataset");
|
Element journalElement = datasetElement.addElement("data");
|
Element WorkOrderCode = journalElement.addElement("WorkOrderCode");
|
WorkOrderCode.setText(StringUtil.nullToString( schWorkorder.getCode() ));//工单号
|
Element Command = journalElement.addElement("Command");
|
Command.setText(sts); //状态
|
Element ThirdSystemCode = journalElement.addElement("ThirdSystemCode");
|
ThirdSystemCode.setText("DAS");//参考第三方系统定义表
|
Element ActualTime = journalElement.addElement("ActualTime");
|
ActualTime.setText(DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss"));//状态发送时间
|
Element AbortReason = journalElement.addElement("AbortReason");
|
//AbortReason.setText("null");//终止原因
|
System.out.println(document.asXML());
|
xml=document.asXML();
|
//向MES发送XML
|
SendMessageClient.SendMsgToOrderStsDetail(xml);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单状态反馈", 1, xml);
|
sendOrderStatus(sts,schWorkorder);
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-失败*/
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单状态反馈", 0, xml,e.getMessage());
|
}
|
}
|
|
|
/**
|
* @Author bsw
|
* @Description 向辅料库发送工单运行状态
|
* @Date 2021/8/5 10:47
|
* @Param [sts, schWorkorder]
|
* @return void
|
**/
|
|
public void sendOrderStatus(String sts, SchWorkorder workorder) {
|
String xml="";
|
try {
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
Element WorkOrderCode = journalElement.addElement("WorkOrderCode");
|
WorkOrderCode.setText(StringUtil.nullToString( workorder.getCode() ));//工单号
|
Element Command = journalElement.addElement("Command");
|
Command.setText(sts); //状态
|
Element WorkCenterCode = journalElement.addElement("WorkCenterCode");
|
WorkCenterCode.setText(workorder.getMdEquipment().getWorkCenter());
|
Element WorkCenterName = journalElement.addElement("WorkCenterName");
|
WorkCenterName.setText(workorder.getMdEquipment().getEquipmentName());
|
Element MaterialCode = journalElement.addElement("MaterialCode");
|
MaterialCode.setText(workorder.getMdMat().getCode());
|
|
xml=document.asXML();
|
//向高架发送XML
|
SendMessageClient.SendMessageToFWMS(xml);
|
/** 日志 1-成功 */
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单状态反馈高架", 1, xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
/** 日志 1-失败*/
|
PMSXmlDataInterceptor.getInstance().addLog(true,"工单状态反馈高架", 0, xml,e.getMessage());
|
}
|
}
|
|
|
|
/**
|
* [功能说明]:设备保养记录反馈
|
* @author wanchanghuang
|
* @param listParam
|
* @param list
|
* @param fackIds
|
* @createTime 2016年6月15日15:13:28
|
*
|
* */
|
public List<String> dasSendEquipmentWorkOrderResult(List<EqmWheelCovelPlanInfo> list, List<EqmWheelCovelParam> listParam, List<String> fackIds){
|
String xml="";
|
try {
|
Document document;
|
FixCodeBean fcb=null;
|
//Map<String,String> mapShift=Mes2DASParams.MES2DASShift();
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
//班次
|
for(EqmWheelCovelPlanInfo ecp : list){
|
//主表
|
Element threElement = journalElement.addElement("EMWorkOrder");
|
Element EMWorkOrderCode = threElement.addElement("EMWorkOrderCode");
|
EMWorkOrderCode.setText(StringUtil.nullToString(ecp.getEqp_work_order_code())); //MES设备保养工单号
|
Element ActualDate = threElement.addElement("ActualDate");
|
ActualDate.setText( StringUtil.nullToString( DateUtil.datetoStr(ecp.getLast_stime(), "yyyy-MM-dd")) );//实际执行日期
|
Element ActualStartTime = threElement.addElement("ActualStartTime");
|
ActualStartTime.setText(StringUtil.nullToString( DateUtil.datetoStr(ecp.getLast_stime(), "yyyy-MM-dd HH:mm:ss")) ); //实际维护开始时间
|
Element Duration = threElement.addElement("Duration");
|
String tm=DateUtil.getDistanceTimes(DateUtil.formatDateToString(ecp.getLast_stime(), "yyyy-MM-dd HH:mm:ss"),DateUtil.formatDateToString(ecp.getLast_etime(), "yyyy-MM-dd HH:mm:ss"));
|
Duration.setText(StringUtil.nullToString(tm)); //实际维护时长
|
Element Shift = threElement.addElement("Shift");
|
fcb=SysEqpTypeBase.getFixCodeByMesCode(ecp.getShift_id(), "SHIFT0001", false);
|
Shift.setText(fcb.getMesCode());
|
Element Reviewer = threElement.addElement("Reviewer");
|
Reviewer.setText(StringUtil.nullToString(ecp.getZx_user_name()));//执行人
|
for(EqmWheelCovelParam ecparam : listParam){
|
/*if(ecp.getId().equals(ecparam.getEqm_wcp_id())){
|
//副表
|
Element Detail = threElement.addElement("Detail");
|
Element JobNo = Detail.addElement("JobNo");//编号
|
JobNo.setText(StringUtil.nullToString( ecparam.getId() ));
|
Element JobDescription = Detail.addElement("JobDescription");
|
//JobDescription.setText(StringUtil.nullToString( ecparam.getContent()) );//保养项
|
Element MaintMethod = Detail.addElement("MaintMethod");
|
//MaintMethod.setText(StringUtil.nullToString( ecparam.getContent_datail())); //保养方法
|
Element JobStandard = Detail.addElement("JobStandard");
|
//JobStandard.setText(StringUtil.nullToString(ecparam.getJob_standard())); //保养效果
|
JobStandard.setText("null"); //保养标准
|
Element CompleteBy = Detail.addElement("CompleteBy");
|
//CompleteBy.setText(StringUtil.nullToString(ecparam.getActual_user_name()));// 完成人
|
Element CompleteStatus = Detail.addElement("CompleteStatus");
|
//CompleteStatus.setText(ecparam.getStatus()==1?"通过":"未通过");//完成情况
|
Element CheckResult = Detail.addElement("CheckResult");
|
CheckResult.setText(StringUtil.nullToString(ecparam.getDes())); //检测情况
|
}*/
|
}
|
fackIds.add(ecp.getId());
|
}
|
xml=document.asXML();
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(document.asXML(),"DASSendEquipmentWorkOrderResult"); // TODO 暂不通过接口传送
|
PMSXmlDataInterceptor.getInstance().addLog(true,"设备保养记录反馈", 1, xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
PMSXmlDataInterceptor.getInstance().addLog(true,"设备保养记录反馈", 0, xml);
|
fackIds.clear();
|
}
|
return fackIds;
|
}
|
|
/**
|
* [功能说明]:设备故障记录反馈
|
* DASSendEquipmentFault
|
* ->>在查询列表中,人工将故障反馈给MES
|
* 不确定故障反馈内容,后期反馈
|
* */
|
public void dasSendEquipmentFault(){
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element catalogElement = document.addElement("xml");
|
Element journalElement = catalogElement.addElement("Body");
|
//多节点
|
for(int i=0;i<2;i++){
|
Element EMFaults = journalElement.addElement("EMFaults");
|
Element EquipmentCode = EMFaults.addElement("EquipmentCode");
|
EquipmentCode.setText("00000002"); //设备编号
|
Element Category = EMFaults.addElement("Category");
|
Category.setText("1");//故障大类 1. 机械 2.电气 3 网络 0 未知
|
Element Type = EMFaults.addElement("Type");
|
Type.setText("ZJ17");//设备类型
|
Element Description = EMFaults.addElement("Description");
|
Description.setText("设备描述测试"+i);//设备描述
|
Element Shift = EMFaults.addElement("Shift");
|
Shift.setText("1");//班次 1.早班 2.中班 3.晚班
|
Element StartTime = EMFaults.addElement("StartTime");
|
StartTime.setText("2016-6-24 10:15:00");//故障发生开始时间
|
Element EndTime = EMFaults.addElement("EndTime");
|
EndTime.setText("2016-6-24 10:15:07");//故障结束时间
|
}
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(document.asXML(),"DASSendEquipmentFault"); // TODO 暂不通过接口传送
|
}
|
|
|
public void DASSendWkshopAssessment(EqmWkshopAssessmentBean bean) {
|
String xml="";
|
try {
|
Document document;
|
document=DocumentHelper.createDocument();
|
Element root = document.addElement("xml");
|
Element body = root.addElement("Body");
|
Element Date = body.addElement("Date");
|
Date.setText(bean.getDate());
|
List<EqmAssessment> list = bean.getList();
|
if (list!=null && list.size()>0) {
|
for (EqmAssessment o : list) {
|
Element CLItem = body.addElement("CLItem");
|
Element System = CLItem.addElement("System");
|
System.setText(o.getSystem());
|
Element ActualCheckNum = CLItem.addElement("ActualCheckNum");
|
ActualCheckNum.setText(o.getActualCheckNum().toString());
|
Element PlanCheckNum = CLItem.addElement("PlanCheckNum");
|
PlanCheckNum.setText(o.getPlanCheckNum().toString());
|
Element CLRate = CLItem.addElement("CLRate");
|
CLRate.setText(o.getClRate().toString());
|
Element CheckType = CLItem.addElement("CheckType");
|
CheckType.setText(o.getCheckType());
|
}
|
}
|
Element MonthRepairAmount = body.addElement("MonthRepairAmount");
|
MonthRepairAmount.setText(bean.getRepairamount().toString());
|
Element TotalRepairAmount = body.addElement("TotalRepairAmount");
|
TotalRepairAmount.setText(bean.getTotalAmount().toString());
|
Element TnPMRate = body.addElement("TnPMRate");
|
TnPMRate.setText(bean.getTnpmRate().toString());
|
Element Area = body.addElement("Area");
|
Area.setText(bean.getWorkShop());
|
xml=document.asXML();
|
System.out.println(xml);
|
//向MES发送XML
|
//----SendMessageClient.SendMessageToMes(document.asXML(),"DASSendAssessmentIndicators"); // TODO 暂不通过接口传送
|
PMSXmlDataInterceptor.getInstance().addLog(true,"车间考核数据反馈", 1, xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
PMSXmlDataInterceptor.getInstance().addLog(true,"车间考核数据反馈", 0, xml);
|
}
|
|
}
|
|
}
|