| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- package UIE.UIE03;
- import java.io.ByteArrayOutputStream;
- import java.io.PrintStream;
- import java.sql.SQLException;
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Map;
- import java.util.Set;
- import org.apache.commons.lang.StringUtils;
- import UIB.COM.XmlSqlParsersFactory;
- import CoreFS.SA01.CoreIComponent;
- import CoreFS.SA06.CoreReturnObject;
- public class UIE043010 extends CoreIComponent {
- public CoreReturnObject repSave()throws Exception
- {
- //String sqlstr = XmlSqlParsersFactory.getSql("UIE043010_01.update");
- String sqlstr = "UPDATE test_tbb02_work SET ABC = '11' WHERE COIL_NO = '1'";
- CoreReturnObject cro = this.getDao("KgDao").ExcuteNonQuery(sqlstr);
-
- sqlstr = "UPDATE test_tbb02_work SET ABC = '22' WHERE COIL_NO = '2'";
- cro = this.getDao("KgDao").ExcuteNonQuery(sqlstr);
-
- sqlstr = "UPDATE test_tbb02_work SET ABC = '33' WHERE COIL_NO1 = '3'";
- cro = this.getDao("KgDao").ExcuteNonQuery(sqlstr);
- return null;
- }
- public CoreReturnObject query01(String areaType) throws SQLException
- {
- CoreReturnObject cro=new CoreReturnObject();
- StringBuffer str = new StringBuffer();
- str.append("SELECT \n");
- str.append("a.ROLL_MANA_NO --轧制单元号 \n");
- str.append(",a.ROLL_COIL_SEQ --单元内序号 \n");
- str.append(",a.COIL_EDT_SEQ --轧制序号 \n");
- str.append(",a.C_COIL_NO --冷卷号 \n");
- str.append(",a.COIL_NO --热卷号 \n");
- str.append(",a.SPEC_STL_GRD --酸轧牌号 \n");
- str.append(",a.STL_GRD --热轧牌号 \n");
- str.append(",a.STL_GRP_CD --钢号组 \n");
- str.append(",a.COIL_THK --热卷厚度 \n");
- str.append(",a.COIL_WTH --热卷宽度 \n");
- str.append(",a.COIL_WGT --热卷重量 \n");
- str.append(",b.cur_load_loc --堆放位置 \n");
- str.append(",a.ORD_NO --合同号 \n");
- str.append(",a.ORD_SEQ --订单号 \n");
- str.append(",a.ORD_THK --订单厚度 \n");
- str.append(",a.ORD_WTH --订单宽度 \n");
- str.append(",a.ORD_WGT --订单重量 \n");
- str.append(",a.ORD_WGT_MIN --订单下限 \n");
- str.append(",a.ORD_WGT_MAX --订单上限 \n");
- str.append(",a.ORD_INDIA --订单内径 \n");
- str.append(",a.ORD_OUTDIA --订单外径 \n");
- str.append("FROM c_tbf03_spec_mill a, \n");
- str.append("c_tbk02_coil_comm b \n");
- str.append("WHERE a.COIL_NO = b.COIL_NO \n");
- str.append("and a.ROLL_MANA_NO = :1 \n");
- str.append("and a.REG_DTIME between :2||'000000' and :3||'999999' \n");
- str.append("and b.MILL_DTIME between :4||'000000' and :5||'999999' \n");
- str.append("and b.ORD_NO = :6 \n");
- str.append("and b.ORD_SEQ = :7 \n");
- str.append("ORDER BY a.ROLL_MANA_NO,a.ROLL_COIL_SEQ \n");
- String sql = str.toString();
- cro=this.getDao("KgDao").ExcuteQuery(sql);
-
- System.out.println(cro);
- return cro;
- }
- /**
- * 连退成品充当时判断订单材质项目与钢卷材质是否匹配
- * @author KM
- */
- public CoreReturnObject compareOrdCoilQlty(String coilNo,String ordNO,String ordSeq) {
- CoreReturnObject cro = new CoreReturnObject();
- //获取订单要求材质项目sql
- String Sql1 = XmlSqlParsersFactory.getSql("UIE043010_ord_01.select");
- //获取钢卷对应的材质项目sql
- String Sql2 = XmlSqlParsersFactory.getSql("UIE043010_ord_02.select");
- //查询钢卷是否 在改判中
- String Sql3 = XmlSqlParsersFactory.getSql("UIE043010_ord_03.select");
- Object[] ordParams = new Object[]{ordNO,ordSeq,ordNO,ordSeq};
- StringBuffer QLTY_ORD_DESC = new StringBuffer("");
- StringBuffer QLTY_COIL_DESC = new StringBuffer("");
- int ordEqual = 0; //表示材质与订单匹配一致;
- try {
- //查询钢卷是否 在改判中,处于改判中的钢卷不能充当
- ArrayList coilGP_List = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql3,new String[] {coilNo});
- if(coilGP_List == null || 0 == coilGP_List.size()) {
- cro.setV_errMsg("GP"); // CoreClientParam.ReturnInfo
- //cro.setResult("setResult:" + state); //CoreClientParam.ReturnObject
- return cro;
- }
- //获取订单要求的材质项目
- ArrayList ordList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql1,ordParams);
- System.out.println("ordQlty_sql------- " + Sql1);
- //获取钢卷对应的材质项目
- ArrayList coilQlty_List = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql2,new String[] {coilNo});
- System.out.println("coilQlty_sql------- " + Sql2);
- if(0 == ordList.size() || 0 == coilQlty_List.size()) {
- cro.setV_errMsg(QLTY_ORD_DESC.toString()); // CoreClientParam.ReturnInfo
- //cro.setResult("setResult:" + state); //CoreClientParam.ReturnObject
- return cro;
- }
- Double val_8050 = Double.valueOf(0); //存放伸长率转换后的值
- DecimalFormat df = new DecimalFormat("#0.000");
- for (int j = 0; j < ordList.size(); j++) {
- Map map = (Map) ordList.get(j);
- String QLTY_CD1 = map.get("QLTY_CD").toString();
- Object QLTY_CD_CFNM1 = map.get("QLTY_CD_CFNM");
- Object QLTY_MIN1 = map.get("QLTY_MIN");
- Object QLTY_MAX1 = map.get("QLTY_MAX");
- Object QLTY_DEC_CD1 = map.get("QLTY_DEC_CD");
- if(QLTY_MIN1 == null) QLTY_MIN1 = "";
- if(QLTY_MAX1 == null) QLTY_MAX1 = "";
- if(QLTY_DEC_CD1 == null) QLTY_DEC_CD1 = "";
- String dxDesc = (QLTY_MIN1 == "" ? "" : (QLTY_MIN1 + "(最小)")) + (QLTY_MAX1 == "" ? "" : (QLTY_MAX1 + "(最大)"));
- if(!StringUtils.isEmpty(QLTY_DEC_CD1.toString()) && !"B".equals(QLTY_DEC_CD1.toString())) {
- QLTY_ORD_DESC.append(QLTY_CD1+" " + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
-
- } else { //对伸长率、屈服强度、抗拉强度进行匹配
- int qltyEqual = 0; //表示单个材质没找到匹配的;
- String qlty_VAL = "";
- String qlty_coil_cd = ""; //伸长率EL05
- String isEL = "" ; //表示钢卷材质项目中是否有伸长率
- for (int t = 0; t < coilQlty_List.size(); t++) {
- Map tMap = (Map) coilQlty_List.get(t);
- String PROD_CD = tMap.get("QLTY_CD").toString();
- Object PROD_CD_CFNM = tMap.get("QLTY_CD_CFNM"); //名称
- Object PROD_VAL = tMap.get("QLTY_VAL_WK"); //实绩值
- if(PROD_VAL == null) PROD_VAL = "";
- if(QLTY_CD1.equals(PROD_CD)) {
- int isHege = 1; //
- if(!"".equals(QLTY_MIN1)) {
- if("".equals(PROD_VAL))
- isHege =0;
- else if(Double.valueOf(PROD_VAL.toString()) < Double.valueOf(QLTY_MIN1.toString()))
- isHege =0;
- }
- if(!"".equals(QLTY_MAX1)) {
- if(!"".equals(PROD_VAL)) {
- if(Double.valueOf(PROD_VAL.toString()) > Double.valueOf(QLTY_MAX1.toString()))
- isHege =0;
- }
- }
- if(isHege == 0) {
- qltyEqual = 2; //表示匹配了但不合格
- } else
- qltyEqual = 1; //表示匹配了
- break; //找到了匹配的材质项目就结束当前for循环
- } else if("EL".equals(strIsStarwith(PROD_CD))) { //伸长率
- isEL = "TRUE"; //有伸长率
- qlty_VAL = PROD_VAL.toString();
- if("EL05".equals(PROD_CD)) {
- qlty_coil_cd = "EL05";
- }
- }
- }
- if("EL".equals(strIsStarwith(QLTY_CD1)) && qltyEqual == 0) { //伸长率
- int isHege = 1;
- if("TRUE".equals(isEL) && !StringUtils.isEmpty(qlty_VAL)) {
- if("EL05".equals(qlty_coil_cd)) { //充当钢卷伸长率为A80
- val_8050 = Double.valueOf(df.format(Double.valueOf(qlty_VAL)*1.207)); //A80转换成A50
- } else if("EL05".equals(QLTY_CD1)) { //订单伸长率为A80
- val_8050 = Double.valueOf(df.format(Double.valueOf(qlty_VAL)*0.829)); //A50转换成A80
- } else {
- isHege = 2;
- val_8050 = null;
- }
- }
- if(!"".equals(QLTY_MIN1) && val_8050 != null) {
- if(val_8050 < Double.valueOf(QLTY_MIN1.toString()))
- isHege =0;
- }
- if(!"".equals(QLTY_MAX1) && val_8050 != null) {
- if(val_8050 > Double.valueOf(QLTY_MAX1.toString()))
- isHege =0;
- }
- if(isHege == 0)
- qltyEqual = 3; //表示伸长率转换后不合格
- else if(isHege == 2)
- qltyEqual = 5; //表示伸长率中没有A80项目
- else
- qltyEqual = 4; //表示不匹配但转换后合格
- }
- if(qltyEqual == 1) {
- QLTY_ORD_DESC.append(QLTY_CD1+" " + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
- } else if(qltyEqual == 0 || qltyEqual == 5) {
- QLTY_ORD_DESC.append(QLTY_CD1+"【不匹配】" + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
- ordEqual = 1; //标识不匹配
- } else if(qltyEqual == 2) {
- QLTY_ORD_DESC.append(QLTY_CD1+"【不合格】" + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
- } else if(qltyEqual == 3) {
- QLTY_ORD_DESC.append(QLTY_CD1+"【转换后" + val_8050 + "不合格】" + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
- ordEqual = 1; //标识不匹配
- } else if(qltyEqual == 4) {
- QLTY_ORD_DESC.append(QLTY_CD1+"【转换后" + val_8050 + "合格】" + QLTY_CD_CFNM1.toString() + " " + dxDesc + "\n");
- ordEqual = 1; //标识不匹配
- }
- }
- }
- for (int n = 0; n < coilQlty_List.size(); n++) {
- Map tMap = (Map) coilQlty_List.get(n);
- String PROD_CD = tMap.get("QLTY_CD").toString();
- Object PROD_CD_CFNM = tMap.get("QLTY_CD_CFNM"); //名称
- Object PROD_VAL = tMap.get("QLTY_VAL_WK"); //实绩值
- if(PROD_VAL == null) PROD_VAL = "";
- QLTY_COIL_DESC.append(PROD_CD+" " + PROD_CD_CFNM.toString() + " " + (PROD_VAL == ""? "" : (PROD_VAL + "(实际值)" )) + "\n");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- String msg = QLTY_COIL_DESC.toString();
- if(!StringUtils.isEmpty(msg))
- msg = "◆钢卷" + coilNo + "对应的材质实绩:\n" + msg;
- if(!StringUtils.isEmpty(QLTY_ORD_DESC.toString()))
- msg = msg + "\n◆订单" + ordNO + "-" + ordSeq + "要求材质项目:\n" + QLTY_ORD_DESC.toString();
- cro.setV_errMsg(msg); // CoreClientParam.ReturnInfo
- cro.setV_errCode(ordEqual); //对应客户端显示CoreClientParam.ReturnCode
- //cro.setResult("setResult:" + state); //CoreClientParam.ReturnObject
- return cro;
- }
-
- /**
- * 连退成品充当时不匹配的钢卷材质转换成订单要求材质保存到TBB02_WORK_QLTY_MS表中
- * 此方法暂时没用到
- * @author KM
- */
- public CoreReturnObject coilQltyToOrd(String coilNo,String ordNO,String ordSeq,String REG_ID) {
- CoreReturnObject cro = new CoreReturnObject();
- //获取订单要求材质项目sql
- String Sql1 = XmlSqlParsersFactory.getSql("UIE043010_ord_01.select");
- //获取钢卷对应的材质项目sql
- String Sql2 = XmlSqlParsersFactory.getSql("UIE043010_ord_02.select");
- Object[] ordParams = new Object[]{ordNO,ordSeq,ordNO,ordSeq};
- String msg = "";
- try {
- //获取订单要求的材质项目
- ArrayList ordList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql1,ordParams);
- System.out.println("ordQlty_sql------- " + Sql1);
- //获取钢卷对应的材质项目
- ArrayList coilQlty_List = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql2,new String[] {coilNo});
- System.out.println("coilQlty_sql------- " + Sql2);
- if(0 == ordList.size() || 0 == coilQlty_List.size()) {
- cro.setV_errMsg(msg);
- return cro;
- }
- Object val_8050 = null; //存放伸长率转换后的值
- DecimalFormat df = new DecimalFormat("#0.000");
- for (int j = 0; j < coilQlty_List.size(); j++) {
- Map map = (Map) coilQlty_List.get(j);
- String C_SMP_NO = map.get("SMP_NO").toString();
- String C_SMP_CUT_LOC = map.get("SMP_CUT_LOC").toString();
- String C_QLTY_CD = map.get("QLTY_CD").toString();
- Object C_QLTY_VAL_WK = map.get("QLTY_VAL_WK"); //实绩值
- Object C_QLTY_UNIT_WK = map.get("QLTY_UNIT_WK");
- Object C_QLTY_TYPE_WK = map.get("QLTY_TYPE_WK");
- Object C_QLTY_WK_TP = map.get("QLTY_WK_TP");
- Object C_UPDATE_NO_TP = map.get("UPDATE_NO_TP");
- Object C_QLTY_CD_AFTER = map.get("QLTY_CD_AFTER");
- if(C_QLTY_VAL_WK == null) C_QLTY_VAL_WK = "";
- if(C_QLTY_UNIT_WK == null) C_QLTY_UNIT_WK = "";
- if(C_QLTY_TYPE_WK == null) C_QLTY_TYPE_WK = "";
- if(C_QLTY_WK_TP == null) C_QLTY_WK_TP = "";
- if(C_UPDATE_NO_TP == null) C_UPDATE_NO_TP = "";
- if(C_QLTY_CD_AFTER == null) C_QLTY_CD_AFTER = "";
- val_8050 = C_QLTY_VAL_WK;
- //只对伸长率、屈服强度、抗拉强度不匹配时进行转换
- if(!"XX".equals(strIsStarwith(C_QLTY_CD))) {
- for (int t = 0; t < ordList.size(); t++) {
- Map tMap = (Map) ordList.get(t);
- String PROD_CD = tMap.get("QLTY_CD").toString();
- if(C_QLTY_CD.equals(PROD_CD)) {
- break; //找到了匹配的材质项目就结束当前for循环
- } else if(!"XX".equals(strIsStarwith(PROD_CD))) {
- if("EL".equals(strIsStarwith(C_QLTY_CD)) && "EL".equals(strIsStarwith(PROD_CD))) { //伸长率
- if("EL05".equals(C_QLTY_CD) && !StringUtils.isEmpty(C_QLTY_VAL_WK.toString())) { //充当钢卷伸长率为A80
- val_8050 = df.format(Double.valueOf(C_QLTY_VAL_WK.toString())*1.207); //A80转换成A50
- } else if("EL05".equals(PROD_CD) && !StringUtils.isEmpty(C_QLTY_VAL_WK.toString())) { //订单伸长率为A80
- val_8050 = df.format(Double.valueOf(C_QLTY_VAL_WK.toString())*0.829); //A50转换成A80
- }
- C_QLTY_CD_AFTER = C_QLTY_CD;
- C_QLTY_CD = PROD_CD;
- C_QLTY_VAL_WK = val_8050;
- } else if("YS".equals(strIsStarwith(C_QLTY_CD)) && "YS".equals(strIsStarwith(PROD_CD))) {
- C_QLTY_CD_AFTER = C_QLTY_CD;
- C_QLTY_CD = PROD_CD;
- } else if("TE".equals(strIsStarwith(C_QLTY_CD)) && "TE".equals(strIsStarwith(PROD_CD))) {
- C_QLTY_CD_AFTER = C_QLTY_CD;
- C_QLTY_CD = PROD_CD;
- }
- }
- }
- }
- //检查是否存在同样的材质项目
- String sql3 = XmlSqlParsersFactory.getSql("UIE043010_WORK_QLTY_MS.select");
- ArrayList coilMsList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sql3,new Object[]{C_SMP_NO,C_SMP_CUT_LOC,C_QLTY_CD});
- if(null == coilMsList || 0 == coilMsList.size()){
- //插入到质保书材质转换表中
- insertWQMS(C_SMP_NO, C_SMP_CUT_LOC, C_QLTY_CD, C_QLTY_VAL_WK, C_QLTY_UNIT_WK,
- C_QLTY_TYPE_WK, C_QLTY_WK_TP, C_UPDATE_NO_TP, REG_ID, C_QLTY_CD_AFTER);
- }
- }
- } catch (Exception e) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- e.printStackTrace(new PrintStream(baos));
- String exception = baos.toString();
- cro.setV_errMsg("Error : " + exception); // CoreClientParam.ReturnInfo
- e.printStackTrace();
- return cro;
- }
- cro.setV_errMsg(msg); // CoreClientParam.ReturnInfo
- //cro.setV_errCode(Integer.valueOf(state)); //对应客户端显示CoreClientParam.ReturnCode
- //cro.setResult("setResult:" + state); //CoreClientParam.ReturnObject
- return cro;
- }
-
- protected void insertWQMS(Object SMP_NO,Object SMP_CUT_LOC,Object QLTY_CD,Object QLTY_VAL_WK,Object QLTY_UNIT_WK,Object QLTY_TYPE_WK
- ,Object QLTY_WK_TP,Object UPDATE_NO_TP,Object REG_ID,Object QLTY_CD_AFTER) throws SQLException {
- String sql = XmlSqlParsersFactory.getSql("UIE043010_WORK_QLTY_MS.insert");
- Object[] param2 = new Object[11];
- param2[0] = SMP_NO; //试样号
- param2[1] = SMP_CUT_LOC;
- param2[2] = QLTY_CD;
- param2[3] = QLTY_VAL_WK;
- param2[4] = QLTY_UNIT_WK;
- param2[5] = QLTY_TYPE_WK;
- param2[6] = QLTY_WK_TP;
- param2[7] = UPDATE_NO_TP;
- param2[8] = "UIE043010";
- param2[9] = REG_ID;
- param2[10] = QLTY_CD_AFTER;
- this.getDao("KgDao").ExcuteNonQuery(sql, param2);
- }
-
- /**
- * 判断材质代码是否是以EL、YS、TE开头
- * @return
- */
- public String strIsStarwith(String qltyCD) {
- if(qltyCD.startsWith("EL"))
- return "EL";
- else if(qltyCD.startsWith("YS"))
- return "YS";
- else if(qltyCD.startsWith("TE"))
- return "TE";
- else
- return "XX";
- }
- }
|