| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909 |
- package xin.glue.nui.F.F02;
- import xin.glue.user.common.GlobalConstants;
- import xin.glue.user.common.LogGpError;
- import xin.glue.user.common.StringUtils;
- import com.posdata.glue.PosException;
- 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;
- //import java.lang.Long;
- /* Program Name MILLRollSeqChange (NIF024030)
- * Description MILL WORK INSTRUCTION CHANGING ROLL SEQUENCE
- * Write By KIM SUNG HO
- * Date 2008-11-14
- */
- /************************************************************************/
- /* CLASS MILLRollSeqChange Author: KIM SUNG HO */
- /************************************************************************/
- /* DESCRIPTION 轧制顺序调整 */
- /************************************************************************/
- /* UPD_TIME | WHO | PROGRAM | CONTTENT
- /* 090613 SUNJIAWANG 添加注释
- /* 090613 SUNJIAWANG NIF024030_MILLStatusChk.select 增加对入炉辊道的处理
- /* 090613 SUNJIAWANG NIF024030_MILLStatusChk.select add slab_stat
- /* 090815 SUNJIAWANG moveAble 轧辊单元不能够移动正在进行的轧辊之间
- /************************************************************************/
- public class MILLRollSeqChange extends PosActivity implements GlobalConstants {
- /**
- * 轧制顺序调整【M】
- * 检查操作对象位置
- * 检查移动对象中是否有进行的对象和已上料的板坯
- * 检查操作对象 头尾轧辊 头尾板坯是否存在
- * 进行轧辊位置移动跟换 使用临时表 TBF02_CHG_ROLL
- * 指示更新 TBH06_ROLL_INS TBH06_RHT_INS TBH06_MILL_INS TBH06_COIL_NO_INS
- * 更新TBF02_CHG_ROLL的状态
- * 更新 TBF02_SPEC_ROLL TBF02_SPEC_MILL TBF02_MILL_IDX 的FL
- * !!! add function move hcr 热装HCR 不需要检查顺序 热送HCR 移动时需要检查顺序
- */
-
- String P_ROLL_MANA_ST = "";
- String P_ROLL_MANA_EN = "";
- String P_ROLL_MANA_TG = "";
- String P_POS = "";
-
- public String runActivity(PosContext context) {
- long V_MOV_STATUS_CNT = 0 ;
- long V_MOV_COIL_STAT_CNT = 0;
- long V_MOV_SLAB_STAT_CNT = 0; //已切割形成的板坯
- long V_TAG_STATUS_CNT = 0 ;
- long V_MOV_HCR_CNT = 0 ;
- long V_TAG_HCR_CNT = 0 ;
- long V_TAG_COIL_STAT_CNT = 0;
- long V_TAG_HCR_SLAB_STAT_CNT = 0;
- long V_ORG_SEQ = 0 ;
- long V_CHG_SEQ = 0 ;
- long V_SEQ_ST = 0 ;
- long V_SEQ_EN = 0 ;
- long V_SEQ_TG = 0 ;
- long V_SHIFT_CNT = 0 ;
- long V_MOVE_CNT = 0 ;
- long V_SHIFT_FR_SEQ = 0 ;
- long V_SHIFT_TO_SEQ = 0 ;
-
- String V_ROLL_MANA_NO = "" ;
- String V_ROLL_MANA_IC = "" ;
- String V_BEF_ROLL_MANA_NO = "" ;
- String V_CHG_ROLL_MANA_NO = "" ;
- String V_ROLL_MANA_ST = "" ;
- String V_ROLL_MANA_EN = "" ;
- String V_BEF_ROLL_MANA_ST = "" ;
- String V_BEF_ROLL_MANA_EN = "" ;
- String V_AFT_ROLL_MANA_ST = "" ;
- String V_AFT_ROLL_MANA_EN = "" ;
- String V_BEF_SLAB_NO_ST = "" ;
- String V_BEF_SLAB_NO_EN = "" ;
- String V_AFT_SLAB_NO_ST = "" ;
- String V_AFT_SLAB_NO_EN = "" ;
- String V_CHG_FL = "" ;
-
- String V_TABLE_ID = "" ;
- String V_TABLE_MODE = "" ;
- String V_ERR_DESC = "" ;
- String V_RTN_NAME = "" ;
-
- PosMessage message = context.getMessage();
-
- //ROLL_MANA_NO FROM/TO/TARGET
- P_ROLL_MANA_ST = (String)message.get("FROM");
- P_ROLL_MANA_EN = (String)message.get("TO");
- P_ROLL_MANA_TG = (String)message.get("TARGET");
- P_POS = (String)message.get("POS");
-
- // try {
-
- if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_EN) > 0) {
-
- //P_MODE PARAMETER ERROR MESSAGE
- throw new PosException("MILLRollSeqChange..ROLL_MANA_ST > ROLL_MANA_EN..");
-
- } else if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) < 0 && P_ROLL_MANA_EN.compareTo(P_ROLL_MANA_TG) > 0) {
-
- //P_MODE PARAMETER ERROR MESSAGE
- throw new PosException("MILLRollSeqChange..ROLL_MANA_ST < ROLL_MANA_TG < ROLL_MANA_EN..");
-
- } else if (P_ROLL_MANA_ST.equals(P_ROLL_MANA_TG) && P_POS.equals("A")) {
-
- //P_MODE PARAMETER ERROR MESSAGE
- throw new PosException("MILLRollSeqChange..ROLL_MANA_ST = ROLL_MANA_TG, P_POS IS 'A'..");
-
- } else if (P_ROLL_MANA_ST.equals(P_ROLL_MANA_TG) && P_POS.equals("B")) {
-
- //PROGRAM EXIT (SAME WORK)
- throw new PosException("MILLRollSeqChange..ROLL_MANA_ST = ROLL_MANA_TG, P_POS IS 'B'..");
- } else if (P_ROLL_MANA_EN.equals(P_ROLL_MANA_TG) && P_POS.equals("A")) {
-
- //PROGRAM EXIT (SAME WORK)
- throw new PosException("MILLRollSeqChange..ROLL_MANA_EN = ROLL_MANA_TG, P_POS IS 'A'..");
- } else if (P_ROLL_MANA_EN.equals(P_ROLL_MANA_TG) && P_POS.equals("B")) {
-
- //P_MODE PARAMETER ERROR MESSAGE
- throw new PosException("MILLRollSeqChange..ROLL_MANA_EN = ROLL_MANA_TG, P_POS IS 'B'..");
-
- }
-
- //---------------------------------------------------------------------------------
- //MOVE, TARGET ROLL HCR_CLF = 'H', STATUS_CD = 'B' CHECK
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, P_ROLL_MANA_ST);
- param1.setWhereClauseParameter(1, P_ROLL_MANA_EN);
- PosRowSet MILLStatusChkVO = getDao("mesdao").find("NIF024030_MILLStatusChk.select",param1);
- MILLStatusChkVO.reset();
-
- if (MILLStatusChkVO.hasNext()) {
-
- PosRow MILLStatusChkRow = MILLStatusChkVO.next();
- //移动对象中的STATUS个数
- V_MOV_STATUS_CNT = Long.parseLong((MILLStatusChkRow.getAttribute("STATUS_CNT")==null? "0":MILLStatusChkRow.getAttribute("STATUS_CNT")).toString());
- //移动对象中的HCR个数
- V_MOV_HCR_CNT = Long.parseLong((MILLStatusChkRow.getAttribute("HCR_CNT")==null? "0":MILLStatusChkRow.getAttribute("HCR_CNT")).toString());
- //移动对象中的已上料板坯的个数
- V_MOV_COIL_STAT_CNT = Long.parseLong((MILLStatusChkRow.getAttribute("COIL_STAT_CNT")==null? "0":MILLStatusChkRow.getAttribute("COIL_STAT_CNT")).toString());
- // //移动对象中的虚拟HCR板坯的个数
- V_MOV_SLAB_STAT_CNT = Long.parseLong((MILLStatusChkRow.getAttribute("SLAB_STAT_CNT")==null? "0":MILLStatusChkRow.getAttribute("SLAB_STAT_CNT")).toString());
- } else {
-
- V_MOV_STATUS_CNT = 0;
- V_MOV_HCR_CNT = 0;
- V_MOV_COIL_STAT_CNT = 0;
- V_MOV_SLAB_STAT_CNT = 0;
- }
-
- if (V_MOV_STATUS_CNT != 0){ //移动对象中含有轧制进行的板坯
-
- //MESSAGE ERROR --> PROGRAM EXIT
- throw new PosException("MILLRollSeqChange..STATUS_CD = 'B'..");
- //throw new PosException("移动对象已处于轧制进行中");
-
- }
- if (V_MOV_COIL_STAT_CNT != 0){ //移动对象中含有轧制进行的板坯
-
- //MESSAGE ERROR --> PROGRAM EXIT
- //throw new PosException("MILLRollSeqChange..STATUS_CD = 'B'..");
- throw new PosException("移动对象已处于上料!");
-
- }
-
- if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) > 0){
- this.moveAble(P_POS, P_ROLL_MANA_EN, P_ROLL_MANA_TG);
- }
-
- /*************************************************************************************************************************/
- /**
- * 处理含有HCR的移动对象
- */
- //MOVE ROLL IN HCR_CNT <> 0
- //移动对象含有虚拟HCR
- if (V_MOV_HCR_CNT != 0 && V_MOV_SLAB_STAT_CNT != 0){
-
- //AFTER MOVE ROLL START/END
- //移动对象位置在目标对象前 对象前移
- if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) > 0) {
-
- //BEFORE TARGET
- if (P_POS.equals("B")) {
-
- V_ROLL_MANA_ST = P_ROLL_MANA_TG;
-
- } else {
-
- PosParameter param2 = new PosParameter();
- param2.setWhereClauseParameter(0, P_ROLL_MANA_TG);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoAft.select",param2);
- RollManaNoAftVO.reset();
-
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_ROLL_MANA_ST = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_ROLL_MANA_ST = "";
-
- }
-
- }
-
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0, P_ROLL_MANA_ST);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoBef.select",param3);
- RollManaNoAftVO.reset();
-
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_ROLL_MANA_EN = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_ROLL_MANA_EN = "";
-
- }
-
- } else if (P_ROLL_MANA_EN.compareTo(P_ROLL_MANA_TG) < 0 ) { //对象后移
-
- //AFTER TARGET
- if (P_POS.equals("A")) {
-
- V_ROLL_MANA_EN = P_ROLL_MANA_TG;
-
- } else {
-
- PosParameter param4 = new PosParameter();
- param4.setWhereClauseParameter(0, P_ROLL_MANA_TG);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoBef.select",param4);
- RollManaNoAftVO.reset();
-
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_ROLL_MANA_EN = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_ROLL_MANA_EN = "";
-
- }
- }
-
- PosParameter param5 = new PosParameter();
- param5.setWhereClauseParameter(0, P_ROLL_MANA_EN);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoAft.select",param5);
- RollManaNoAftVO.reset();
-
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_ROLL_MANA_ST = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_ROLL_MANA_ST = "";
-
- }
- }
-
- PosParameter param6 = new PosParameter();
- param6.setWhereClauseParameter(0, V_ROLL_MANA_ST);
- param6.setWhereClauseParameter(1, V_ROLL_MANA_EN);
- PosRowSet MILLStatusChkTgVO = getDao("mesdao").find("NIF024030_MILLStatusChk.select",param6);
- MILLStatusChkTgVO.reset();
-
- if (MILLStatusChkTgVO.hasNext()) {
-
- PosRow MILLStatusChkTgRow = MILLStatusChkTgVO.next();
- V_TAG_STATUS_CNT = Long.parseLong((MILLStatusChkTgRow.getAttribute("STATUS_CNT")==null? "0":MILLStatusChkTgRow.getAttribute("STATUS_CNT")).toString());
- V_TAG_HCR_CNT = Long.parseLong((MILLStatusChkTgRow.getAttribute("HCR_CNT")==null? "0":MILLStatusChkTgRow.getAttribute("HCR_CNT")).toString());
- V_TAG_COIL_STAT_CNT = Long.parseLong((MILLStatusChkTgRow.getAttribute("COIL_STAT_CNT")==null? "0":MILLStatusChkTgRow.getAttribute("COIL_STAT_CNT")).toString());
- V_TAG_HCR_SLAB_STAT_CNT = Long.parseLong((MILLStatusChkTgRow.getAttribute("SLAB_STAT_CNT")==null? "0":MILLStatusChkTgRow.getAttribute("COIL_STAT_CNT")).toString());
- } else {
-
- V_TAG_STATUS_CNT = 0;
- V_TAG_HCR_CNT = 0;
- V_TAG_HCR_SLAB_STAT_CNT =0;
-
- }
- //comment by sunjiawang 090625
- if (V_TAG_STATUS_CNT != 0 ){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- throw new PosException("MILLRollSeqChange..STATUS_CD = 'B' 不能够移动到已轧制进行板坯前");
-
- }
-
- if ( V_TAG_COIL_STAT_CNT != 0){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- throw new PosException("MILLRollSeqChange..COIL_STAT_CNT = '0' 不能移动到已上料板坯前..");
-
- }
- //comment by sunjiawang 090625
- // if (V_TAG_HCR_SLAB_STAT_CNT == 0 && V_TAG_HCR_CNT != 0 ){
- //
- // //MESSAGE ERROR --> PROGRAM EXIT
- // throw new PosException(" MILLRollSeqChange.. V_TAG_HCR_SLAB_STAT_CNT == 0 && V_TAG_HCR_CNT != 0 虚拟HCR不能够移动到已切割HCR之前..");
- //
- // }
- // //移动对象中含有虚拟的HCR 后移有已切割的HCR ADD BY SUNJIAWANG 090625
- // if (V_MOV_HCR_CNT > 0 && V_MOV_SLAB_STAT_CNT == 0 && V_TAG_HCR_SLAB_STAT_CNT != 0 && P_POS =="A"){
- //
- // //MESSAGE ERROR --> PROGRAM EXIT
- // throw new PosException(" MILLRollSeqChange.. V_TAG_HCR_SLAB_STAT_CNT == 0 && V_TAG_HCR_CNT != 0 虚拟HCR不能够移动到已切割HCR之前..");
- //
- // }
- } //IF V_MOV_HCR_CNT != 0 END
- /*************************************************************************************************************************/
- else {
- //取消HCR移动的限制
- if ( V_TAG_STATUS_CNT != 0 || V_TAG_COIL_STAT_CNT != 0){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- throw new PosException("MILLRollSeqChange..STATUS_CD = 'B' OR V_TAG_COIL_STAT_CNT = 0..");
-
- }
- } //add by sunjiwang 090625
-
-
- //---------------------------------------------------------------------------------
- //BEFORE MOVE ROLL FIRST SLAB_NO, LAST SLAB_NO SELECT
- //移动对象在目标位置后 : 移动对象前移
- if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) > 0) {
-
- V_BEF_ROLL_MANA_EN = P_ROLL_MANA_EN;
-
- //ROLL_MANA_TG BEFORE/AFTER ROLL_MANA_NO SELECT
- if (P_POS.equals("B")) {
-
- V_BEF_ROLL_MANA_ST = P_ROLL_MANA_TG;
-
- } else {
-
- PosParameter param7 = new PosParameter();
- param7.setWhereClauseParameter(0, P_ROLL_MANA_TG);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoAft.select",param7);
- RollManaNoAftVO.reset();
-
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_BEF_ROLL_MANA_ST = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_BEF_ROLL_MANA_ST = "";
-
- }
- }
-
- } //end (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) > 0) 移动对象在目标位置后 : 移动对象前移
- else if (P_ROLL_MANA_EN.compareTo(P_ROLL_MANA_TG) < 0 ) //移动对象在目标对象前 :移动对象后移
- {
-
- V_BEF_ROLL_MANA_ST = P_ROLL_MANA_ST;
-
- //LAST ROLL_MANA_NO
- PosRowSet LastRollManaNoVO = getDao("mesdao").find("NIF024030_LastRollManaNo.select");
- LastRollManaNoVO.reset();
-
- if (LastRollManaNoVO.hasNext()) {
-
- PosRow LastRollManaNoRow = LastRollManaNoVO.next();
- V_BEF_ROLL_MANA_EN = (String)LastRollManaNoRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_BEF_ROLL_MANA_EN = "";
-
- }
- }//end (P_ROLL_MANA_EN.compareTo(P_ROLL_MANA_TG) < 0 ) 移动对象在目标对象前 :移动对象后移
-
- if (V_BEF_ROLL_MANA_ST == "" || V_BEF_ROLL_MANA_EN == ""){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- throw new PosException("MILLRollSeqChange..BEF_ROLL_MANA ST/EN IS NULL..");
- }
- //BEFORE CHANGE ROLL START/END SLAB_NO CHECK
- PosParameter param8 = new PosParameter();
- param8.setWhereClauseParameter(0, V_BEF_ROLL_MANA_ST);
- param8.setWhereClauseParameter(1, V_BEF_ROLL_MANA_ST);
- param8.setWhereClauseParameter(2, V_BEF_ROLL_MANA_EN);
- param8.setWhereClauseParameter(3, V_BEF_ROLL_MANA_EN);
- PosRowSet RollSlabSeqVO = getDao("mesdao").find("NIF024030_SlabNoFind.select",param8);
- RollSlabSeqVO.reset();
- //查找所有的移动板坯
- if (RollSlabSeqVO.hasNext()) {
-
- PosRow RollSlabSeqRow = RollSlabSeqVO.next();
- V_BEF_SLAB_NO_ST = (String)RollSlabSeqRow.getAttribute("SLAB_NO_ST");
- V_BEF_SLAB_NO_EN = (String)RollSlabSeqRow.getAttribute("SLAB_NO_EN");
-
- } else {
-
- V_BEF_SLAB_NO_ST = "";
- V_BEF_SLAB_NO_EN = "";
-
- }//对移动的头尾板坯赋值
-
- //没有可操作的对象
- if (V_BEF_SLAB_NO_ST == "" || V_BEF_SLAB_NO_EN == ""){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- // throw new PosException("MILLRollSeqChange..BEF_SLAB_NO ST/EN IS NULL..");
- throw new PosException("没有可操作的对象 MILLRollSeqChange..BEF_SLAB_NO ST/EN IS NULL..");
- } //end 没有可操作的对象
-
- //--------------------------------------------------------------------------------------
- //AFTER MOVE ROLL FIRST SLAB_NO, LAST SLAB_NO SELECT
- //对象前移
- if (P_ROLL_MANA_ST.compareTo(P_ROLL_MANA_TG) > 0)
- {
-
- V_AFT_ROLL_MANA_ST = P_ROLL_MANA_ST;
-
- PosParameter param9 = new PosParameter();
- param9.setWhereClauseParameter(0, P_ROLL_MANA_ST);
- PosRowSet RollManaNoBefVO = getDao("mesdao").find("NIF024030_RollManaNoBef.select",param9);
- RollManaNoBefVO.reset();
-
- if (RollManaNoBefVO.hasNext()) {
-
- PosRow RollManaNoBefRow = RollManaNoBefVO.next();
- V_AFT_ROLL_MANA_EN = (String)RollManaNoBefRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_AFT_ROLL_MANA_EN = "";
-
- }
-
- } //end 对象前移
-
- //对象后移
- else if (P_ROLL_MANA_EN.compareTo(P_ROLL_MANA_TG) < 0 )
- {
-
- PosParameter param10 = new PosParameter();
- param10.setWhereClauseParameter(0, P_ROLL_MANA_EN);
- PosRowSet RollManaNoAftVO = getDao("mesdao").find("NIF024030_RollManaNoAft.select",param10);
- RollManaNoAftVO.reset();
-
- //获取最小轧辊单元 赋值 V_AFT_ROLL_MANA_ST
- if (RollManaNoAftVO.hasNext()) {
-
- PosRow RollManaNoAftRow = RollManaNoAftVO.next();
- V_AFT_ROLL_MANA_ST = (String)RollManaNoAftRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_AFT_ROLL_MANA_ST = "";
-
- }//end
-
- //LAST ROLL_MANA_NO
- PosRowSet LastRollManaNoVO = getDao("mesdao").find("NIF024030_LastRollManaNo.select");
- LastRollManaNoVO.reset();
-
- //获取最大轧辊单元 赋值 V_AFT_ROLL_MANA_EN
- if (LastRollManaNoVO.hasNext()) {
-
- PosRow LastRollManaNoRow = LastRollManaNoVO.next();
- V_AFT_ROLL_MANA_EN = (String)LastRollManaNoRow.getAttribute("ROLL_MANA_NO");
-
- } else {
-
- V_AFT_ROLL_MANA_EN = "";
-
- }//end
- if (P_POS.equals("A") && V_AFT_ROLL_MANA_EN.equals(P_ROLL_MANA_TG)) {
-
- V_AFT_ROLL_MANA_EN = P_ROLL_MANA_EN;
-
- }
- }//end 对象后移
-
- //没有可以操作的对象
- if (V_AFT_ROLL_MANA_ST == "" || V_AFT_ROLL_MANA_EN == ""){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- //throw new PosException("MILLRollSeqChange..AFT_ROLL_MANA ST/EN IS NULL..");
- throw new PosException("没有可操作的对象 MILLRollSeqChange..AFT_ROLL_MANA ST/EN IS NULL..");
-
- }//end 没有可以操作的对象
- //MOVE AFTER CHANGE ROLL START/END SLAB_NO CHECK
- //获取移动之前的头尾板坯
- PosParameter param11 = new PosParameter();
- param11.setWhereClauseParameter(0, V_AFT_ROLL_MANA_ST);
- param11.setWhereClauseParameter(1, V_AFT_ROLL_MANA_ST);
- param11.setWhereClauseParameter(2, V_AFT_ROLL_MANA_EN);
- param11.setWhereClauseParameter(3, V_AFT_ROLL_MANA_EN);
- PosRowSet RollSlabSeqAftVO = getDao("mesdao").find("NIF024030_SlabNoFind.select",param11);
- RollSlabSeqAftVO.reset();
-
- if (RollSlabSeqAftVO.hasNext()) {
-
- PosRow RollSlabSeqAftRow = RollSlabSeqAftVO.next();
- V_AFT_SLAB_NO_ST = (String)RollSlabSeqAftRow.getAttribute("SLAB_NO_ST");
- V_AFT_SLAB_NO_EN = (String)RollSlabSeqAftRow.getAttribute("SLAB_NO_EN");
-
- } else {
-
- V_AFT_SLAB_NO_ST = "";
- V_AFT_SLAB_NO_EN = "";
-
- }
-
- if (V_AFT_SLAB_NO_ST == "" || V_AFT_SLAB_NO_EN == ""){
-
- //MESSAGE ERROR --> PROGRAM EXIT
- //throw new PosException("MILLRollSeqChange..AFT_SLAB_NO ST/EN IS NULL..");
- throw new PosException("缺少操作对象 MILLRollSeqChange..AFT_SLAB_NO ST/EN IS NULL..");
-
- }//end 获取移动之前的头尾板坯
-
- //DELETE TBF02_CHG_ROLL
- getDao("mesdao").delete("NIF024030_ChgRoll.delete");
-
- //INSERT TEMP TABLE TBF02_CHG_ROLL
- getDao("mesdao").insert("NIF024030_TempRoll.insert");
-
- //START ROLL_MANA_NO, SLAB_EDT_SEQ, ROLL_SLAB_SEQ CHECK
- PosParameter param12 = new PosParameter();
- param12.setWhereClauseParameter(0, P_ROLL_MANA_ST);
- param12.setWhereClauseParameter(1, P_ROLL_MANA_EN);
- param12.setWhereClauseParameter(2, P_ROLL_MANA_TG);
- PosRowSet RollEdtSeqFindVO = getDao("mesdao").find("NIF024030_RollEdtSeqFind.select",param12);
- RollEdtSeqFindVO.reset();
-
- if (RollEdtSeqFindVO.hasNext()) {
-
- PosRow RollEdtSeqFindRow = RollEdtSeqFindVO.next();
- V_SEQ_ST = Long.parseLong((RollEdtSeqFindRow.getAttribute("SEQ_ST")==null? "0":RollEdtSeqFindRow.getAttribute("SEQ_ST")).toString());
- V_SEQ_EN = Long.parseLong((RollEdtSeqFindRow.getAttribute("SEQ_EN")==null? "0":RollEdtSeqFindRow.getAttribute("SEQ_EN")).toString());
- V_SEQ_TG = Long.parseLong((RollEdtSeqFindRow.getAttribute("SEQ_TG")==null? "0":RollEdtSeqFindRow.getAttribute("SEQ_TG")).toString());
-
- } else {
-
- V_SEQ_ST = 0;
- V_SEQ_EN = 0;
- V_SEQ_TG = 0;
-
- }
-
- //进行轧辊移动操作
- //CHANGE RANGE VALUE SETTING
- if (V_SEQ_ST > V_SEQ_TG) {
-
- if (P_POS.equals("B")) {
- V_SHIFT_CNT = V_SEQ_EN - V_SEQ_ST + 1;
- V_MOVE_CNT = V_SEQ_TG - V_SEQ_ST;
- V_SHIFT_FR_SEQ = V_SEQ_TG;
- V_SHIFT_TO_SEQ = V_SEQ_ST - 1;
- } else {
- V_SHIFT_CNT = V_SEQ_EN - V_SEQ_ST + 1;
- V_MOVE_CNT = V_SEQ_TG - V_SEQ_ST + 1;
- V_SHIFT_FR_SEQ = V_SEQ_TG + 1;
- V_SHIFT_TO_SEQ = V_SEQ_ST - 1;
- }
-
- } else {
-
- if (P_POS.equals("B")) {
- V_SHIFT_CNT = V_SEQ_ST - V_SEQ_EN - 1;
- V_MOVE_CNT = V_SEQ_TG - V_SEQ_EN - 1;
- V_SHIFT_FR_SEQ = V_SEQ_EN + 1;
- V_SHIFT_TO_SEQ = V_SEQ_TG - 1;
- } else {
- V_SHIFT_CNT = V_SEQ_ST - V_SEQ_EN - 1;
- V_MOVE_CNT = V_SEQ_TG - V_SEQ_EN;
- V_SHIFT_FR_SEQ = V_SEQ_EN + 1;
- V_SHIFT_TO_SEQ = V_SEQ_TG;
- }
-
- }
- //RE-ARRANGE ROLL_SEQ CHANGING
- PosRowSet TmpChgRollVO = getDao("mesdao").find("NIF024030_TmpChgRoll.select");
- TmpChgRollVO.reset();
-
- while(TmpChgRollVO.hasNext()) {
-
- PosRow TmpChgRollRow = TmpChgRollVO.next();
- V_ORG_SEQ = Long.parseLong((TmpChgRollRow.getAttribute("ORG_SEQ")==null? "0":TmpChgRollRow.getAttribute("ORG_SEQ")).toString());
-
- V_CHG_SEQ = V_ORG_SEQ;
-
- //CHECK SEQUENCE
- if (V_CHG_SEQ >= V_SEQ_ST && V_CHG_SEQ <= V_SEQ_EN) {
-
- V_CHG_SEQ = V_CHG_SEQ + V_MOVE_CNT;
-
- } else if (V_CHG_SEQ >= V_SHIFT_FR_SEQ && V_CHG_SEQ <= V_SHIFT_TO_SEQ) {
-
- V_CHG_SEQ = V_CHG_SEQ + V_SHIFT_CNT;
- }
-
- if (V_ORG_SEQ != V_CHG_SEQ) {
-
- V_CHG_FL = "Y";
-
- } else {
-
- V_CHG_FL = "N";
-
- }
-
- //RE-ARRANGE UPDATE TBF02_CHG_ROLL --> CHG_SEQ
- PosParameter param13 = new PosParameter();
- param13.setWhereClauseParameter(0, String.valueOf(V_CHG_SEQ));
- param13.setWhereClauseParameter(1, V_CHG_FL);
- param13.setWhereClauseParameter(2, String.valueOf(V_ORG_SEQ));
- getDao("mesdao").update("NIF024030_TmpChgRoll.update",param13);
-
- } //TmpChgRollVO while END
-
- //RE-ARRANGE ROLL_MANA_NO CHANGING
- PosRowSet TmpChgRollChgVO = getDao("mesdao").find("NIF024030_TmpChgRollChg.select");
- TmpChgRollChgVO.reset();
-
- while(TmpChgRollChgVO.hasNext()) {
-
- PosRow TmpChgRollChgRow = TmpChgRollChgVO.next();
- V_ORG_SEQ = Long.parseLong((TmpChgRollChgRow.getAttribute("ORG_SEQ")==null? "0":TmpChgRollChgRow.getAttribute("ORG_SEQ")).toString());
- V_ROLL_MANA_NO = (String)TmpChgRollChgRow.getAttribute("ROLL_MANA_NO");
- V_CHG_FL = (String)TmpChgRollChgRow.getAttribute("FL");
-
- if (V_CHG_FL.equals("Y")) {
-
- if (V_BEF_ROLL_MANA_NO.equals("")) {
-
- V_ROLL_MANA_NO = "A0001";
-
- } else {
-
- if (V_BEF_ROLL_MANA_NO.substring(1, 5).equals("9999")) {//20210124 == 调整为equals
- //ROLL_MANA_NO HEADER ALPHABET + 1
- String nextSeqQr = "SELECT CHR(ASCII('" + V_BEF_ROLL_MANA_NO.substring(0, 1) + "')+1) ROLL_HEAD FROM DUAL";
- PosRowSet nextSeqVO = getDao("mesdao").findByQueryStatement(nextSeqQr);
- nextSeqVO.reset();
- PosRow nextSeqRow = nextSeqVO.next();
- String V_ROLL_HEAD = (String)nextSeqRow.getAttribute("ROLL_HEAD");
-
- V_ROLL_MANA_NO = V_ROLL_HEAD + "0001";
-
- } else {
-
- V_ROLL_MANA_IC = StringUtils.calculateIntegerStringValue(V_BEF_ROLL_MANA_NO.substring(1, 5), 1);
- V_ROLL_MANA_NO = new StringBuffer(5).append(V_BEF_ROLL_MANA_NO.substring(0, 1)).append(V_ROLL_MANA_IC).toString();
-
- }
- }
- }
- V_BEF_ROLL_MANA_NO = V_ROLL_MANA_NO;
-
- //RE-ARRANGE UPDATE TBF02_CHG_ROLL --> CHG_ROLL_MANA_NO
- PosParameter param14 = new PosParameter();
- param14.setWhereClauseParameter(0, V_ROLL_MANA_NO);
- param14.setWhereClauseParameter(1, String.valueOf(V_ORG_SEQ));
- getDao("mesdao").update("NIF024030_TmpChgRollManaNo.update",param14);
-
- } //TmpChgRollChgVO while END
-
- //-------------------------------------------------------------------------------------------------------
- //CHANGE ROLL_MANA_NO UPDATE
- PosRowSet ChgManaNoUpdVO = getDao("mesdao").find("NIF024030_ChgManaNoUpd.select");
- ChgManaNoUpdVO.reset();
-
- while(ChgManaNoUpdVO.hasNext()) {
-
- PosRow ChgManaNoUpdRow = ChgManaNoUpdVO.next();
- V_ROLL_MANA_NO = (String)ChgManaNoUpdRow.getAttribute("ROLL_MANA_NO");
- V_CHG_ROLL_MANA_NO = (String)ChgManaNoUpdRow.getAttribute("CHG_ROLL_MANA_NO");
-
- //UPDATE TBF02_SPEC_ROLL (ROLL_MANA_NO)
- PosParameter param17 = new PosParameter();
- param17.setWhereClauseParameter(0, V_CHG_ROLL_MANA_NO);
- param17.setWhereClauseParameter(1, V_ROLL_MANA_NO);
- int UpdCnt17 = getDao("mesdao").update("NIF024030_SpecRollUpd.update",param17);
-
- if (UpdCnt17 == 0) {
-
- V_TABLE_ID = "TBF02_SPEC_ROLL";
- V_TABLE_MODE = "U";
- V_ERR_DESC = "TBF02_SPEC_ROLL UPDATE COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBF02_SPEC_ROLL UPDATE17";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- //throw new PosException(V_RTN_NAME);
-
- }
-
- //UPDATE TBF02_SPEC_MILL (ROLL_MANA_NO)
- PosParameter param18= new PosParameter();
- param18.setWhereClauseParameter(0, V_CHG_ROLL_MANA_NO);
- param18.setWhereClauseParameter(1, V_ROLL_MANA_NO);
- int UpdCnt18 = getDao("mesdao").update("NIF024030_SpecMillUpd.update",param18);
-
- if (UpdCnt18 == 0) {
-
- V_TABLE_ID = "TBF02_SPEC_MILL";
- V_TABLE_MODE = "U";
- V_ERR_DESC = "TBF02_SPEC_MILL UPDATE COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBF02_SPEC_MILL UPDATE18";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- //throw new PosException(V_RTN_NAME);
-
- }
-
- //UPDATE TBF02_MILL_IDX (ROLL_MANA_NO)
- PosParameter param19 = new PosParameter();
- param19.setWhereClauseParameter(0, V_CHG_ROLL_MANA_NO);
- param19.setWhereClauseParameter(1, V_ROLL_MANA_NO);
- int UpdCnt19 = getDao("mesdao").update("NIF024030_MillIdxUpd.update",param19);
-
- if (UpdCnt19 == 0) {
-
- V_TABLE_ID = "TBF02_MILL_IDX";
- V_TABLE_MODE = "U";
- V_ERR_DESC = "TBF02_MILL_IDX UPDATE COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBF02_MILL_IDX UPDATE19";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- //throw new PosException(V_RTN_NAME);
-
- }
-
- } //ChgRollManaNoVO while END
-
- //---------------------------------------------------------------------------------
- //MILL INSTRUCTION LEVEL2 RE-SEND(UPDATE) PROCESS
-
- //TBH06_L2_ROLL_UNIT_INS SEND PROCESS
- int InsertA = getDao("mesdao").insert("NIF024030_L2ROLLReSend.insert");
-
- if (InsertA == 0) {
-
- V_TABLE_ID = "TBH06_L2_ROLL_UNIT_INS";
- V_TABLE_MODE = "I";
- V_ERR_DESC = "TBH06_L2_ROLL_UNIT_INS INSERT COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBH06_L2_ROLL_UNIT_INS INSERTA";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- throw new PosException(V_RTN_NAME);
-
- }
-
- //TBH06_L2_RHT_INS RE-SEND PROCESS
- int InsertB = getDao("mesdao").insert("NIF024030_L2RHTReSend.insert");
-
- if (InsertB == 0) {
-
- V_TABLE_ID = "TBH06_L2_RHT_INS";
- V_TABLE_MODE = "I";
- V_ERR_DESC = "TBH06_L2_RHT_INS INSERT COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBH06_L2_RHT_INS INSERTB";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- throw new PosException(V_RTN_NAME);
-
- }
-
- //TBH06_L2_MILL_INS RE-SEND PROCESS
- int InsertC = getDao("mesdao").insert("NIF024030_L2MILLReSend.insert");
-
- if (InsertC == 0) {
-
- V_TABLE_ID = "TBH06_L2_MILL_INS";
- V_TABLE_MODE = "I";
- V_ERR_DESC = "TBH06_L2_MILL_INS INSERT COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBH06_L2_MILL_INS INSERTC";
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- throw new PosException(V_RTN_NAME);
-
- }
- //CHANGE ROLL_MANA_NO
- PosRowSet ChgRollManaNoVO = getDao("mesdao").find("NIF024030_ChgRollManaNo.select");
- ChgRollManaNoVO.reset();
-
- while(ChgRollManaNoVO.hasNext()) {
-
- PosRow ChgRollManaNoRow = ChgRollManaNoVO.next();
- V_ROLL_MANA_NO = (String)ChgRollManaNoRow.getAttribute("CHG_ROLL_MANA_NO");
-
- //SELECT NXET SET SEQUEANCE
- String RenextSeqQr = "SELECT L2_COIL_NO_SET_SEQ.NEXTVAL SET_SEQ FROM DUAL ";
- PosRowSet RenextSeqVO = getDao("mesdao").findByQueryStatement(RenextSeqQr);
- RenextSeqVO.reset();
- PosRow RenextSeqRow = RenextSeqVO.next();
- Number V_RESET_SEQ = (Number)RenextSeqRow.getAttribute("SET_SEQ");
-
- //TBH06_L2_COIL_NO_INS RE-SEND PROCESS
- PosParameter paramD = new PosParameter();
- paramD.setValueParamter(0, V_RESET_SEQ);
- paramD.setValueParamter(1, V_ROLL_MANA_NO);
- int InsertD = getDao("mesdao").insert("NIF024030_L2ROLLCOILReSend.insert",paramD);
-
- if (InsertD == 0) {
-
- V_TABLE_ID = "TBH06_L2_COIL_NO_INS";
- V_TABLE_MODE = "I";
- V_ERR_DESC = "TBH06_L2_COIL_NO_INS INSERT COUNT IS ZERO";
- V_RTN_NAME = "MILLRollSeqChange TBH06_L2_COIL_NO_INS INSERT D " + V_ROLL_MANA_NO;
-
- LogGpError.logMessageToDB("MILLRollSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
- throw new PosException(V_RTN_NAME);
-
- }
-
- } //ChgRollManaNoVO while END
-
- //MILL INSTRUCTION LEVEL2 RE-SEND(UPDATE) PROCESS END
- //---------------------------------------------------------------------------------
-
- //LAST JOB DELETE TBF02_CHG_ROLL
- getDao("mesdao").delete("NIF024030_ChgRoll.delete");
- //FL INIT TBF02_SPEC_ROLL
- getDao("mesdao").update("NIF024030_InitSpecRoll.update");
- //FL INIT TBF02_SPEC_MILL
- getDao("mesdao").update("NIF024030_InitSpecMill.update");
-
- //FL INIT TBF02_MILL_IDX
- getDao("mesdao").update("NIF024030_InitMillIdx.update");
-
- // }
- // catch (PosException ex)
- // {
- // context.put(SERVICE_ERR_MSG, ex.getMessage());
- // throw ex;
- // }
- // catch (Throwable t)
- // {
- // context.put(SERVICE_ERR_MSG, t.getMessage());
- // throw new PosException(t.getMessage(), t);
- // }
-
- return PosBizControlConstants.SUCCESS;
-
- }
- /**
- * @param p_pos A : 后 B:前
- * @param p_roll_st 轧辊单元起始位置
- * @param p_roll_aim 轧辊单元目标位置
- * @return moveable 是否可以移动
- */
- public boolean moveAble (String p_pos ,String p_roll_end,String p_aim) {
- boolean moveable = true;
-
- PosParameter param = new PosParameter();
- param.setWhereClauseParameter(0,P_ROLL_MANA_EN);
- param.setWhereClauseParameter(0,P_ROLL_MANA_TG);
- long v_cnt_coil_stat = 0;
- long v_cnt_status = 0;
- PosRowSet rowset = null;
- PosRow row = null;
-
-
- if("A".equals(p_pos)) {
- rowset = this.getDao("mesdao").find("NIF024030_MILLStatusChkPosA.select", param);
- }else if("B".equals(p_pos)) {
- rowset = this.getDao("mesdao").find("NIF024030_MILLStatusChk.select", param);
- }else {
- throw new PosException("[MILLRollSeqChange]:[moveAble]:p_pos...位置没有输入...");
- }
-
- while (rowset.hasNext()) {
- row = rowset.next();
- v_cnt_coil_stat = Long.parseLong(row.getAttribute("COIL_STAT_CNT").toString());
- v_cnt_status = Long.parseLong(row.getAttribute("STATUS_CNT").toString());
- if(v_cnt_coil_stat > 0 || v_cnt_status > 0) {
- throw new PosException("[MILLRollSeqChange]:[moveAble]:v_cnt_coil_stat || v_cnt_status 不能够插入在已上料板坯间...");
- }
- }
- return moveable;
- }
- }
|