package xin.glue.nui.H.H02; import java.math.BigDecimal; 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; import com.posdata.glue.msg.PosMessage; public class XinSaveCoilComm extends PosActivity { public String runActivity(PosContext context) { // 获取从二级接收过来的数据 String slabNo = (String)context.get("slabNo"); String coilNo = (String)context.get("coilNo"); //这里在XinInitRhfOut中已经把真实钢卷号转换成流水号,所以这里不需要再次转换 /* * 从TBF02_SPEC_MILL中取得被 SELECT的轧钢参数table * 轧钢参数data编辑 ( COIL公用 <-轧钢参数data) * 牌号 .,标准号, 交货期, 合同号, 订单号, 订单用途代码, 产品代码 订单去向 * 需要插入到TBH02_COIL_COMM表中 * 板坯编制号用于查询TBF02_SPEC_MILL_D表时 作为查询条件 */ // 真实钢号,品质需要 String specstlGrd = ""; String stlGrd = ""; //牌号 String specAbbsym = ""; //标准号 String delvReqData = ""; //交货期 String ordNo = ""; //合同号 String ordSeq = ""; //订单号 String ordUseageCd = ""; //订单用途代码 String route = ""; //订单去向 BigDecimal slabEdtSeq = null; //板坯编制号,TBF02_SPEC_MILL表主键 //对应加热炉出炉情况增加的 String SPEC_ORD_FL = null; //产品余材区分 String SPM_PROC_YN = null; //平整分卷判定 String SPEC_ORD_CUST_CD = null; //客户代码 String SPEC_PATH_MILL_CD = null; //轧制产线工艺流程 String SPEC_PACK_METHOD = null; //包装方法 Number SPEC_ORD_INDIA = null; //钢卷定单内径 Number SPEC_ORD_OUTDIA = null; //钢卷定单外径 Number SPEC_ORD_THK = null; //定单厚度 Number SPEC_ORD_WTH = null; //定单宽度 Number SPEC_ORD_WGT = null; //定单重量 String SPEC_DEST_CD = null; //目的地代码 /* * 从TBG02_SLAB_COMM中取得 产品代码 需要插入到TBH02_COIL_COMM表中 */ //String prodnmCd = ""; //产品代码 这里没有取到具体的数据 /* * 从TBF02_SPEC_MILL_D中取得被 SELECT的轧钢参数详细table * 轧钢参数详细data编辑 (COIL详细 <- 轧钢参数详细data) */ String coilCutSeq = ""; //切割顺序 BigDecimal ordThk = null; //订单厚度 BigDecimal ordWth = null; //订单宽度 BigDecimal ordLen = null; //订单长度 BigDecimal ordWgt = null; //订单重量 BigDecimal ordWgtMin = null; //订单单重下限 BigDecimal ordWgtMax = null; //订单单重上限 BigDecimal ordIndia = null; //订单内径 BigDecimal ordOutdia = null; //订单外径 String ordNo1 = ""; //合同号 用于详细表 String ordSeq1 = ""; //订单号 用于详细表 String ordFl = ""; //订单余才区分 //String statusCd = ""; //状态区分 后面没有用到 String ProdnmCd = ""; //产品代码 TL 后面用到了。 String CUST_CD = ""; PosParameter param0 = new PosParameter(); //PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); PosParameter param3 = new PosParameter(); PosParameter param4 = new PosParameter(); PosParameter param5 = new PosParameter(); // 从TBH02_SPEC_MILL中取得数据 需要插入到TBH02_COIL_COMM表中 param0.setWhereClauseParameter(0, coilNo); PosRowSet rowset0 = this.getDao("mesdao").find("NIH020020_02.select", param0); if(rowset0.hasNext()) { PosRow row0 = rowset0.next(); specstlGrd = (String)row0.getAttribute("SPEC_STL_GRD"); //标准牌号 stlGrd = (String)row0.getAttribute("STL_GRD"); //牌号 specAbbsym = (String)row0.getAttribute("SPEC_ABBSYM"); //标准号 delvReqData = (String)row0.getAttribute("DELV_REQ_DATE"); //交货期 ordNo = (String)row0.getAttribute("ORD_NO"); //合同号 ordSeq = (String)row0.getAttribute("ORD_SEQ"); //订单号 ordUseageCd = (String)row0.getAttribute("ORD_USEAGE_CD"); //订单用途代码 route = (String)row0.getAttribute("ROUTE"); //订单去向 slabEdtSeq = (BigDecimal)row0.getAttribute("SLAB_EDT_SEQ"); //板坯编制号 ProdnmCd = (String)row0.getAttribute("PRODNM_CD"); //产品代码 冷卷、厚板、冷轧题、热板 SPEC_ORD_FL = "1"; SPM_PROC_YN = (String)row0.getAttribute("SPM_PROC_YN"); SPEC_ORD_CUST_CD = (String)row0.getAttribute("ORD_CUST_CD"); SPEC_PATH_MILL_CD = (String)row0.getAttribute("PATH_MILL_CD"); SPEC_PACK_METHOD = (String)row0.getAttribute("PACK_METHOD"); SPEC_ORD_INDIA = (Number)row0.getAttribute("ORD_INDIA"); SPEC_ORD_OUTDIA = (Number)row0.getAttribute("ORD_OUTDIA"); SPEC_ORD_THK = (Number)row0.getAttribute("ORD_THK"); SPEC_ORD_WTH = (Number)row0.getAttribute("ORD_WTH"); SPEC_ORD_WGT = (Number)row0.getAttribute("ORD_WGT"); SPEC_DEST_CD = (String)row0.getAttribute("DEST_CD"); CUST_CD = (String)row0.getAttribute("CUST_CD"); } String SpmYn = null; if (SPM_PROC_YN != null && SPM_PROC_YN.equals("Y")) { SpmYn = "1"; } else { SpmYn = ""; } // 用钢卷号作为条件查询钢卷公共表,以决定插入或修改操作 param3.setWhereClauseParameter(0, coilNo); param3.setWhereClauseParameter(1, slabNo); PosRowSet rowset3 = this.getDao("mesdao").find("NIH020020_05.select", param3); if(!rowset3.hasNext()) { // // 用轧钢参数表 TBF02_SPEC_MILL 查询出来的数据项 INERT 钢卷公告表 TBG02_COIL_COMM param4.setValueParamter(0, coilNo); param4.setValueParamter(1, slabNo); param4.setValueParamter(2, stlGrd); param4.setValueParamter(3, "1"); param4.setValueParamter(4, specAbbsym); param4.setValueParamter(5, delvReqData); param4.setValueParamter(6, ordNo); param4.setValueParamter(7, ordSeq); param4.setValueParamter(8, ordUseageCd); param4.setValueParamter(9, route); param4.setValueParamter(10, ProdnmCd); param4.setValueParamter(11, SPEC_ORD_FL); param4.setValueParamter(12, SpmYn); param4.setValueParamter(13, SPEC_ORD_CUST_CD); param4.setValueParamter(14, SPEC_PATH_MILL_CD); param4.setValueParamter(15, SPEC_PACK_METHOD); param4.setValueParamter(16, SPEC_ORD_INDIA); param4.setValueParamter(17, SPEC_ORD_OUTDIA); param4.setValueParamter(18, SPEC_ORD_THK); param4.setValueParamter(19, SPEC_ORD_WTH); param4.setValueParamter(20, SPEC_ORD_WGT); param4.setValueParamter(21, SPEC_DEST_CD); param4.setValueParamter(22, SPEC_ORD_INDIA); param4.setValueParamter(23, "XinSaveCoilComm"); param4.setValueParamter(24, CUST_CD); param4.setValueParamter(25, ordNo); param4.setValueParamter(26, ordSeq); param4.setValueParamter(27, specstlGrd); int rowset4 = this.getDao("mesdao").insert("NIH020020_02.insert", param4); // 从TBF02_SPEC_MILL_D中取得数据 需要插入到TBH02_COIL_COMM_d表中 param2.setWhereClauseParameter(0, slabEdtSeq); PosRowSet rowset2 = this.getDao("mesdao").find("NIH020020_04.select",param2); while(rowset2.hasNext()) { PosRow row2 = rowset2.next(); coilCutSeq = (String)row2.getAttribute("COIL_CUT_SEQ"); //切割顺序 ordThk = (BigDecimal)row2.getAttribute("ORD_THK"); //订单厚度 ordWth = (BigDecimal)row2.getAttribute("ORD_WTH"); //订单宽度 ordLen = (BigDecimal)row2.getAttribute("ORD_LEN"); //订单长度 ordWgt = (BigDecimal)row2.getAttribute("ORD_WGT"); //订单重量 ordWgtMin = (BigDecimal)row2.getAttribute("ORD_WGT_MIN"); //订单单重下限 ordWgtMax = (BigDecimal)row2.getAttribute("ORD_WGT_MAX"); //订单单重上限 ordIndia = (BigDecimal)row2.getAttribute("ORD_INDIA"); //订单内径 ordOutdia = (BigDecimal)row2.getAttribute("ORD_OUTDIA"); //订单外径 ordNo1 = (String)row2.getAttribute("ORD_NO"); //合同号 TL ordSeq1 = (String)row2.getAttribute("ORD_SEQ"); //订单号 TL ordFl = (String)row2.getAttribute("ORD_FL"); //订单材余材区分 //这里没有用到 //statusCd = (String)row2.getAttribute("STATUS_CD"); //状态区分 // 用轧钢详细参数表 TBF02_SPEC_MILL_D 查询出来的数据项 INERT 钢卷详细表 TBG02_COIL_COMM_D param5.setValueParamter(0, coilNo); param5.setValueParamter(1, coilCutSeq); param5.setValueParamter(2, ordThk); param5.setValueParamter(3, ordWth); param5.setValueParamter(4, ordLen); param5.setValueParamter(5, ordWgt); param5.setValueParamter(6, ordWgtMin); param5.setValueParamter(7, ordWgtMax); param5.setValueParamter(8, ordIndia); param5.setValueParamter(9, ordOutdia); param5.setValueParamter(10, ordNo1); param5.setValueParamter(11, ordSeq1); param5.setValueParamter(12, ordFl); int rowset5 = this.getDao("mesdao").insert("NIH020020_03.insert",param5); } } else { PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "1"); param6.setWhereClauseParameter(1, coilNo); getDao("mesdao").update("UIH020020_COIL_COMM.update", param6); } return PosBizControlConstants.SUCCESS; } }