String subSite = TclineUtils.getSubSite(className);
Boolean testFlag = TclineUtils.isContainTest(tcline.getTf_desc());
package com.system.dqfn.util;
import java.util.ArrayList;
import java.util.List;
import com.system.dqfn.model.DQFNTcline;
public class TclineUtils {
//工艺路线控制
/**
* 工艺路线与表格对应的关系
* -----------------------
* 固晶 --1
* 焊线 --2
* 模封 --3
* 模封(加热揭膜) --3
* 电镀 --4
* 切割 --5
* 测试 --6
* 测试编带 --7
* 打标编带 --7
* -----------------------
*/
public static List<TextClass> getTextClass(String desc){
List<TextClass> list = new ArrayList<TextClass>();
String[] tcs = desc.split("->");
for(String t:tcs){
if("固晶".equals(t)){
TextClass tc = new TextClass();
tc.setText("固晶");
tc.setName("DQFNWP1_1");
list.add(tc);
}else if("一次印刷、贴芯片、氮气回流焊(140℃)".equals(t)){
TextClass tc = new TextClass();
tc.setText("一次印刷、贴芯片、氮气回流焊(140℃)");
tc.setName("DQFNWP1_1");
list.add(tc);
}else if("固晶1".equals(t)){
TextClass tc = new TextClass();
tc.setText("固晶①");
tc.setName("DQFNWP1_1");
list.add(tc);
}else if("固晶2".equals(t)){
TextClass tc = new TextClass();
tc.setText("固晶②");
tc.setName("DQFNWP1_2");
list.add(tc);
}else if("固晶3".equals(t)){
TextClass tc = new TextClass();
tc.setText("固晶③");
tc.setName("DQFNWP1_3");
list.add(tc);
}else if("焊线".equals(t)){
TextClass tc = new TextClass();
tc.setText("焊线");
tc.setName("DQFNWP2_1");
list.add(tc);
}else if("二次印刷、贴装跳片、氮气回流焊(260℃)".equals(t)){
TextClass tc = new TextClass();
tc.setText("二次印刷、贴装跳片、氮气回流焊(260℃)");
tc.setName("DQFNWP2_1");
list.add(tc);
}else if("焊线1".equals(t)){
TextClass tc = new TextClass();
tc.setText("焊线①");
tc.setName("DQFNWP2_1");
list.add(tc);
}else if("焊线1(175℃)".equals(t)){
TextClass tc = new TextClass();
tc.setText("焊线①(175℃)");
tc.setName("DQFNWP2_1");
list.add(tc);
}else if("焊线2".equals(t)){
TextClass tc = new TextClass();
tc.setText("焊线②");
tc.setName("DQFNWP2_2");
list.add(tc);
}else if("焊线2(175℃)".equals(t)){
TextClass tc = new TextClass();
tc.setText("焊线②(175℃)");
tc.setName("DQFNWP2_2");
list.add(tc);
}else if("模封".equals(t)){
TextClass tc = new TextClass();
tc.setText("模封");
tc.setName("DQFNWP3");
list.add(tc);
}else if("模封(加热揭膜)".equals(t)){
TextClass tc = new TextClass();
tc.setText("模封(加热揭膜)");
tc.setName("DQFNWP3");
list.add(tc);
}else if("电镀".equals(t)){
TextClass tc = new TextClass();
tc.setText("电镀");
tc.setName("DQFNWP4");
list.add(tc);
}else if("切割".equals(t)){
TextClass tc = new TextClass();
tc.setText("切割");
tc.setName("DQFNWP5");
list.add(tc);
}else if("切筋成型".equals(t)){
TextClass tc = new TextClass();
tc.setText("切筋成型");
tc.setName("DQFNWP5");
list.add(tc);
//切筋成型
}else if("测试".equals(t)){
TextClass tc = new TextClass();
tc.setText("测试");
tc.setName("DQFNWP6");
list.add(tc);
}else if("编带".equals(t)){
TextClass tc = new TextClass();
tc.setText("编带");
tc.setName("DQFNWP7");
list.add(tc);
}else if("打标编带".equals(t)){
TextClass tc = new TextClass();
tc.setText("打标编带");
tc.setName("DQFNWP7");
list.add(tc);
}else if("测试编带".equals(t)){
TextClass tc = new TextClass();
tc.setText("测试编带");
tc.setName("DQFNWP7");
list.add(tc);
}else if("测试打标编带".equals(t)){
TextClass tc = new TextClass();
tc.setText("测试打标编带");
tc.setName("DQFNWP7");
list.add(tc);
}
}
return list;
}
//得到首工序表名称
public static String getFirstWP(DQFNTcline tcline){
String result = "";
result = getFirstTableName(tcline.getTf_desc());
return result;
}
public static String getFirstTableName(String str){
String tableName = "ERROR";
String st = "";
String[] strs = str.split("->");
for(int i = 0; i < strs.length; i++){
st = strs[i].trim();
if(st.equals("固晶1") || st.equals("固晶") || st.equals("一次印刷、贴芯片、氮气回流焊(140℃)")){
tableName = "DQFNWP1_1";
break;
}else if(st.equals("固晶2")){
tableName = "DQFNWP1_2";
break;
}else if(st.equals("固晶3")){
tableName = "DQFNWP1_3";
break;
}else if(st.equals("焊线1(175℃)") || st.equals("焊线1") || st.equals("焊线") || st.equals("二次印刷、贴装跳片、氮气回流焊(260℃)")){
tableName = "DQFNWP2_1";
break;
}else if(st.equals("焊线2(175℃)") || st.equals("焊线2")){
tableName = "DQFNWP2_2";
break;
}else if(st.equals("模封") || st.equals("模封(加热揭膜)")){
tableName = "DQFNWP3";
break;
}else if(st.equals("电镀")){
tableName = "DQFNWP4";
break;
}else if(st.equals("切割") || st.equals("切筋成型")){
tableName = "DQFNWP5";
break;
}else if(st.equals("测试")){
tableName = "DQFNWP6";
break;
}else if(st.equals("打标编带") || st.equals("测试打标编带") || st.equals("测试编带") || st.equals("编带")){
tableName = "DQFNWP7";
break;
}
}
return tableName;
}
/**
* 得到站点名称
*/
public static String getSite(String str){
String result = "";
if("DQFNWP1_1".equals(str)){
result = "[DQFN数据录入系统]-[固晶[1]工序数据管理]";
}else if("DQFNWP1_2".equals(str)){
result = "[DQFN数据录入系统]-[固晶[2]工序数据管理]";
}else if("DQFNWP1_3".equals(str)){
result = "[DQFN数据录入系统]-[固晶[3]工序数据管理]";
}else if("DQFNWP2_1".equals(str)){
result = "[DQFN数据录入系统]-[焊线[1]工序数据管理]";
}else if("DQFNWP2_2".equals(str)){
result = "[DQFN数据录入系统]-[焊线[2]工序数据管理]";
}else if("DQFNWP3".equals(str)){
result = "[DQFN数据录入系统]-[模封工序数据管理]";
}else if("DQFNWP4".equals(str)){
result = "[DQFN数据录入系统]-[电镀工序数据管理]";
}else if("DQFNWP5".equals(str)){
result = "[DQFN数据录入系统]-[切割工序数据管理]";
}else if("DQFNWP6".equals(str)){
result = "[DQFN数据录入系统]-[测试工序数据管理]";
}else if("DQFNWP7".equals(str)){
result = "[DQFN数据录入系统]-[打标编带数据管理]";
}else if("DQFNWP8".equals(str)){
result = "[DQFN数据录入系统]-[合批编带数据管理]";
}else{
result = "[DQFN数据录入系统]-[产品包装]";
}
return result;
}
/**
* 得到子站点名称
*/
public static String getSubSite(String str){
String result = "";
if("DQFNWP1_1".equals(str)){
result = "固晶[1]工序数据处理";
}else if("DQFNWP1_2".equals(str)){
result = "固晶[2]工序数据处理";
}else if("DQFNWP1_3".equals(str)){
result = "固晶[3]工序数据处理";
}else if("DQFNWP2_1".equals(str)){
result = "焊线[1]工序数据处理";
}else if("DQFNWP2_2".equals(str)){
result = "焊线[2]工序数据处理";
}else if("DQFNWP3".equals(str)){
result = "模封工序数据处理";
}else if("DQFNWP4".equals(str)){
result = "电镀工序数据处理";
}else if("DQFNWP5".equals(str)){
result = "切割工序数据处理";
}else if("DQFNWP6".equals(str)){
result = "测试工序数据处理";
}else if("DQFNWP7".equals(str)){
result = "打标编带数据处理";
}else if("DQFNWP8".equals(str)){
result = "合批编带数据处理";
}else{
result = "其它数据处理";
}
return result;
}
public static String ClassParseTableName(String clzName){
String tableName = "";
if("DQFNWP1_1".equals(clzName)){
tableName = "tb_dqfn_wp1_1";
}else if("DQFNWP1_2".equals(clzName)){
tableName = "tb_dqfn_wp1_2";
}else if("DQFNWP2_1".equals(clzName)){
tableName = "tb_dqfn_wp1_2";
}else if("DQFNWP1_3".equals(clzName)){
tableName = "tb_dqfn_wp1_3";
}else if("DQFNWP2_1".equals(clzName)){
tableName = "tb_dqfn_wp2_1";
}else if("DQFNWP2_2".equals(clzName)){
tableName = "tb_dqfn_wp2_2";
}else if("DQFNWP3".equals(clzName)){
tableName = "tb_dqfn_wp3";
}else if("DQFNWP4".equals(clzName)){
tableName = "tb_dqfn_wp4";
}else if("DQFNWP5".equals(clzName)){
tableName = "tb_dqfn_wp5";
}else if("DQFNWP6".equals(clzName)){
tableName = "tb_dqfn_wp6";
}else if("DQFNWP7".equals(clzName)){
tableName = "tb_dqfn_wp7";
}else if("DQFNWP8".equals(clzName)){
tableName = "tb_dqfn_wp8";
}
return tableName;
}
public static String ClassTrseTableName(String clzName){
String tableName = "";
if("DQFNWP1_1".equals(clzName)){
tableName = "固晶1";
}else if("DQFNWP1_2".equals(clzName)){
tableName = "固晶2";
}else if("DQFNWP1_3".equals(clzName)){
tableName = "固晶3";
}else if("DQFNWP2_1".equals(clzName)){
tableName = "焊线1";
}else if("DQFNWP2_2".equals(clzName)){
tableName = "焊线2";
}else if("DQFNWP3".equals(clzName)){
tableName = "模压";
}else if("DQFNWP4".equals(clzName)){
tableName = "电镀";
}else if("DQFNWP5".equals(clzName)){
tableName = "切割";
}else if("DQFNWP6".equals(clzName)){
tableName = "测试";
}else if("DQFNWP7".equals(clzName)){
tableName = "打标编带";
}else if("DQFNWP8".equals(clzName)){
tableName = "合批编带";
}
return tableName;
}
public static String getEnWp(String tcline,String st){
String result = "";
if(st.equals("DQFNWP1_1")){
if(tcline.indexOf("固晶1") >= 0){
result = "固晶1";
}else if(tcline.indexOf("一次印刷、贴芯片、氮气回流焊(140℃)") >= 0){
result = "一次印刷、贴芯片、氮气回流焊(140℃)";
}else{
result = "固晶";
}
}else if(st.equals("DQFNWP1_2")){
result = "固晶2";
}else if(st.equals("DQFNWP1_3")){
result = "固晶3";
}else if(st.equals("DQFNWP2_1")){
if(tcline.indexOf("焊线1(175℃)") > 0){
result = "焊线1(175℃)";
}else if(tcline.indexOf("焊线1") > 0){
result = "焊线1";
}else if(tcline.indexOf("二次印刷、贴装跳片、氮气回流焊(260℃)") >= 0){
result = "二次印刷、贴装跳片、氮气回流焊(260℃)";
}else{
result = "焊线";
}
}else if(st.equals("DQFNWP2_2")){
if(tcline.indexOf("焊线2(175℃)") > 0){
result = "焊线2(175℃)";
}else{
result = "焊线2";
}
}else if(st.equals("DQFNWP3")){
if(tcline.indexOf("模封(加热揭膜)") >= 0){
result = "模封(加热揭膜)";
}else{
result = "模封";
}
}else if(st.equals("DQFNWP4")){
result = "电镀";
}else if(st.equals("DQFNWP5")){
if(tcline.indexOf("切筋成型") >= 0){
result = "切筋成型";
}else{
result = "切割";
}
}else if(st.equals("DQFNWP6")){
result = "测试";
}else if(st.equals("DQFNWP7")){
//测试打标编带,打标编带,测试编带,编带
if(tcline.indexOf("测试打标编带") >= 0){
result = "测试打标编带";
}else if(tcline.indexOf("打标编带") >= 0){
result = "打标编带";
}else if(tcline.indexOf("测试编带") >= 0){
result = "测试编带";
}else{
result = "编带";
}
}else{
result = "ERROR";
}
return result;
}
/**
* 得到子站点名称
*/
public static String getNextClass(String tcline,String str){
System.out.println("**********************************************");
System.out.println(tcline+"---"+str);
System.out.println("**********************************************");
str = getEnWp(tcline,str);
System.out.println(str);
String result = "";
String[] tcs = tcline.split("->");
int index = 100;
int i = 0;
for(i = 0; i < tcs.length;i++){
String t = tcs[i];
if(t.equals(str)){
index = i+1;
break;
}
}
if(index == 100){
str = str.replace("1", "");
for(i = 0; i < tcs.length;i++){
String t = tcs[i];
if(t.equals(str)){
index = i+1;
break;
}
}
}
result = getNextClass(tcline,index);
return result;
}
public static String getWBClass(String tc){
String result = "";
if(tc.contains("焊线3")){
result = "DQFNWP2_3";
}else{
if(tc.contains("焊线2") || tc.contains("焊线2(175℃)")){
result = "DQFN2_2";
}else{
result = "DQFNWP2_1";
}
}
return result;
}
public static String getNextClass(String tc,int index){
String className = "";
String[] tcs = tc.split("->");
if(index < tcs.length){
for(int i = index; i < tcs.length;i++){
String t = tcs[i];
if("固晶".equals(t) || "固晶1".equals(t) || "一次印刷、贴芯片、氮气回流焊(140℃)".equals(t)){
className = "DQFNWP1_1";
break;
}else if("固晶2".equals(t)){
className = "DQFNWP1_2";
break;
}else if("固晶3".equals(t)){
className = "DQFNWP1_3";
break;
}else if("焊线1(175℃)".equals(t) || "焊线".equals(t) || "焊线1".equals(t) || "二次印刷、贴装跳片、氮气回流焊(260℃)".equals(t)){
className = "DQFNWP2_1";
break;
}else if("焊线2(175℃)".equals(t) || "焊线2".equals(t)){
className = "DQFNWP2_2";
break;
}else if("模封".equals(t) || "模封(加热揭膜)".equals(t)){
className = "DQFNWP3";
break;
}else if("电镀".equals(t)){
className = "DQFNWP4";
break;
}else if("切割".equals(t) || "切筋成型".equals(t)){
className = "DQFNWP5";
break;
}else if("测试".equals(t)){
className = "DQFNWP6";
break;
}else if("打标编带".equals(t) || "测试打标编带".equals(t) || "编带".equals(t) || "测试编带".equals(t)){
className = "DQFNWP7";
break;
}
}
if("".equals(className)){
className = "ERROR";
}
}else{
className = "ERROR";
}
return className;
}
/**
* 得到上工序中文名称
* 参数1:路线
* 参数2:本工序名称
*/
public static String getStep(String tcline,String wp){
String result = "ERROR&ERROR";
String[] tcs = tcline.split("->");
int f = 0;
for(int i = 0;i < tcs.length;i++){
if(wp.equals(tcs[i])){
f = i;
break;
}
}
int k = f-1;
for(int j = k;j >= 0;j--){
if("固晶".equals(tcs[j])){
result = "固晶&DQFNWP1_1";
break;
}else if("固晶1".equals(tcs[j])){
result = "固晶1&DQFNWP1_1";
break;
}else if("固晶2".equals(tcs[j])){
result = "固晶2&DQFNWP1_2";
break;
}else if("固晶3".equals(tcs[j])){
result = "固晶3&DQFNWP1_3";
break;
}else if("焊线".equals(tcs[j])){
result = "焊线&DQFNWP2_1";
break;
}else if("焊线1".equals(tcs[j]) || "焊线1(175℃)".equals(tcs[j])){
result = "焊线1&DQFNWP2_1";
break;
}else if("焊线2".equals(tcs[j]) || "焊线2(175℃)".equals(tcs[j])){
result = "焊线2&DQFNWP2_2";
break;
}else if("模封".equals(tcs[j]) || "模封(加热揭膜)".equals(tcs[j])){
result = "模封&DQFNWP3";
break;
}else if("电镀".equals(tcs[j])){
result = "电镀&DQFNWP4";
break;
}else if("切割".equals(tcs[j]) || "切筋成型".equals(tcs[j])){
result = "切割&DQFNWP5";
break;
}else if("测试".equals(tcs[j])){
result = "测试&DQFNWP6";
break;
}else if("打标编带".equals(tcs[j]) || "测试打标编带".equals(tcs[j]) || "编带".equals(tcs[j]) || "测试编带".equals(tcs[j])){
result = "打标编带&DQFNWP7";
break;
}
}
return result;
}
public static boolean isContainYT(String desc){
boolean b = false;
if(desc.indexOf("测试打标编带") >= 0 || desc.indexOf("测试编带") >= 0){
b = true;
}
return b;
}
public static boolean isContainTest(String desc){
boolean b = false;
if(desc.indexOf("测试打标编带") >= 0 || desc.indexOf("测试") >= 0){
b = true;
}
return b;
}
}