| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294 |
- package xin.glue.ui.G.G02;
- import java.math.BigDecimal;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.apache.commons.lang.StringUtils;
- import xin.glue.ui.G.G01.XTBGCOMM;
- import xin.glue.ui.G.G01.XTBGCreateMaterial;
- import com.posdata.glue.PosException;
- import com.posdata.glue.biz.activity.PosActivity;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.biz.control.PosBizControlIF;
- import com.posdata.glue.biz.control.PosBizProvider;
- import com.posdata.glue.component.PosConstants;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.dao.PosGenericDao;
- 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.PosMESMessageImpl;
- import com.posdata.glue.msg.PosMessage;
-
- public class PosSaveSlabCutting extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- PosGenericDao dao = getDao("mesdao");
- PosParameter param = new PosParameter();
- PosRowSet rowset = null;
- PosRow row = null;
- CallableStatement cstm = null;
-
- XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao);
- XTBGCOMM xtbgcomm = new XTBGCOMM(dao);
-
- String[] ShiftCd = (String[]) context.get("CUT_WKSHIFT"); //班次
- String[] WkGroup = (String[]) context.get("CUT_WKGROUP"); //班组
- String[] RegId = (String[]) context.get("CUT_EMP_ID"); //作业人
- String[] CcDevNo = (String[]) context.get("CC_DEVNO"); //连铸机号
- String[] status = (String[]) context.get("rowStuts"); //行状态
- String[] SlabNo = (String[]) context.get("SLAB_NO"); //板坯号
- String[] SlabThk = (String[]) context.get("SLAB_THK"); //板坯厚度
- String[] SlabWth = (String[]) context.get("SLAB_WTH"); //板坯宽度
- String[] SlabLen = (String[]) context.get("SLAB_LEN"); //板坯长度
- String[] SlabWgt = (String[]) context.get("SLAB_WGT"); //板坯重量
- String[] ord_Fl = (String[]) context.get("ORD_FL"); //订单区分
- String[] SlabSizeDec = (String[]) context.get("SLAB_SIZE_DEC_GRD"); //尺寸等级
- String[] LastCutYn = (String[]) context.get("LAST_SLAB_YN"); //炉次结束区分
- String[] SurplmatlYn = (String[]) context.get("SURPLMATL_YN"); //超量区分
- String[] strandNo1 = (String[]) context.get("STRAND_NO1"); //流号
- String[] strandNo2 = (String[]) context.get("STRAND_NO2"); //流号
- String[] chk = (String[])context.get("CHK"); //选择区分
- String[] endDifStlGrdYn = (String[])context.get("DIFF_STL_GRD_STA_END_YN"); //过渡段
- String[] twSlabYn = (String[])context.get("TW_SLAB_YN"); //头尾坯
- //注意 这里计划板坯号的炉号有可能跟炉次号不一样 如果切割时候进行移动操作
- String[] PlanSlabNo = (String[]) context.get("PLAN_SLAB_NO"); //计划板坯号
- String[] ChargeNo = (String[]) context.get("CHARGE_NO"); //炉次号
- String[] subSlabNo = (String[]) context.get("SUB_SLAB_NO"); //子板坯号
- if(status == null){
- context.put("MESSAGES", " 必须选择一行记录! ");
- return PosBizControlConstants.SUCCESS;
- }
- if(CcDevNo[0] == null || StringUtils.isBlank(CcDevNo[0])){
- context.put("MESSAGES", " 请在上方选择对应连铸机号! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- dao.update("NIG020200_BOF_STAT_DTIME.update");
- dao.update("NIG020200_CASTING_STA_DTIME.update");
- dao.update("NIG020200_CASTING_END_DTIME.update");
-
- String[] strandNo = new String[SlabNo.length];
- if (status != null)
- {
- for (int i = 0; i < status.length; i++)
- {
- // SEARCH FROM TBF01_SPE_SLAB
- String OrdNo = null;
- String OrdSeq = null;
- String MILL_FL = null;
- String STATUS_CD = null;
- String HcrClf = null;
- String SlabRt = null;
- String ordFl = "";
- String sfCode = null;
- String DSN_SLAB_NO = null;
-
- //SEARCH FROM TBG02_SLAB_COMM
- String IngrDec = null;
- String LoadLoc = null;
- String CUR_PROG_CD = null;
- String PR_BEF_PROG_CD = null;
- String PR_CHARGE_WGT = null;
-
- String EdPlanSLabNo = null;
- String ED_SLAB_NO = null;
- String BefOrdNo = null;
- String BefOrdSeq = null;
- String NonordCause = null;
- String YardLoc = null;
- String LinYardLoc = null;
- String RST_SLAB_CUT_DTIME = null;
-
- String ED_DIFF_STL_GRD_STA_END_YN1 = "1"; //过渡段
- String SLAB_SIZE_DEC_GRD = "1"; //尺寸等级
- String p_slab_status = null; //中厚板的坯料
- String Cur_Strand_no = ""; //流号
- String stlGrd = null;
-
- if(SlabLen == null || SlabLen[i].equals("0") || SlabThk == null || SlabThk[i].equals("0")
- || SlabWth == null || SlabWth[i].equals("0") || SlabWgt == null || SlabWgt[i].equals("0")){
-
- context.put("MESSAGES", SlabNo[i] + "规格与重量不能为0,操作失败! ");
- return PosBizControlConstants.SUCCESS;
- }
- if(Double.parseDouble(SlabLen[i]) > 20000){
- context.put("MESSAGES", SlabNo[i] + "长度不能超过20米,操作失败! ");
- return PosBizControlConstants.SUCCESS;
- }
-
-
- //经技术中心与二钢厂协调后将原钢坯密度7.8改为7.85,由于原理重是由板坯计划过来,无法修改,故只改板坯输机后的理重 20200821 jiangxin
- SlabWgt[i] = Math.round(Double.parseDouble(SlabThk[i]) * Double.parseDouble(SlabWth[i]) * Double.parseDouble(SlabLen[i]) * 7.85 / 1000000) + "";
-
- if(!chk[i].equals("Y")) continue;
-
- //钢水余量切非计划的坯料时 生成计划板坯号 这时的板坯号对应的炉次号 肯定跟实绩炉次号一样
- if (PlanSlabNo[i]== null || PlanSlabNo[i].equals("") ) {
- param = new PosParameter();
- param.setWhereClauseParameter(0, ChargeNo[0]);
- PosRowSet chargeVO = getDao("mesdao").find("UIG020060_02.select", param);
- if (chargeVO.hasNext() ) {
- PosRow chargeROW = chargeVO.next();
- String PlanChargeNo = (String)chargeROW.getAttribute("PLAN_CHARGE_NO");
- EdPlanSLabNo = PlanChargeNo+"010";
- PlanSlabNo[i] = EdPlanSLabNo;
- }
-
- if(SurplmatlYn[i]!= null && SurplmatlYn[i].equals("S")){
- xtbcm.CreateSlab(PlanSlabNo[i],"");
- }
- }
-
- //获取流号
- if(strandNo1[i].equals("Y")){
- strandNo[i] = "1";
- }else if(strandNo2[i].equals("Y")){
- strandNo[i] = "2";
- }else{
- context.put("MESSAGES", SlabNo[i] + " 流号不能为空,操作失败! ");
- return PosBizControlConstants.SUCCESS;
- }
-
-
-
-
- //生成按流号划分的板坯号 SLAB_NO
- //查询坯料进程状态,确认修改流号导致的坯料号变更对后续操作无影响
- //做完轧制计划的坯料不许变更,必须人工降级后操作
- //如果是修改流号,为减少实物无系统数据混乱,此坯料降级为余材
- param = new PosParameter();
- param.setWhereClauseParameter(0, PlanSlabNo[i]);
- String querysql = "SELECT T.SLAB_STAT,T.STRAND_NO FROM TBG02_SLAB_COMM T WHERE T.PLAN_SLAB_NO = ? ORDER BY T.SUB_SLAB_NO DESC";
- rowset = dao.findByQueryStatement(querysql, param);
- if(rowset.hasNext()){
- row = rowset.next();
-
- String slabStat = (String)row.getAttribute("SLAB_STAT");
- String tmpStrandNo = (String)row.getAttribute("STRAND_NO");
- if(tmpStrandNo != null && !tmpStrandNo.equals(strandNo[i])){
- context.put("MESSAGES", " 切割完成流号不能修改! ");
- return PosBizControlConstants.SUCCESS;
- }
- //不是第一次切割,流号修改,此坯料降级为余材 && !preStrandNo.equals(strandNo[i])
- if(slabStat.equals("1")){
- param = new PosParameter();
- param.setValueParamter(0, strandNo[i]);
- param.setValueParamter(1, ChargeNo[0]);
- param.setValueParamter(2, ChargeNo[0]);
- param.setValueParamter(3, ChargeNo[0]);
- param.setValueParamter(4, ChargeNo[0]);
- param.setValueParamter(5, ChargeNo[0]);
- param.setValueParamter(6, ChargeNo[0]);
- param.setValueParamter(7, PlanSlabNo[i]);
- this.getDao("mesdao").update("UIG020060_SUBSLABN0_CREATE",param);
- param = new PosParameter();
- String qurey_sql = "SELECT SLAB_NO FROM TBG02_SLAB_COMM WHERE PLAN_SLAB_NO = ? ORDER BY SUB_SLAB_NO DESC";
- param.setWhereClauseParameter(0,PlanSlabNo[i]);
- rowset = dao.findByQueryStatement(qurey_sql, param);
- if(rowset.hasNext()){
- row = rowset.next();
- String tempNo = (String)row.getAttribute("SLAB_NO");
- SlabNo[i] = tempNo.substring(10, 13);
- }else{
- context.put("MESSAGES", " 错误! ");
- return PosBizControlConstants.SUCCESS;
- }
- }
- }
-
-
- //实绩板坯号
- ED_SLAB_NO = ChargeNo[0]+ SlabNo[i];
- //计划板坯号
- EdPlanSLabNo = PlanSlabNo[i];
-
-
- //确认板坯信息已经生成
- String sql = "select * from TBG02_SLAB_COMM where SLAB_NO = ?";
- //板坯信息
- param = new PosParameter();
- param.setWhereClauseParameter(0, ED_SLAB_NO);
- rowset = dao.findByQueryStatement(sql, param);
- if (rowset.hasNext())
- {
- row = rowset.next();
- IngrDec = (String)row.getAttribute("SLAB_INGR_DEC_GRD");
- LoadLoc = (String)row.getAttribute("CUR_LOAD_LOC");
- CUR_PROG_CD = (String)row.getAttribute("CUR_PROG_CD");
- PR_BEF_PROG_CD = (String)row.getAttribute("BEF_PROG_CD");
- PR_CHARGE_WGT = (String)row.getAttribute("CHARGE_WGT");
- Cur_Strand_no = (String)row.getAttribute("STRAND_NO");
- ordFl = (String)row.getAttribute("ORD_FL");
- }
-
- //板坯计划信息
- param = new PosParameter();
- param.setWhereClauseParameter(0, EdPlanSLabNo);
- rowset = getDao("mesdao").find("UIG020060_03.select", param);
- if(rowset.hasNext())
- {
- row = rowset.next();
- OrdNo = (String) row.getAttribute("ORD_NO");
- OrdSeq = (String) row.getAttribute("ORD_SEQ");
- MILL_FL = (String) row.getAttribute("MILL_FL");
- STATUS_CD = (String) row.getAttribute("STATUS_CD");
- HcrClf = (String) row.getAttribute("HCR_CLF");
- SlabRt = (String) row.getAttribute("SLAB_RT");
- sfCode = (String) row.getAttribute("SCARPING_PROC_YN");
- DSN_SLAB_NO = (String) row.getAttribute("DSN_SLAB_NO");
- stlGrd = (String) row.getAttribute("STL_GRD");
- }else{
- context.put("MESSAGES", " 缺少板坯指示信息,操作失败! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- if(CUR_PROG_CD == null)CUR_PROG_CD = "JJB";
- if(CUR_PROG_CD.equals("RBB") || CUR_PROG_CD.equals("RGF")|| CUR_PROG_CD.equals("RGC") || CUR_PROG_CD.equals("RCB") ) {
- context.put("MESSAGES",CUR_PROG_CD + "已经编制轧制计划,需吊轧制吊销才能修改,操作失败!");
- return PosBizControlConstants.SUCCESS;
- }
-
- //过渡坯
- if(endDifStlGrdYn[i].equals("Y")){
- ED_DIFF_STL_GRD_STA_END_YN1 = "2";
- }
- //头尾坯
- if(twSlabYn != null &&("1".equals(twSlabYn[i])||"2".equals(twSlabYn[i]))){
- CUR_PROG_CD = "RAB";
- HcrClf = "C";
- }
- //尺寸等级修改
- if(!(SlabSizeDec[i] == null || SlabSizeDec[i].equals(""))){
- SLAB_SIZE_DEC_GRD = SlabSizeDec[i];
- }
- BigDecimal Wgt = new BigDecimal(SlabWgt[i]);
- if(SlabRt == null){
- return PosBizControlConstants.SUCCESS;
- }
-
- //--------------------------------------中厚板坯料尺寸判定增加 MODY BY WXY------2011-03-09----------------------
- if ("1".equals(ordFl)){
- String RtnSizeDec = SlabSizeDec(SlabRt,new BigDecimal(SlabThk[i]),new BigDecimal(SlabWth[i]),new BigDecimal(SlabLen[i]),ChargeNo[0]+ subSlabNo[i],EdPlanSLabNo,Wgt);
- if (RtnSizeDec.equals("N")) {
- SLAB_SIZE_DEC_GRD = "2";
- }else{
- SLAB_SIZE_DEC_GRD = "1";
- }
- }
- //余材
- if (ordFl != null && ordFl.equals("2")){
- NonordCause = "1A";
- OrdNo = null;
- OrdSeq = null;
- }
-
-
-
-
-
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- String currDate = formatter.format(new Date());
-
- if (RST_SLAB_CUT_DTIME == null || RST_SLAB_CUT_DTIME.equals("")){
- RST_SLAB_CUT_DTIME = currDate;
- }
-
-
- // 切割完成板坯位置为A0,C0垛位
- if (LoadLoc != null && (LoadLoc.substring(0,1).equals("L") || LoadLoc.substring(0,1).equals("Z") || LoadLoc.substring(0,1).equals("H")) ) {
- YardLoc = LoadLoc;
- LinYardLoc = LoadLoc;
- } else {
- if (CcDevNo[0] != null && CcDevNo[0].equals("J2")){
- YardLoc = "C0";
- LinYardLoc = "C0";
- } else {
- YardLoc = "A0";
- LinYardLoc = "A0";
- }
- }
-
- //中厚板全部降余材 挂单
- if(SlabRt.equals("P") || SlabRt.equals("Z")){
- ordFl = "2";
- CUR_PROG_CD = "RRC";
- OrdNo = "";
- OrdSeq = "";
- HcrClf = "C";
- }
-
- //余材 这里有问题 包括了中厚板的坯子也设置成RRC充当待机了
- if ((IngrDec != null && !IngrDec.equals("1")) || (SurplmatlYn[i] != null && SurplmatlYn[i].equals("S")))
- {
- /*if (SurplmatlYn[i] != null && SurplmatlYn[i].equals("S")) {
- NonordCause = "2D";
- } else {
- NonordCause = "2A";
- }
-
- HcrClf = "C";
- ordFl = "2";
- CUR_PROG_CD = "RRC";
- OrdNo = null;
- OrdSeq = null;*/
- if(SlabRt.equals("P") || SlabRt.equals("Z")){
- ordFl = "2";
- CUR_PROG_CD = "RRC";
- OrdNo = "";
- OrdSeq = "";
- HcrClf = "C";
- }else{
- CUR_PROG_CD = "RAB";
- HcrClf = "C";
- }
- }
- if(ordFl.equals("1")&&((IngrDec == null || IngrDec.equals("")) || ED_DIFF_STL_GRD_STA_END_YN1.equals("2"))){
- CUR_PROG_CD = "RAB";
- HcrClf = "C";
- }
-
- //中厚板坯料状态
- //--------------------------------------中厚板坯料尺寸判定增加 MODY BY WXY------2011-03-09----------------------
- if (SlabRt != null && (SlabRt.equals("P")||SlabRt.equals("Z"))){
-
-
- if (ordFl.equals("2")) {
- p_slab_status = "01";
- } else {
- p_slab_status = "05";
- }
-
- //如果成分不合格,返回工序计划 重新设计 中厚板对应的板坯
- //20221216 jiangxin 应林海要求输机时自动释放整炉板坯计划
- if(DSN_SLAB_NO != null){
- PosParameter paramV = new PosParameter();
- paramV.setWhereClauseParameter(0,p_slab_status);
- paramV.setWhereClauseParameter(1,EdPlanSLabNo/*DSN_SLAB_NO*/);
- this.getDao("mesdao").update("NIG020610_TBD01_SLABDN.update", paramV);
-
- paramV = new PosParameter();
- paramV.setWhereClauseParameter(0,ChargeNo[0] + SlabNo[i]);
- this.getDao("mesdao").update("NIG020610_TBD01_DSN_SLABNO.update", paramV);
- }
- }
-
- //如果是热轧材
- //--------------------------------------中厚板坯料尺寸判定增加 MODY BY WXY------2011-03-09----------------------
- if (!(SlabRt.equals("P")||SlabRt.equals("Z"))) {
- //余材
- if ((ordFl != null && ordFl.equals("2")) ){
- CUR_PROG_CD = "RRC";
- OrdNo = null;
- OrdSeq = null;
- // 尺寸不合格
- }else if(SLAB_SIZE_DEC_GRD != null && SLAB_SIZE_DEC_GRD.equals("2")){
- HcrClf = "C";
- ordFl = "2";
- CUR_PROG_CD = "RRC";
- OrdNo = null;
- OrdSeq = null;
- NonordCause = "3B";
-
- }
- else if(OrdNo.substring(0, 1).equals("7"))//坯料外销 20180809
- {
- CUR_PROG_CD = "RFA"; //板坯发货指示待机
- }
- //热送
- else if((HcrClf != null && HcrClf.equals("H") && MILL_FL.equals("Y"))&& !CUR_PROG_CD.equals("RAB")) {
- CUR_PROG_CD = "RBB";
- // 冷装
- }else if((HcrClf != null && MILL_FL.equals("N"))&&!CUR_PROG_CD.equals("RAB")) {
- CUR_PROG_CD = "RBA";
- HcrClf = "C";
- }
- }
-
- String sSlabWay = DecSlabWay(ED_SLAB_NO,HcrClf,SlabRt,sfCode);
-
- //增加降级历史记录 20101227 wxy
- if(ordFl.equals("2")){
- try{
- cstm = dao.getCallableStatement("ORD_HIS_INSERT.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, "");
- cstm.setString(4, "UIG020060");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, ChargeNo[0] + SlabNo[i]);
- cstm.setString(9, "TM");
- cstm.setString(10, "");
- cstm.setString(11, "");
- cstm.setString(12, "");
- cstm.setString(13, "");
- cstm.execute();
- cstm.close();
- }catch(Exception ex){
- logger.logError(ex.getMessage(), ex);
- }finally{
- if (cstm != null)
- {
- try
- {
- cstm.close();
- }
- catch (SQLException e)
- {
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- }
- //end 增加降级历史记录
-
-
-
- //更新数据
- param = new PosParameter();
- param.setWhereClauseParameter(0, CUR_PROG_CD);
- param.setWhereClauseParameter(1, "PosSaveSlabCutting");
- param.setWhereClauseParameter(2, "PosSaveSlabCutting");
- param.setWhereClauseParameter(3, OrdNo);
- param.setWhereClauseParameter(4, OrdSeq);
-
- param.setWhereClauseParameter(5, ordFl);
- param.setWhereClauseParameter(6, SlabThk[i]);
- param.setWhereClauseParameter(7, SlabWth[i]);
- param.setWhereClauseParameter(8, SlabLen[i]);
- param.setWhereClauseParameter(9, SlabWgt[i]);
-
- param.setWhereClauseParameter(10, HcrClf);
- param.setWhereClauseParameter(11, sSlabWay);
- param.setWhereClauseParameter(12, SlabRt);
- param.setWhereClauseParameter(13, LastCutYn[i]);
- param.setWhereClauseParameter(14, ShiftCd[0]);
-
- param.setWhereClauseParameter(15, WkGroup[0]);
- param.setWhereClauseParameter(16, RegId[0]);
- param.setWhereClauseParameter(17, SurplmatlYn[i]);
- param.setWhereClauseParameter(18, YardLoc);
- param.setWhereClauseParameter(19, SLAB_SIZE_DEC_GRD);
-
- param.setWhereClauseParameter(20, ED_DIFF_STL_GRD_STA_END_YN1);
- param.setWhereClauseParameter(21, CcDevNo[0]);
- param.setWhereClauseParameter(22, strandNo[i]);
- param.setWhereClauseParameter(23, NonordCause);
- param.setWhereClauseParameter(24, twSlabYn[i]);
-
- param.setWhereClauseParameter(25, ChargeNo[0] + SlabNo[i]);
- param.setWhereClauseParameter(26, ChargeNo[0] + SlabNo[i]);
-
- getDao("mesdao").update("UIG020060_01.update", param);
- //写入报表数据
- getDao("mesdao").update("UIG020060_report.insert", param);
- param = new PosParameter();
- param.setValueParamter(0, ordFl);
- param.setValueParamter(1, OrdNo);
- param.setValueParamter(2, OrdSeq);
- param.setValueParamter(3, ChargeNo[0] + SlabNo[i]);
- this.getDao("mesdao").update("UIG020060_SLAB_COMM_D_02.update",param);
-
- //因现场会新增板坯,导致产出数据重复,因此加入下列判断
- //板坯信息
- String sql1 = "SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY REFNOA ORDER BY T.CREATETIME DESC) RN,"
- +" T.* FROM MATAL_DETAIL_ACCOUNTING T where INVID = ? and ACTIVITYID = '11A' AND CRNTMILL = 'LGX') WHERE RN = 1";
- param = new PosParameter();
- param.setWhereClauseParameter(0, ED_SLAB_NO);
- rowset = dao.findByQueryStatement(sql1, param);
- if (rowset.hasNext())//代表重复录入,则新增一条撤回的信息
- {
- row = rowset.next();
- String flag = (String)row.getAttribute("EXECJOBFUNC");//现场有可能做完清空流号后再录入板坯,需要加入对11A最新一条数据的判断
- if(!"D".equals(flag)){//是D则代表是清空流号删除的实绩,就直接录入新实绩,不是D则需要新增先录入一条撤销
- //财务数据上抛
- try
- {
- cstm = dao.getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, ED_SLAB_NO);
- cstm.setString(2, "11A");
- cstm.setString(3, "D");
- cstm.setString(4, "板坯切割实绩录入撤销");
- cstm.setString(5, RegId[0]);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
- cstm.close();
- }catch(Exception ex){
- ex.printStackTrace();
- logger.logError(ex.getMessage(), ex);
- }
- finally{
- if(cstm != null){
- try{
- cstm.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
-
- }
-
-
- if (NonordCause != null) {
-
- BefOrdNo = OrdNo;
- BefOrdSeq = OrdSeq;
-
- }
-
- // CCM NO set to Charge Master table
- param = new PosParameter();
- //2012.12.14 更改连铸机号获取方式
- param.setWhereClauseParameter(0, ChargeNo[0]);
- String ccDrvNoSql = "SELECT 'J'||SUBSTR(X.CC_DEVNO,2,1 ) CC_DEVNO FROM TBG06_L2_CHARGE_DEVNO X WHERE X.MSG_FLAG = 'N' AND X.CHARGE_NO = ?";
- rowset = this.getDao("mesdao").findByQueryStatement(ccDrvNoSql, param);
-
- param = new PosParameter();
- if(rowset.hasNext())
- {
- row = rowset.next();
- param.setValueParamter(0, row.getAttribute("CC_DEVNO"));
- param.setValueParamter(1, row.getAttribute("CC_DEVNO"));
- param.setValueParamter(2, ChargeNo[0] );
- this.getDao("mesdao").update("UIG020060_CH_COM.update", param);
-
- // String ccDrvNoSql_1 = "UPDATE TBG06_L2_CHARGE_DEVNO T SET T.MSG_FLAG = 'C' WHERE T.MSG_FLAG = 'N' AND T.CHARGE_NO = ?";
- param = new PosParameter();
- param.setValueParamter(0, ChargeNo[0]);
- this.getDao("mesdao").update("UIG020060_charge_ccdevno_06.update" ,param);
- }
- else
- {
- param.setValueParamter(0, CcDevNo[0]);
- param.setValueParamter(1, CcDevNo[0]);
- param.setValueParamter(2, ChargeNo[0] );
- this.getDao("mesdao").update("UIG020060_CH_COM.update", param);
- }
-
-
- if ( !SurplmatlYn[i].equals("S")) {
- SendProg_NIE012070( ED_SLAB_NO,OrdNo,OrdSeq,BefOrdNo,BefOrdSeq ,CUR_PROG_CD,"","TM",SlabWgt[i]);
- SendProg_NIE012080();
- }
-
- String RejKind = null;
- // Mill Scheduling slab check and 'H'->'C' check and send to Mill Scheduling reject request
- /*if (MILL_FL != null && MILL_FL.equals("Y")&&!(SurplmatlYn[i].equals("S"))&& STATUS_CD.equals("B")) {
- if (SLAB_SIZE_DEC_GRD.equals("2")){
- RejKind = "Z";
- SendProg_NIF024060( ED_SLAB_NO,RejKind);
- } else if (IngrDec == null ||(IngrDec != null && IngrDec.equals("2")) || (HcrClf.equals("H") && HcrClf.equals("C"))) {
- RejKind = "M";
- SendProg_NIF024060( ED_SLAB_NO,RejKind);
- }
- }*/
-
- //板坯计划信息结束
- xtbgcomm.specSlabProcUpt(PlanSlabNo[i], "C");
-
-
- if(PR_CHARGE_WGT == null)PR_CHARGE_WGT = "0";
- if (SurplmatlYn[i] == null || SurplmatlYn[i].equals("") ) {
- SendProg_NIE012070( PlanSlabNo[i].substring(0,10),"","","","" ,"JJB",PR_BEF_PROG_CD,"CH",PR_CHARGE_WGT );
- }
-
- /*炉次结束终止炉次
- String chargcomm = "SELECT STATUS_CD FROM TBF01_CHARGE_IDX WHERE CHARGE_MANA_NO = '3'||SUBSTR(?,2,8)||'A' ";
- param = new PosParameter();
- param.setWhereClauseParameter(0, ChargeNo[0]);
- rowset = getDao("mesdao").findByQueryStatement(chargcomm, param);
- if(rowset.hasNext())
- {
- row = rowset.next();
- String status_cd = (String)row.getAttribute("STATUS_CD");
- if(!"C".equals(status_cd)){
- if(SurplmatlYn[i].equals("S")){
- LastSlabCut(ChargeNo[0] + SlabNo[i],"J01-00000A900",MILL_FL,SlabRt,DSN_SLAB_NO);
- }else{
- LastSlabCut(ChargeNo[0] + SlabNo[i],PlanSlabNo[i],MILL_FL,SlabRt,DSN_SLAB_NO);
- }
- SendProg_NIE012070(PlanSlabNo[i].substring(0,10),"","","","" ,"JJB",PR_BEF_PROG_CD,"CH",PR_CHARGE_WGT );
- }
- }*/
-
- //炉次结束终止炉次
- if (LastCutYn[i] != null && LastCutYn[i].equals("E")) {
- if(SurplmatlYn[i].equals("S")){
- LastSlabCut(ChargeNo[0] + SlabNo[i],"J01-00000A900",MILL_FL,SlabRt,DSN_SLAB_NO);
- }else{
- LastSlabCut(ChargeNo[0] + SlabNo[i],PlanSlabNo[i],MILL_FL,SlabRt,DSN_SLAB_NO);
- }
- SendProg_NIE012070(PlanSlabNo[i].substring(0,10),"","","","" ,"JJB",PR_BEF_PROG_CD,"CH",PR_CHARGE_WGT );
- }
-
- SendProg_NIE012080();
-
- // The cutting slab set roller table yard map
- // MC1 --> 'A0' , MC2--> 'C0'
- // After shift roller table exist slab the cutting slab set first roller table for example 'A001'
- if (LinYardLoc != null && (LinYardLoc.equals("A0") || LinYardLoc.equals("C0"))) {
- PosParameter param13 = new PosParameter();
- param13.setWhereClauseParameter(0, ED_SLAB_NO);
- param13.setWhereClauseParameter(1, LinYardLoc);
- PosRowSet slabExistVo = getDao("mesdao").find("NIG020610_YARD_SLAB_EXIST.select", param13);
- if (!slabExistVo.hasNext()) {
- PosParameter param15 = new PosParameter();
- param15.setWhereClauseParameter(0, LinYardLoc);
- param15.setWhereClauseParameter(1, ED_SLAB_NO);
- PosRowSet YardMapVo = getDao("mesdao").find("NIG020610_YARD.select", param15);
- while (YardMapVo.hasNext()) {
- PosRow YardMapROW = YardMapVo.next();
- String YARD_ADDR = (String) YardMapROW.getAttribute("YARD_ADDR");
- String YARD_LAY = (String) YardMapROW.getAttribute("YARD_LAY");
- String SLAB_NO = (String) YardMapROW.getAttribute("SLAB_NO");
- String LINE_ADDR = YARD_ADDR + YARD_LAY;
- PosParameter param16 = new PosParameter();
- param16.setValueParamter(0, SLAB_NO);
- param16.setValueParamter(1, LINE_ADDR);
- this.getDao("mesdao").update("NIG020610_YARD.update", param16);
- }
- String UpdLoc = YardLoc + "01";
- PosParameter param14 = new PosParameter();
- param14.setValueParamter(0, ED_SLAB_NO);
- param14.setValueParamter(1, UpdLoc);
- this.getDao("mesdao").update("NIG020610_YARD.update",param14);
- }
-
- }
-
- //更新热装热送的轧制计划的板坯号(只执行一次) 20240427
- if(i == status.length - 1){
- try
- {
- cstm = dao.getCallableStatement("HCR_SLABNO_UPD.CAL");
- cstm.setString(1, ChargeNo[0].substring(0,9));
- cstm.execute();
- cstm.close();
- }catch(Exception ex){
- ex.printStackTrace();
- logger.logError(ex.getMessage(), ex);
- }
- finally{
- if(cstm != null){
- try{
- cstm.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
-
- //财务数据上抛
- try
- {
- cstm = dao.getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, ED_SLAB_NO);
- cstm.setString(2, "11A");
- cstm.setString(3, "N");
- cstm.setString(4, "板坯切割实绩录入");
- cstm.setString(5, RegId[0]);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
- cstm.close();
- }catch(Exception ex){
- ex.printStackTrace();
- logger.logError(ex.getMessage(), ex);
- }
- finally{
- if(cstm != null){
- try{
- cstm.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
-
- }
- context.put("MESSAGES","操作成功!");
- return PosBizControlConstants.SUCCESS;
-
- }
- public String getSubSlabNo(PosContext context,String slabNo,String strandNo){
- String subSlabNo = null;
- if(strandNo == null || strandNo.equals("")){
- context.put("MESSAGES",slabNo + " 缺少板坯流号,操作失败! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- PosParameter param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- param.setWhereClauseParameter(1, strandNo);
- PosRowSet rowset = this.getDao("mesdao").find("", param);
- if(rowset.hasNext()){
- PosRow row = rowset.next();
- }
-
- return subSlabNo;
- }
-
- public void LastSlabCut(String SlabNo,String PlanSlabNo,String MillFl,String SlabRt,String DsnSlabNo)
- {
- PosParameter param9 = new PosParameter();
- param9.setValueParamter(0, "C" );
- param9.setValueParamter(1, "JJB" );
- param9.setValueParamter(2, "3" + SlabNo.substring(1,10));
- this.getDao("mesdao").update("NIG020610_SPEC_CHARGE.update", param9);
-
- PosParameter param10 = new PosParameter();
- param10.setValueParamter(0, "C" );
- param10.setValueParamter(1, "3" + SlabNo.substring(1,10));
- this.getDao("mesdao").update("NIG020610_SPEC_CHARGE_IDX.update", param10);
-
-
- PosParameter param11 = new PosParameter();
- param11.setValueParamter(0, "3" );
- param11.setValueParamter(1, "JJB" );
- param11.setValueParamter(2, "CCM_CUT" );
- param11.setValueParamter(3, SlabNo.substring(0,10) );
- this.getDao("mesdao").update("NIG020610_CHARGE_COMM.update", param11);
-
- param11 = new PosParameter();
- param11.setValueParamter(0, "3" );
- param11.setValueParamter(1, "JJB" );
- param11.setValueParamter(2, "CCM_CUT" );
- param11.setValueParamter(3, SlabNo.substring(0,10) );
- this.getDao("mesdao").update("NIG020610_CHARGE_COMM_D.update", param11);
-
- PosParameter param12 = new PosParameter();
- param12.setValueParamter(0, "3" );
- param12.setValueParamter(1, SlabNo.substring(0,10) );
- this.getDao("mesdao").update("NIG020610_STLMAKE_PROG.update", param12);
-
-
-
- // if slab cutting result less than slab schedule then reminding schedule should be finished
-
- PosParameter paramB = new PosParameter();
- paramB.setWhereClauseParameter(0, "3" + SlabNo.substring(1,10));
-
- PosRowSet LastSlabVo = getDao("mesdao").find("NIG020610_SPEC_LAST_SLAB.select", paramB);
- if (LastSlabVo.hasNext() ) {
-
- PosRow LastSlabROW = LastSlabVo.next();
- String SLAB_EDIT_NO = (String)LastSlabROW.getAttribute("SLAB_EDIT_NO");
-
-
- if ( PlanSlabNo.substring(10,13).compareTo(SLAB_EDIT_NO) < 0) {
-
- PosParameter paramC = new PosParameter();
- paramC.setWhereClauseParameter(0, SlabNo);
- paramC.setWhereClauseParameter(1, PlanSlabNo);
-
- PosRowSet remSlabVo = getDao("mesdao").find("NIG020610_REM_SLAB.select", paramC);
-
- while(remSlabVo.hasNext()) {
- PosRow remSlabROW = remSlabVo.next();
-
- String RemSlabNo = (String)remSlabROW.getAttribute("SLAB_NO");
- String RemPlnSlabNo = (String)remSlabROW.getAttribute("PLAN_SLAB_NO");
- String RemDsnSlabNo = (String)remSlabROW.getAttribute("DSN_SLAB_NO");
- String ordNo = (String)remSlabROW.getAttribute("ORD_NO");
- String ordSeq = (String)remSlabROW.getAttribute("ORD_SEQ");
- String ordCustCD = (String)remSlabROW.getAttribute("ORDCUST_CD");
-
- //增加降级历史记录 20101227 wxy
- //增加降级历史记录 20101227 wxy
-
- CallableStatement cstm = null;
- PosParameter param = new PosParameter();
- try{
- cstm = this.getDao("mesdao").getCallableStatement("ORD_HIS_INSERT.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, "");
- cstm.setString(4, "UIG020060");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, RemSlabNo);
- cstm.setString(9, "TM");
- cstm.setString(10, "");
- cstm.setString(11, "");
- cstm.setString(12, "");
- cstm.setString(13, "");
- cstm.execute();
- }catch(Exception ex){
- logger.logError(ex.getMessage(), ex);
- }finally{
- if (cstm != null)
- {
- try
- {
- cstm.close();
- }
- catch (SQLException e)
- {
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- //end 增加降级历史记录
-
- PosParameter param13 = new PosParameter();
- param13.setValueParamter(0, "5" );
- param13.setValueParamter(1, "3" );
- param13.setValueParamter(2, RemSlabNo );
- this.getDao("mesdao").update("NIG020610_SLAB_END.update", param13);
- param13 = new PosParameter();
- param13.setWhereClauseParameter(0, RemSlabNo);
- this.getDao("mesdao").update("NIG020610_SLAB_END_D.update",param13);
-
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, RemSlabNo);
- cstm.setString(2, "11A");
- cstm.setString(3, "D");
- cstm.setString(4, "板坯强制结束");
- cstm.setString(5, "LastSlabCut");
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
- String err = cstm.getString(6);
- String er1 = "";
- }catch (Exception e) {
- // TODO: handle exception
- }finally{
- if (cstm != null){
- try{
- cstm.close();
- }
- catch (SQLException e){
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
-
- /*if (MillFl != null && MillFl.equals("Y") ) {
- SendProg_NIF024060( RemSlabNo,"M");
- }*/
-
- PosParameter paramD = new PosParameter();
- paramD.setWhereClauseParameter(0, RemPlnSlabNo );
-
- PosRowSet remSpecVo = getDao("mesdao").find("NIG020610_SLAB_SPEC.select", paramD);
- while (remSpecVo.hasNext() ){
-
- PosRow remSpecROW = remSpecVo.next();
- Number nSlabEdtSeq = (Number)remSpecROW.getAttribute("SLAB_EDT_SEQ");
- String SlabManaNo = (String)remSpecROW.getAttribute("SLAB_MANA_NO");
-
- PosParameter paramE = new PosParameter();
- paramE.setValueParamter(0, "C" );
- paramE.setValueParamter(1, SlabManaNo );
- this.getDao("mesdao").update("NIG020610_SPEC_SLAB.update", paramE);
-
- PosParameter paramF = new PosParameter();
- paramF.setValueParamter(0, "C" );
- paramF.setValueParamter(1, nSlabEdtSeq );
- this.getDao("mesdao").update("NIG020610_SPEC_SLAB_D.update", paramF);
- }
- if (SlabRt.equals("P") || SlabRt.equals("Z") ) {
- PosParameter paramV = new PosParameter();
- paramV.setWhereClauseParameter(0,"01");
- paramV.setWhereClauseParameter(1,RemDsnSlabNo);
- this.getDao("mesdao").update("NIG020610_TBD01_SLABDN.update", paramV);
- }
- }
- }
-
- }
- }
-
- public String DecSlabWay(String Slabno,String hcrcd,String slabway,String sf)
- {
-
- logger.logInfo("PosSaveSlabCutting---> DecSlabWay" );
- String way = null;
- if (hcrcd != null && hcrcd.equals("C") ) {
-
- if ( (sf != null && sf.equals("Y")) || (slabway != null && slabway.equals("P"))) {
- way = "1";
- } else {
- way = "2";
- }
-
- } else {
- way = "3";
- }
-
-
- return way;
- }
-
- public String DiffStlGrd(String chargeNo, String McNo,String StlGrd)
- {
- String Get_StlGrd = null;
- PosParameter param3 = new PosParameter();
-
- param3.setWhereClauseParameter(0, chargeNo);
- param3.setWhereClauseParameter(1, McNo);
- param3.setWhereClauseParameter(2, chargeNo);
-
- PosRowSet DiffStlGrdVO = getDao("mesdao").find("NIG020610_DIFF_STL_GRD.select", param3);
- while ( DiffStlGrdVO.hasNext()) {
- PosRow DiffStlGrdROW = DiffStlGrdVO.next();
-
- Get_StlGrd = (String)DiffStlGrdROW.getAttribute("STL_GRD");
-
- if ( Get_StlGrd != null && StlGrd != null ) {
- if (!StlGrd.equals(Get_StlGrd) ) {
- return Get_StlGrd;
- }
- return null;
- }
- }
- return null;
- }
-
- // SLAB SIZE DECISION ( RESULT SLAB WGT,ORDER WGT COMPARE)
- // TBG02_SLAB_COMM--> SLAB_WGT
- // TBG02_SLAB_COMM_D --> ORD_NO,ORD_SEQ
- // TBA01_ORD_LINE --> PROD_WGT_MIN,PROD_WGT_MAX
-
- // public String SlabSizeDec(BigDecimal slabThk,BigDecimal slabWth,BigDecimal slabLen,String SlabNo, String PlanSlabNo,BigDecimal SlabWgt)
- // {
- //
- // logger.logInfo("XinSaveSlabComm SlabWgt:"+SlabWgt);
- // BigDecimal SlabThk = slabThk;
- // BigDecimal SlabWth = slabWth;
- // BigDecimal SlabLen = slabLen;
- // BigDecimal ordLen = new BigDecimal(0);
- // BigDecimal ordWgt = new BigDecimal(0);
- // BigDecimal coilOutDia = new BigDecimal(0);
- // BigDecimal coilInDia = new BigDecimal(0);
- //
- //
- // BigDecimal ordThk = new BigDecimal(0);
- // BigDecimal ordWth = new BigDecimal(0);
- // BigDecimal coilThk = new BigDecimal(0);
- // BigDecimal coilWth = new BigDecimal(0);
- //
- // PosParameter param1 = new PosParameter();
- // param1.setWhereClauseParameter(0, SlabNo);
- // PosRowSet CommDVO = getDao("mesdao").find("NIG020610_SLAB_COMM_D.select", param1);
- // PosRowSet CommDVO2 = getDao("mesdao").find("UIG020060_SLAB_COMMD_ORD.select",param1);
- //
- // if(CommDVO2.hasNext()){
- // PosRow row = CommDVO2.next();
- // ordThk = (BigDecimal)row.getAttribute("SLAB_THK");
- // ordWth = (BigDecimal)row.getAttribute("SLAB_WTH");
- // coilThk = (BigDecimal)row.getAttribute("ORD_THK");
- // coilWth = (BigDecimal)row.getAttribute("ORD_WTH");
- //
- // coilInDia = (BigDecimal)row.getAttribute("COIL_INDIA");
- // }
- // BigDecimal total = ordWth.add(new BigDecimal(100));
- // if(SlabWth.compareTo(ordWth) < 0||total.compareTo(SlabWth) < 0){
- // return "N";
- // }
- //
- // param1 = new PosParameter();
- // PosRowSet rateVo = getDao("mesdao").find("UIG020060_proc_rate.select", param1);
- // BigDecimal procRate = new BigDecimal(1);
- // if(rateVo.hasNext()){
- // PosRow posrow = rateVo.next();
- // procRate = (BigDecimal)posrow.getAttribute("PROC_RATE");
- // }
- // if ( CommDVO.hasNext()) {
- //
- // PosRow CommDROW = CommDVO.next();
- //
- // BigDecimal PROD_WGT_MIN = (BigDecimal)CommDROW.getAttribute("PROD_WGT_MIN");
- // BigDecimal PROD_WGT_MAX = (BigDecimal)CommDROW.getAttribute("PROD_WGT_MAX");
- //
- // logger.logInfo("XinSaveSlabComm PROD_WGT_MIN:"+PROD_WGT_MIN);
- //
- // logger.logInfo(PROD_WGT_MIN);
- // logger.logInfo(PROD_WGT_MAX);
- // ordWgt = SlabWgt.multiply(procRate);
- // ordWgt = ordWgt.divide(new BigDecimal(100));
- // logger.logInfo("XinSaveSlabComm ordWgt:"+ ordWgt);
- // if(PROD_WGT_MIN == null)PROD_WGT_MIN = new BigDecimal(0);
- // if(PROD_WGT_MAX == null)PROD_WGT_MAX = new BigDecimal(0);
- // //如果板坯重量不在订单重量范围内
- // if (ordWgt.compareTo(PROD_WGT_MIN) < 0 || PROD_WGT_MAX.compareTo(ordWgt) < 0 ) {
- // //取消订单
- // return "N";
- //
- // }
- // }
- // logger.logInfo("ordWgt=" + ordWgt );
- // logger.logInfo("ordThk=" + ordThk );
- // logger.logInfo("SlabWth=" + SlabWth );
- // ordLen = ordWgt.multiply(new BigDecimal(1000000));
- // ordLen = ordLen.divide(coilThk,3,BigDecimal.ROUND_HALF_UP);
- // ordLen = ordLen.divide(coilWth,3,BigDecimal.ROUND_HALF_UP);
- // ordLen = ordLen.divide(new BigDecimal(7.8),0,BigDecimal.ROUND_HALF_UP);
- //
- // coilOutDia = new BigDecimal(Math.sqrt(ordWgt.multiply(new BigDecimal(1000000).multiply(new BigDecimal(4)).divide(new BigDecimal(7.8*3.14*0.98),3,BigDecimal.ROUND_HALF_UP).divide(SlabWth,0,BigDecimal.ROUND_HALF_UP)).add(coilInDia.multiply(coilInDia)).doubleValue()));
- // logger.logInfo("-------------slabThk" + slabThk + "--slabWth" + slabWth + "--slabLen" + slabLen + "--ordLen" + ordLen + "--ordWgt" + ordWgt + "--coilOutDia" + coilOutDia + "--" );
- // param1 = new PosParameter();
- // param1.setWhereClauseParameter(0,slabThk);
- // param1.setWhereClauseParameter(1,slabWth);
- // param1.setWhereClauseParameter(2,slabLen);
- // param1.setWhereClauseParameter(3,ordLen);
- // param1.setWhereClauseParameter(4,ordWgt);
- // param1.setWhereClauseParameter(5,coilOutDia);
- // param1.setWhereClauseParameter(6,SlabNo);
- // int rowset = getDao("mesdao").update("UIG020060_slab_comm_d.update",param1);
- // return "Y";
- // }
-
- public String SendProg_NIE012070(String MatNo,String sOrdNo,String sOrdSeq,String sBefOrdNo,String sBefOrdSeq,String sProgCd,String sBefProgCd,String sKind,String nwgt )
- {
-
- logger.logInfo("PosSaveSlabCutting---> nwgt:"+nwgt );
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
- BigDecimal Wgt = new BigDecimal(nwgt);
-
- String TcId = "NIE012070";
-
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("BEF_ORD_NO",sBefOrdNo);
- message.setObject("BEF_ORD_SEQ",sBefOrdSeq);
- message.setObject("ORD_NO",sOrdNo);
- message.setObject("ORD_SEQ",sOrdSeq);
- message.setObject("BEF_PROG_CD",sBefProgCd);
- message.setObject("PROG_CD",sProgCd);
- message.setObject("MAT_TYPE",sKind);
- message.setObject("MAT_NO",MatNo);
- message.setObject("WGT", Wgt );
- message.setObject("PGMID","PosSaveSlabCutting");
- message.setObject("REG_ID","UIG020060");
-
- context.setMessage(message);
-
- message.setTCID(TcId);
-
- String SERVICE_POSTFIX = "-service";
- context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX);
- PosBizProvider.getController().doSubController(context, false);
-
- String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
-
- logger.logInfo("PosSaveSlabCutting SendProg_NIE012070 SERVICE_ERR_MSG:"+SERVICE_ERR_MSG );
-
-
- if (SERVICE_ERR_MSG != null)
- {
- throw new PosException(SERVICE_ERR_MSG);
- }
-
-
- return null;
- }
-
- public String SendProg_NIE012080()
- {
-
-
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
-
- String TcId = "NIE012080";
-
-
-
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("AA",null);
-
- context.setMessage(message);
- message.setTCID(TcId);
-
- String SERVICE_POSTFIX = "-service";
- context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX);
- PosBizProvider.getController().doSubController(context, false);
-
- String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
-
- logger.logInfo("PosSaveSlabCutting SendProg_NIE012080 SERVICE_ERR_MSG:"+SERVICE_ERR_MSG );
-
-
- if (SERVICE_ERR_MSG != null)
- {
- throw new PosException(SERVICE_ERR_MSG);
- }
-
-
- return null;
- }
-
- // call mill scheduling reject service class
- public void SendProg_NIF024060(String SlabNo,String RejType )
- {
-
- logger.logInfo("PosSaveMissionNo SendProg_NIF024060 " );
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
- String TcId = "NIF024060";
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("TYPE",RejType);
- message.setObject("FROM",SlabNo);
- message.setObject("TO",SlabNo);
- message.setObject("REG_ID","UIG020060");
-
- context.setMessage(message);
- this.processComponent(PosConstants.CREATE_MESSAGE, context);
- String transactionCode = context.getMessage().getTC();
-
- message.setTCID(TcId);
-
- String serviceName = "NIF024060";
-
- String SERVICE_POSTFIX = "-service";
-
-
- context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
-
-
- context.setMessage(message);
-
-
- PosBizControlIF controller = PosBizProvider.getController();
-
- controller.doSubController(context,false);
-
- }
-
- public String SlabSizeDec(String slabRt,BigDecimal slabThk, BigDecimal slabWth,
- BigDecimal slabLen, String SlabNo, String PlanSlabNo,
- BigDecimal SlabWgt) {
-
-
- logger.logInfo("XinSaveSlabComm SlabWgt:" + SlabWgt);
- BigDecimal SlabThk = slabThk;
- BigDecimal SlabWth = slabWth;
- BigDecimal SlabLen = slabLen;
-
- BigDecimal ordThk = new BigDecimal(0);
- BigDecimal ordWth = new BigDecimal(0);
- BigDecimal ordLen = new BigDecimal(0);
- BigDecimal ordWgt = new BigDecimal(0);
- BigDecimal coilOutDia = new BigDecimal(0);
- BigDecimal coilInDia = new BigDecimal(0);
- if(slabRt.equals("Z")||slabRt.equals("P")){
- //---
- return "N";
- //--------------------------中厚板移送的板坯规格如何判定??
- }else if(slabRt.equals("H")){
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, SlabNo);
- PosRowSet CommDVO = getDao("mesdao").find(
- "NIG020610_SLAB_COMM_D.select", param1);
- PosRowSet CommDVO2 = getDao("mesdao").find(
- "UIG020060_SLAB_COMMD_ORD.select", param1);
-
- if (CommDVO2.hasNext()) {
- PosRow row = CommDVO2.next();
- ordThk = (BigDecimal) row.getAttribute("ORD_THK");
- ordWth = (BigDecimal) row.getAttribute("ORD_WTH");
- coilInDia = (BigDecimal) row.getAttribute("COIL_INDIA");
- }
-
- //板坯宽度 < 订单宽度 或者 板坯宽度 > 订单宽度+100 则 尺寸不合格
- BigDecimal total = ordWth.add(new BigDecimal(100));
- if (SlabWth.compareTo(ordWth) < 0 || total.compareTo(SlabWth) < 0) {
- return "N";
- }
- param1 = new PosParameter();
- PosRowSet rateVo = getDao("mesdao").find("UIG020060_proc_rate.select",
- param1);
- BigDecimal procRate = new BigDecimal(1);
- if (rateVo.hasNext()) {
- PosRow posrow = rateVo.next();
- procRate = (BigDecimal) posrow.getAttribute("PROC_RATE");
- }
- if (CommDVO.hasNext()) {
- PosRow CommDROW = CommDVO.next();
- BigDecimal PROD_WGT_MIN = (BigDecimal) CommDROW
- .getAttribute("PROD_WGT_MIN");
- BigDecimal PROD_WGT_MAX = (BigDecimal) CommDROW
- .getAttribute("PROD_WGT_MAX");
- logger.logInfo("XinSaveSlabComm PROD_WGT_MIN:" + PROD_WGT_MIN);
- logger.logInfo(PROD_WGT_MIN);
- logger.logInfo(PROD_WGT_MAX);
- ordWgt = SlabWgt.multiply(procRate);
- ordWgt = ordWgt.divide(new BigDecimal(100));
- logger.logInfo("XinSaveSlabComm ordWgt:" + ordWgt);
- if (PROD_WGT_MIN == null)
- PROD_WGT_MIN = new BigDecimal(0);
- if (PROD_WGT_MAX == null)
- PROD_WGT_MAX = new BigDecimal(300000);
- // 如果板坯重量不在订单重量范围内
- if (ordWgt.compareTo(PROD_WGT_MIN) < 0
- || PROD_WGT_MAX.compareTo(ordWgt) < 0) {
- // 取消订单
- return "N";
- }
- }
- logger.logInfo("ordWgt=" + ordWgt);
- logger.logInfo("ordThk=" + ordThk);
- logger.logInfo("SlabWth=" + SlabWth);
- ordLen = ordWgt.multiply(new BigDecimal(1000000));
- ordLen = ordLen.divide(ordThk, 3, BigDecimal.ROUND_HALF_UP);
- ordLen = ordLen.divide(ordWth, 3, BigDecimal.ROUND_HALF_UP);
- ordLen = ordLen.divide(new BigDecimal(7.85), 0,BigDecimal.ROUND_HALF_UP);
- coilOutDia = new BigDecimal(Math.sqrt(ordWgt.multiply(
- new BigDecimal(1000000).multiply(new BigDecimal(4)).divide(
- new BigDecimal(7.85 * 3.14 * 0.98), 3,
- BigDecimal.ROUND_HALF_UP).divide(ordWth, 0,
- BigDecimal.ROUND_HALF_UP)).add(
- coilInDia.multiply(coilInDia)).doubleValue()));
- param1 = new PosParameter();
- param1.setWhereClauseParameter(0, slabThk);
- param1.setWhereClauseParameter(1, slabWth);
- param1.setWhereClauseParameter(2, slabLen);
- param1.setWhereClauseParameter(3, ordLen);
- param1.setWhereClauseParameter(4, ordWgt);
- param1.setWhereClauseParameter(5, coilOutDia);
- param1.setWhereClauseParameter(6, SlabNo);
- getDao("mesdao").update("UIG020060_slab_comm_d.update",param1);
- return "Y";
- }
- return "";
- }
-
- }
|