package xin.glue.ui.J.J01; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.sql.Connection; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import org.apache.commons.lang.StringUtils; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class FJHModifyShipProgStatusOfCoils extends PosActivity { public String runActivity(PosContext context) { //UPDATE TBH02_COIL_COMM String[] pShipProgCd = (String[]) context.get("SHIP_PROG_CD" ); //SET SHIP_PROG_CD = :1 String[] pCoilNo = (String[]) context.get("COIL_NO" ); //WHERE COIL_NO = :2 // 车辆号 String[] TRANS_CAR_NO = (String[]) context.get("TRANS_CAR_NO" ); String[] COIL_WGT = (String[]) context.get("COIL_WGT" ); //草支垫重量 String[] CZD = (String[]) context.get("CZD"); //钢卷实际规格厚度 String[] COIL_THK = (String[]) context.get("COIL_THK" ); // 运输指示号 String[] pDlivDirNo = (String[]) context.get("DLIV_DIRNO"); // 钢种牌号 String[] SPEC_STL_GRD = (String[]) context.get("SPEC_STL_GRD"); // 发货时间 String[] TRNF_DTIME = (String[]) context.get("TRNF_DTIME"); // 收货单位 String[] ORD_NM = (String[]) context.get("ORD_NM"); // 到站点 String[] DEST_PCD_DESC = (String[]) context.get("DEST_PCD_DESC"); // 合同单位 String[] CUST_NM = (String[]) context.get("CUST_NM"); // 运输公司 String[] SHIP_COMP_CD = (String[]) context.get("SHIP_COMP_CD"); // 运输公司 String[] SHIP_COMP_NM = (String[]) context.get("SHIP_COMP_NM"); // 钢卷号 String[] OLD_SAMPL_NO = (String[]) context.get("OLD_SAMPL_NO"); // 产品名称 String[] SM_CFNM = (String[]) context.get("SM_CFNM"); String[] ORD_CD = (String[]) context.get("ORD_CD"); String[] DLIV_TP = (String[]) context.get("DlivType"); String[] ORD_NO = (String[]) context.get("ORD_NO"); // 登录人 String[] REG_ID = (String[]) context.get("REG_ID"); //保存发货明细状态的同时把钢卷数据保存到货运中国中间表去 PosParameter param2 = null; PosParameter param5 = null; PosParameter param4 = null; Connection conn = null; Statement sta = null; PosRow row; ArrayList list=new ArrayList(); int iCnt = 0; if( OLD_SAMPL_NO != null ) { iCnt = OLD_SAMPL_NO.length; } try { for( int i = 0; i < iCnt; i++ ) { String dlno=pDlivDirNo[i]; param4 = new PosParameter(); param4.setWhereClauseParameter(0, pDlivDirNo[i]); PosRowSet rows2 = getDao("mesdao").find("UIJ010060_cargocn_01.select", param4); while (rows2.hasNext()) { row = rows2.next(); dlno = (String)row.getAttribute("COIL_NO"); if(i==0) { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, pDlivDirNo[i]); getDao("mesdao").update("UIJ010060_cargocn_02.update", param); } list.add(i, dlno); param2 = new PosParameter(); param2.setWhereClauseParameter(0, dlno); this.getDao("mesdao").delete("UIJ010060_cargocn.delete", param2); } } for( int i = 0; i < iCnt; i++ ) { logger.logError("HUOYUN INSERT START COILNO=" + OLD_SAMPL_NO[i]); param2 = new PosParameter(); String flat = "1"; param2.setWhereClauseParameter(0, OLD_SAMPL_NO[i]); PosRowSet rows2 = getDao("mesdao").find("UIJ010060_cargocn.select", param2); //若表中存在该钢卷则删除 if(rows2.hasNext()){ getDao("mesdao").delete("UIJ010060_cargocn.delete", param2); flat = "0"; } param2 = new PosParameter(); param2.setValueParamter(0, OLD_SAMPL_NO[i]); //钢卷号 param2.setValueParamter(1, pDlivDirNo[i]); //发运指示号 param2.setValueParamter(2, SPEC_STL_GRD[i]); //牌号 param2.setValueParamter(3, TRANS_CAR_NO[i]); //车牌号 param2.setValueParamter(4, COIL_WGT[i]); //重量 // SimpleDateFormat formatter2=new SimpleDateFormat("yyyyHHddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String trnFTime = TRNF_DTIME[i]; if(StringUtils.isEmpty(trnFTime) || "-".equals(trnFTime)) trnFTime = sdf.format(Calendar.getInstance().getTime()); param2.setValueParamter(5, trnFTime); //发货时间 param2.setValueParamter(6, ORD_NM[i]); //收货单位 param2.setValueParamter(7, DEST_PCD_DESC[i]); //到站 param2.setValueParamter(8, CUST_NM[i]); //合同单位 String SHIP_COMP = SHIP_COMP_NM[i]; if(StringUtils.isEmpty(SHIP_COMP)) SHIP_COMP = SHIP_COMP_CD[i]; param2.setValueParamter(9, SHIP_COMP); //承运单位 param2.setValueParamter(10, SM_CFNM[i]); //产品名称 param2.setValueParamter(11, "新余市"); //发货城市 param2.setValueParamter(12, "热卷厂"); //发货地点 param2.setValueParamter(13, 1); //订单类型默认1 //通过到站地点从产销数据库查收货城市、收货人、电话 param5 = new PosParameter(); param5.setWhereClauseParameter(0, pDlivDirNo[i]); String receiveCity = DEST_PCD_DESC[i]; String receiveNM = ""; String receivePhone = ""; PosRowSet rows5 = getDao("mesdao").find("UIJ010060_cx.select", param5); if(rows5.hasNext()){ PosRow row5 = rows5.next(); Object receiveCityS = row5.getAttribute("UNLOADDOCK"); //产线系统的收货城市 Object receiveNMS = row5.getAttribute("SHR"); //产线系统的收货人 Object receivePhoneS = row5.getAttribute("SHRDH"); //产线系统的收货人电话 if(null != receiveCityS) receiveCity = receiveCityS.toString(); if(null != receiveNMS) receiveNM = receiveNMS.toString(); if(null != receivePhoneS) receivePhone = receivePhoneS.toString(); } param2.setValueParamter(14, receiveCity); //收货城市 param2.setValueParamter(15, receiveNM); //收货联系人 param2.setValueParamter(16, receivePhone); //收货联系人电话 param2.setValueParamter(17, "6"); //未发送状态 param2.setValueParamter(18, "xgmes3_UIJ010060"); //保存数据的系统和界面 param2.setValueParamter(19, REG_ID[0]); // 操作人 param2.setValueParamter(20, DLIV_TP[i]); // 运输方式 param2.setValueParamter(21, "A"); // 修改标示 param2.setValueParamter(22, ORD_NO[i]); // 合同号 param2.setValueParamter(23, CZD[0]); // 扣重 getDao("mesdao").insert("UIJ010060_cargocn.insert", param2); logger.logError("HUOYUN INSERT END COILNO=" + OLD_SAMPL_NO[i]); //如果重复发送,更新状态 if("0".equals(flat)){ PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, pDlivDirNo[i]); getDao("mesdao").update("UIJ010060_cargocn_01.update", param); } } if(!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, list.get(i)); getDao("mesdao").update("UIJ010060_cargocn_03.update", param); // String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_01.update"); // this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{list.get(i)}); } } } catch (Exception e) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); e.printStackTrace(new PrintStream(baos)); String exception = baos.toString(); String errStr = "\n异常原因:" + exception; logger.logError("发运明细保存到货运中国中间表时出错 : " + errStr); //e.printStackTrace(); } int Cnt = 0; if( pCoilNo != null ) { Cnt = pCoilNo.length; } logger.logInfo("iCnt = ["+ Cnt +"]"); PosParameter param = null; for( int i = 0; i < Cnt; i++ ) { param = new PosParameter(); param.setValueParamter( 0, "08" ); param.setValueParamter( 1, TRANS_CAR_NO[i] ); param.setValueParamter( 2, COIL_WGT[i] ); param.setValueParamter( 3, CZD[0] ); param.setValueParamter( 4, pCoilNo[i] ); getDao("mesdao").update("UIJ010061.ModifyShipProgStatusOfCoils.Save", param); } return PosBizControlConstants.SUCCESS; } }