package com.connor.dfl.plm.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.connor.dfl.plm.dfl019.ClassPropBean; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCClassificationService; import com.teamcenter.rac.kernel.TCComponentICO; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.ics.ICSAdminClass; import com.teamcenter.rac.kernel.ics.ICSAdminClassAttribute; import com.teamcenter.rac.kernel.ics.ICSProperty; import com.teamcenter.rac.util.MessageBox; public class ClassValueUtil { public static ClassValueBean getOutBuyPartValue(TCComponentItemRevision rev,List errList) { // TODO Auto-generated method stub ClassValueBean valueBean = new ClassValueBean(); AbstractAIFApplication app = AIFUtility.getCurrentApplication(); TCSession session = (TCSession) app.getSession(); List vals = new ArrayList(); StringBuilder sb = new StringBuilder(); List classPropList = new ArrayList(); TCClassificationService classificationService = session.getClassificationService(); try { String className = rev.getClassificationClass(); if("".equals(className.trim())) { errList.add(className); MessageBox.post(rev.getStringProperty("item_id")+"该物料没有发送至分类,请先发送分类!!", "提示", MessageBox.WARNING); return null; } TCComponentICO[] icos = rev.getClassificationObjects(); ICSAdminClass c = classificationService.newICSAdminClass(); c.load(className); //String icoPUID = icos[0].getUid(); Map claMap = new HashMap(); if(icos != null && icos.length>0){ ICSProperty[] icss = icos[0].getICSProperties(true); for (ICSProperty ics : icss) { claMap.put(ics.getId(), ics.getValue()); } } for(Map.Entry entry : claMap.entrySet()){ System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); } ICSAdminClassAttribute[] icsAttrS = c.getAttributes(); if (icsAttrS != null) { for (ICSAdminClassAttribute attr : icsAttrS) { if (attr.isReferenceAttribute()) { continue; } if (attr.isReference()) { continue; } ClassPropBean bean = new ClassPropBean(attr); classPropList.add(bean); } } boolean have = true; for (int i = 0; i < classPropList.size(); i++) { ClassPropBean bean = classPropList.get(i); String attrName = bean.propDisName; System.out.println("attrName==========="+attrName); String value = claMap.get(bean.propID); if(bean.isLov) { String lovValue = bean.lovMapping.get(value); if("品牌".equals(attrName)) { valueBean.setBrand(lovValue); }else if("单位".equals(attrName)){ valueBean.setUnit(lovValue); } else if(attrName.contains("规格")){ String kaitou1 = attrName.substring(0,2); //前两个字是否为规格 if("规格".equals(kaitou1)) { valueBean.setSpec(lovValue); } } else if(attrName.contains("订货码")){ valueBean.setCode(lovValue); }else { if("/".equals(lovValue) || "null".equals(lovValue)) { System.out.println("不进行拼接"); continue; } sb.append(lovValue); if(i < classPropList.size()-1) { sb.append(";"); } } }else { if("品牌".equals(attrName)) { valueBean.setBrand(value); }else if("单位".equals(attrName)){ valueBean.setUnit(value); }else if(attrName.contains("规格")){ String kaitou2 = attrName.substring(0,2); //前两个字是否为规格 if("规格".equals(kaitou2)) { valueBean.setSpec(value); } }else if(attrName.contains("订货码")){ valueBean.setCode(value); }else { if("/".equals(value) || "null".equals(value)) { System.out.println("不进行拼接"); continue; } sb.append(value); if(i < classPropList.size()-1) { sb.append(";"); } } } } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } StringBuilder specSB = new StringBuilder(); if(valueBean.getBrand() != null) { if(!("".equals((valueBean.getBrand()).trim())) && !("/".equals((valueBean.getBrand()).trim())) && !("null".equals((valueBean.getBrand()).trim()))) { specSB.append(valueBean.getBrand()); specSB.append(";"); } } if(valueBean.getSpec() != null) { if(!("".equals((valueBean.getSpec()).trim())) && !("/".equals((valueBean.getSpec()).trim())) && !("null".equals((valueBean.getSpec()).trim()))) { specSB.append(valueBean.getSpec()); specSB.append(";"); } } if(valueBean.getCode() != null) { if(!("".equals((valueBean.getCode()).trim())) && !("/".equals((valueBean.getCode()).trim())) && !("null".equals((valueBean.getCode()).trim()))) { specSB.append(valueBean.getCode()); specSB.append(";"); } } specSB.append(sb.toString()); valueBean.setSpecs(specSB.toString()); return valueBean; } public static ClassValueBean getOutSourcePartValue(TCComponentItemRevision rev,List errList) { // TODO Auto-generated method stub ClassValueBean valueBean = new ClassValueBean(); AbstractAIFApplication app = AIFUtility.getCurrentApplication(); TCSession session = (TCSession) app.getSession(); List vals = new ArrayList(); StringBuilder sb = new StringBuilder(); List classPropList = new ArrayList(); TCClassificationService classificationService = session.getClassificationService(); try { String className = rev.getClassificationClass(); if("".equals(className.trim())) { errList.add(className); MessageBox.post(rev.getStringProperty("item_id")+"该物料没有发送至分类,请先发送分类!!", "提示", MessageBox.WARNING); return null; } TCComponentICO[] icos = rev.getClassificationObjects(); ICSAdminClass c = classificationService.newICSAdminClass(); c.load(className); //String icoPUID = icos[0].getUid(); Map claMap = new HashMap(); if(icos != null && icos.length>0){ ICSProperty[] icss = icos[0].getICSProperties(true); for (ICSProperty ics : icss) { claMap.put(ics.getId(), ics.getValue()); } } for(Map.Entry entry : claMap.entrySet()){ System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); } ICSAdminClassAttribute[] icsAttrS = c.getAttributes(); if (icsAttrS != null) { for (ICSAdminClassAttribute attr : icsAttrS) { if (attr.isReferenceAttribute()) { continue; } if (attr.isReference()) { continue; } ClassPropBean bean = new ClassPropBean(attr); classPropList.add(bean); } } boolean have = true; for (int i = 0; i < classPropList.size(); i++) { ClassPropBean bean = classPropList.get(i); String attrName = bean.propDisName; System.out.println("attrName==========="+attrName); String value = claMap.get(bean.propID); if(bean.isLov) { String lovValue = bean.lovMapping.get(value); if("品牌".equals(attrName)) { valueBean.setBrand(lovValue); }else { if("/".equals(lovValue) || "null".equals(lovValue)) { System.out.println("不进行拼接"); continue; } sb.append(lovValue); if(i < classPropList.size()-1) { sb.append(";"); } } }else { if("品牌".equals(attrName)) { valueBean.setBrand(value); }else { if("/".equals(value) || "null".equals(value)) { System.out.println("不进行拼接"); continue; } sb.append(value); if(i < classPropList.size()-1) { sb.append(";"); } } } } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } StringBuilder specSB = new StringBuilder(); if(valueBean.getBrand() != null) { if(!("".equals((valueBean.getBrand()).trim())) && !("/".equals((valueBean.getBrand()).trim())) && !("null".equals((valueBean.getBrand()).trim()))) { specSB.append(valueBean.getBrand()); specSB.append(";"); } } specSB.append(sb.toString()); valueBean.setSpecs(specSB.toString()); return valueBean; } }